{"version":3,"file":"289.26d7e22d05477961.js","mappings":"41BAsBiDA,IASxC,IACQ,MACP,aACA,IAAIC,oBAAuB,EAG9B,CAACC,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQK,eAAiBL,EAAQM,KAAON,EAAQO,sBAAwBP,EAAQQ,4BAA8BR,EAAQS,qBAAuBT,EAAQU,kBAAoBV,EAAQW,WAAaX,EAAQY,oBAAsBZ,EAAQa,eAAiBb,EAAQc,kBAAoBd,EAAQe,kBAAoBf,EAAQgB,oBAAsBhB,EAAQiB,IAAMjB,EAAQkB,oBAAsBlB,EAAQmB,oBAAsBnB,EAAQoB,UAAYpB,EAAQqB,gBAAkBrB,EAAQsB,YAActB,EAAQuB,SAAWvB,EAAQwB,YAAcxB,EAAQyB,qBAAuBzB,EAAQ0B,wBAA0B1B,EAAQ2B,oBAAsB3B,EAAQ4B,cAAgB5B,EAAQ6B,eAAiB7B,EAAQ8B,yBAA2B9B,EAAQ+B,sBAAwB/B,EAAQgC,oBAAsBhC,EAAQiC,eAAiBjC,EAAQkC,sBAAwBlC,EAAQmC,eAAiBnC,EAAQoC,oBAAsBpC,EAAQqC,0BAA4BrC,EAAQsC,0BAA4BtC,EAAQuC,oBAAiB,EACp8BvC,EAAQwC,gBAAkBA,EAC1BxC,EAAQyC,cAklBR,WAAuBC,IACrB,MAAMC,EAASD,GAAIC,OAEnB,GAAe,IAAXA,GAAgBD,GAAI,aAAcE,WACpC,OAAOF,GAAI,GAGb,IAAIG,EAAe,EAEnB,QAASC,GAAI,EAAGA,GAAIH,EAAQG,KAC1BD,GAAgBL,EAAgBE,GAAII,KAGtC,IAAIC,GAAM,EACV,MAAMC,GAAO,IAAIJ,WAAWC,GAE5B,QAASC,GAAI,EAAGA,GAAIH,EAAQG,KAAK,CAC/B,IAAIG,GAAOP,GAAII,IAETG,cAAgBL,aAElBK,GADkB,iBAATA,GACFC,EAAcD,IAEd,IAAIL,WAAWK,KAI1B,MAAME,GAAaF,GAAKG,WACxBJ,GAAKK,IAAIJ,GAAMF,IACfA,IAAOI,GAGT,OAAOH,IAjnBThD,EAAQsD,OA0YR,YAAgBC,GAAMC,GACfD,IACHE,EAAYD,IA3YhBxD,EAAQ0D,cA8hBR,WAAuBC,KACA,iBAAVA,IAAgC,OAAVA,SAAmCC,IAAjBD,GAAMhB,SACvDc,EAAY,sCAGd,MAAMd,EAASgB,GAAMhB,OACfkB,EAAqB,KAE3B,GAAIlB,EAASkB,EACX,OAAOC,OAAOC,aAAaC,MAAM,KAAML,IAGzC,MAAMM,GAAS,GAEf,QAASnB,GAAI,EAAGA,GAAIH,EAAQG,IAAKe,EAAoB,CACnD,MAAMK,GAAWC,KAAKC,IAAItB,GAAIe,EAAoBlB,GAC5C0B,GAAQV,GAAMW,SAASxB,GAAGoB,IAChCD,GAAOM,KAAKT,OAAOC,aAAaC,MAAM,KAAMK,KAG9C,OAAOJ,GAAOO,KAAK,KAjjBrBxE,EAAQyE,wBAy9BR,cACE,MAAMC,GAAaxE,OAAOyE,OAAO,MACjC,IAAIC,GAAY,EAChB1E,cAAOC,eAAeuE,GAAY,UAAW,CAC3CG,QACSD,IAIXF,GAAWI,QAAU,IAAIC,QAAQ,SAAUC,EAASC,IAClDP,GAAWM,QAAU,SAAUhC,IAC7B4B,GAAY,EACZI,EAAQhC,KAGV0B,GAAWO,OAAS,SAAUC,IAC5BN,GAAY,EACZK,GAAOC,OAGJR,IA5+BT1E,EAAQmF,uBA+ZR,YAAgCC,GAAKC,EAAU,KAAMC,EAAU,MAC7D,IAAKF,GACH,OAAO,KAGT,IACE,GAAIE,GAA0B,iBAARF,GAAkB,CACtC,GAAIE,EAAQC,oBAAsBH,GAAII,WAAW,QAAS,CACxD,MAAMC,GAAOL,GAAIM,MAAM,OAEnBD,IAAQA,GAAK9C,QAAU,IACzByC,GAAO,UAASA,MAIpB,GAAIE,EAAQK,mBACV,IACEP,GAAMQ,GAAmBR,YAK/B,MAAMS,GAAcR,EAAU,IAAIS,IAAIV,GAAKC,GAAW,IAAIS,IAAIV,IAE9D,GA1CJ,YAA0BA,IACxB,IAAKA,GACH,OAAO,EAGT,OAAQA,GAAIW,cACL,YACA,aACA,WACA,cACA,OACH,OAAO,UAGP,OAAO,GA4BLC,CAAiBH,IACnB,OAAOA,UAIX,OAAO,MA3bT7F,EAAQiG,aA65BR,WAAsBC,IACpB,OAAOA,GAAIC,QAAQ,gBAAiBT,GACpB,OAAVA,EACK,MACY,OAAVA,EACF,MAGD,KAAIA,MAp6BhB1F,EAAQoG,oBAi9BR,YAA6BC,GAAO,IAAIC,MAEtC,MAAOC,CADSF,GAAKG,iBAAiBC,YAAaJ,GAAKK,cAAgB,GAAGD,WAAWE,SAAS,EAAG,KAAMN,GAAKO,aAAaH,WAAWE,SAAS,EAAG,KAAMN,GAAKQ,cAAcJ,WAAWE,SAAS,EAAG,KAAMN,GAAKS,gBAAgBL,WAAWE,SAAS,EAAG,KAAMN,GAAKU,gBAAgBN,WAAWE,SAAS,EAAG,MACvRnC,KAAK,KAl9BrBxE,EAAQgH,kBAgXR,aACE,OAAOC,GAhXTjH,EAAQkH,KAmXR,WAAc1D,IACRyD,GAAa5G,EAAe8G,OAC9BC,QAAQC,IAAK,SAAQ7D,OApXzBxD,EAAQsH,cA47BR,YAAuBC,IACrB,MAAoB,iBAANA,IAAwB,OAANA,SAA+B3D,IAAjB2D,GAAEnE,YA57BlDpD,EAAQwH,aA+7BR,YAAsBC,GAAMC,GAC1B,GAAID,GAAK9E,SAAW+E,EAAK/E,OACvB,OAAO,EAGT,QAASG,EAAI,EAAG6E,GAAKF,GAAK9E,OAAQG,EAAI6E,GAAI7E,IACxC,GAAI2E,GAAK3E,KAAO4E,EAAK5E,GACnB,OAAO,EAIX,OAAO,GAz8BT9C,EAAQ4H,QAm6BR,YAAiB1B,IACf,MAAO,iBAAiB2B,KAAK3B,KAn6B/BlG,EAAQ8H,cAinBR,YAAuBC,IACrB,MAAMC,EAAM9H,OAAOyE,OAAO,MAE1B,UAAYsD,EAAK7H,MAAU2H,GACzBC,EAAIC,GAAO7H,GAGb,OAAO4H,GAvnBThI,EAAQkI,WA4mBR,YAAoBF,IAClB,OAAO9H,OAAOiI,KAAKH,IAAKrF,QA5mB1B3C,EAAQoI,kBAmWR,WAA2BC,IACrBC,OAAOC,UAAUF,MACnBpB,EAAYoB,KApWhBrI,EAAQwI,OAASA,GACjBxI,EAAQyI,SAqmBR,WAAkBrI,IAChB,OAAO0D,OAAOC,aAAa3D,IAAS,GAAK,IAAMA,IAAS,GAAK,IAAMA,IAAS,EAAI,IAAc,IAARA,KArmBxFJ,EAAQkD,cAAgBA,EACxBlD,EAAQ0I,kBA62BR,WAA2BxC,IACzB,GAAIA,GAAI,IAAM,OAAQ,CACpB,IAAIyC,EAUJ,GARe,SAAfC,GAAQ,IAA4B,SAAX1C,GAAI,GAC3ByC,EAAW,WACS,SAAfC,GAAQ,IAA4B,SAAX1C,GAAI,GAClCyC,EAAW,WACS,SAAXzC,GAAI,IAA4B,SAAXA,GAAI,IAA4B,SAAXA,GAAI,KACvDyC,EAAW,SAGTA,EACF,IACE,MAAME,GAAU,IAAIC,YAAYH,EAAU,CACxCI,OAAO,IAEHxC,GAASrD,EAAcgD,IAC7B,OAAO2C,GAAQG,OAAOzC,UACf0C,IACPC,GAAM,uBAAsBD,SAKlC,MAAMhF,EAAS,GAEf,QAASnB,EAAI,EAAG6E,GAAKzB,GAAIvD,OAAQG,EAAI6E,GAAI7E,IAAK,CAC5C,MAAMqG,GAAOC,EAAwBlD,GAAImD,WAAWvG,IACpDmB,EAAOM,KAAK4E,GAAOrF,OAAOC,aAAaoF,IAAQjD,GAAIoD,OAAOxG,IAG5D,OAAOmB,EAAOO,KAAK,KA54BrBxE,EAAQuJ,sBA+5BR,YAA+BrD,IAC7B,MAAMsD,EAAM,CAAC,YAEb,QAAS1G,EAAI,EAAG6E,GAAKzB,GAAIvD,OAAQG,EAAI6E,GAAI7E,IAAK,CAC5C,MAAM2G,GAAOvD,GAAImD,WAAWvG,GAC5B0G,EAAIjF,KAAKT,OAAOC,aAAa0F,IAAQ,EAAI,KAAO3F,OAAOC,aAAoB,IAAP0F,KAGtE,OAAOD,EAAIhF,KAAK,KAt6BlBxE,EAAQ4F,mBAAqBA,GAC7B5F,EAAQyD,YAAcA,EACtBzD,EAAQ0J,mBA26BR,YAA4BxD,IAC1B,OAAOyD,SAASC,mBAAmB1D,MA36BrClG,EAAQkJ,KAAOA,GAEfjJ,EAAoB,GAGpBD,EAAQqB,gBADgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAGxCrB,EAAQyB,qBADqB,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,GAWrDzB,EAAQY,oBAToB,CAC1BiJ,IAAK,EACLC,QAAS,EACTC,MAAO,EACPC,kBAAmB,GACnBC,oBAAqB,GACrBC,oBAAqB,GACrBC,OAAQ,KASVnK,EAAQiC,eANe,CACrBmI,QAAS,EACTC,OAAQ,EACRC,aAAc,EACdC,eAAgB,GAalBvK,EAAQa,eAVe,CACrBkJ,MAAO,EACPS,gBAAiB,EACjBC,KAAM,GACNC,mBAAoB,GACpBC,uBAAwB,IACxBC,uBAAwB,IACxBC,SAAU,KACVC,mBAAoB,MAetB9K,EAAQU,kBAZkB,CACxBqK,KAAM,EACNC,OAAQ,EACRC,YAAa,EACbC,UAAW,EACXC,iBAAkB,EAClBC,mBAAoB,EACpBC,wBAAyB,EACzBC,YAAa,EACbC,iBAAkB,EAClBC,iBAAkB,GAQpBxL,EAAQoB,UALU,CAChBqK,eAAgB,EAChBC,UAAW,EACXC,WAAY,GA+Bd3L,EAAQ6B,eA5Be,CACrB+J,KAAM,EACNC,KAAM,EACNC,SAAU,EACVC,KAAM,EACNC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTC,SAAU,EACVC,UAAW,EACXC,UAAW,GACXC,SAAU,GACVC,UAAW,GACXC,MAAO,GACPC,MAAO,GACPC,IAAK,GACLC,MAAO,GACPC,eAAgB,GAChBC,MAAO,GACPC,MAAO,GACPC,OAAQ,GACRC,OAAQ,GACRC,YAAa,GACbC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,OAAQ,IAOVrN,EAAQ8B,yBAJyB,CAC/BwL,OAAQ,SACRC,OAAQ,UAOVvN,EAAQkC,sBAJsB,CAC5BoL,OAAQ,SACRE,SAAU,YAUZxN,EAAQ+B,sBAPsB,CAC5B0L,SAAU,WACVC,SAAU,WACVC,UAAW,YACXC,UAAW,YACXC,KAAM,QAOR7N,EAAQgC,oBAJoB,CAC1B8L,MAAO,QACPC,MAAO,KAeT/N,EAAQmC,eAZe,CACrB+I,UAAW,EACX8C,OAAQ,EACRjE,MAAO,EACPkE,OAAQ,EACRC,SAAU,GACVC,OAAQ,GACRC,SAAU,GACVC,OAAQ,IACRC,aAAc,IACdC,eAAgB,KAwBlBvO,EAAQoC,oBArBoB,CAC1BgM,SAAU,EACVI,SAAU,EACVC,SAAU,EACVC,UAAW,KACXC,SAAU,KACVC,cAAe,MACfC,MAAO,MACPC,WAAY,MACZC,MAAO,OACPC,KAAM,OACNC,KAAM,OACNC,WAAY,QACZC,YAAa,QACbC,gBAAiB,QACjBC,YAAa,QACbC,KAAM,SACNC,SAAU,SACVC,eAAgB,SAChBC,kBAAmB,UAUrBzP,EAAQqC,0BAP0B,CAChCqN,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACPxD,UAAW,GAmBbrM,EAAQsC,0BAhB0B,CAChCwN,EAAG,cACHC,EAAG,aACHC,EAAG,aACHC,EAAG,WACHC,GAAI,QACJC,GAAI,OACJC,GAAI,WACJC,GAAI,YACJC,GAAI,cACJC,GAAI,gBACJC,EAAG,YACHC,EAAG,SACHC,EAAG,WACHC,EAAG,aAUL3Q,EAAQ0B,wBAPwB,CAC9BkP,GAAI,YACJC,GAAI,WACJC,GAAI,UACJC,GAAI,YACJC,GAAI,YAONhR,EAAQgB,oBAJoB,CAC1BiQ,EAAG,WACHN,EAAG,aAeL3Q,EAAQW,WAZW,CACjBuQ,QAAS,UACTC,MAAO,QACPC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OAiBP3R,EAAQuB,SAdS,CACf2P,QAAS,UACTU,MAAO,QACPC,cAAe,gBACfC,OAAQ,SACRC,aAAc,eACdC,cAAe,gBACfC,SAAU,WACVC,aAAc,eACdC,MAAO,QACPC,SAAU,WACVC,MAAO,QACPC,QAAS,WAGX,MAAMjS,EAAiB,CACrBkS,OAAQ,EACRC,SAAU,EACVrL,MAAO,GAETnH,EAAQK,eAAiBA,EAMzBL,EAAQ2B,oBALoB,CAC1BkM,KAAM,EACN4E,OAAQ,EACRC,OAAQ,GAgGV1S,EAAQiB,IA7FI,CACV0R,WAAY,EACZC,aAAc,EACdC,WAAY,EACZC,YAAa,EACbC,cAAe,EACfC,QAAS,EACTC,mBAAoB,EACpBC,YAAa,EACbC,UAAW,EACXC,KAAM,GACNC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,OAAQ,GACRC,QAAS,GACTC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,UAAW,GACXC,OAAQ,GACRC,YAAa,GACbC,KAAM,GACNC,OAAQ,GACRC,WAAY,GACZC,aAAc,GACdC,gBAAiB,GACjBC,kBAAmB,GACnBC,QAAS,GACTC,KAAM,GACNC,OAAQ,GACRC,UAAW,GACXC,QAAS,GACTC,eAAgB,GAChBC,eAAgB,GAChBC,UAAW,GACXC,WAAY,GACZC,QAAS,GACTC,qBAAsB,GACtBC,YAAa,GACbC,SAAU,GACVC,mBAAoB,GACpBC,cAAe,GACfC,SAAU,GACVC,SAAU,GACVC,eAAgB,GAChBC,iBAAkB,GAClBC,2BAA4B,GAC5BC,aAAc,GACdC,sBAAuB,GACvBC,oBAAqB,GACrBC,kBAAmB,GACnBC,eAAgB,GAChBC,gBAAiB,GACjBC,aAAc,GACdC,cAAe,GACfC,cAAe,GACfC,YAAa,GACbC,kBAAmB,GACnBC,gBAAiB,GACjBC,mBAAoB,GACpBC,iBAAkB,GAClBC,YAAa,GACbC,iBAAkB,GAClBC,eAAgB,GAChBC,eAAgB,GAChBC,aAAc,GACdC,UAAW,GACXC,eAAgB,GAChBC,mBAAoB,GACpBC,wBAAyB,GACzBC,iBAAkB,GAClBC,YAAa,GACbC,UAAW,GACXC,sBAAuB,GACvBC,oBAAqB,GACrBC,WAAY,GACZC,SAAU,GACVC,iBAAkB,GAClBC,eAAgB,GAChBC,gBAAiB,GACjBC,cAAe,GACfC,iBAAkB,GAClBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,kBAAmB,GACnBC,wBAAyB,GACzBC,6BAA8B,GAC9BC,wBAAyB,GACzBC,4BAA6B,GAC7BC,yBAA0B,GAC1BC,cAAe,IA2BjBrY,EAAQS,qBAxBqB,CAC3B6X,QAAS,UACTC,MAAO,QACPC,WAAY,aACZC,WAAY,aACZC,MAAO,QACPC,eAAgB,iBAChBC,KAAM,OACNC,mBAAoB,qBACpBC,eAAgB,iBAChBC,aAAc,eACdC,mBAAoB,qBACpBC,eAAgB,iBAChBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,gBAAiB,kBACjBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,mBAAoB,qBACpBC,sBAAuB,yBAOzB3Z,EAAQc,kBAJkB,CACxB8Y,cAAe,EACfC,mBAAoB,GAGtB,IAAI5S,EAAY5G,EAAemS,SAkB/B,YAAchP,IACRyD,GAAa5G,EAAemS,UAC9BpL,QAAQC,IAAK,YAAW7D,MAI5B,WAAqBA,IACnB,MAAM,IAAIsW,MAAMtW,IA2DlB,YAAgBwE,GAAK+R,EAAM3Z,GACzBF,cAAOC,eAAe6H,GAAK+R,EAAM,CAC/B3Z,QACA4Z,YAAY,EACZC,cAAc,EACdC,UAAU,IAEL9Z,EAGT,MAAMwB,EAAgB,WACpB,WAAuBuY,EAASC,IAC1BC,KAAKC,cAAgB1Y,GACvB6B,EAAY,oCAGd4W,KAAKF,QAAUA,EACfE,KAAKD,KAAOA,GAGdxY,SAAc2Y,UAAY,IAAIT,MAC9BlY,EAAc0Y,YAAc1Y,EACrBA,EAZa,GA0GtB,WAAuBsE,IACF,iBAARA,IACTzC,EAAY,sCAGd,MAAMd,EAASuD,GAAIvD,OACbgB,EAAQ,IAAIf,WAAWD,GAE7B,QAASG,GAAI,EAAGA,GAAIH,IAAUG,GAC5Ba,EAAMb,IAAyB,IAApBoD,GAAImD,WAAWvG,IAG5B,OAAOa,EAGT,WAAyBjB,IACvB,YAAmBkB,IAAflB,GAAIC,OACCD,GAAIC,YAGUiB,IAAnBlB,GAAIU,WACCV,GAAIU,gBAGbK,EAAY,wCAnHdzD,EAAQ4B,cAAgBA,EAUxB5B,EAAQe,kBARR,gBAAgCa,EAC9B0Y,YAAY9W,EAAK2F,GACfqR,MAAMhX,EAAK,qBACX6W,KAAKlR,KAAOA,IAehBnJ,EAAQO,sBARR,gBAAoCqB,EAClC0Y,YAAY9W,EAAKiX,GACfD,MAAMhX,EAAK,yBACX6W,KAAKI,QAAUA,IAcnBza,EAAQmB,oBAPR,gBAAkCS,EAChC0Y,YAAY9W,GACVgX,MAAMhX,EAAK,yBAcfxD,EAAQkB,oBAPR,gBAAkCU,EAChC0Y,YAAY9W,GACVgX,MAAMhX,EAAK,yBAefxD,EAAQQ,4BARR,gBAA0CoB,EACxC0Y,YAAY9W,EAAKkX,GACfF,MAAMhX,EAAK,+BACX6W,KAAKK,OAASA,IAclB1a,EAAQsB,YAPR,gBAA0BM,EACxB0Y,YAAY9W,GACVgX,MAAMhX,EAAK,iBAcfxD,EAAQuC,eAPR,gBAA6BX,EAC3B0Y,YAAY9W,GACVgX,MAAMhX,EAAK,oBA6IfxD,EAAQwB,YAfR,SACamZ,4BACT,OAAOnS,GAAO6R,KAAM,iBAlBxB,cACE,MAAMO,GAAU,IAAIhY,WAAW,GAC/BgY,UAAQ,GAAK,EAEQ,IAAdC,IADYC,YAAYF,GAAQrU,OAAQ,EAAG,GACpC,GAc0BoU,IAG7BI,6BACT,OAAOvS,GAAO6R,KAAM,kBAfxB,cACE,IACE,WAAIW,SAAS,KACN,QAEP,OAAO,GAUgCD,IAG9BE,wCACT,OAAOzS,GAAO6R,KAAM,oCAAqCa,gBAAoB,OAMjF,MAAMC,GAAa,IAAIC,MAAM,KAAKjT,QAAQJ,IAAIsT,IAAKA,GAAE5U,SAAS,IAAIE,SAAS,EAAG,MAE9E,SAAW2U,oBACWC,EAAGC,EAAGC,IACxB,MAAQ,IAAGN,GAAWI,KAAKJ,GAAWK,KAAKL,GAAWM,yBAGrCnI,EAAWoI,GAC5B,IAAIC,GAEArI,EAAU,IACRA,EAAU,GAAK,IACjBqI,GAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,IAGdD,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,GAEnBA,EAAU,GAAK,IACjBqI,GAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,IAGdD,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,KAEvBqI,GAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,GACZA,GAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,GAERrI,EAAU,GAAK,IACjBqI,GAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,IAGdD,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,GAEnBA,EAAU,GAAK,IACjBqI,GAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,IAGdD,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,IAGzBoI,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,GACvBoI,EAAO,IAAMpI,EAAU,oBAGRsI,EAAIC,GACnB,MAAO,CAACD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAIA,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,0BAG1LE,EAAGC,GAGvB,MAAO,CAFID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAC9BD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,IAC7BC,6BAGeF,EAAGC,GAC9B,MAAME,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAGjC,MAAO,EAFKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,KACxDH,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,IAC1DD,kCAGoBT,EAAGQ,GACnC,MAAMG,GAAK5b,GAAK6b,eAAeZ,EAAGQ,GAC5BK,GAAK9b,GAAK6b,eAAeZ,EAAEc,MAAM,EAAG,GAAIN,GACxCO,GAAKhc,GAAK6b,eAAe,CAACZ,EAAE,GAAIA,EAAE,IAAKQ,GACvCQ,GAAKjc,GAAK6b,eAAe,CAACZ,EAAE,GAAIA,EAAE,IAAKQ,GAC7C,MAAO,CAAC5X,KAAKC,IAAI8X,GAAG,GAAIE,GAAG,GAAIE,GAAG,GAAIC,GAAG,IAAKpY,KAAKC,IAAI8X,GAAG,GAAIE,GAAG,GAAIE,GAAG,GAAIC,GAAG,IAAKpY,KAAKqY,IAAIN,GAAG,GAAIE,GAAG,GAAIE,GAAG,GAAIC,GAAG,IAAKpY,KAAKqY,IAAIN,GAAG,GAAIE,GAAG,GAAIE,GAAG,GAAIC,GAAG,6BAGrIR,GACtB,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACjC,MAAO,CAACA,EAAE,GAAKE,GAAIF,EAAE,GAAKE,GAAIF,EAAE,GAAKE,EAAGF,EAAE,GAAKE,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,2BAG3FF,EAAGxU,GACzB,MAAO,CAACwU,EAAE,GAAKxU,EAAE,GAAKwU,EAAE,GAAKxU,EAAE,GAAKwU,EAAE,GAAKxU,EAAE,GAAIwU,EAAE,GAAKxU,EAAE,GAAKwU,EAAE,GAAKxU,EAAE,GAAKwU,EAAE,GAAKxU,EAAE,GAAIwU,EAAE,GAAKxU,EAAE,GAAKwU,EAAE,GAAKxU,EAAE,GAAKwU,EAAE,GAAKxU,EAAE,yCAG5FwU,GACnC,MAAMU,EAAY,CAACV,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACjCW,GAAIX,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,GAG3CR,GAAIF,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,GAC3CE,IAASD,GAAIT,IAAK,EAClBW,GAASzY,KAAK0Y,MAAMH,GAAIT,KAAM,EAAI,GAAKS,GAAIT,IAHvCF,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,KADvCV,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,MAIc,EAEzDK,GAAKH,GAAQC,IAAU,EAC7B,MAAO,CAACzY,KAAK0Y,KAFFF,GAAQC,IAAU,GAENzY,KAAK0Y,KAAKC,0BAGdC,GACnB,MAAMxB,EAAIwB,EAAKV,MAAM,GAErB,OAAIU,EAAK,GAAKA,EAAK,KACjBxB,EAAE,GAAKwB,EAAK,GACZxB,EAAE,GAAKwB,EAAK,IAGVA,EAAK,GAAKA,EAAK,KACjBxB,EAAE,GAAKwB,EAAK,GACZxB,EAAE,GAAKwB,EAAK,IAGPxB,mBAGQyB,EAAOC,GACtB,MAAMC,GAAO/Y,KAAKqY,IAAIrY,KAAKC,IAAI4Y,EAAM,GAAIA,EAAM,IAAK7Y,KAAKC,IAAI6Y,EAAM,GAAIA,EAAM,KACvEE,GAAQhZ,KAAKC,IAAID,KAAKqY,IAAIQ,EAAM,GAAIA,EAAM,IAAK7Y,KAAKqY,IAAIS,EAAM,GAAIA,EAAM,KAE9E,GAAIC,GAAOC,GACT,OAAO,KAGT,MAAMC,GAAOjZ,KAAKqY,IAAIrY,KAAKC,IAAI4Y,EAAM,GAAIA,EAAM,IAAK7Y,KAAKC,IAAI6Y,EAAM,GAAIA,EAAM,KACvEI,GAAQlZ,KAAKC,IAAID,KAAKqY,IAAIQ,EAAM,GAAIA,EAAM,IAAK7Y,KAAKqY,IAAIS,EAAM,GAAIA,EAAM,KAE9E,OAAIG,GAAOC,GACF,KAGF,CAACH,GAAME,GAAMD,GAAOE,6BAGJC,EAAIC,EAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,IACnD,MAAMC,GAAU,GACVC,GAAS,CAAC,GAAI,IACpB,IAAIrB,GAAGjB,GAAGuC,GAAGC,GAAGC,GAAIC,GAAIC,GAAMC,GAE9B,QAASvb,GAAI,EAAGA,GAAI,IAAKA,GAWvB,GAVU,IAAVwb,IACE7C,GAAI,EAAI6B,EAAK,GAAKE,GAAK,EAAIE,GAC3BhB,IAAI,EAAKY,EAAK,EAAIE,GAAK,EAAIE,GAAK,EAAIE,GACpCI,GAAI,EAAIR,GAAK,EAAIF,IAEjB7B,GAAI,EAAI8B,EAAK,GAAKE,GAAK,EAAIE,GAC3BjB,IAAI,EAAKa,EAAK,EAAIE,GAAK,EAAIE,GAAK,EAAIE,GACpCG,GAAI,EAAIP,GAAK,EAAIF,GAGfpZ,KAAKoa,IAAI7B,IAAK,MAAlB,CACE,GAAIvY,KAAKoa,IAAI9C,IAAK,MAChB,SAGFwC,IAAKD,GAAIvC,GAEL,EAAIwC,IAAKA,GAAI,GACfH,GAAQvZ,KAAK0Z,SAMjBG,GAAO3C,GAAIA,GAAI,EAAIuC,GAAItB,GACvB2B,GAAWla,KAAK0Y,KAAKuB,MAEjBA,GAAO,KAIXF,KAAOzC,GAAI4C,KAAa,EAAI3B,IAExB,EAAIwB,IAAMA,GAAK,GACjBJ,GAAQvZ,KAAK2Z,IAGfC,KAAO1C,GAAI4C,KAAa,EAAI3B,IAExB,EAAIyB,IAAMA,GAAK,GACjBL,GAAQvZ,KAAK4Z,KAIjB,IACIK,GADAC,GAAIX,GAAQnb,OAEhB,MAAM+b,GAAOD,GAEb,KAAOA,MACLR,GAAIH,GAAQW,IACZD,GAAK,EAAIP,GACTF,GAAO,GAAGU,IAAKD,GAAKA,GAAKA,GAAKlB,EAAK,EAAIkB,GAAKA,GAAKP,GAAIT,GAAK,EAAIgB,GAAKP,GAAIA,GAAIP,GAAKO,GAAIA,GAAIA,GAAIL,GAC5FG,GAAO,GAAGU,IAAKD,GAAKA,GAAKA,GAAKjB,EAAK,EAAIiB,GAAKA,GAAKP,GAAIR,GAAK,EAAIe,GAAKP,GAAIA,GAAIN,GAAKM,GAAIA,GAAIA,GAAIJ,GAG9FE,UAAO,GAAGW,IAAQpB,EAClBS,GAAO,GAAGW,IAAQnB,EAClBQ,GAAO,GAAGW,GAAO,GAAKd,GACtBG,GAAO,GAAGW,GAAO,GAAKb,GACtBE,GAAO,GAAGpb,OAASob,GAAO,GAAGpb,OAAS+b,GAAO,EACtC,CAACva,KAAKC,OAAO2Z,GAAO,IAAK5Z,KAAKC,OAAO2Z,GAAO,IAAK5Z,KAAKqY,OAAOuB,GAAO,IAAK5Z,KAAKqY,OAAOuB,GAAO,MAKvG/d,EAAQM,KAAOA,GACf,MAAM8I,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,IAAO,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,MAgEjrB,YAA4BlD,IAC1B,OAAOyY,mBAAmBC,OAAO1Y,OAuD5B,CAACnG,GAAyB8e,EAA0B5e,KAI5CA,EAAoB,IAM5B,CAACF,GAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ8e,cAAW,EACnB,MAAMA,IAA8B,iBAAZC,SAAwBA,QAAU,IAAO,oBAAuBA,QAAQC,SAASC,IAAQF,QAAQC,SAASE,UAAYH,QAAQI,MAAyB,YAAjBJ,QAAQI,MACtKnf,EAAQ8e,SAAWA,GAIZ,CAAC/e,wBAAyBC,QAASC,kDAI1CC,OAAOC,eAAeH,QAAS,aAAe,CAC5CI,OAAO,IAETJ,QAAQof,MAAQpf,QAAQqf,WAAarf,QAAQsf,cAAgBtf,QAAQuf,UAAYvf,QAAQwf,aAAexf,QAAQyf,iBAAmBzf,QAAQ0f,uBAAyB1f,QAAQ2f,sBAAwB3f,QAAQ4f,aAAe5f,QAAQ6f,+BAAiC7f,QAAQ8f,qBAAuB9f,QAAQ+f,8BAA2B,EACtU/f,QAAQggB,YAAcA,YACtBhgB,QAAQigB,2BAA6BA,2BACrCjgB,QAAQkgB,aAAU,EAElB,IAAIC,MAAQlgB,oBAAoB,GAE5BmgB,eAAiBngB,oBAAoB,GAErCogB,aAAepgB,oBAAoB,GAEnCqgB,oBAAsBrgB,oBAAoB,GAE1CsgB,QAAUtgB,oBAAoB,IAE9BugB,gBAAkBvgB,oBAAoB,IAEtCwgB,SAAWxgB,oBAAoB,GAE/BygB,iBAAmBzgB,oBAAoB,IAEvC0gB,UAAY1gB,oBAAoB,IAEhC2gB,yBAA2B3gB,oBAAoB,IAE/C4gB,kBAAoB5gB,oBAAoB,IAExC6gB,UAAY7gB,oBAAoB,IAEpC,MAAM8gB,yBAA2B,MAC3BC,4BAA8B,IACpC,IAAIlB,qBAAuBM,eAAea,iBAC1CjhB,QAAQ8f,qBAAuBA,qBAC/B,IAAIC,yBAA2BK,eAAec,qBAC9ClhB,QAAQ+f,yBAA2BA,yBACnC,IAAIF,+BAAiCO,eAAee,2BAehDC,uBAZJ,GAFAphB,QAAQ6f,+BAAiCA,+BAErCY,SAAS3B,SAAU,CACrB,MACEuC,oBACAC,wBACAC,+BACEthB,oBAAoB,IAExBD,QAAQ8f,qBAAuBA,qBAAuBuB,EACtDrhB,QAAQ+f,yBAA2BA,yBAA2BuB,EAC9DthB,QAAQ6f,+BAAiCA,+BAAiC0B,EAK5E,oCAAoCC,GAClCJ,uBAAyBI,EAG3B,qBAAqBC,GACnB,MAAMC,EAAO,IAAIhC,uBACjB,IAAIiC,EAEJ,GAAmB,iBAARF,GAAoBA,aAAe3b,IAC5C6b,EAAS,CACPvc,IAAKqc,YAEG,EAAGtB,MAAM7Y,eAAema,GAClCE,EAAS,CACP3e,KAAMye,WAECA,aAAe9B,sBACxBgC,EAAS,CACPC,MAAOH,OAEJ,CACL,GAAmB,iBAARA,EACT,MAAM,IAAI3H,MAAM,+FAGlB,IAAK2H,EAAIrc,MAAQqc,EAAIze,OAASye,EAAIG,MAChC,MAAM,IAAI9H,MAAM,+DAGlB6H,EAASF,EAGX,MAAMI,EAAS3hB,OAAOyE,OAAO,MAC7B,IAAImd,EAAiB,KACjBC,EAAS,KAEb,UAAW9Z,KAAO0Z,EAAQ,CACxB,MAAMvhB,EAAQuhB,EAAO1Z,GAErB,OAAQA,OACD,MACH,UAAW+Z,OAAW,IACpB,IACEH,EAAO5Z,GAAO,IAAInC,IAAI1F,EAAO4hB,OAAOC,UAAUC,KAC9C,eACOjZ,IACN,EAAGkX,MAAMjX,MAAO,6BAA4BD,eAErB,iBAAV7I,GAAsBA,aAAiB0F,IAAK,CAC5D+b,EAAO5Z,GAAO7H,EAAMqG,WACpB,SAGF,MAAM,IAAIqT,MAAM,0FAEb,QACHgI,EAAiB1hB,EACjB,aAEG,SACH2hB,EAAS3hB,EACT,aAEG,OACH,GAAIqgB,SAAS3B,iBAAmBqD,OAAW,KAAe/hB,aAAiB+hB,OACzEN,EAAO5Z,GAAO,IAAIrF,WAAWxC,OACxB,IAAIA,aAAiBwC,WAC1B,MACK,GAAqB,iBAAVxC,EAChByhB,EAAO5Z,IAAQ,EAAGkY,MAAMjd,eAAe9C,WACb,iBAAVA,GAAgC,OAAVA,GAAmBgiB,MAAMhiB,EAAMuC,QACxCvC,MACnB,EAAG+f,MAAM7Y,eAAelH,GAGlC,MAAM,IAAI0Z,MAAM,+GAFhB+H,EAAO5Z,GAAO,IAAIrF,WAAWxC,QAF7ByhB,EAAO5Z,GAAO,IAAIrF,WAAWxC,GAO/B,SAGJyhB,EAAO5Z,GAAO7H,EAgEhB,GA7DAyhB,EAAOQ,kBAAoBR,EAAOQ,mBAAqBtC,yBACvD8B,EAAOS,wBAA0BT,EAAOS,yBAA2BzC,+BACnEgC,EAAOU,cAAuC,IAAxBV,EAAOW,aAC7BX,EAAOY,qBAAqD,IAA/BZ,EAAOY,oBACpCZ,EAAOa,QAA2B,IAAlBb,EAAOa,OACvBb,EAAOc,WAAiC,IAArBd,EAAOc,YAErBra,OAAOC,UAAUsZ,EAAOe,iBAAmBf,EAAOe,eAAiB,KACtEf,EAAOe,eAAiB7B,2BAGO,iBAAtBc,EAAOgB,aAA4B,EAAGzC,eAAe0C,cAAcjB,EAAOgB,eACnFhB,EAAOgB,WAAa,QAGjBva,OAAOC,UAAUsZ,EAAOkB,eAAiBlB,EAAOkB,cAAe,KAClElB,EAAOkB,cAAe,GAGM,iBAAnBlB,EAAOmB,UAChBnB,EAAOmB,QAAU,MAGuB,iBAA/BnB,EAAOoB,sBAChBpB,EAAOoB,oBAAsB,MAGM,kBAA1BpB,EAAOqB,iBAChBrB,EAAOqB,eAAiBrB,EAAOQ,oBAAsBjC,eAAec,sBAAwBW,EAAOS,0BAA4BlC,eAAee,4BAG1G,kBAA3BU,EAAO9G,kBAChB8G,EAAO9G,iBAAkB,GAGW,kBAA3B8G,EAAOsB,kBAChBtB,EAAOsB,gBAAkB1C,SAAS3B,UAGC,kBAA1B+C,EAAOuB,iBAChBvB,EAAOuB,gBAAkB3C,SAAS3B,WAAa+C,EAAOsB,kBAGpB,iBAAzBtB,EAAOwB,eAAuD,OAAzBxB,EAAOwB,iBACrDxB,EAAOwB,cAAgBC,WAAWC,UAGD,kBAAxB1B,EAAO2B,eAChB3B,EAAO2B,cAAe,GAGY,kBAAzB3B,EAAO4B,gBAChB5B,EAAO4B,eAAgB,GAGc,kBAA5B5B,EAAO6B,mBAChB7B,EAAO6B,kBAAmB,IAG3B,EAAGvD,MAAM/X,mBAAmByZ,EAAO5a,YAE/B8a,EAAQ,CACX,MAAM4B,EAAe,CACnB1c,UAAW4a,EAAO5a,UAClB2c,KAAMpD,gBAAgBqD,oBAAoBC,YAE5C/B,EAAS4B,EAAaC,KAAOrE,UAAUwE,SAASJ,GAAgB,IAAIpE,UAAUoE,GAC9EjC,EAAKsC,QAAUjC,EAGjB,MAAMkC,EAAQvC,EAAKuC,MACnBlC,SAAOjd,QAAQof,KAAK,WAClB,GAAIxC,EAAKyC,UACP,MAAM,IAAIrK,MAAM,mBAGlB,MAAMsK,EAAkBC,eAAetC,EAAQF,EAAQC,EAAgBmC,GAEjEK,EAAuB,IAAIvf,QAAQ,SAAUC,GACjD,IAAIuf,EAEAzC,EACFyC,EAAgB,IAAI1D,kBAAkB2D,uBAAuB,CAC3D7hB,OAAQkf,EAAOlf,OACf8hB,YAAa5C,EAAO4C,YACpBC,gBAAiB7C,EAAO6C,gBACxBC,2BAA4B9C,EAAO8C,2BACnCnB,aAAc3B,EAAO2B,aACrBC,cAAe5B,EAAO4B,eACrB3B,GACOD,EAAO7e,OACjBuhB,EAAgBnD,uBAAuB,CACrChc,IAAKyc,EAAOzc,IACZzC,OAAQkf,EAAOlf,OACfiiB,YAAa/C,EAAO+C,YACpBC,gBAAiBhD,EAAOgD,gBACxBjC,eAAgBf,EAAOe,eACvBY,aAAc3B,EAAO2B,aACrBC,cAAe5B,EAAO4B,iBAI1Bze,EAAQuf,KAEV,OAAOxf,QAAQ+f,IAAI,CAACV,EAAiBE,IAAuBJ,KAAK,UAAWa,EAAUR,IACpF,GAAI7C,EAAKyC,UACP,MAAM,IAAIrK,MAAM,mBAGlB,MAAMkL,EAAiB,IAAItE,iBAAiBuE,eAAehB,EAAOc,EAAUhD,EAAO6B,MAC7EsB,EAAY,IAAIC,gBAAgBH,EAAgBtD,EAAM6C,EAAe1C,GAC3EH,EAAK0D,WAAaF,EAClBF,EAAeK,KAAK,QAAS,UAE9BC,MAAM5D,EAAK6D,YAAYtgB,QACnByc,EAlQyD,kJAqQlE,UAA8BK,EAAQJ,EAAQ6D,EAAuBvB,GACnE,GAAIlC,EAAOoC,UACT,MAAM,IAAIrK,MAAM,wBAGd0L,IACF7D,EAAOhf,OAAS6iB,EAAsB7iB,OACtCgf,EAAO8C,YAAce,EAAsBf,YAC3C9C,EAAO+C,gBAAkBc,EAAsBd,gBAC/C/C,EAAOgD,2BAA6Ba,EAAsBb,4BAG5D,MAAMI,QAAiBhD,EAAOiD,eAAeS,gBAAgB,gBAAiB,CAC5ExB,QACAyB,WAAY,WACZ/D,OAAQ,CACN3e,KAAM2e,EAAO3e,KACboC,IAAKuc,EAAOvc,IACZugB,SAAUhE,EAAOgE,SACjBjC,iBAAkB/B,EAAO+B,iBACzBd,eAAgBjB,EAAOiB,eACvBjgB,OAAQgf,EAAOhf,QAEjBogB,aAAcpB,EAAOoB,aACrBI,gBAAiBxB,EAAOwB,gBACxBN,WAAYlB,EAAOkB,WACnBN,aAAcZ,EAAOY,aACrBxH,gBAAiB4G,EAAO5G,gBACxB0H,oBAAqBd,EAAOc,oBAC5BE,UAAWhB,EAAOgB,UAClBS,eAAgBzB,EAAOyB,eACvBJ,QAASrB,EAAOuB,eAAiBvB,EAAOqB,QAAU,KAClDC,oBAAqBtB,EAAOuB,eAAiBvB,EAAOsB,oBAAsB,OAG5E,GAAIlB,EAAOoC,UACT,MAAM,IAAIrK,MAAM,wBAGlB,OAAOiL,KA5SyD/gB,sBA+SlE,cAGEsW,cACED,KAAKkL,aAAe,EAAGpF,MAAM1b,2BAC7B4V,KAAK+K,WAAa,KAClB/K,KAAK2J,QAAU,KACf3J,KAAK4J,MAAS,IAA0B2B,GAAvBlG,EAAuBmG,IAAvBnG,IACjBrF,KAAK8J,WAAY,EACjB9J,KAAKyL,WAAa,KAClBzL,KAAK0L,WAAa,KAClB1L,KAAK2L,qBAAuB,KAG1BlhB,cACF,OAAOuV,KAAKkL,YAAYzgB,QAGpBmhB,UAAU,gDACdC,EAAK/B,WAAY,QACX+B,EAAKd,YAAYa,UACvBC,EAAKd,WAAa,KAEdc,EAAKlC,UACPkC,EAAKlC,QAAQiC,UAEbC,EAAKlC,QAAU,OARHmC,KAlBlB,6BACSN,kBADTnG,uBACSmG,GAAS,GA+BlB7lB,QAAQ0f,uBAAyBA,uBAEjC,4BACEpF,YAAY3X,EAAQ8hB,EAAaC,GAAkB,EAAOC,EAA6B,MACrFtK,KAAK1X,OAASA,EACd0X,KAAKoK,YAAcA,EACnBpK,KAAKqK,gBAAkBA,EACvBrK,KAAKsK,2BAA6BA,EAClCtK,KAAK+L,gBAAkB,GACvB/L,KAAKgM,mBAAqB,GAC1BhM,KAAKiM,0BAA4B,GACjCjM,KAAKkM,0BAA4B,GACjClM,KAAKmM,kBAAoB,EAAGrG,MAAM1b,2BAGpCgiB,iBAAiBC,GACfrM,KAAK+L,gBAAgB7hB,KAAKmiB,GAG5BC,oBAAoBD,GAClBrM,KAAKgM,mBAAmB9hB,KAAKmiB,GAG/BE,2BAA2BF,GACzBrM,KAAKiM,0BAA0B/hB,KAAKmiB,GAGtCG,2BAA2BH,GACzBrM,KAAKkM,0BAA0BhiB,KAAKmiB,GAGtCI,YAAYC,EAAO1iB,GACjB,UAAWqiB,KAAYrM,KAAK+L,gBAC1BM,EAASK,EAAO1iB,GAIpB2iB,eAAeC,EAAQC,GACrB7M,KAAKmM,iBAAiB1hB,QAAQof,KAAK,KACjC,UAAWwC,KAAYrM,KAAKgM,mBAC1BK,EAASO,EAAQC,KAKvBC,sBAAsB9iB,GACpBgW,KAAKmM,iBAAiB1hB,QAAQof,KAAK,KACjC,UAAWwC,KAAYrM,KAAKiM,0BAC1BI,EAASriB,KAKf+iB,wBACE/M,KAAKmM,iBAAiB1hB,QAAQof,KAAK,KACjC,UAAWwC,KAAYrM,KAAKkM,0BAC1BG,MAKNW,iBACEhN,KAAKmM,iBAAiBxhB,UAGxBsiB,iBAAiBP,EAAOQ,IACrB,EAAGpH,MAAM1c,aAAa,0DAGzB+jB,UAIFxnB,QAAQ2f,sBAAwBA,sBAEhC,uBACErF,YAAYmN,EAASvC,GAAW,IAWvBwC,EAXuBhL,OAC9BrC,KAAKsN,SAAWF,EAChBpN,KAAK+K,WAAaF,EAClBhlB,OAAOC,eAAeka,KAAM,cAAe,CACzCxV,MACE,OAAC,EAAGub,eAAewH,YAAY,uFACxBvN,KAAKwN,aAAa,MAI7B3nB,OAAOC,eAAeka,KAAM,WAAY,CACtCja,OAAKsnB,oBAAE,YACL,OAAC,EAAGtH,eAAewH,YAAY,wFACxBlL,EAAKoL,OAAS,CACnBC,YAAa,GACbC,UAAW,MAJV,8CAULC,wBACF,OAAO5N,KAAK+K,WAAW6C,kBAGrBC,eACF,OAAO7N,KAAKsN,SAASO,SAGnBL,mBACF,OAAOxN,KAAKsN,SAASE,aAGnBC,YACF,OAAOzN,KAAK+K,WAAW0C,MAGrBK,gBACF,QAAS9N,KAAK+K,WAAWgD,YAGvBC,iBACF,OAAOhO,KAAK+K,WAAWgD,YAGzBE,QAAQC,GACN,OAAOlO,KAAK+K,WAAWkD,QAAQC,GAGjCC,aAAaC,GACX,OAAOpO,KAAK+K,WAAWoD,aAAaC,GAGtCC,kBACE,OAAOrO,KAAK+K,WAAWsD,kBAGzBC,eAAeC,GACb,OAAOvO,KAAK+K,WAAWuD,eAAeC,GAGxCC,gBACE,OAAOxO,KAAK+K,WAAWyD,gBAGzBC,gBACE,OAAOzO,KAAK+K,WAAW0D,gBAGzBC,cACE,OAAO1O,KAAK+K,WAAW2D,cAGzBC,uBACE,OAAO3O,KAAK+K,WAAW4D,uBAGzBC,gBACE,OAAO5O,KAAK+K,WAAW6D,gBAGzBC,iBACE,OAAO7O,KAAK+K,WAAW8D,iBAGzBC,gBACE,OAAO9O,KAAK+K,WAAW+D,gBAGzBC,eACE,OAAO/O,KAAK+K,WAAWiE,kBAGzBC,aACE,OAAOjP,KAAK+K,WAAWkE,aAGzBC,2BACE,OAAOlP,KAAK+K,WAAWmE,2BAGzBC,iBACE,OAAOnP,KAAK+K,WAAWoE,iBAGzBC,cACE,OAAOpP,KAAK+K,WAAWqE,cAGzBC,cACE,OAAOrP,KAAK+K,WAAWsE,cAGzBC,UACE,OAAOtP,KAAK+K,WAAWuE,UAGzBC,kBACE,OAAOvP,KAAK+K,WAAWyE,uBAAuB/kB,QAGhDglB,QAAQC,GAAkB,GACxB,OAAO1P,KAAK+K,WAAW4E,aAAaD,GAAmB1P,KAAK8N,WAG9DlC,UACE,OAAO5L,KAAK4P,YAAYhE,UAGtBiE,oBACF,OAAO7P,KAAK+K,WAAW8E,cAGrBD,kBACF,OAAO5P,KAAK+K,WAAW6E,YAGzBE,eACE,OAAI9P,KAAK+K,WAAW6C,kBAAkBmC,MAAQ,IAC3C,EAAGhK,eAAewH,YAAY,kGAG1BvN,KAAK+K,WAAW+E,eAGzBE,kBACE,OAAOhQ,KAAK+K,WAAWiF,kBAGzBC,eACE,OAAOjQ,KAAK+K,WAAWkF,eAGzBC,yBACE,OAAOlQ,KAAK+K,WAAWmF,0BAK3BvqB,QAAQyf,iBAAmBA,iBAE3B,mBACEnF,YAAYkQ,EAAWC,EAAUvF,EAAW7B,EAAeX,GAAS,GAClErI,KAAKqQ,WAAaF,EAClBnQ,KAAKsQ,UAAYF,EACjBpQ,KAAKuQ,eAAiBvH,EACtBhJ,KAAK+K,WAAaF,EAClB7K,KAAKwQ,OAASnI,EAAS,IAAItC,eAAe0K,UAAc,KACxDzQ,KAAK0Q,QAAUrI,EACfrI,KAAK2Q,WAAa9F,EAAU8F,WAC5B3Q,KAAK4Q,KAAO,IAAIC,WAChB7Q,KAAK8Q,SAAW,IAAIC,IACpB/Q,KAAKgR,oBAAqB,EAC1BhR,KAAKiR,gBAAiB,EACtBjR,KAAKkR,cAAgB,IAAIC,IACzBnR,KAAKoR,oBAAsB,IAAID,IAC/BnR,KAAK8J,WAAY,EAGfoE,iBACF,OAAOlO,KAAKqQ,WAAa,EAGvBgB,aACF,OAAOrR,KAAKsQ,UAAUe,OAGpBjD,UACF,OAAOpO,KAAKsQ,UAAUlC,IAGpBkD,eACF,OAAOtR,KAAKsQ,UAAUgB,SAGpBC,WACF,OAAOvR,KAAKsQ,UAAUiB,KAGxBC,aACEC,QACAC,WAAW1R,KAAKqR,OAChBM,UAAU,EACVC,UAAU,EACVC,YAAW,GACT,IACF,OAAO,IAAI9L,eAAe+L,aAAa,CACrCC,QAAS/R,KAAKuR,KACdE,QACAC,WACAC,UACAC,UACAC,aAIJG,gBACEC,SAAS,WACP,IACF,MAAMC,EAAalS,KAAK+K,WAAWoH,mBAAmBF,GAEtD,IAAIxnB,EAAUuV,KAAKoR,oBAAoB5mB,IAAI0nB,EAAWE,UAEtD,OAAK3nB,IACHA,EAAUuV,KAAK+K,WAAWiH,eAAehS,KAAKqQ,WAAY6B,EAAWG,iBAErErS,KAAKoR,oBAAoBpoB,IAAIkpB,EAAWE,SAAU3nB,GAElDA,EAAUA,EAAQof,KAAKyI,IACrB,UAAWC,KAAcD,OACK/oB,IAAxBgpB,EAAWC,UACb3sB,OAAOC,eAAeysB,EAAY,QAAS,CACzC/nB,UACG,EAAGub,eAAewH,YAAY,kEACxBgF,EAAWC,SAAS3mB,YAMFtC,IAA3BgpB,EAAWE,aACb5sB,OAAOC,eAAeysB,EAAY,WAAY,CAC5C/nB,UACG,EAAGub,eAAewH,YAAY,wEACxBgF,EAAWE,YAAY5mB,OAOtC,OAAOymB,KAIJ7nB,EAGTskB,eACE,OAAO/O,KAAK0S,oBAAL1S,KAAK0S,kBAAsB1S,KAAK+K,WAAW4H,iBAAiB3S,KAAKqQ,aAGpEuC,SAAS,gDACb,OAAO/G,EAAKd,WAAWgD,aAAa8E,SAAShH,EAAKwE,aAAe,MADpDvE,GAIfgH,QACEC,gBACAC,WACAf,SAAS,UACTgB,iBAAiBnN,MAAMle,eAAeoI,OACtCiJ,YAAY,KACZia,aAAa,KACbC,gBAAgB,KAChBC,aAAa,KACbC,+BAA+B,KAC/BC,sBAAsB,KACtBC,aAAa,YAEgChqB,IAAzCiqB,UAAU,IAAIC,4BACZ1N,eAAewH,YAAY,kHAEa,IAAxCiG,UAAU,GAAGC,wBAAmCR,IAAmBnN,MAAMle,eAAeoI,SAC1FijB,EAAiBnN,MAAMle,eAAeqI,oBAIK1G,IAA3CiqB,UAAU,IAAIE,8BACZ3N,eAAewH,YAAY,oHAEe,IAA1CiG,UAAU,GAAGE,0BAAqCT,IAAmBnN,MAAMle,eAAeoI,SAC5FijB,EAAiBnN,MAAMle,eAAesI,iBAItC8P,KAAKwQ,QACPxQ,KAAKwQ,OAAOmD,KAAK,WAGnB,MAAMzB,EAAalS,KAAK+K,WAAWoH,mBAAmBF,EAAQgB,GAE9DjT,KAAKiR,gBAAiB,EAEjBoC,IACHA,EAA+BrT,KAAK+K,WAAWmE,4BAGjD,IAAI0E,EAAc5T,KAAKkR,cAAc1mB,IAAI0nB,EAAWE,UAE/CwB,IACHA,EAAc/tB,OAAOyE,OAAO,MAE5B0V,KAAKkR,cAAcloB,IAAIkpB,EAAWE,SAAUwB,IAG1CA,EAAYC,4BACdC,aAAaF,EAAYC,2BACzBD,EAAYC,0BAA4B,MAG1C,MAAME,EAAwBZ,GAAiB,IAAI1N,qBAAqB,CACtEuD,cAAehJ,KAAKuQ,iBAEhByD,KAAiB9B,EAAWG,gBAAkBvM,MAAMvf,oBAAoBmJ,OAEzEkkB,EAAYK,yBACfL,EAAYK,wBAA0B,EAAGnO,MAAM1b,2BAC/CwpB,EAAYM,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,GAGTrU,KAAKwQ,QACPxQ,KAAKwQ,OAAOmD,KAAK,gBAGnB3T,KAAKsU,kBAAkBpC,IAGzB,MAAMqC,EAAWC,IACfZ,EAAYa,YAAYC,OAAOC,IAE3B3U,KAAKgR,oBAAsBgD,KAC7BhU,KAAKiR,gBAAiB,GAGxBjR,KAAK4U,cAELC,GACEF,EAAmBtqB,WAAWO,OAAO4pB,GAErCxU,KAAK8U,mBAAmB,CACtBlB,cACA/oB,OAAQ2pB,aAAiB/U,MAAQ+U,EAAQ,IAAI/U,MAAM+U,MAGrDG,EAAmBtqB,WAAWM,UAG5BqV,KAAKwQ,SACPxQ,KAAKwQ,OAAOuE,QAAQ,aAEpB/U,KAAKwQ,OAAOuE,QAAQ,aAIlBJ,EAAqB,IAAIK,mBAAmB,CAChDC,SAAUV,EACV/M,OAAQ,CACNuL,gBACAC,WACA/Z,YACAia,aACAE,cAEFxC,KAAM5Q,KAAK4Q,KACXD,WAAY3Q,KAAK2Q,WACjB2C,sBACAY,aAAcN,EAAYM,aAC1B/D,UAAWnQ,KAAKqQ,WAChB8C,cAAeY,EACfmB,0BAA2BlB,EAC3B3L,OAAQrI,KAAK0Q,QACb6C,gBAEDK,EAAYa,cAAZb,EAAYa,YAAgB,IAAI1D,MAAOoE,IAAIR,GAC5C,MAAMS,EAAaT,EAAmBtN,KACtC3c,eAAQ+f,IAAI,CAACmJ,EAAYK,uBAAuBxpB,QAAS4oB,IAA+BxJ,KAAK,EAAEwL,EAAcC,OACvGtV,KAAKiR,eACPsD,KAIEvU,KAAKwQ,QACPxQ,KAAKwQ,OAAOmD,KAAK,aAGnBgB,EAAmBY,mBAAmB,CACpCF,eACAC,2BAEFX,EAAmBa,yBAClBvK,MAAMsJ,GACFa,EAGTK,iBACExD,SAAS,UACTgB,iBAAiBnN,MAAMle,eAAeoI,QACpC,IAQF,MAAMkiB,EAAalS,KAAK+K,WAAWoH,mBAAmBF,EAAQgB,GAAgB,GAE9E,IAQIyC,EARA9B,EAAc5T,KAAKkR,cAAc1mB,IAAI0nB,EAAWE,UAUpD,OARKwB,IACHA,EAAc/tB,OAAOyE,OAAO,MAE5B0V,KAAKkR,cAAcloB,IAAIkpB,EAAWE,SAAUwB,IAKzCA,EAAY+B,uBACfD,EAAa7vB,OAAOyE,OAAO,MAC3BorB,EAAWF,oBArBb,aACM5B,EAAYM,aAAaG,YAC3BT,EAAY+B,qBAAqBhrB,QAAQipB,EAAYM,cACrDN,EAAYa,YAAYC,OAAOgB,KAmBjC9B,EAAY+B,sBAAwB,EAAG7P,MAAM1b,4BAC5CwpB,EAAYa,cAAZb,EAAYa,YAAgB,IAAI1D,MAAOoE,IAAIO,GAC5C9B,EAAYM,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,GAGTrU,KAAKwQ,QACPxQ,KAAKwQ,OAAOmD,KAAK,gBAGnB3T,KAAKsU,kBAAkBpC,IAGlB0B,EAAY+B,qBAAqBlrB,QAG1CmrB,mBACEC,2BAA0B,EAC1BC,wBAAuB,GACrB,IAEF,OAAO9V,KAAK+K,WAAWJ,eAAeoL,eAAe,iBAAkB,CACrE5F,UAAWnQ,KAAKqQ,WAChB2F,kBAA8C,IAA5BH,EAClBC,sBAA+C,IAAzBA,GACrB,CACDG,cAAeC,IAEfnG,KAAKoG,GACIA,EAAYC,MAAM9tB,SAM/B+tB,eAAe7O,EAAS,IACtB,GAAIxH,KAAK+K,WAAWgD,YAClB,OAAO/N,KAAK4S,SAAS/I,KAAKyM,GACjB7P,UAAU8P,QAAQJ,YAAYG,IAIzC,MAAME,EAAiBxW,KAAK4V,kBAAkBpO,GAC9C,OAAO,IAAI9c,QAAQ,SAAUC,EAASC,GAiBpC,MAAM6rB,EAASD,EAAeE,YACxBP,EAAc,CAClBC,MAAO,GACPO,OAAQ9wB,OAAOyE,OAAO,QAnBxB,aACEmsB,EAAOG,OAAO/M,KAAK,UACjB9jB,QACA8wB,SAEIA,EACFlsB,EAAQwrB,IAIVtwB,OAAOixB,OAAOX,EAAYQ,OAAQ5wB,EAAM4wB,QACxCR,EAAYC,MAAMlsB,QAAQnE,EAAMqwB,OAChCW,MACCnsB,GAQLmsB,KAIJC,gBACE,OAAOhX,KAAKiX,qBAALjX,KAAKiX,mBAAuBjX,KAAK+K,WAAWiM,cAAchX,KAAKqQ,aAGxE6G,WACElX,KAAK8J,WAAY,EACjB,MAAMqN,EAAS,GAEf,UAAWvD,KAAe5T,KAAKkR,cAAckG,SAO3C,GANApX,KAAK8U,mBAAmB,CACtBlB,cACA/oB,OAAQ,IAAI4U,MAAM,uBAClB4X,OAAO,KAGLzD,EAAY+B,qBAIhB,UAAWhB,KAAsBf,EAAYa,YAC3C0C,EAAOjtB,KAAKyqB,EAAmB2C,WAC/B3C,EAAmB4C,SAIvBvX,KAAK4Q,KAAK4G,QAEV,UAAWC,KAAUzX,KAAK8Q,SACxB2G,EAAOC,QAGT,YAAK5G,SAAS0G,QAEdxX,KAAKoR,oBAAoBoG,QAEzBxX,KAAK0S,kBAAoB,KACzB1S,KAAKiX,mBAAqB,KAC1BjX,KAAKiR,gBAAiB,EACfvmB,QAAQ+f,IAAI0M,GAGrB1H,QAAQkI,GAAa,GACnB,YAAK1G,gBAAiB,EACfjR,KAAK4U,YAAY+C,GAG1B/C,YAAY+C,GAAa,GACvB,IAAK3X,KAAKiR,eACR,OAAO,EAGT,UACEwD,cACAP,kBACGlU,KAAKkR,cAAckG,SACtB,GAAI3C,EAAY1E,KAAO,IAAMmE,EAAaG,UACxC,OAAO,EAIXrU,KAAKkR,cAAcsG,QAEnBxX,KAAK4Q,KAAK4G,QAEVxX,KAAKoR,oBAAoBoG,QAEzBxX,KAAK0S,kBAAoB,KACzB1S,KAAKiX,mBAAqB,KAEtBU,GAAc3X,KAAKwQ,SACrBxQ,KAAKwQ,OAAS,IAAIzK,eAAe0K,WAGnC,UAAWgH,KAAUzX,KAAK8Q,SACxB2G,EAAOC,QAGT,YAAK5G,SAAS0G,QAEdxX,KAAKiR,gBAAiB,GACf,EAGT2G,iBAAiBvC,EAAcjD,GAC7B,MAAMwB,EAAc5T,KAAKkR,cAAc1mB,IAAI4nB,IAEtCwB,IAID5T,KAAKwQ,QACPxQ,KAAKwQ,OAAOuE,QAAQ,gBAGlBnB,EAAYK,wBACdL,EAAYK,uBAAuBtpB,QAAQ0qB,IAI/CwC,iBAAiBC,EAAmBlE,GAClC,QAASnrB,EAAI,EAAG6E,EAAKwqB,EAAkBxvB,OAAQG,EAAI6E,EAAI7E,IACrDmrB,EAAYM,aAAaC,QAAQjqB,KAAK4tB,EAAkB3D,QAAQ1rB,IAChEmrB,EAAYM,aAAaE,UAAUlqB,KAAK4tB,EAAkB1D,UAAU3rB,IAGtEmrB,EAAYM,aAAaG,UAAYyD,EAAkBzD,UAEvD,UAAWM,KAAsBf,EAAYa,YAC3CE,EAAmBa,sBAGjBsC,EAAkBzD,WACpBrU,KAAK4U,cAITN,mBACEjC,kBACAD,aASA,MAAMqE,EAASD,KAPazL,WAAWJ,eAAeoL,eAAe,kBAAmB,CACtF5F,UAAWnQ,KAAKqQ,WAChB4B,OAAQI,EACRD,WACAxE,kBAAmByE,EAAkBvM,MAAMvf,oBAAoBqJ,oBAAsBoQ,KAAK+K,WAAW6C,kBAAkBmK,aAAe,OAG1GrB,YAExB9C,EAAc5T,KAAKkR,cAAc1mB,IAAI4nB,GAE3CwB,EAAYoE,aAAevB,EAE3B,MAAMM,EAAO,KACXN,EAAOG,OAAO/M,KAAK,EACjB9jB,QACA8wB,WAEIA,EACFjD,EAAYoE,aAAe,KAIzBhY,KAAK+K,WAAWjB,YAIpB9J,KAAK6X,iBAAiB9xB,EAAO6tB,GAE7BmD,MACClsB,IAGD,GAFA+oB,EAAYoE,aAAe,MAEvBhY,KAAK+K,WAAWjB,UAIpB,IAAI8J,EAAYM,aAAc,CAC5BN,EAAYM,aAAaG,WAAY,EAErC,UAAWM,KAAsBf,EAAYa,YAC3CE,EAAmBa,sBAGrBxV,KAAK4U,cAGP,GAAIhB,EAAYK,uBACdL,EAAYK,uBAAuBrpB,OAAOC,YACjC+oB,EAAY+B,qBAGrB,MAAM9qB,EAFN+oB,EAAY+B,qBAAqB/qB,OAAOC,QAO9CksB,IAGFjC,oBACElB,cACA/oB,SACAwsB,SAAQ,IAER,GAAKzD,EAAYoE,aAIjB,KAAKX,EAAO,CACV,GAAIzD,EAAYa,YAAY1E,KAAO,EACjC,OAGF,GAAIllB,aAAkBkb,eAAekS,4BAUnC,YATArE,EAAYC,0BAA4BqE,WAAW,KACjDlY,KAAK8U,mBAAmB,CACtBlB,cACA/oB,SACAwsB,OAAO,IAGTzD,EAAYC,0BAA4B,MACvClN,8BAQP,GAHAiN,EAAYoE,aAAaT,OAAO,IAAIzR,MAAM5d,eAAe2C,EAAOiV,UAAUmL,MAAM,QAChF2I,EAAYoE,aAAe,MAEvBhY,KAAK+K,WAAWjB,UAIpB,WAAYqO,EAAaC,KAAmBpY,KAAKkR,cAC/C,GAAIkH,IAAmBxE,EAAa,CAClC5T,KAAKkR,cAAcwD,OAAOyD,GAE1B,MAIJnY,KAAKyP,YAGHhC,YACF,OAAOzN,KAAKwQ,QAKhB7qB,QAAQwf,aAAeA,aAEvB,mBACElF,cACED,KAAKqY,WAAa,GAClBrY,KAAKsY,UAAY5tB,QAAQC,UAG3B4tB,YAAY5qB,EAAK6qB,GACf,MAAMC,EAAQ,CACZ9vB,KAAM+vB,gBAAgB/qB,EAAK6qB,IAG7BxY,KAAKsY,UAAUzO,KAAK,KAClB,UAAWwC,KAAYrM,KAAKqY,WAC1BhM,EAASsM,KAAK3Y,KAAMyY,KAK1BG,iBAAiB7Y,EAAMsM,GACrBrM,KAAKqY,WAAWnuB,KAAKmiB,GAGvBwM,oBAAoB9Y,EAAMsM,GACxB,MAAM5jB,EAAIuX,KAAKqY,WAAWS,QAAQzM,GAElCrM,KAAKqY,WAAWU,OAAOtwB,EAAG,GAG5BuwB,YACEhZ,KAAKqY,WAAW/vB,OAAS,GAK7B3C,QAAQ4f,aAAeA,aACvB,MAAMN,cAAgB,CACpBgU,kBAAkB,EAClBC,kBAAmB,KACnBC,aAAc,GAId,GAFFxzB,QAAQsf,cAAgBA,cAElBmB,SAAS3B,SACXQ,cAAcgU,kBAAmB,EACjChU,cAAciU,kBAAoB,0BACL,iBAAbhQ,SAAuB,CACvC,MAAMkQ,EAAgBlQ,UAAUmQ,eAAejS,IAE3CgS,IACFnU,cAAciU,kBAAoBE,EAActtB,QAAQ,4BAA6B,gBAIzFmZ,cAAcqU,aAAe,SAAUtuB,EAASuuB,GAC9C,IAAIC,EAEJ,IAGE,GAFAA,EAAO,IAAI/tB,IAAIT,IAEVwuB,EAAKC,QAA0B,SAAhBD,EAAKC,OACvB,OAAO,QAGT,OAAO,EAGT,MAAMC,EAAQ,IAAIjuB,IAAI8tB,EAAUC,GAChC,OAAOA,EAAKC,SAAWC,EAAMD,QAG/BxU,cAAc0U,iBAAmB,SAAU5uB,GAEzC,OAAOU,IAAImuB,gBAAgB,IAAIC,KAAK,CADnB,kBAAiB9uB,WAKtC,uBAGEkV,aACEF,OAAO,KACPwJ,OAAO,KACP3c,aAAa,EAAGkZ,MAAMnZ,sBACpB,IACF,GAAI4c,GAAQrE,cAAUxP,GAAaokB,IAAIvQ,GACrC,MAAM,IAAI9J,MAAM,gDAWlB,GARAO,KAAKD,KAAOA,EACZC,KAAK8J,WAAY,EACjB9J,KAAKpT,UAAYA,EACjBoT,KAAKmM,kBAAoB,EAAGrG,MAAM1b,2BAClC4V,KAAK+Z,MAAQ,KACb/Z,KAAKga,WAAa,KAClBha,KAAKia,gBAAkB,KAEnB1Q,EAKF,OAJArE,cAAUxP,GAAa1M,IAAIugB,EAAMvJ,WAEjCA,KAAKka,oBAAoB3Q,GAK3BvJ,KAAKma,cAGH1vB,cACF,OAAOuV,KAAKmM,iBAAiB1hB,QAG3B8e,WACF,OAAOvJ,KAAK+Z,MAGVpP,qBACF,OAAO3K,KAAKia,gBAGdC,oBAAoB3Q,GAClBvJ,KAAK+Z,MAAQxQ,EACbvJ,KAAKia,gBAAkB,IAAI5T,iBAAiBuE,eAAe,OAAQ,SAAUrB,GAE7EvJ,KAAKia,gBAAgBG,GAAG,QAAS,cAEjCpa,KAAKmM,iBAAiBxhB,UAGxBwvB,cACE,UAAWE,OAAW,MAAgBpV,cAAcgU,mBAAqB/T,WAAUoV,gCAAiC,CAClH,IAAIC,EAAYrV,WAAUqV,UAE1B,IACOtV,cAAcqU,aAAa3R,OAAOC,SAASC,KAAM0S,KACpDA,EAAYtV,cAAc0U,iBAAiB,IAAIluB,IAAI8uB,EAAW5S,OAAOC,UAAUC,OAGjF,MAAMH,EAAS,IAAI2S,OAAOE,GACpB5P,EAAiB,IAAItE,iBAAiBuE,eAAe,OAAQ,SAAUlD,GAEvE8S,EAAiB,KACrB9S,EAAOmR,oBAAoB,QAAS4B,GACpC9P,EAAeiB,UACflE,EAAOsR,YAEPhZ,KAAS8J,UACP9J,KAAKmM,iBAAiBvhB,OAAO,IAAI6U,MAAM,yBAEvCO,KAAK0a,oBAIHD,EAAgB,KACfza,KAAKga,YACRQ,KAIJ9S,EAAOkR,iBAAiB,QAAS6B,GACjC9P,EAAeyP,GAAG,OAAQzxB,IACxB+e,EAAOmR,oBAAoB,QAAS4B,GAEhCza,KAAK8J,UACP0Q,IAIE7xB,GACFqX,KAAKia,gBAAkBtP,EACvB3K,KAAK+Z,MAAQrS,EACb1H,KAAKga,WAAatS,EAElB1H,KAAKmM,iBAAiBxhB,UAEtBggB,EAAeK,KAAK,YAAa,CAC/Bpe,UAAWoT,KAAKpT,cAGlBoT,KAAK0a,mBAEL/P,EAAeiB,UACflE,EAAOsR,eAGXrO,EAAeyP,GAAG,QAASzxB,IAGzB,GAFA+e,EAAOmR,oBAAoB,QAAS4B,GAEhCza,KAAK8J,UACP0Q,SAIF,IACEG,UAEA3a,KAAK0a,sBAIT,MAAMC,EAAW,KACf,MAAMC,EAAU,IAAIryB,WACpBoiB,EAAeK,KAAK,OAAQ4P,EAAS,CAACA,EAAQ1uB,UAIhD,YADAyuB,IACA,OAEC,EAAG7U,MAAMjZ,MAAM,kCAIpBmT,KAAK0a,mBAGPA,mBACOzV,cAAcgU,sBACbnT,MAAMjX,MAAM,2BAChBoW,cAAcgU,kBAAmB,GAGnC/T,WAAU2V,uBAAuBhR,KAAKiR,IACpC,GAAI9a,KAAK8J,UAGP,YAFA9J,KAAKmM,iBAAiBvhB,OAAO,IAAI6U,MAAM,yBAKzC,MAAM8J,EAAO,IAAIhE,aACjBvF,KAAK+Z,MAAQxQ,EACb,MAAMgF,EAAM,OAAMtJ,cAAckU,eAC1B4B,EAAgB,IAAI1U,iBAAiBuE,eAAe2D,EAAK,UAAWA,EAAIhF,GAC9EuR,EAAqBE,MAAMD,EAAexR,GAC1C,MAAMoB,EAAiB,IAAItE,iBAAiBuE,eAAe2D,EAAIA,EAAK,UAAWhF,GAC/EvJ,KAAKia,gBAAkBtP,EAEvB3K,KAAKmM,iBAAiBxhB,UAEtBggB,EAAeK,KAAK,YAAa,CAC/Bpe,UAAWoT,KAAKpT,cAEjBqe,MAAMpgB,IACPmV,KAAKmM,iBAAiBvhB,OAAO,IAAI6U,MAAO,mCAAkC5U,EAAOiV,gBAIrF8L,UACE5L,KAAK8J,WAAY,EAEb9J,KAAKga,aACPha,KAAKga,WAAWhB,YAEhBhZ,KAAKga,WAAa,MAGpB9U,cAAUxP,GAAagf,OAAO1U,KAAK+Z,OACnC/Z,KAAK+Z,MAAQ,KAET/Z,KAAKia,kBACPja,KAAKia,gBAAgBrO,UAErB5L,KAAKia,gBAAkB,sBAIXzS,GACd,IAAKA,GAAQ+B,KACX,MAAM,IAAI9J,MAAM,kDAGlB,OAAIwb,QAAKvlB,GAAaokB,IAAItS,EAAO+B,MACxB0R,QAAKvlB,GAAalL,IAAIgd,EAAO+B,MAG/B,IAAIrE,WAAUsC,GAGZ+S,uBACT,GAAIpU,gBAAgBqD,oBAAoB+Q,UACtC,OAAOpU,gBAAgBqD,oBAAoB+Q,UAG7C,GAAwC,OAApCtV,cAAciU,kBAChB,OAAK9S,SAAS3B,WACX,EAAGsB,eAAewH,YAAY,iDAG1BtI,cAAciU,kBAGvB,MAAM,IAAIzZ,MAAM,iDAGP6a,6CACT,IACE,OAAOrR,WAAWiS,aAAaJ,sBAAwB,WAEvD,OAAO,MAIAD,oCAAyB,gBAClC,MAAMM,OAAM,uCAAG,YACb,MAAMC,yBAA2BC,OAAKf,gCAEtC,GAAIc,yBACF,OAAOA,yBAGT,GAAIhV,SAAS3B,SAA2C,CACtD,MAAMiD,OAAS4T,KAAK,UAALA,CAAgBD,OAAKd,WACpC,OAAO7S,OAAOoT,qBAGhB,aAAO,EAAG/U,eAAewV,YAAYF,OAAKd,WACnC5S,OAAOuT,YAAYJ,uBAbhB,2DAgBZ,OAAQ,EAAGhV,MAAM3X,QAAQ6R,KAAM,yBAA0Bmb,YAjP7D,yBACSzlB,iBADTwP,UACSxP,EAAe,IAAI8lB,SAqP5B71B,QAAQuf,UAAYA,UAElBA,UAAUuW,aAAe,WACvB,OAAC,EAAG1V,eAAewH,YAAY,yEACxBvN,KAAKua,WAIhB,sBAMEta,YAAY0K,EAAgBiF,EAAa1F,EAAe1C,GALxDkU,UAAY,MACZA,UAAa,IAAIvK,KACjBuK,UAAgB,IAAIvK,KACpBuK,UAAmB,MAGjB1b,KAAK2K,eAAiBA,EACtB3K,KAAK4P,YAAcA,EACnB5P,KAAK2Q,WAAa,IAAIE,WACtB7Q,KAAK2b,WAAa,IAAI3V,aAAa4V,WAAW,CAC5ChS,MAAOgG,EAAYhG,MACnB+B,qBAAsB3L,KAAK6b,sBAAsBC,KAAK9b,MACtDgJ,cAAexB,EAAOwB,cACtB+S,aAAcvU,EAAOuU,eAEvB/b,KAAKgc,QAAUxU,EAEVA,EAAOqB,iBACV7I,KAAKgI,kBAAoB,IAAIR,EAAOQ,kBAAkB,CACpDhd,QAASwc,EAAOmB,QAChBsT,aAAczU,EAAO0U,aAEvBlc,KAAKiI,wBAA0B,IAAIT,EAAOS,wBAAwB,CAChEjd,QAASwc,EAAOoB,uBAIpB5I,KAAK8J,WAAY,EACjB9J,KAAKmc,kBAAoB,KACzBnc,KAAKoc,oBAAsB,KAC3Bpc,KAAKqc,eAAiBnS,EACtBlK,KAAKsc,YAAc,KACnBtc,KAAKuc,cAAgB,KACrBvc,KAAKwP,wBAA0B,EAAG1J,MAAM1b,2BACxC4V,KAAKwc,sBAGH5O,wBACF,OAAQ,EAAG9H,MAAM3X,QAAQ6R,KAAM,oBAAqB,IAAIiG,oBAAoBwW,mBAG1EhP,YACF,OAAOwN,QAAK7Z,GAGd+Q,mBAAmBF,EAAQgB,EAAiBnN,MAAMle,eAAeoI,OAAQ0sB,GAAW,GAClF,IAAIrK,EAAkBvM,MAAMvf,oBAAoBkJ,QAC5CktB,EAAiB,GAErB,OAAQ1K,OACD,MACHI,EAAkBvM,MAAMvf,oBAAoBiJ,IAC5C,UAEG,UACH,UAEG,QACH6iB,EAAkBvM,MAAMvf,oBAAoBmJ,MAC5C,eAGC,EAAGoW,MAAMjX,MAAO,wCAAuCojB,KAG5D,OAAQgB,QACDnN,MAAMle,eAAemI,QACxBsiB,GAAmBvM,MAAMvf,oBAAoBsJ,oBAC7C,WAEGiW,MAAMle,eAAeoI,OACxB,WAEG8V,MAAMle,eAAeqI,aACxBoiB,GAAmBvM,MAAMvf,oBAAoBoJ,kBAC7C,WAEGmW,MAAMle,eAAesI,eACxBmiB,GAAmBvM,MAAMvf,oBAAoBqJ,oBAC7C+sB,EAAiB3c,KAAK4N,kBAAkBgP,KACxC,eAGC,EAAG9W,MAAMjX,MAAO,gDAA+CokB,KAGpE,OAAIyJ,IACFrK,GAAmBvM,MAAMvf,oBAAoBuJ,QAGxC,CACLuiB,kBACAD,SAAW,GAAEC,KAAmBsK,KAIpC/Q,UACE,GAAI5L,KAAKmc,kBACP,OAAOnc,KAAKmc,kBAAkB1xB,QAGhCuV,KAAK8J,WAAY,EACjB9J,KAAKmc,mBAAqB,EAAGrW,MAAM1b,2BAE/B4V,KAAKoc,qBACPpc,KAAKoc,oBAAoBxxB,OAAO,IAAI6U,MAAM,oDAG5C,MAAM0X,EAAS,GAEf,UAAW0F,KAAQ5B,QAAK6B,GAAW1F,SACjCD,EAAOjtB,KAAK2yB,EAAK3F,YAGnB+D,QAAK6B,GAAWtF,QAChByD,QAAK8B,GAAcvF,QAEfxX,KAAKgd,eAAe,sBACtBhd,KAAK4N,kBAAkBqP,gBAGzB,MAAMC,EAAald,KAAK2K,eAAeS,gBAAgB,YAAa,MACpE+L,SAAOjtB,KAAKgzB,GACZxyB,QAAQ+f,IAAI0M,GAAQtN,KAAK,KACvB7J,KAAK2Q,WAAW6G,QAChBxX,KAAK2b,WAAWnE,QAChB2F,QAAKC,EAAmB,MACxBpd,KAAKqd,wBAA0B,KAC/Brd,KAAKsd,qBAAuB,KAExBtd,KAAKqc,gBACPrc,KAAKqc,eAAekB,kBAAkB,IAAIzX,MAAM5d,eAAe,2BAG7D8X,KAAK2K,iBACP3K,KAAK2K,eAAeiB,UACpB5L,KAAK2K,eAAiB,MAGxB3K,KAAKmc,kBAAkBxxB,WACtBqV,KAAKmc,kBAAkBvxB,QACnBoV,KAAKmc,kBAAkB1xB,QAGhC+xB,sBACE,MACE7R,iBACAiF,eACE5P,KACJ2K,EAAeyP,GAAG,YAAa,CAACzxB,EAAM60B,MACnC,EAAG1X,MAAM7c,QAAQ+W,KAAKqc,eAAgB,mDACvCrc,KAAKsc,YAActc,KAAKqc,eAAeoB,gBAEvCzd,KAAKsc,YAAY5Q,WAAagS,IAC5B1d,KAAKuc,cAAgB,CACnB3P,OAAQ8Q,EAAI9Q,OACZC,MAAO6Q,EAAI7Q,QAIf2Q,EAAKG,OAAS,KACZ3d,KAAKsc,YAAY1F,OAAO/M,KAAK,UAC3B9jB,QACA8wB,SAEIA,EACF2G,EAAK9F,UAIN,EAAG5R,MAAM7c,SAAS,EAAG6c,MAAM7Y,eAAelH,GAAQ,wCACnDy3B,EAAKI,QAAQ,IAAIr1B,WAAWxC,GAAQ,EAAG,CAACA,OACvCklB,MAAMpgB,IACP2yB,EAAKhJ,MAAM3pB,MAIf2yB,EAAKK,SAAWhzB,IACdmV,KAAKsc,YAAY/E,OAAO1sB,GAExB2yB,EAAKM,MAAM7S,MAAM8S,IACf,IAAI/d,KAAK8J,UAIT,MAAMiU,OAIZpT,EAAeyP,GAAG,qBAAsBzxB,IACtC,MAAMq1B,GAAqB,EAAGlY,MAAM1b,2BAC9B6zB,EAAaje,KAAKsc,YACxB2B,SAAWC,aAAarU,KAAK,OACtBoU,EAAWE,uBAAyBF,EAAWG,oBAC9Cpe,KAAKuc,eACP3M,EAAYlE,aAAa1L,KAAKuc,eAGhC0B,EAAWvS,WAAagS,IACtB9N,EAAYlE,aAAa,CACvBkB,OAAQ8Q,EAAI9Q,OACZC,MAAO6Q,EAAI7Q,UAKjBmR,EAAkBrzB,QAAQ,CACxBwzB,qBAAsBF,EAAWE,qBACjCC,iBAAkBH,EAAWG,iBAC7BC,cAAeJ,EAAWI,iBAE3BL,EAAkBpzB,QACdozB,EAAkBvzB,UAE3BkgB,EAAeyP,GAAG,iBAAkB,CAACzxB,EAAM60B,MACxC,EAAG1X,MAAM7c,QAAQ+W,KAAKqc,eAAgB,wDAEvC,MAAMiC,EAActe,KAAKqc,eAAekC,eAAe51B,EAAK+jB,MAAO/jB,EAAKukB,KAEnEoR,GAKLd,EAAKG,OAAS,KACZW,EAAY1H,OAAO/M,KAAK,UACtB9jB,QACA8wB,SAEIA,EACF2G,EAAK9F,UAIN,EAAG5R,MAAM7c,SAAS,EAAG6c,MAAM7Y,eAAelH,GAAQ,6CACnDy3B,EAAKI,QAAQ,IAAIr1B,WAAWxC,GAAQ,EAAG,CAACA,OACvCklB,MAAMpgB,IACP2yB,EAAKhJ,MAAM3pB,MAIf2yB,EAAKK,SAAWhzB,IACdyzB,EAAY/G,OAAO1sB,GACnB2yB,EAAKM,MAAM7S,MAAM8S,IACf,IAAI/d,KAAK8J,UAIT,MAAMiU,MA5BRP,EAAK9F,UAgCT/M,EAAeyP,GAAG,SAAU,EAC1BhN,cAEApN,KAAKwe,UAAYpR,EAAQS,SACzB7N,KAAK+N,YAAcX,EAAQqR,kBACpBrR,EAAQqR,WAEf7O,EAAY1E,YAAYvgB,QAAQ,IAAIya,iBAAiBgI,EAASpN,SAEhE2K,EAAeyP,GAAG,eAAgB,SAAUxrB,GAC1C,IAAI/D,EAEJ,OAAQ+D,EAAGmR,UACJ,oBACHlV,EAAS,IAAIib,MAAMpf,kBAAkBkI,EAAGkR,QAASlR,EAAGE,MACpD,UAEG,sBACHjE,EAAS,IAAIib,MAAMhf,oBAAoB8H,EAAGkR,SAC1C,UAEG,sBACHjV,EAAS,IAAIib,MAAMjf,oBAAoB+H,EAAGkR,SAC1C,UAEG,8BACHjV,EAAS,IAAIib,MAAM3f,4BAA4ByI,EAAGkR,QAASlR,EAAGyR,QAC9D,UAEG,wBACHxV,EAAS,IAAIib,MAAM5f,sBAAsB0I,EAAGkR,QAASlR,EAAGwR,SACxD,eAGC,EAAG0F,MAAM1c,aAAa,0CAG3BwmB,EAAY1E,YAAYtgB,OAAOC,KAEjC8f,EAAeyP,GAAG,kBAAmBsE,IAGnC,GAFA1e,KAAKoc,qBAAuB,EAAGtW,MAAM1b,2BAEjCwlB,EAAYnE,WAAY,CAC1B,MAAMkT,EAAiBrT,IACjBA,aAAoB7L,MACtBO,KAAKoc,oBAAoBxxB,OAAO0gB,GAEhCtL,KAAKoc,oBAAoBzxB,QAAQ,CAC/B2gB,cAKN,IACEsE,EAAYnE,WAAWkT,EAAgBD,EAAU5vB,YAC1CF,GACPoR,KAAKoc,oBAAoBxxB,OAAOgE,SAGlCoR,KAAKoc,oBAAoBxxB,OAAO,IAAIkb,MAAMpf,kBAAkBg4B,EAAU5e,QAAS4e,EAAU5vB,OAG3F,OAAOkR,KAAKoc,oBAAoB3xB,UAElCkgB,EAAeyP,GAAG,aAAczxB,IAC9BinB,EAAYlE,aAAa,CACvBkB,OAAQjkB,EAAKL,OACbukB,MAAOlkB,EAAKL,SAEd0X,KAAKwP,uBAAuB7kB,QAAQhC,KAEtCgiB,EAAeyP,GAAG,kBAAmBzxB,IAC/BqX,KAAK8J,WAIImR,QAAK6B,GAAWtyB,IAAI7B,EAAKwnB,WAEjCyH,iBAAiBjvB,EAAK0sB,aAAc1sB,EAAKypB,YAEhDzH,EAAeyP,GAAG,YAAa,EAAE7L,EAAIzJ,EAAM8Z,MACzC,IAAI5e,KAAK8J,YAIL9J,KAAK2Q,WAAWmJ,IAAIvL,GAIxB,OAAQzJ,OACD,OACH,MAAM0C,EAASxH,KAAKgc,QAEpB,GAAI,UAAW4C,EAAc,CAC3B,MAAMC,EAAgBD,EAAapK,OAClC,EAAG1O,MAAMjX,MAAO,8BAA6BgwB,KAC9C7e,KAAK2Q,WAAWhmB,QAAQ4jB,EAAIsQ,GAC5B,MAGF,IAAIC,EAAe,KAEftX,EAAOa,QAAUY,WAAW8V,eAAeC,UAC7CF,EAAe,CACbG,aAAa1gB,EAAMxT,GACjBke,WAAW8V,cAAcG,UAAU3gB,EAAMxT,MAM/C,MAAMwT,EAAO,IAAIyH,aAAamZ,eAAeP,EAAc,CACzDle,gBAAiB8G,EAAO9G,gBACxBoI,gBAAiBtB,EAAOsB,gBACxBZ,aAAcV,EAAOU,aACrByD,qBAAsB3L,KAAK6b,sBAAsBC,KAAK9b,MACtD8e,iBAEF9e,KAAK2b,WAAWG,KAAKvd,GAAM0M,MAAMpgB,GACxB8f,EAAeS,gBAAgB,eAAgB,CACpDmD,QAED6Q,QAAQ,MACJ5X,EAAOY,qBAAuB7J,EAAK5V,OACtC4V,EAAK5V,KAAO,MAGdqX,KAAK2Q,WAAWhmB,QAAQ4jB,EAAIhQ,KAE9B,UAEG,eACA,QACHyB,KAAK2Q,WAAWhmB,QAAQ4jB,EAAIqQ,GAC5B,cAGA,MAAM,IAAInf,MAAO,kCAAiCqF,QAGxD6F,EAAeyP,GAAG,MAAO,EAAE7L,EAAI4B,EAAWrL,EAAMua,MAC9C,GAAIrf,KAAK8J,UACP,OAGF,MAAMwV,EAAYrE,QAAK6B,GAAWtyB,IAAI2lB,GAEtC,IAAImP,EAAU1O,KAAKkJ,IAAIvL,GAIvB,OAAQzJ,OACD,QACHwa,EAAU1O,KAAKjmB,QAAQ4jB,EAAI8Q,GAC3B,MAAME,EAA0B,IAEhC,GAAIF,EAAW,CACb,IAAI/2B,EAEJ,GAAI+2B,EAAU5H,OAAQ,CACpB,MACEA,SACA+H,QACAC,UACEJ,EACJ/2B,EAASk3B,EAAQC,EAAS,EAE1BH,EAAUxO,SAASqE,IAAIsC,QAEvBnvB,EAAS+2B,EAAU12B,MAAML,QAAU,EAGjCA,EAASi3B,IACXD,EAAUtO,oBAAqB,GAInC,UAEG,UACHsO,EAAU1O,KAAKjmB,QAAQ4jB,EAAI8Q,GAC3B,cAGA,MAAM,IAAI5f,MAAO,2BAA0BqF,QAGjD6F,EAAeyP,GAAG,cAAezxB,IAC3BqX,KAAK8J,WAIT8F,EAAYlE,aAAa,CACvBkB,OAAQjkB,EAAKikB,OACbC,MAAOlkB,EAAKkkB,UAGhBlC,EAAeyP,GAAG,WAAYzxB,IACxBqX,KAAK8J,WAITqT,QAAK/b,EAAYvb,OAAO65B,OAAO,CAC7BhS,YAAa7nB,OAAO65B,OAAO/2B,EAAK+kB,aAChCC,UAAW9nB,OAAO65B,OAAO/2B,EAAKglB,gBAGlChD,EAAeyP,GAAG,qBAAsBpa,KAAK6b,sBAAsBC,KAAK9b,OACxE2K,EAAeyP,GAAG,mBAAoBzxB,GAChCqX,KAAK8J,UACApf,QAAQE,OAAO,IAAI6U,MAAM,0BAG7BO,KAAKgI,kBAIHhI,KAAKgI,kBAAkB2X,MAAMh3B,GAH3B+B,QAAQE,OAAO,IAAI6U,MAAM,4EAKpCkL,EAAeyP,GAAG,wBAAyBzxB,GACrCqX,KAAK8J,UACApf,QAAQE,OAAO,IAAI6U,MAAM,0BAG7BO,KAAKiI,wBAIHjI,KAAKiI,wBAAwB0X,MAAMh3B,GAHjC+B,QAAQE,OAAO,IAAI6U,MAAM,kFAOtCoc,uBACE+D,cAEI5f,KAAK8J,WAIT9J,KAAK4P,YAAYjE,uBAAuBiU,GAG1CtQ,UACE,OAAOtP,KAAK2K,eAAeS,gBAAgB,UAAW,MAGxD6C,QAAQC,GACN,IAAKjgB,OAAOC,UAAUggB,IAAeA,GAAc,GAAKA,EAAalO,KAAKwe,UACxE,OAAO9zB,QAAQE,OAAO,IAAI6U,MAAM,0BAGlC,MAAM0Q,EAAYjC,EAAa,EACzB2R,EAAgB5E,QAAK8B,GAAcvyB,IAAI2lB,GAE7C,GAAI0P,EACF,OAAOA,EAGT,MAAMp1B,EAAUuV,KAAK2K,eAAeS,gBAAgB,UAAW,CAC7D+E,cACCtG,KAAKuG,IACN,GAAIpQ,KAAK8J,UACP,MAAM,IAAIrK,MAAM,uBAGlB,MAAMod,EAAO,IAAI1X,aAAagL,EAAWC,EAAUpQ,KAAMA,KAAKgc,QAAQhT,cAAehJ,KAAKgc,QAAQ3T,QAClG,eAAKyU,GAAW9zB,IAAImnB,EAAW0M,GACxBA,IAET,eAAKE,GAAc/zB,IAAImnB,EAAW1lB,GAC3BA,EAGT0jB,aAAaC,GACX,MAAmB,iBAARA,GAA4B,OAARA,IAAiBngB,OAAOC,UAAUkgB,EAAI0R,MAAQ1R,EAAI0R,IAAM,IAAM7xB,OAAOC,UAAUkgB,EAAI2R,MAAQ3R,EAAI2R,IAAM,EAC3Hr1B,QAAQE,OAAO,IAAI6U,MAAM,+BAG3BO,KAAK2K,eAAeS,gBAAgB,eAAgB,CACzD0U,IAAK1R,EAAI0R,IACTC,IAAK3R,EAAI2R,MAIb/N,eAAe7B,EAAW8B,GACxB,OAAOjS,KAAK2K,eAAeS,gBAAgB,iBAAkB,CAC3D+E,YACA8B,WAIJnC,eACE,OAAO9P,KAAK2K,eAAeS,gBAAgB,eAAgB,CACzD0C,YAAa9N,KAAK+N,YAClBF,SAAU7N,KAAKwe,UACf5Q,kBAAmB5N,KAAK4N,kBAAkBmK,aAC1CiI,SAAUhgB,KAAKsc,aAAa0D,UAAY,OACvCZ,QAAQ,KACTpf,KAAK4N,kBAAkBqP,kBAI3BjN,kBACE,OAAOhQ,KAAKqd,0BAALrd,KAAKqd,wBAA4Brd,KAAK2K,eAAeS,gBAAgB,kBAAmB,OAGjG6E,eACE,OAAOjQ,KAAKsd,uBAALtd,KAAKsd,qBAAyBtd,KAAK2K,eAAeS,gBAAgB,eAAgB,OAG3F8E,yBACE,OAAOlQ,KAAK2K,eAAeS,gBAAgB,yBAA0B,MAGvEiD,kBACE,OAAOrO,KAAK2K,eAAeS,gBAAgB,kBAAmB,MAGhEkD,eAAeC,GACb,MAAkB,iBAAPA,EACF7jB,QAAQE,OAAO,IAAI6U,MAAM,iCAG3BO,KAAK2K,eAAeS,gBAAgB,iBAAkB,CAC3DmD,OAIJC,gBACE,OAAOxO,KAAK2K,eAAeS,gBAAgB,gBAAiB,MAG9DqD,gBACE,OAAOzO,KAAK2K,eAAeS,gBAAgB,gBAAiB,MAG9DsD,cACE,OAAO1O,KAAK2K,eAAeS,gBAAgB,cAAe,MAG5DuD,uBACE,OAAO3O,KAAK2K,eAAeS,gBAAgB,uBAAwB,MAGrEwD,gBACE,OAAO5O,KAAK2K,eAAeS,gBAAgB,gBAAiB,MAG9DyD,iBACE,OAAO7O,KAAK2K,eAAeS,gBAAgB,iBAAkB,MAG/D0D,gBACE,OAAO9O,KAAK2K,eAAeS,gBAAgB,gBAAiB,MAG9D4D,kBACE,OAAOhP,KAAK2K,eAAeS,gBAAgB,kBAAmB,MAGhEuH,iBAAiBxC,GACf,OAAOnQ,KAAK2K,eAAeS,gBAAgB,mBAAoB,CAC7D+E,cAIJ6G,cAAc7G,GACZ,OAAOnQ,KAAK2K,eAAeS,gBAAgB,gBAAiB,CAC1D+E,cAIJlB,aACE,OAAOjP,KAAK2K,eAAeS,gBAAgB,aAAc,MAG3D8D,2BACE,OAAOlP,KAAK2K,eAAeS,gBAAgB,2BAA4B,MAAMvB,KAAKoW,GACzE,IAAI1Z,yBAAyB2Z,sBAAsBD,IAI9D9Q,iBACE,OAAOnP,KAAK2K,eAAeS,gBAAgB,iBAAkB,MAG/DgE,cACE,OAAO6L,QAAKmC,IAALD,QAAKC,EAAqBpd,KAAK2K,eAAeS,gBAAgB,cAAe,MAAMvB,KAAKoW,IACtF,CACLpzB,KAAMozB,EAAQ,GACdE,SAAUF,EAAQ,GAAK,IAAI3Z,UAAU8Z,SAASH,EAAQ,IAAM,KAC5D3V,2BAA4BtK,KAAKsc,aAAa0D,UAAY,KAC1D3B,cAAere,KAAKsc,aAAa+B,eAAiB,SAKxDhP,cACE,OAAOrP,KAAK2K,eAAeS,gBAAgB,cAAe,MAGtDuE,aAAaD,GAAkB,GAAO,gDAG1C,SAFM2Q,EAAK1V,eAAeS,gBAAgB,UAAW,OAEjDiV,EAAKvW,UAIT,WAAW+S,KAAQ5B,KAAK6B,GAAW1F,SAGjC,IAF0ByF,EAAKpN,UAG7B,MAAM,IAAIhQ,MAAO,sBAAqBod,EAAK3O,sCAI/CmS,EAAK1P,WAAW6G,QAEX9H,GACH2Q,EAAK1E,WAAWnE,QAGlB2F,KAAKC,EAAmB,MACxBiD,EAAKhD,wBAA0B,KAC/BgD,EAAK/C,qBAAuB,OAvBcxR,GA0BxC+D,oBACF,MAAMrI,EAASxH,KAAKgc,QACpB,OAAQ,EAAGlW,MAAM3X,QAAQ6R,KAAM,gBAAiB,CAC9CqJ,iBAAkB7B,EAAO6B,iBACzBf,UAAWd,EAAOc,aA3qBtBlH,cACA0b,cACAC,cACAK,cA8qBF,+BAGE1B,WAFAA,WAAQ71B,OAAOyE,OAAO,OAetBE,IAAI81B,EAAOrL,EAAW,MACpB,GAAIA,EAAU,CACZ,MAAMtnB,EAAM4yB,QAAKC,MAAL7H,UAAgB2H,GAC5B3yB,SAAItD,WAAWI,QAAQof,KAAK,IAAMoL,EAAStnB,EAAIhF,OACxC,KAGT,MAAMgF,EAAMstB,QAAKwF,IAAMH,GAEvB,IAAK3yB,GAAKtD,WAAWq2B,QACnB,MAAM,IAAIjhB,MAAO,6CAA4C6gB,MAG/D,OAAO3yB,EAAIhF,KAGbmxB,IAAIwG,GAEF,OAAO3yB,GADKqS,KAAKygB,IAAMH,IACXj2B,WAAWq2B,UAAW,EAGpC/1B,QAAQ21B,EAAO33B,EAAO,MACpB,MAAMgF,EAAM4yB,QAAKC,MAAL7H,UAAgB2H,GAC5B3yB,EAAIhF,KAAOA,EACXgF,EAAItD,WAAWM,UAGjB6sB,QACE2F,QAAKsD,GAAQ56B,OAAOyE,OAAO,QA3C7Bm2B,eAEAD,iBAAU,SAACF,GAGT,OAFYrF,QAAKwF,IAAMH,KAMhBrF,QAAKwF,IAAMH,GAAS,CACzBj2B,YAAa,EAAGyb,MAAM1b,2BACtBzB,KAAM,QAqCZ,iBACEsX,YAAY0U,GACV3U,KAAK2gB,oBAAsBhM,EAC3B3U,KAAK4gB,WAAa,KAGhBn2B,cACF,OAAOuV,KAAK2gB,oBAAoBt2B,WAAWI,QAG7C8sB,SACEvX,KAAK2gB,oBAAoBpJ,UAK7B5xB,QAAQqf,WAAaA,WAErB,cAGE/E,aACEgV,WACAzN,SACAoJ,OACAD,aACA2C,sBACAY,eACA/D,YACAgD,gBACA+B,4BAA2B,EAC3B7M,UAAS,EACTkL,aAAa,OAEbvT,KAAKiV,SAAWA,EAChBjV,KAAKwH,OAASA,EACdxH,KAAK4Q,KAAOA,EACZ5Q,KAAK2Q,WAAaA,EAClB3Q,KAAKsT,oBAAsBA,EAC3BtT,KAAK6gB,gBAAkB,KACvB7gB,KAAKkU,aAAeA,EACpBlU,KAAKqQ,WAAaF,EAClBnQ,KAAKmT,cAAgBA,EACrBnT,KAAK0Q,QAAUrI,EACfrI,KAAKuT,WAAaA,EAClBvT,KAAK8gB,SAAU,EACf9gB,KAAK+gB,sBAAwB,KAC7B/gB,KAAKghB,eAAgB,EACrBhhB,KAAKihB,2BAAyD,IAA7B/L,UAA4CvN,OAAW,IACxF3H,KAAKkhB,WAAY,EACjBlhB,KAAK3V,YAAc,EAAGyb,MAAM1b,2BAC5B4V,KAAKqH,KAAO,IAAIrC,WAAWhF,MAC3BA,KAAKmhB,aAAenhB,KAAKuX,OAAOuE,KAAK9b,MACrCA,KAAKohB,eAAiBphB,KAAKqhB,UAAUvF,KAAK9b,MAC1CA,KAAKshB,mBAAqBthB,KAAKuhB,cAAczF,KAAK9b,MAClDA,KAAKwhB,WAAaxhB,KAAKyhB,MAAM3F,KAAK9b,MAClCA,KAAKkG,QAAUsB,EAAOuL,cAAc2O,OAGlCpK,gBACF,OAAOtX,KAAK3V,WAAWI,QAAQwgB,MAAM,cAGvCsK,oBACEF,gBAAe,EACfC,0BAEA,GAAItV,KAAKkhB,UACP,OAGF,GAAIlhB,KAAKkG,QAAS,CAChB,GAAI8O,KAAmBvf,GAAaqkB,IAAI9Z,KAAKkG,SAC3C,MAAM,IAAIzG,MAAM,mJAGlBuV,KAAmBvf,GAAa0f,IAAInV,KAAKkG,SAGvClG,KAAK0Q,SAAWzH,WAAW0Y,gBAAgB3C,UAC7Chf,KAAK4hB,QAAU3Y,WAAW0Y,eAAer3B,OAAO0V,KAAKqQ,YACrDrQ,KAAK4hB,QAAQC,KAAK7hB,KAAKkU,cACvBlU,KAAK4hB,QAAQE,eAAiB9hB,KAAK4hB,QAAQG,qBAG7C,MACEhP,gBACAC,WACA/Z,YACAia,aACAE,cACEpT,KAAKwH,OACTxH,KAAKgiB,IAAM,IAAI9b,QAAQ+b,eAAelP,EAAe/S,KAAK2Q,WAAY3Q,KAAK4Q,KAAM5Q,KAAKmT,cAAeD,EAAYoC,EAAuBtV,KAAKsT,oBAAqBtT,KAAKuT,YACvKvT,KAAKgiB,IAAIE,aAAa,CACpBjpB,YACA+Z,WACAqC,eACAjC,eAEFpT,KAAK6gB,gBAAkB,EACvB7gB,KAAKghB,eAAgB,EAEjBhhB,KAAK+gB,uBACP/gB,KAAK+gB,wBAITxJ,OAAO/C,EAAQ,MACbxU,KAAK8gB,SAAU,EACf9gB,KAAKkhB,WAAY,EAEblhB,KAAKgiB,KACPhiB,KAAKgiB,IAAIG,aAGPniB,KAAKkG,SACP8O,KAAmBvf,GAAaif,OAAO1U,KAAKkG,SAG9ClG,KAAKiV,SAAST,GAAS,IAAIzO,eAAekS,4BAA6B,6BAA4BjY,KAAKqQ,WAAa,IAAK,WAG5HmF,sBACOxV,KAAKghB,eAQNhhB,KAAK4hB,SACP5hB,KAAK4hB,QAAQQ,mBAAmBpiB,KAAKkU,eAGnClU,KAAK8gB,SAIT9gB,KAAKqhB,aAfErhB,KAAK+gB,wBACR/gB,KAAK+gB,sBAAwB/gB,KAAKohB,gBAiBxCC,YACErhB,KAAK8gB,SAAU,GAEX9gB,KAAKkhB,YAILlhB,KAAKqH,KAAKuZ,WACZ5gB,KAAKqH,KAAKuZ,WAAW5gB,KAAKshB,oBAE1BthB,KAAKuhB,iBAITA,gBACMvhB,KAAKihB,0BACPtZ,OAAO0a,sBAAsB,KAC3BriB,KAAKwhB,aAAavW,MAAMjL,KAAKmhB,gBAG/Bz2B,QAAQC,UAAUkf,KAAK7J,KAAKwhB,YAAYvW,MAAMjL,KAAKmhB,cAIjDM,QAAQ,gDACR5V,EAAKqV,YAITrV,EAAKgV,gBAAkBhV,EAAKmW,IAAIM,oBAAoBzW,EAAKqI,aAAcrI,EAAKgV,gBAAiBhV,EAAKuV,eAAgBvV,EAAK+V,SAEnH/V,EAAKgV,kBAAoBhV,EAAKqI,aAAaE,UAAU9rB,SACvDujB,EAAKiV,SAAU,EAEXjV,EAAKqI,aAAaG,YACpBxI,EAAKmW,IAAIG,aAELtW,EAAK3F,SACP8O,KAAmBvf,GAAaif,OAAO7I,EAAK3F,SAG9C2F,EAAKoJ,eAjBGnJ,KApJhB,yBACSrW,iBADTuf,mBACSvf,EAAe,IAAI8sB,SA2K5B,MAAM1c,QAAU,WAChBlgB,QAAQkgB,QAAUA,QAClB,MAAMd,MAAQ,YACdpf,QAAQof,MAAQA,OAIT,CAACrf,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ8qB,UAAY9qB,EAAQsyB,4BAA8BtyB,EAAQ68B,cAAgB78B,EAAQmsB,aAAensB,EAAQ88B,cAAgB98B,EAAQmhB,2BAA6BnhB,EAAQ+8B,cAAgB/8B,EAAQihB,iBAAmBjhB,EAAQkhB,0BAAuB,EACxPlhB,EAAQ4nB,WA8XR,WAAoBnN,GAClBrT,QAAQC,IAAI,yBAA2BoT,IA9XzCza,EAAQg9B,mBAuQR,WAA4B53B,GAC1B,MAAM63B,EAAS73B,EAAI+tB,QAAQ,KACrB+J,EAAQ93B,EAAI+tB,QAAQ,KACpB5L,EAAMpjB,KAAKC,IAAI64B,EAAS,EAAIA,EAAS73B,EAAIzC,OAAQu6B,EAAQ,EAAIA,EAAQ93B,EAAIzC,QAC/E,OAAOyC,EAAI+3B,UAAU/3B,EAAIg4B,YAAY,IAAK7V,GAAO,EAAGA,IA1QtDvnB,EAAQq9B,sBA6QR,WAA+Bj4B,EAAKk4B,EAAkB,gBACpD,GAAmB,iBAARl4B,EACT,OAAOk4B,EAGT,GAAIxa,EAAa1d,GACf,OAAC,EAAG+a,EAAMjX,MAAM,sEACTo0B,EAGT,MACMC,EAAa,gCACbC,EAFQ,sDAESC,KAAKr4B,GAC5B,IAAIs4B,GAAoBH,EAAWE,KAAKD,EAAS,KAAOD,EAAWE,KAAKD,EAAS,KAAOD,EAAWE,KAAKD,EAAS,IAEjH,GAAIE,KACFA,GAAoBA,GAAkB,GAElCA,GAAkBC,SAAS,MAC7B,IACED,GAAoBH,EAAWE,KAAK9e,mBAAmB+e,KAAoB,UAKjF,OAAOA,IAAqBJ,GArS9Bt9B,EAAQ49B,mBAibR,WAA4BC,GAC1B/R,QAAQ,EACRC,WAAW,IAEX,MACE8N,QACAC,UACE+D,EAAQC,WAAWC,MACjB3R,GAAU,CAAC,EAAG,EAAG4R,SAASnE,GAAQmE,SAASlE,IACjD,OAAO,IAAI3N,EAAa,CACtBC,WACAN,QACAC,cA5bJ/rB,EAAQ8iB,aAAeA,EACvB9iB,EAAQi+B,UA+PR,WAAmB5D,GACjB,MAA2B,iBAAbA,GAAyB,UAAUxyB,KAAKwyB,IA/PxDr6B,EAAQk+B,gBAAkBA,EAC1Bl+B,EAAQ41B,WAkWR,WAAoBnU,EAAK0c,GAAsB,GAC7C,OAAO,IAAIp5B,QAAQ,CAACC,EAASC,KAC3B,MAAMm5B,EAAS7a,SAAS8a,cAAc,UACtCD,EAAO3c,IAAMA,EAEb2c,EAAOE,OAAS,SAAUvG,IACpBoG,GACFC,EAAOG,SAGTv5B,EAAQ+yB,KAGVqG,EAAOI,QAAU,WACfv5B,EAAO,IAAI6U,MAAO,0BAAyBskB,EAAO3c,UAGnD8B,SAASkb,MAAQlb,SAASmb,iBAAiBC,YAAYP,MAjX5D,IAAIQ,EAAgB3+B,EAAoB,GAEpCkgB,EAAQlgB,EAAoB,GAEhC,MAEA4+B,cAmXIC,EAnXJrH,IAvBkE,qFAmDlE,UAAyBryB,EAAK25B,GAAe,GAC3C,GAAIb,EAAgB94B,EAAKme,SAASyb,SAAU,CAC1C,MAAMC,QAAiBjF,MAAM50B,GAE7B,IAAK65B,EAASC,GACZ,MAAM,IAAIplB,MAAMmlB,EAASE,YAG3B,OAAOJ,EAAe,IAAIn8B,iBAAiBq8B,EAASG,gBAAkB,EAAGjf,EAAMjd,qBAAqB+7B,EAASI,QAG/G,OAAO,IAAIt6B,QAAQ,CAACC,EAASC,KAC3B,MAAMq6B,EAAU,IAAIC,eACpBD,EAAQE,KAAK,MAAOp6B,GAAK,GAErB25B,IACFO,EAAQG,aAAe,eAGzBH,EAAQI,mBAAqB,KAC3B,GAAIJ,EAAQK,aAAeJ,eAAeK,KAI1C,IAAuB,MAAnBN,EAAQ5kB,QAAqC,IAAnB4kB,EAAQ5kB,OAAc,CAClD,IAAI1X,GAQJ,GANA68B,GAAoBP,EAAQL,SAC1Bj8B,GAAO,IAAIJ,WAAW08B,EAAQL,WACpBF,GAAgBO,EAAQQ,eAClC98B,IAAQ,EAAGmd,EAAMjd,eAAeo8B,EAAQQ,eAGtC98B,GAEF,YADAgC,EAAQhC,IAKZiC,EAAO,IAAI6U,MAAMwlB,EAAQH,eAG3BG,EAAQja,KAAK,WA7FiDrhB,sBAwBzD+7B,GADTtI,EACSsI,MAAM,IACNC,GAFTvI,EAESuI,MAAM,IACNC,GAHTxI,EAGSwI,mBAAmBpB,EAAKkB,IAAMlB,EAAKmB,KAG5ChgC,EAAQ68B,cAAgBA,EAoBxB78B,EAAQihB,iBAlBR,iBAA+B2d,EAAcsB,kBAC3C5lB,aACE+I,gBAAgBC,WAAWC,UACzB,IACF/I,QACAH,KAAK8lB,UAAY9c,EAGnB+c,cAAcvG,EAAOC,GACnB,MAAMiC,EAAS1hB,KAAK8lB,UAAU9B,cAAc,UAE5CtC,SAAOlC,MAAQA,EACfkC,EAAOjC,OAASA,EACTiC,IAiEX/7B,EAAQkhB,qBAZR,gBAAmC0d,EAAcyB,sBAC/CC,WAAWl7B,EAAKm7B,GACd,OAAOC,EAAUp7B,EAAKiV,KAAKic,cAAcpS,KAAKlhB,IACrC,CACLy9B,SAAUz9B,EACVu9B,uBAgBRvgC,EAAQmhB,2BAPR,gBAAyCyd,EAAc8B,4BACrDJ,WAAWl7B,GACT,OAAOo7B,EAAUp7B,GAAK,KAc1BpF,EAAQ+8B,cAPR,gBAA4B6B,EAAc+B,eACxCC,WAAWzhB,GACT,OAAOoE,SAASsd,gBArGL,6BAqG6B1hB,KAO5C,QACE7E,aACE8R,UACAN,QACAC,WACAC,UAAU,EACVC,WAAU,EACVC,YAAW,IAEX7R,KAAK+R,QAAUA,EACf/R,KAAKyR,MAAQA,EACbzR,KAAK0R,SAAWA,EAChB1R,KAAK2R,QAAUA,EACf3R,KAAK4R,QAAUA,GACf,MAAM6U,IAAW1U,EAAQ,GAAKA,EAAQ,IAAM,EACtC2U,IAAW3U,EAAQ,GAAKA,EAAQ,IAAM,EAC5C,IAAI4U,GAASC,GAASC,EAASC,EA6C3BC,EAAeC,EACfxH,EAAOC,EAvCX,QANA/N,GAAY,KAEG,IACbA,GAAY,KAGNA,QACD,IACHiV,IAAU,EACVC,GAAU,EACVC,EAAU,EACVC,EAAU,EACV,WAEG,GACHH,GAAU,EACVC,GAAU,EACVC,EAAU,EACVC,EAAU,EACV,WAEG,IACHH,GAAU,EACVC,IAAU,EACVC,GAAU,EACVC,EAAU,EACV,WAEG,EACHH,GAAU,EACVC,GAAU,EACVC,EAAU,EACVC,GAAU,EACV,cAGA,MAAM,IAAIrnB,MAAM,qEAGhBoS,IACFgV,GAAWA,EACXC,GAAWA,GAMG,IAAZH,IACFI,EAAgBj9B,KAAKoa,IAAIwiB,GAAU3U,EAAQ,IAAMN,EAAQE,EACzDqV,EAAgBl9B,KAAKoa,IAAIuiB,GAAU1U,EAAQ,IAAMN,EAAQG,GACzD4N,EAAQ11B,KAAKoa,IAAI6N,EAAQ,GAAKA,EAAQ,IAAMN,EAC5CgO,EAAS31B,KAAKoa,IAAI6N,EAAQ,GAAKA,EAAQ,IAAMN,IAE7CsV,EAAgBj9B,KAAKoa,IAAIuiB,GAAU1U,EAAQ,IAAMN,EAAQE,EACzDqV,EAAgBl9B,KAAKoa,IAAIwiB,GAAU3U,EAAQ,IAAMN,EAAQG,GACzD4N,EAAQ11B,KAAKoa,IAAI6N,EAAQ,GAAKA,EAAQ,IAAMN,EAC5CgO,EAAS31B,KAAKoa,IAAI6N,EAAQ,GAAKA,EAAQ,IAAMN,GAG/CzR,KAAK/G,UAAY,CAAC0tB,GAAUlV,EAAOmV,GAAUnV,EAAOoV,EAAUpV,EAAOqV,EAAUrV,EAAOsV,EAAgBJ,GAAUlV,EAAQgV,GAAUI,EAAUpV,EAAQiV,GAASM,EAAgBJ,GAAUnV,EAAQgV,GAAUK,EAAUrV,EAAQiV,IAC3N1mB,KAAKwf,MAAQA,EACbxf,KAAKyf,OAASA,EAGhBwH,OACExV,QAAQzR,KAAKyR,MACbC,WAAW1R,KAAK0R,SAChBC,UAAU3R,KAAK2R,QACfC,UAAU5R,KAAK4R,QACfC,aAAW,GACT,IACF,OAAO,IAAIC,EAAa,CACtBC,QAAS/R,KAAK+R,QAAQ/P,QACtByP,QACAC,WACAC,UACAC,UACAC,cAIJqV,uBAAuBC,EAAGC,GACxB,OAAOthB,EAAM7f,KAAK6b,eAAe,CAACqlB,EAAGC,GAAIpnB,KAAK/G,WAGhDouB,2BAA2B3kB,GACzB,MAAM4kB,EAAUxhB,EAAM7f,KAAK6b,eAAe,CAACY,EAAK,GAAIA,EAAK,IAAK1C,KAAK/G,WAE7DsuB,EAAczhB,EAAM7f,KAAK6b,eAAe,CAACY,EAAK,GAAIA,EAAK,IAAK1C,KAAK/G,WAEvE,MAAO,CAACquB,EAAQ,GAAIA,EAAQ,GAAIC,EAAY,GAAIA,EAAY,IAG9DC,kBAAkBL,EAAGC,GACnB,OAAOthB,EAAM7f,KAAKwhC,sBAAsB,CAACN,EAAGC,GAAIpnB,KAAK/G,YAiBzD,WAAsBlO,GACpB,MAAMuC,EAAKvC,EAAIzC,OACf,IAAIG,EAAI,EAER,KAAOA,EAAI6E,GAAwB,KAAlBvC,EAAItC,GAAGi/B,QACtBj/B,IAGF,MAAiD,UAA1CsC,EAAI+3B,UAAUr6B,EAAGA,EAAI,GAAGk/B,cA6FjC,WAAyB58B,EAAKC,GAC5B,IACE,MACEU,YACEV,EAAU,IAAIS,IAAIV,EAAKC,GAAW,IAAIS,IAAIV,GAC9C,MAAoB,UAAbW,GAAqC,WAAbA,EAAa,MAE5C,OAAO,GAxHX/F,EAAQmsB,aAAeA,EAUvBnsB,EAAQsyB,4BARR,gBAA0CnS,EAAMve,cAC9C0Y,YAAY9W,EAAK2b,GACf3E,MAAMhX,EAAK,+BACX6W,KAAK8E,KAAOA,IA0GhBnf,EAAQ8qB,UAjDR,QACExQ,cACED,KAAK4nB,QAAU/hC,OAAOyE,OAAO,MAC7B0V,KAAK6nB,MAAQ,GAGflU,KAAK5T,GACCA,KAAQC,KAAK4nB,UACd,EAAG9hB,EAAMjX,MAAO,gCAA+BkR,KAGlDC,KAAK4nB,QAAQ7nB,GAAQ9T,KAAK67B,MAG5B/S,QAAQhV,GACAA,KAAQC,KAAK4nB,UAChB,EAAG9hB,EAAMjX,MAAO,kCAAiCkR,KAGpDC,KAAK6nB,MAAM39B,KAAK,CACd6V,OACAgoB,MAAO/nB,KAAK4nB,QAAQ7nB,GACpBmN,IAAKjhB,KAAK67B,eAEL9nB,KAAK4nB,QAAQ7nB,GAGtB3T,WACE,MAAM47B,EAAS,GACf,IAAIC,EAAU,EAEd,UAAWtU,KAAQ3T,KAAK6nB,MAAO,CAC7B,MAAM9nB,EAAO4T,EAAK5T,KAEdA,EAAKzX,OAAS2/B,IAChBA,EAAUloB,EAAKzX,QAInB,UAAWqrB,KAAQ3T,KAAK6nB,MAAO,CAC7B,MAAMK,EAAWvU,EAAKzG,IAAMyG,EAAKoU,MACjCC,EAAO99B,KAAM,GAAEypB,EAAK5T,KAAKooB,OAAOF,MAAYC,SAG9C,OAAOF,EAAO79B,KAAK,MA2FvBxE,EAAQ88B,cA9CR,QAAoBxhB,oBACEmnB,GAClB,IAAKA,GAA0B,iBAAVA,EACnB,OAAO,KAGJ3D,IACHA,EAAqB,IAAI4D,OAAO,6FAGlC,MAAMC,EAAU7D,EAAmBrB,KAAKgF,GAExC,IAAKE,EACH,OAAO,KAGT,MAAMC,EAAO5E,SAAS2E,EAAQ,GAAI,IAClC,IAAIE,EAAQ7E,SAAS2E,EAAQ,GAAI,IACjCE,EAAQA,GAAS,GAAKA,GAAS,GAAKA,EAAQ,EAAI,EAChD,IAAIC,GAAM9E,SAAS2E,EAAQ,GAAI,IAC/BG,GAAMA,IAAO,GAAKA,IAAO,GAAKA,GAAM,EACpC,IAAIC,EAAO/E,SAAS2E,EAAQ,GAAI,IAChCI,EAAOA,GAAQ,GAAKA,GAAQ,GAAKA,EAAO,EACxC,IAAIC,GAAShF,SAAS2E,EAAQ,GAAI,IAClCK,GAASA,IAAU,GAAKA,IAAU,GAAKA,GAAS,EAChD,IAAIpmB,GAASohB,SAAS2E,EAAQ,GAAI,IAClC/lB,GAASA,IAAU,GAAKA,IAAU,GAAKA,GAAS,EAChD,MAAMqmB,GAAwBN,EAAQ,IAAM,IAC5C,IAAIO,GAAalF,SAAS2E,EAAQ,GAAI,IACtCO,GAAaA,IAAc,GAAKA,IAAc,GAAKA,GAAa,EAChE,IAAIC,EAAenF,SAAS2E,EAAQ,GAAI,KAAO,EAC/CQ,SAAeA,GAAgB,GAAKA,GAAgB,GAAKA,EAAe,EAE1C,MAA9BC,IACEL,GAAQG,GACRF,IAAUG,GACyB,MAA1BF,KACTF,GAAQG,GACRF,IAAUG,GAGL,IAAI78B,KAAKA,KAAK+8B,IAAIT,EAAMC,EAAOC,GAAKC,EAAMC,GAAQpmB,QAyBtD,CAAC7c,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ0gC,4BAA8B1gC,EAAQ2gC,eAAiB3gC,EAAQkgC,kBAAoBlgC,EAAQqgC,2BAAwB,EAE3H,IAAIlgB,EAAQlgB,EAAoB,GAEhC,QACEqa,cACMD,KAAKC,cAAgB4lB,IACtB,EAAG/f,EAAM1c,aAAa,wCAI3BkB,OAAOk1B,EAAOC,GACZ,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIhgB,MAAM,uBAGlB,MAAMiiB,EAAS1hB,KAAK+lB,cAAcvG,EAAOC,GAEzC,MAAO,CACLiC,SACAuH,QAASvH,EAAOwH,WAAW,OAI/BC,MAAMC,EAAkB5J,EAAOC,GAC7B,IAAK2J,EAAiB1H,OACpB,MAAM,IAAIjiB,MAAM,2BAGlB,GAAI+f,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIhgB,MAAM,uBAGlB2pB,EAAiB1H,OAAOlC,MAAQA,EAChC4J,EAAiB1H,OAAOjC,OAASA,EAGnC7T,QAAQwd,GACN,IAAKA,EAAiB1H,OACpB,MAAM,IAAIjiB,MAAM,2BAGlB2pB,EAAiB1H,OAAOlC,MAAQ,EAChC4J,EAAiB1H,OAAOjC,OAAS,EACjC2J,EAAiB1H,OAAS,KAC1B0H,EAAiBH,QAAU,KAG7BlD,cAAcvG,EAAOC,IAClB,EAAG3Z,EAAM1c,aAAa,4CAK3BzD,EAAQkgC,kBAAoBA,EAE5B,QACE5lB,aACEjV,UAAU,KACVixB,gBAAe,IAEXjc,KAAKC,cAAgB+lB,IACtB,EAAGlgB,EAAM1c,aAAa,4CAGzB4W,KAAKhV,QAAUA,EACfgV,KAAKic,aAAeA,EAGhB0D,OACJ5f,SACC,gDACD,IAAKtK,EAAKzK,QACR,MAAM,IAAIyU,MAAM,2HAGlB,IAAKM,EACH,MAAM,IAAIN,MAAM,gCAGlB,MAAM1U,EAAM0K,EAAKzK,QAAU+U,GAAQtK,EAAKwmB,aAAe,SAAW,IAElE,OAAOxmB,EAAKwwB,WAAWl7B,EADC0K,EAAKwmB,aAAenW,EAAMxe,oBAAoB8Q,OAAS0N,EAAMxe,oBAAoBkM,MAC5DyX,MAAMpgB,IACjD,MAAM,IAAI4U,MAAO,kBAAiBhK,EAAKwmB,aAAe,UAAY,cAAclxB,QAZjF+gB,GAgBHma,WAAWl7B,EAAKm7B,IACb,EAAGpgB,EAAM1c,aAAa,yCAK3BzD,EAAQqgC,sBAAwBA,EAEhC,QACE/lB,aACEjV,UAAU,OAENgV,KAAKC,cAAgBomB,IACtB,EAAGvgB,EAAM1c,aAAa,kDAGzB4W,KAAKhV,QAAUA,EAGX20B,OACJK,aACC,gDACD,IAAKvqB,EAAKzK,QACR,MAAM,IAAIyU,MAAM,6HAGlB,IAAKugB,EACH,MAAM,IAAIvgB,MAAM,oCAGlB,MAAM1U,EAAO,GAAE0K,EAAKzK,UAAUg1B,IAC9B,OAAOvqB,EAAKwwB,WAAWl7B,GAAKkgB,MAAMpgB,IAChC,MAAM,IAAI4U,MAAO,gCAA+B1U,QAXjD+gB,GAeHma,WAAWl7B,IACR,EAAG+a,EAAM1c,aAAa,yCAK3BzD,EAAQ0gC,4BAA8BA,EAEtC,SACEpmB,cACMD,KAAKC,cAAgBqmB,KACtB,EAAGxgB,EAAM1c,aAAa,qCAI3BkB,OAAOk1B,EAAOC,GACZ,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIhgB,MAAM,0BAGlB,MAAM4pB,EAAMrpB,KAAKumB,WAAW,WAE5B8C,SAAIC,aAAa,UAAW,OAC5BD,EAAIC,aAAa,QAAU,GAAE9J,OAC7B6J,EAAIC,aAAa,SAAW,GAAE7J,OAC9B4J,EAAIC,aAAa,sBAAuB,QACxCD,EAAIC,aAAa,UAAY,OAAM9J,KAASC,KACrC4J,EAGTrF,cAAclf,GACZ,GAAoB,iBAATA,EACT,MAAM,IAAIrF,MAAM,4BAGlB,OAAOO,KAAKumB,WAAWzhB,GAGzByhB,WAAWzhB,IACR,EAAGgB,EAAM1c,aAAa,yCAK3BzD,EAAQ2gC,eAAiBA,IAIlB,CAAC5gC,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQi2B,WAAaj2B,EAAQw5B,oBAAiB,EAE9C,IAAIrZ,EAAQlgB,EAAoB,GAEhC,QACEqa,aACE2J,QACA+B,uBACA3C,gBAAgBC,WAAWC,SAC3B6S,eAAe,OAEX/b,KAAKC,cAAgBspB,IACtB,EAAGzjB,EAAM1c,aAAa,qCAGzB4W,KAAK4J,MAAQA,EACb5J,KAAK6b,sBAAwBlQ,EAC7B3L,KAAK8lB,UAAY9c,EACjBhJ,KAAKwpB,gBAAkB,GACvBxpB,KAAK+b,aAAe,KAGtB0N,kBAAkBC,GAChB1pB,KAAKwpB,gBAAgBt/B,KAAKw/B,GAE1B1pB,KAAK8lB,UAAU6D,MAAMxU,IAAIuU,GAG3BE,WAAWC,GACT,IAAI9N,EAAe/b,KAAK+b,aAEnBA,IACHA,EAAe/b,KAAK+b,aAAe/b,KAAK8lB,UAAU9B,cAAc,SAChEjI,EAAaxN,GAAM,wBAAuBvO,KAAK4J,QAE/C5J,KAAK8lB,UAAUzB,gBAAgByF,qBAAqB,QAAQ,GAAGxF,YAAYvI,IAG7E,MAAMgO,EAAahO,EAAaiO,MAChCD,EAAWH,WAAWC,EAAME,EAAWE,SAAS3hC,QAGlDkvB,QACE,UAAWkS,KAAkB1pB,KAAKwpB,gBAChCxpB,KAAK8lB,UAAU6D,MAAMjV,OAAOgV,GAG9B1pB,KAAKwpB,gBAAgBlhC,OAAS,EAE1B0X,KAAK+b,eACP/b,KAAK+b,aAAamI,SAClBlkB,KAAK+b,aAAe,MAIlBD,KAAKvd,GAAM,gDACf,GAAIA,EAAK2rB,UAAY3rB,EAAK4rB,YACxB,OAKF,GAFA5rB,EAAK2rB,UAAW,EAEZE,EAAKC,0BAA2B,CAClC,MAAMX,EAAiBnrB,EAAK+rB,uBAE5B,GAAIZ,EAAgB,CAClBU,EAAKX,kBAAkBC,GAEvB,UACQA,EAAe9c,aACdhe,GACP,QAAKitB,sBAAsB,CACzB+D,UAAW9Z,EAAM1f,qBAAqB8Y,uBAGvC,EAAG4G,EAAMjX,MAAO,wBAAuB66B,EAAea,aAAa37B,OACpE2P,EAAKuK,iBAAkB,EACjBla,GAIV,OAGF,MAAMi7B,EAAOtrB,EAAKisB,qBAElB,GAAIX,EAAM,CAGR,GAFAO,EAAKR,WAAWC,GAEZO,EAAKK,2BACP,aAGI,IAAI//B,QAAQC,IAChB,MAAMs6B,EAAUmF,EAAKM,sBAAsB//B,GAE3Cy/B,EAAKO,sBAAsB,CAACd,GAAO,CAACtrB,GAAO0mB,OAzChCnZ,GA8CjB4e,sBAAsBzV,IACnB,EAAGnP,EAAM1c,aAAa,4CAGrBihC,gCAEF,OAAQ,EAAGvkB,EAAM3X,QAAQ6R,KAAM,8BADZA,KAAK8lB,WAAW6D,OAIjCc,kCACD,EAAG3kB,EAAM1c,aAAa,iDAGrBwhC,qBACD,EAAG9kB,EAAM1c,aAAa,oCAGzBuhC,sBAAsBE,EAAOC,EAAa7F,IACvC,EAAGnf,EAAM1c,aAAa,6CAK3B,IAAIwyB,EACJj2B,EAAQi2B,WAAaA,EAEnBj2B,EAAQi2B,WAAaA,EAAa,cAAgC2N,EAChEtpB,YAAYuH,GACVrH,MAAMqH,GACNxH,KAAK+qB,eAAiB,CACpBC,SAAU,GACVC,cAAe,GAEjBjrB,KAAKkrB,eAAiB,EAGpBT,iCACF,IAAIU,GAAY,EAEhB,cAAWC,UAAc,KAKnB1pB,mCAFyC0hB,KAAKgI,UAAUC,aAEpD,IAAM,MACZF,GAAY,IAIR,EAAGrlB,EAAM3X,QAAQ6R,KAAM,6BAA8BmrB,GAG/DT,sBAAsBzV,GAWpB,MAAMgU,EAAUjpB,KAAK+qB,eACf9F,EAAU,CACd1W,GAAK,sBAAqB0a,EAAQgC,gBAClCpU,MAAM,EACNtC,SAdF,aAIE,KAHC,EAAGzO,EAAM7c,SAASg8B,EAAQpO,KAAM,6CACjCoO,EAAQpO,MAAO,EAERoS,EAAQ+B,SAAS1iC,OAAS,GAAK2gC,EAAQ+B,SAAS,GAAGnU,MAAM,CAC9D,MAAMyU,EAAerC,EAAQ+B,SAASO,QACtCrT,WAAWoT,EAAarW,SAAU,KASpCA,YAEFgU,SAAQ+B,SAAS9gC,KAAK+6B,GACfA,EAGL2F,oBAKF,OAAQ,EAAG9kB,EAAM3X,QAAQ6R,KAAM,gBAHtBwrB,KAAK,69CAMhBb,sBAAsBE,EAAOlB,EAAO1E,GAClC,WAAet8B,EAAM8iC,GACnB,OAAO9iC,EAAKqG,WAAWy8B,IAAW,GAAK9iC,EAAKqG,WAAWy8B,EAAS,IAAM,GAAK9iC,EAAKqG,WAAWy8B,EAAS,IAAM,EAAkC,IAA9B9iC,EAAKqG,WAAWy8B,EAAS,GAGzI,WAAsBC,EAAGD,EAAQvH,EAAQyH,IAGvC,OAFeD,EAAE5I,UAAU,EAAG2I,GAEdE,GADDD,EAAE5I,UAAU2I,EAASvH,GAItC,IAAIz7B,EAAG6E,EAEP,MAAMo0B,EAAS1hB,KAAK8lB,UAAU9B,cAAc,UAE5CtC,EAAOlC,MAAQ,EACfkC,EAAOjC,OAAS,EAChB,MAAMmM,EAAMlK,EAAOwH,WAAW,MAC9B,IAAI2C,EAAS,EAuBb,MAAMX,EAAkB,KAAIj/B,KAAK67B,QAAQ9nB,KAAKkrB,mBAC9C,IAAIviC,EAAOqX,KAAK4qB,cAEhBjiC,EAAOmjC,EAAanjC,EADG,IACmBuiC,EAAe5iC,OAAQ4iC,GACjE,MACMa,EAAa,WACnB,IAAIC,EAAWC,EAAMtjC,EAFO,IAI5B,IAAKF,EAAI,EAAG6E,EAAK49B,EAAe5iC,OAAS,EAAGG,EAAI6E,EAAI7E,GAAK,EACvDujC,EAAWA,EAAWD,EAAaE,EAAMf,EAAgBziC,GAAK,EAG5DA,EAAIyiC,EAAe5iC,SACrB0jC,EAAWA,EAAWD,EAAaE,EAAMf,EAAiB,MAAOziC,GAAK,GAGxEE,EAAOmjC,EAAanjC,EAZQ,GAYmB,GAAI,EAAGmd,EAAM1X,UAAU49B,IACtE,MAAMjhC,EAAO,iCAAgCmhC,KAAKvjC,OAElDqX,KAAK4pB,WADS,4BAA2BsB,UAAuBngC,MAEhE,MAAMohC,EAAQ,GAEd,UAAW5tB,KAAQorB,EACjBwC,EAAMjiC,KAAKqU,EAAK6tB,YAGlBD,EAAMjiC,KAAKghC,GAEX,MAAMmB,EAAMrsB,KAAK8lB,UAAU9B,cAAc,OAEzCqI,EAAI3I,MAAM4I,WAAa,SACvBD,EAAI3I,MAAMlE,MAAQ6M,EAAI3I,MAAMjE,OAAS,OACrC4M,EAAI3I,MAAM6I,SAAW,WACrBF,EAAI3I,MAAM8I,IAAMH,EAAI3I,MAAM+I,KAAO,MAEjC,UAAW1sB,KAAQosB,EAAO,CACxB,MAAMO,EAAO1sB,KAAK8lB,UAAU9B,cAAc,QAE1C0I,EAAKvW,YAAc,KACnBuW,EAAKhJ,MAAMiJ,WAAa5sB,EACxBssB,EAAI/H,YAAYoI,GAGlB1sB,KAAK8lB,UAAU8G,KAAKtI,YAAY+H,GAhEhC,WAAqBtsB,EAAMkV,GAGzB,GAFA4W,IAEIA,EAAS,GAGX,OAFC,EAAG/lB,EAAMjX,MAAM,qCAChBomB,IAIF2W,EAAIrtB,KAAO,QAAUwB,EACrB6rB,EAAIiB,SAAS,IAAK,EAAG,IAGjBxN,EAFkByN,aAAa,EAAG,EAAG,EAAG,GAE9BnkC,KAAK,GAAK,EACtBssB,IAIFiD,WAAW6U,EAAYjR,KAAK,KAAM/b,EAAMkV,IAgD1C8X,CAAY7B,EAAgB,KAC1BmB,EAAInI,SACJe,EAAQ1Q,eAkIhB5uB,EAAQw5B,eA3HR,QACElf,YAAY+sB,GACVtsB,mBAAkB,EAClBoI,mBAAkB,EAClBZ,gBAAe,EACfyD,uBACAmT,eAAe,OAEf9e,KAAKitB,eAAiBpnC,OAAOyE,OAAO,MAEpC,UAAW7B,KAAKukC,EACdhtB,KAAKvX,GAAKukC,EAAevkC,GAG3BuX,KAAKU,iBAAsC,IAApBA,EACvBV,KAAK8I,iBAAsC,IAApBA,EACvB9I,KAAKkI,cAAgC,IAAjBA,EACpBlI,KAAK6b,sBAAwBlQ,EAC7B3L,KAAK8e,aAAeA,EAGtBwL,uBACE,IAAKtqB,KAAKrX,MAAQqX,KAAK8I,gBACrB,OAAO,KAGT,IAAI4gB,EAEJ,GAAK1pB,KAAKktB,YAEH,CACL,MAAMC,EAAM,CACVC,OAAQptB,KAAKktB,YAAYG,YAGvBrtB,KAAKktB,YAAYI,cACnBH,EAAIzJ,MAAS,WAAU1jB,KAAKktB,YAAYI,kBAG1C5D,EAAiB,IAAI6D,SAASvtB,KAAKktB,YAAYP,WAAY3sB,KAAKrX,KAAMwkC,QAVtEzD,EAAiB,IAAI6D,SAASvtB,KAAKosB,WAAYpsB,KAAKrX,KAAM,IAa5D,OAAIqX,KAAK8e,cACP9e,KAAK8e,aAAaG,aAAajf,MAG1B0pB,EAGTc,qBACE,IAAKxqB,KAAKrX,MAAQqX,KAAK8I,gBACrB,OAAO,KAGT,MAAMngB,GAAQ,EAAGmd,EAAMzc,eAAe2W,KAAKrX,MACrCoC,EAAO,YAAWiV,KAAKwtB,mBAAmBtB,KAAKvjC,OACrD,IAAIkhC,EAEJ,GAAK7pB,KAAKktB,YAEH,CACL,IAAIC,EAAO,gBAAentB,KAAKktB,YAAYG,cAEvCrtB,KAAKktB,YAAYI,cACnBH,GAAQ,uBAAsBntB,KAAKktB,YAAYI,mBAGjDzD,EAAQ,4BAA2B7pB,KAAKktB,YAAYP,eAAeQ,QAAUpiC,UAR7E8+B,EAAQ,4BAA2B7pB,KAAKosB,mBAAmBrhC,KAW7D,OAAIiV,KAAK8e,cACP9e,KAAK8e,aAAaG,aAAajf,KAAMjV,GAGhC8+B,EAGT4D,iBAAiB7c,EAAM8c,GACrB,QAAuCnkC,IAAnCyW,KAAKitB,eAAeS,GACtB,OAAO1tB,KAAKitB,eAAeS,GAG7B,IAAIC,EAEJ,IACEA,EAAO/c,EAAKpmB,IAAIwV,KAAKosB,WAAa,SAAWsB,SACtC9+B,GACP,IAAKoR,KAAKkI,aACR,MAAMtZ,EAGR,YAAKitB,sBAAsB,CACzB+D,UAAW9Z,EAAM1f,qBAAqBgZ,oBAGvC,EAAG0G,EAAMjX,MAAO,2CAA0CD,OACpDoR,KAAKitB,eAAeS,GAAa,SAAU/pB,EAAGoM,KAGvD,GAAI/P,KAAKU,iBAAmBoF,EAAM3e,YAAYuZ,gBAAiB,CAC7D,MAAMktB,EAAQ,GAEd,UAAWC,KAAWF,EAAM,CAC1B,MAAMG,OAAwBvkC,IAAjBskC,EAAQC,KAAqBD,EAAQC,KAAK3jC,KAAK,KAAO,GACnEyjC,EAAM1jC,KAAK,KAAM2jC,EAAQE,IAAK,IAAKD,EAAM,QAG3C,OAAO9tB,KAAKitB,eAAeS,GAAa,IAAI/sB,SAAS,IAAK,OAAQitB,EAAMzjC,KAAK,KAG/E,OAAO6V,KAAKitB,eAAeS,GAAa,SAAU/pB,EAAGoM,GACnD,UAAW8d,KAAWF,EACA,UAAhBE,EAAQE,MACVF,EAAQC,KAAO,CAAC/d,GAAOA,IAGzBpM,EAAEkqB,EAAQE,KAAKpkC,MAAMga,EAAGkqB,EAAQC,UAWjC,CAACpoC,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ82B,uBAAoB,EAE5B,IAAIuR,EAAcpoC,EAAoB,GAElCkgB,EAAQlgB,EAAoB,GA2FhCD,EAAQ82B,kBAzFR,QACExc,cACED,KAAKiuB,SAAW,IAAI9c,IACpBnR,KAAKkuB,WAAY,EACjBluB,KAAKmuB,cAAgB,KACrBnuB,KAAKouB,gBAAkB,KAGzBC,SAASzgC,GAAK0gC,GACZ,MAAMvoC,EAAQia,KAAKiuB,SAASzjC,IAAIoD,IAEhC,YAAcrE,IAAVxD,EACKuoC,EAGFzoC,OAAOixB,OAAOwX,EAAcvoC,GAGrCwoC,YAAY3gC,IACV,OAAOoS,KAAKiuB,SAASzjC,IAAIoD,IAG3B4gC,SAAS5gC,GAAK7H,GACZ,MAAM4H,EAAMqS,KAAKiuB,SAASzjC,IAAIoD,IAE9B,IAAI6gC,GAAW,EAEf,QAAYllC,IAARoE,EACF,UAAY+gC,EAAOC,KAAQ9oC,OAAO+oC,QAAQ7oC,GACpC4H,EAAI+gC,KAAWC,IACjBF,GAAW,EACX9gC,EAAI+gC,GAASC,QAIjBF,GAAW,EAEXzuB,KAAKiuB,SAASjlC,IAAI4E,GAAK7H,GAGrB0oC,GACFzuB,KAAK6uB,eAITC,SACE,OAAO9uB,KAAKiuB,SAASle,KAAO,GAAK,EAAGjK,EAAMrY,eAAeuS,KAAKiuB,UAAY,KAGxEle,WACF,OAAO/P,KAAKiuB,SAASle,KAGvB8e,eACO7uB,KAAKkuB,YACRluB,KAAKkuB,WAAY,EAEiB,mBAAvBluB,KAAKmuB,eACdnuB,KAAKmuB,iBAKXlR,gBACMjd,KAAKkuB,YACPluB,KAAKkuB,WAAY,EAEmB,mBAAzBluB,KAAKouB,iBACdpuB,KAAKouB,mBAKPrW,mBACF,OAAO/X,KAAKiuB,SAASle,KAAO,EAAI/P,KAAKiuB,SAAW,KAG9CrR,WACF,MAAMA,GAAO,IAAIoR,EAAYe,eAE7B,UAAYnhC,EAAK7H,KAAUia,KAAKiuB,SAC9BrR,GAAKoS,OAAQ,GAAEphC,KAAOqhC,KAAKC,UAAUnpC,MAGvC,OAAO62B,GAAKuS,eAST,CAACzpC,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQopC,oBAAiB,EAEzB,IAAIjpB,EAAQlgB,EAAoB,GAEhC,MAAMwpC,EAAO,WACPC,EAAY,WACZC,EAAW,MA4GjB3pC,EAAQopC,eA1GR,SACE9uB,YAAYsvB,GACVvvB,KAAKwvB,GAAKD,EAAc,WAAPA,EAAoBH,EACrCpvB,KAAKyvB,GAAKF,EAAc,WAAPA,EAAoBH,EAGvCJ,OAAO5G,GACL,IAAIz/B,EAAML,EAEV,GAAqB,iBAAV8/B,EAAoB,CAC7Bz/B,EAAO,IAAIJ,WAA0B,EAAf6/B,EAAM9/B,QAC5BA,EAAS,EAET,QAASG,EAAI,EAAG6E,EAAK86B,EAAM9/B,OAAQG,EAAI6E,EAAI7E,IAAK,CAC9C,MAAMqG,EAAOs5B,EAAMp5B,WAAWvG,GAE1BqG,GAAQ,IACVnG,EAAKL,KAAYwG,GAEjBnG,EAAKL,KAAYwG,IAAS,EAC1BnG,EAAKL,KAAmB,IAAPwG,QAAO,MAGlB,EAAGgX,EAAM7Y,eAAem7B,GAIlC,MAAM,IAAI3oB,MAAM,gFAHhB9W,EAAOy/B,EAAMpmB,QACb1Z,EAASK,EAAKI,WAKhB,MAAM2mC,EAAcpnC,GAAU,EACxBqnC,EAAarnC,EAAuB,EAAdonC,EACtBE,EAAa,IAAInvB,YAAY9X,EAAKuD,OAAQ,EAAGwjC,GACnD,IAAIG,EAAK,EACLC,EAAK,EACLN,EAAKxvB,KAAKwvB,GACVC,EAAKzvB,KAAKyvB,GACd,MAAMM,EAAK,WACLC,EAAK,UACLC,EAASF,EAAKT,EACdY,EAASF,EAAKV,EAEpB,QAAS7mC,EAAI,EAAGA,EAAIinC,EAAajnC,IACvB,EAAJA,GACFonC,EAAKD,EAAWnnC,GAChBonC,EAAKA,EAAKE,EAAKV,EAAYQ,EAAKI,EAASX,EACzCO,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKG,EAAKX,EAAYQ,EAAKK,EAASZ,EACzCE,GAAMK,EACNL,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAU,EAALA,EAAS,aAEdM,EAAKF,EAAWnnC,GAChBqnC,EAAKA,EAAKC,EAAKV,EAAYS,EAAKG,EAASX,EACzCQ,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKE,EAAKX,EAAYS,EAAKI,EAASZ,EACzCG,GAAMK,EACNL,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAU,EAALA,EAAS,YAMlB,OAFAI,EAAK,EAEGF,QACD,EACHE,GAAMlnC,EAAmB,EAAd+mC,EAAkB,IAAM,QAEhC,EACHG,GAAMlnC,EAAmB,EAAd+mC,EAAkB,IAAM,OAEhC,EACHG,GAAMlnC,EAAmB,EAAd+mC,GACXG,EAAKA,EAAKE,EAAKV,EAAYQ,EAAKI,EAASX,EACzCO,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKG,EAAKX,EAAYQ,EAAKK,EAASZ,EAEvB,EAAlBpiC,EACEsiC,GAAMK,EAENJ,GAAMI,EAKZ7vB,KAAKwvB,GAAKA,EACVxvB,KAAKyvB,GAAKA,EAGZN,YACE,IAAIK,EAAKxvB,KAAKwvB,GACVC,EAAKzvB,KAAKyvB,GACdD,GAAMC,IAAO,EACbD,EAAU,WAALA,EAAkBH,EAAiB,MAALG,EAAcF,EACjDG,EAAU,WAALA,EAAkBJ,GAAsC,YAAxBI,GAAM,GAAKD,IAAO,IAAmBH,KAAe,GACzFG,GAAMC,IAAO,EACbD,EAAU,UAALA,EAAkBH,EAAiB,MAALG,EAAcF,EACjDG,EAAU,WAALA,EAAkBJ,GAAsC,YAAxBI,GAAM,GAAKD,IAAO,IAAmBH,KAAe,GACzFG,GAAMC,IAAO,EACb,MAAMU,GAAQX,IAAO,GAAGpjC,SAAS,IAC3BgkC,GAAQX,IAAO,GAAGrjC,SAAS,IACjC,OAAO+jC,EAAK7jC,SAAS,EAAG,KAAO8jC,EAAK9jC,SAAS,EAAG,QAS7C,CAAC5G,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQs8B,oBAAiB,EAEzB,IAAInc,EAAQlgB,EAAoB,GAE5ByqC,EAAkBzqC,EAAoB,IAEtC0qC,EAAe1qC,EAAoB,IAEnCwgB,EAAWxgB,EAAoB,GAE/BmgB,GAAiBngB,EAAoB,GAEzC,MAEM2qC,EAAiB,KAKjBC,EAAoB,GAsI1B,WAAoC5E,GAKlC,GAJIA,EAAI6E,kBACN7E,EAAI6E,gBAAkB,KAGpB7E,EAAI8E,oBAIR9E,GAAI+E,cAAgB/E,EAAI7yB,KACxB6yB,EAAIgF,iBAAmBhF,EAAI5yB,QAC3B4yB,EAAIiF,gBAAkBjF,EAAIva,OAC1Bua,EAAIkF,eAAiBlF,EAAIna,MACzBma,EAAImF,mBAAqBnF,EAAIoF,UAC7BpF,EAAIqF,mBAAqBrF,EAAI3yB,UAC7B2yB,EAAIsF,sBAAwBtF,EAAIuF,aAChCvF,EAAIwF,wBAA0BxF,EAAIyF,eAClCzF,EAAI0F,iBAAmB1F,EAAI0F,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/D1F,EAAI6E,gBAAkB,GAEtB,IACE,MAAMc,EAAO1rC,OAAO2rC,yBAAyB3rC,OAAO4rC,eAAe7F,GAAM,aACzEA,EAAI8F,cAAgBH,EAAKvoC,IACzB4iC,EAAI+F,cAAgBJ,EAAK/mC,IACzB3E,OAAOC,eAAe8lC,EAAK,YAAa,CACtC5iC,IAAK,SAAsBw2B,GACzBxf,KAAK0xB,cA/JkB,SA+JJlS,IAErBh1B,IAAK,WACH,OAAOwV,KAAK2xB,0BAKlB9rC,OAAOC,eAAe8lC,EAAK,sBAAuB,CAChDphC,IAAK,WACH,OAAOwV,KAAKsxB,oBAGhBzrC,OAAOC,eAAe8lC,EAAK,6BAA8B,CACvDphC,IAAK,WACH,MAAO6X,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAAK5xB,KAAKsxB,iBAC1BO,EAAQxvB,EAAIT,EAAIR,EAAIuC,EACpBmuB,EAAQ1wB,EAAIuC,EAAItB,EAAIT,EAC1B,MAAO,CAACA,EAAIiwB,EAAOzwB,EAAI0wB,EAAOnuB,EAAImuB,EAAOzvB,EAAIwvB,GAAQjwB,EAAIkb,EAAInZ,EAAIiuB,GAAKE,GAAQ1wB,EAAI0b,EAAIza,EAAIuvB,GAAKC,MAInGjG,EAAI7yB,KAAO,WACT,MAAMg5B,EAAM/xB,KAAKsxB,iBAEjBtxB,KAAKywB,gBAAgBvmC,KAAK6nC,GAE1B/xB,KAAKsxB,iBAAmBS,EAAI/vB,MAAM,EAAG,GAErChC,KAAK2wB,iBAGP/E,EAAI5yB,QAAU,WACwB,IAAhCgH,KAAKywB,gBAAgBnoC,SACtB,EAAGwd,EAAMjX,MAAM,4DAGlB,MAAMmjC,EAAOhyB,KAAKywB,gBAAgBwB,MAE9BD,IACFhyB,KAAKsxB,iBAAmBU,EAExBhyB,KAAK4wB,qBAIThF,EAAIoF,UAAY,SAAsB7J,EAAGC,GACvC,MAAM1lB,EAAI1B,KAAKsxB,iBACf5vB,EAAE,GAAKA,EAAE,GAAKylB,EAAIzlB,EAAE,GAAK0lB,EAAI1lB,EAAE,GAC/BA,EAAE,GAAKA,EAAE,GAAKylB,EAAIzlB,EAAE,GAAK0lB,EAAI1lB,EAAE,GAE/B1B,KAAK+wB,mBAAmB5J,EAAGC,IAG7BwE,EAAIna,MAAQ,SAAkB0V,EAAGC,GAC/B,MAAM1lB,EAAI1B,KAAKsxB,iBACf5vB,EAAE,IAAMylB,EACRzlB,EAAE,IAAMylB,EACRzlB,EAAE,IAAM0lB,EACR1lB,EAAE,IAAM0lB,EAERpnB,KAAK8wB,eAAe3J,EAAGC,IAGzBwE,EAAI3yB,UAAY,SAAsBoJ,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GACnD,MAAMlwB,EAAI1B,KAAKsxB,iBACftxB,KAAKsxB,iBAAmB,CAAC5vB,EAAE,GAAKW,EAAIX,EAAE,GAAKN,EAAGM,EAAE,GAAKW,EAAIX,EAAE,GAAKN,EAAGM,EAAE,GAAKiC,EAAIjC,EAAE,GAAKE,EAAGF,EAAE,GAAKiC,EAAIjC,EAAE,GAAKE,EAAGF,EAAE,GAAKob,EAAIpb,EAAE,GAAKkwB,EAAIlwB,EAAE,GAAIA,EAAE,GAAKob,EAAIpb,EAAE,GAAKkwB,EAAIlwB,EAAE,IAEjKkqB,EAAIqF,mBAAmB5uB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,IAGxChG,EAAIuF,aAAe,SAAyB9uB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GACzD5xB,KAAKsxB,iBAAmB,CAACjvB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAExChG,EAAIsF,sBAAsB7uB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,IAG3ChG,EAAIyF,eAAiB,WACnBrxB,KAAKsxB,iBAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAExC1F,EAAIwF,2BAGNxF,EAAIva,OAAS,SAAmB6gB,GAC9B,MAAMC,EAAWroC,KAAKsoC,IAAIF,GACpBG,EAAWvoC,KAAKwoC,IAAIJ,GACpBxwB,EAAI1B,KAAKsxB,iBACftxB,KAAKsxB,iBAAmB,CAAC5vB,EAAE,GAAKywB,EAAWzwB,EAAE,GAAK2wB,EAAU3wB,EAAE,GAAKywB,EAAWzwB,EAAE,GAAK2wB,EAAU3wB,EAAE,IAAM2wB,EAAW3wB,EAAE,GAAKywB,EAAUzwB,EAAE,IAAM2wB,EAAW3wB,EAAE,GAAKywB,EAAUzwB,EAAE,GAAIA,EAAE,IAE/K1B,KAAK6wB,gBAAgBqB,KAIzB,QACEjyB,YAAYkT,GACVnT,KAAKmT,cAAgBA,EACrBnT,KAAKuyB,MAAQ1sC,OAAOyE,OAAO,MAG7BkoC,UAAUjkB,EAAIiR,EAAOC,EAAQgT,GAC3B,IAAIC,EAEJ,YAAuBnpC,IAAnByW,KAAKuyB,MAAMhkB,IACbmkB,EAAc1yB,KAAKuyB,MAAMhkB,GACzBvO,KAAKmT,cAAcgW,MAAMuJ,EAAalT,EAAOC,GAC7CiT,EAAYzJ,QAAQkI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,KAEhDuB,EAAc1yB,KAAKmT,cAAc7oB,OAAOk1B,EAAOC,GAC/Czf,KAAKuyB,MAAMhkB,GAAMmkB,GAGfD,GACFE,EAA2BD,EAAYzJ,SAGlCyJ,EAGThe,OAAOnG,UACEvO,KAAKuyB,MAAMhkB,GAGpBiJ,QACE,UAAWjJ,KAAMvO,KAAKuyB,MAEpBvyB,KAAKmT,cAAcvH,QADC5L,KAAKuyB,MAAMhkB,WAExBvO,KAAKuyB,MAAMhkB,IAMxB,WAAkCqd,EAAKgH,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,GAC1F,MAAO/wB,EAAGjB,EAAGuC,EAAG/B,GAAGyxB,GAAIC,IAAM1H,EAAI8E,oBAEjC,GAAU,IAANtvB,GAAiB,IAANuC,EAAS,CACtB,MACM4vB,GAAOzpC,KAAK0pC,MADNP,EAAQ5wB,EAAIgxB,IAGlBI,EAAO3pC,KAAK0pC,MADNN,EAAQtxB,GAAI0xB,IAGlBI,GAAS5pC,KAAKoa,IAAIpa,KAAK0pC,OADhBP,EAAQE,GAAS9wB,EAAIgxB,IACQE,KAAS,EAE7CI,GAAU7pC,KAAKoa,IAAIpa,KAAK0pC,OADjBN,EAAQE,GAASxxB,GAAI0xB,IACSG,IAAS,EACpD7H,SAAIuF,aAAarnC,KAAK8pC,KAAKvxB,GAAI,EAAG,EAAGvY,KAAK8pC,KAAKhyB,IAAI2xB,GAAME,GACzD7H,EAAIiI,UAAUjB,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGU,GAAQC,IAC5D/H,EAAIuF,aAAa9uB,EAAGjB,EAAGuC,EAAG/B,GAAGyxB,GAAIC,IAC1B,CAACI,GAAQC,IAGlB,GAAU,IAANtxB,GAAiB,IAANT,GAAS,CACtB,MACM2xB,GAAOzpC,KAAK0pC,MADNN,EAAQvvB,EAAI0vB,IAGlBI,EAAO3pC,KAAK0pC,MADNP,EAAQ7xB,EAAIkyB,IAGlBI,GAAS5pC,KAAKoa,IAAIpa,KAAK0pC,OADhBN,EAAQE,GAASzvB,EAAI0vB,IACQE,KAAS,EAE7CI,GAAU7pC,KAAKoa,IAAIpa,KAAK0pC,OADjBP,EAAQE,GAAS/xB,EAAIkyB,IACSG,IAAS,EACpD7H,SAAIuF,aAAa,EAAGrnC,KAAK8pC,KAAKxyB,GAAItX,KAAK8pC,KAAKjwB,GAAI,EAAG4vB,GAAME,GACzD7H,EAAIiI,UAAUjB,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGW,GAASD,IAC7D9H,EAAIuF,aAAa9uB,EAAGjB,EAAGuC,EAAG/B,GAAGyxB,GAAIC,IAC1B,CAACK,GAASD,IAMnB,OAHA9H,EAAIiI,UAAUjB,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,GAG5D,CAFQtpC,KAAKgqC,MAAMzxB,EAAGjB,GAEZ+xB,EADFrpC,KAAKgqC,MAAMnwB,EAAG/B,IACIwxB,GA+MnC,QACEnzB,YAAYuf,EAAOC,GACjBzf,KAAK+zB,cAAe,EACpB/zB,KAAKg0B,SAAW,EAChBh0B,KAAKi0B,cAAgB,EACrBj0B,KAAKk0B,WAAapuB,EAAM9e,gBACxBgZ,KAAKm0B,gBAAkB,EACvBn0B,KAAKo0B,WAAatuB,EAAM1e,qBACxB4Y,KAAKq0B,QAAU,EACfr0B,KAAKmnB,EAAI,EACTnnB,KAAKonB,EAAI,EACTpnB,KAAKs0B,MAAQ,EACbt0B,KAAKu0B,MAAQ,EACbv0B,KAAKw0B,YAAc,EACnBx0B,KAAKy0B,YAAc,EACnBz0B,KAAK00B,WAAa,EAClB10B,KAAK20B,kBAAoB7uB,EAAMzf,kBAAkBqK,KACjDsP,KAAK40B,SAAW,EAChB50B,KAAK60B,UAAY,UACjB70B,KAAK80B,YAAc,UACnB90B,KAAK+0B,aAAc,EACnB/0B,KAAKg1B,UAAY,EACjBh1B,KAAKi1B,YAAc,EACnBj1B,KAAKk1B,UAAY,EACjBl1B,KAAKm1B,YAAc,KACnBn1B,KAAKo1B,aAAe,KACpBp1B,KAAKq1B,uBAAuB,CAAC,EAAG,EAAG7V,EAAOC,IAG5CwH,QACE,MAAMA,EAAQphC,OAAOyE,OAAO0V,MAC5BinB,SAAMqO,QAAUt1B,KAAKs1B,QAAQtzB,QACtBilB,EAGTsO,gBAAgBpO,EAAGC,GACjBpnB,KAAKmnB,EAAIA,EACTnnB,KAAKonB,EAAIA,EAGXoO,iBAAiBv8B,EAAWkuB,EAAGC,IAC5BD,EAAGC,GAAKthB,EAAM7f,KAAK6b,eAAe,CAACqlB,EAAGC,GAAInuB,GAC3C+G,KAAKy1B,KAAO3rC,KAAKC,IAAIiW,KAAKy1B,KAAMtO,GAChCnnB,KAAK01B,KAAO5rC,KAAKC,IAAIiW,KAAK01B,KAAMtO,GAChCpnB,KAAK21B,KAAO7rC,KAAKqY,IAAInC,KAAK21B,KAAMxO,GAChCnnB,KAAK41B,KAAO9rC,KAAKqY,IAAInC,KAAK41B,KAAMxO,GAGlCyO,iBAAiB58B,EAAWyJ,GAC1B,MAAMb,EAAKiE,EAAM7f,KAAK6b,eAAeY,EAAMzJ,GAErC8I,EAAK+D,EAAM7f,KAAK6b,eAAeY,EAAKV,MAAM,GAAI/I,GAEpD+G,KAAKy1B,KAAO3rC,KAAKC,IAAIiW,KAAKy1B,KAAM5zB,EAAG,GAAIE,EAAG,IAC1C/B,KAAK01B,KAAO5rC,KAAKC,IAAIiW,KAAK01B,KAAM7zB,EAAG,GAAIE,EAAG,IAC1C/B,KAAK21B,KAAO7rC,KAAKqY,IAAInC,KAAK21B,KAAM9zB,EAAG,GAAIE,EAAG,IAC1C/B,KAAK41B,KAAO9rC,KAAKqY,IAAInC,KAAK41B,KAAM/zB,EAAG,GAAIE,EAAG,IAG5C+zB,wBAAwB78B,EAAWoI,GACjCyE,EAAM7f,KAAK8vC,YAAY98B,EAAWoI,GAElCrB,KAAKy1B,KAAO3rC,KAAKC,IAAIiW,KAAKy1B,KAAMp0B,EAAO,IACvCrB,KAAK21B,KAAO7rC,KAAKqY,IAAInC,KAAK21B,KAAMt0B,EAAO,IACvCrB,KAAK01B,KAAO5rC,KAAKC,IAAIiW,KAAK01B,KAAMr0B,EAAO,IACvCrB,KAAK41B,KAAO9rC,KAAKqY,IAAInC,KAAK41B,KAAMv0B,EAAO,IAGzC20B,sBAAsB/8B,EAAWgK,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAInC,GAC/D,MAAM40B,EAAMnwB,EAAM7f,KAAKiwC,kBAAkBjzB,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAErE,GAAInC,EAKF,OAJAA,EAAO,GAAKvX,KAAKC,IAAIsX,EAAO,GAAI40B,EAAI,GAAIA,EAAI,IAC5C50B,EAAO,GAAKvX,KAAKqY,IAAId,EAAO,GAAI40B,EAAI,GAAIA,EAAI,IAC5C50B,EAAO,GAAKvX,KAAKC,IAAIsX,EAAO,GAAI40B,EAAI,GAAIA,EAAI,SAC5C50B,EAAO,GAAKvX,KAAKqY,IAAId,EAAO,GAAI40B,EAAI,GAAIA,EAAI,KAI9Cj2B,KAAK61B,iBAAiB58B,EAAWg9B,GAGnCE,mBAAmBC,EAAW/F,EAAgBgG,SAAS3lC,KAAMuI,EAAY,MACvE,MAAMg9B,EAAM,CAACj2B,KAAKy1B,KAAMz1B,KAAK01B,KAAM11B,KAAK21B,KAAM31B,KAAK41B,MAEnD,GAAIQ,IAAa/F,EAAgBgG,SAAS1lC,OAAQ,CAC3CsI,IACF,EAAG6M,EAAM1c,aAAa,+CAGzB,MAAMqoB,EAAQ3L,EAAM7f,KAAKqwC,8BAA8Br9B,GAEjDs9B,EAAa9kB,EAAM,GAAKzR,KAAKk1B,UAAY,EACzCsB,EAAa/kB,EAAM,GAAKzR,KAAKk1B,UAAY,EAC/Ce,EAAI,IAAMM,EACVN,EAAI,IAAMO,EACVP,EAAI,IAAMM,EACVN,EAAI,IAAMO,EAGZ,OAAOP,EAGTQ,qBACE,MAAMC,EAAY5wB,EAAM7f,KAAKywC,UAAU12B,KAAKs1B,QAASt1B,KAAKm2B,sBAE1Dn2B,KAAKq1B,uBAAuBqB,GAAa,CAAC,EAAG,EAAG,EAAG,IAGrDC,cACE,OAAO32B,KAAKy1B,OAASmB,IAGvBvB,uBAAuBY,GACrBj2B,KAAKs1B,QAAUW,EACfj2B,KAAKy1B,KAAOmB,IACZ52B,KAAK01B,KAAOkB,IACZ52B,KAAK21B,KAAO,EACZ31B,KAAK41B,KAAO,EAGdiB,0BAA0BT,EAAW/F,EAAgBgG,SAAS3lC,KAAMuI,EAAY,MAC9E,OAAO6M,EAAM7f,KAAKywC,UAAU12B,KAAKs1B,QAASt1B,KAAKm2B,mBAAmBC,EAAUn9B,KAKhF,WAA4B2yB,EAAKkL,EAAS1B,EAAe,MACvD,UAAW2B,UAAc,KAAeD,aAAmBC,UAEzD,YADAnL,EAAIoL,aAAaF,EAAS,EAAG,GAI/B,MAAMrX,EAASqX,EAAQrX,OACjBD,EAAQsX,EAAQtX,MAChByX,EAAqBxX,EAAS+Q,EAC9B0G,GAAczX,EAASwX,GAAsBzG,EAC7C2G,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAexL,EAAIyL,gBAAgB7X,EAAOgR,GAChD,IACI8G,EADAC,EAAS,EAEb,MAAMnwB,EAAM0vB,EAAQnuC,KACd6uC,EAAOJ,EAAazuC,KAC1B,IAAIF,GAAG2b,GAAGqzB,GAAiBC,GACvBC,GAAgBC,GAAkBC,GAAiBC,EAEvD,GAAI1C,EACF,OAAQA,EAAa9sC,aACd,EACHqvC,GAAiBvC,EAAa,GAC9BwC,GAAmBxC,EAAa,GAChCyC,GAAkBzC,EAAa,GAC/B0C,EAAkB1C,EAAa,GAC/B,WAEG,EACHuC,GAAiBvC,EAAa,GAC9BwC,GAAmBxC,EAAa,GAChCyC,GAAkBzC,EAAa,GAC/B0C,EAAkB1C,EAAa,GAKrC,GAAI0B,EAAQiB,OAASjyB,EAAM/e,UAAUqK,eAAgB,CACnD,MAAM4mC,EAAY5wB,EAAIre,WAChBkvC,EAAS,IAAIx3B,YAAY+2B,EAAKtrC,OAAQ,EAAGsrC,EAAKzuC,YAAc,GAC5DmvC,GAAmBD,EAAO3vC,OAC1B6vC,GAAc3Y,EAAQ,GAAK,EACjC,IAAI4Y,GAAQ,WACRC,GAAQvyB,EAAM3e,YAAYmZ,eAAiB,WAAa,IAQ5D,IANIw3B,GACyB,MAAvBA,EAAgB,IAAyC,IAA1BA,EAAgB,QAChDM,GAAOC,IAAS,CAACA,GAAOD,KAIxB3vC,GAAI,EAAGA,GAAI0uC,EAAa1uC,KAAK,CAIhC,IAHAgvC,GAAkBhvC,GAAIyuC,EAAa1G,EAAoByG,EACvDK,EAAU,EAELlzB,GAAI,EAAGA,GAAIqzB,GAAiBrzB,KAAK,CACpC,MAAMk0B,GAAUN,EAAYT,EAC5B,IAAIgB,GAAI,EACR,MAAMC,GAAOF,GAAUH,GAAc3Y,EAAkB,EAAV8Y,GAAc,EACrDG,IAAsB,EAAPD,GACrB,IAAIE,GAAO,EACPC,EAAU,EAEd,KAAOJ,GAAIE,GAAcF,IAAK,EAC5BI,EAAUvxB,EAAImwB,KACdU,EAAOX,KAAuB,IAAVqB,EAAgBP,GAAQC,GAC5CJ,EAAOX,KAAuB,GAAVqB,EAAeP,GAAQC,GAC3CJ,EAAOX,KAAuB,GAAVqB,EAAeP,GAAQC,GAC3CJ,EAAOX,KAAuB,GAAVqB,EAAeP,GAAQC,GAC3CJ,EAAOX,KAAuB,EAAVqB,EAAcP,GAAQC,GAC1CJ,EAAOX,KAAuB,EAAVqB,EAAcP,GAAQC,GAC1CJ,EAAOX,KAAuB,EAAVqB,EAAcP,GAAQC,GAC1CJ,EAAOX,KAAuB,EAAVqB,EAAcP,GAAQC,GAG5C,KAAOE,GAAIC,GAAMD,KACF,IAATG,KACFC,EAAUvxB,EAAImwB,KACdmB,GAAO,KAGTT,EAAOX,KAAaqB,EAAUD,GAAON,GAAQC,GAC7CK,KAAS,EAIb,KAAOpB,EAAUY,IACfD,EAAOX,KAAa,EAGtB1L,EAAIoL,aAAaI,EAAc,EAAG3uC,GAAI+nC,YAE/BsG,EAAQiB,OAASjyB,EAAM/e,UAAUuK,WAAY,CACtD,MAAMsnC,KAAqBjB,IAAkBC,IAAoBC,IAIjE,IAHAzzB,GAAI,EACJszB,GAAmBlY,EAAQgR,EAAoB,EAE1C/nC,GAAI,EAAGA,GAAIyuC,EAAYzuC,KAAK,CAI/B,GAHA+uC,EAAKxuC,IAAIoe,EAAInd,SAASstC,EAAQA,EAASG,KACvCH,GAAUG,GAENkB,EACF,QAASL,EAAI,EAAGA,EAAIb,GAAkBa,GAAK,EACrCZ,KACFH,EAAKe,EAAI,GAAKZ,GAAeH,EAAKe,EAAI,KAGpCX,KACFJ,EAAKe,EAAI,GAAKX,GAAiBJ,EAAKe,EAAI,KAGtCV,KACFL,EAAKe,EAAI,GAAKV,GAAgBL,EAAKe,EAAI,KAK7C3M,EAAIoL,aAAaI,EAAc,EAAGhzB,IAClCA,IAAKosB,EAGP,GAAI/nC,GAAI0uC,EAAa,CAInB,GAHAO,GAAmBlY,EAAQyX,EAAqB,EAChDO,EAAKxuC,IAAIoe,EAAInd,SAASstC,EAAQA,EAASG,KAEnCkB,EACF,QAASL,EAAI,EAAGA,EAAIb,GAAkBa,GAAK,EACrCZ,KACFH,EAAKe,EAAI,GAAKZ,GAAeH,EAAKe,EAAI,KAGpCX,KACFJ,EAAKe,EAAI,GAAKX,GAAiBJ,EAAKe,EAAI,KAGtCV,KACFL,EAAKe,EAAI,GAAKV,GAAgBL,EAAKe,EAAI,KAK7C3M,EAAIoL,aAAaI,EAAc,EAAGhzB,aAE3B0yB,EAAQiB,OAASjyB,EAAM/e,UAAUsK,UAuC1C,MAAM,IAAIoO,MAAO,mBAAkBq3B,EAAQiB,QAvCU,CACrD,MAAMa,KAAqBjB,IAAkBC,IAAoBC,IAIjE,IAHAJ,GAAkBjH,EAClBkH,GAAmBlY,EAAQiY,GAEtBhvC,GAAI,EAAGA,GAAI0uC,EAAa1uC,KAAK,CAQhC,IAPIA,IAAKyuC,IACPO,GAAkBR,EAClBS,GAAmBlY,EAAQiY,IAG7BH,EAAU,EAELlzB,GAAIszB,GAAkBtzB,MACzBozB,EAAKF,KAAalwB,EAAImwB,KACtBC,EAAKF,KAAalwB,EAAImwB,KACtBC,EAAKF,KAAalwB,EAAImwB,KACtBC,EAAKF,KAAa,IAGpB,GAAIsB,EACF,QAASL,EAAI,EAAGA,EAAIjB,EAASiB,GAAK,EAC5BZ,KACFH,EAAKe,EAAI,GAAKZ,GAAeH,EAAKe,EAAI,KAGpCX,KACFJ,EAAKe,EAAI,GAAKX,GAAiBJ,EAAKe,EAAI,KAGtCV,KACFL,EAAKe,EAAI,GAAKV,GAAgBL,EAAKe,EAAI,KAK7C3M,EAAIoL,aAAaI,EAAc,EAAG3uC,GAAI+nC,MAO5C,WAA4B5E,EAAKkL,GAC/B,GAAIA,EAAQrf,OAEV,YADAmU,EAAIiI,UAAUiD,EAAQrf,OAAQ,EAAG,GAInC,MAAMgI,EAASqX,EAAQrX,OACjBD,EAAQsX,EAAQtX,MAChByX,EAAqBxX,EAAS+Q,EAC9B0G,GAAczX,EAASwX,GAAsBzG,EAC7C2G,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAexL,EAAIyL,gBAAgB7X,EAAOgR,GAChD,IAAI+G,EAAS,EACb,MAAMnwB,EAAM0vB,EAAQnuC,KACd6uC,EAAOJ,EAAazuC,KAE1B,QAASF,EAAI,EAAGA,EAAI0uC,EAAa1uC,IAAK,CACpC,MAAMgvC,EAAkBhvC,EAAIyuC,EAAa1G,EAAoByG,IAE3DM,WACG,EAAGjH,EAAauI,oBAAoB,CACvCzxB,MACAmwB,SACAC,OACAhY,QACAC,OAAQgY,KAEV7L,EAAIoL,aAAaI,EAAc,EAAG3uC,EAAI+nC,IAI1C,WAAsBsI,EAAWC,GAC/B,MAAMC,EAAa,CAAC,cAAe,YAAa,WAAY,cAAe,YAAa,UAAW,WAAY,aAAc,2BAA4B,QAEzJ,QAASvwC,EAAI,EAAG6E,EAAK0rC,EAAW1wC,OAAQG,EAAI6E,EAAI7E,IAAK,CACnD,MAAMwwC,EAAWD,EAAWvwC,QAEAc,IAAxBuvC,EAAUG,KACZF,EAAQE,GAAYH,EAAUG,SAIJ1vC,IAA1BuvC,EAAUI,cACZH,EAAQG,YAAYJ,EAAUK,eAC9BJ,EAAQK,eAAiBN,EAAUM,gBAIvC,WAA2BxN,EAAKyN,GAC9BzN,EAAI0N,YAAc1N,EAAI2N,UAAYF,GAAmB,UACrDzN,EAAI4N,SAAW,UACf5N,EAAI6N,YAAc,EAClB7N,EAAIsJ,UAAY,EAChBtJ,EAAI8N,QAAU,OACd9N,EAAI+N,SAAW,QACf/N,EAAIgO,WAAa,GACjBhO,EAAIiO,yBAA2B,cAC/BjO,EAAIrtB,KAAO,uBAEahV,IAApBqiC,EAAIsN,cACNtN,EAAIsN,YAAY,IAChBtN,EAAIwN,eAAiB,GAIzB,WAA8B9vC,EAAOwwC,EAAIC,EAAIC,GAC3C,MAAM1xC,EAASgB,EAAMhB,OAErB,QAASG,EAAI,EAAGA,EAAIH,EAAQG,GAAK,EAAG,CAClC,MAAMwxC,EAAQ3wC,EAAMb,GAEpB,GAAc,IAAVwxC,EACF3wC,EAAMb,EAAI,GAAKqxC,EACfxwC,EAAMb,EAAI,GAAKsxC,EACfzwC,EAAMb,EAAI,GAAKuxC,UACNC,EAAQ,IAAK,CACtB,MAAMC,EAAS,IAAMD,EACrB3wC,EAAMb,EAAI,GAAKa,EAAMb,EAAI,GAAKwxC,EAAQH,EAAKI,GAAU,EACrD5wC,EAAMb,EAAI,GAAKa,EAAMb,EAAI,GAAKwxC,EAAQF,EAAKG,GAAU,EACrD5wC,EAAMb,EAAI,GAAKa,EAAMb,EAAI,GAAKwxC,EAAQD,EAAKE,GAAU,IAK3D,WAA2BC,EAAUC,EAAWC,GAC9C,MAAM/xC,EAAS6xC,EAAS7xC,OAGxB,QAASG,EAAI,EAAGA,EAAIH,EAAQG,GAAK,EAE/B2xC,EAAU3xC,GAAK2xC,EAAU3xC,IADX4xC,EAAcA,EAAYF,EAAS1xC,IAAM0xC,EAAS1xC,IAHpD,mBAIkC,EAIlD,WAAgC0xC,EAAUC,EAAWC,GACnD,MAAM/xC,EAAS6xC,EAAS7xC,OAExB,QAASG,EAAI,EAAGA,EAAIH,EAAQG,GAAK,EAAG,CAClC,MAAM2+B,EAAsB,GAAlB+S,EAAS1xC,EAAI,GAA4B,IAAlB0xC,EAAS1xC,EAAI,GAA6B,GAAlB0xC,EAAS1xC,EAAI,GACtE2xC,EAAU3xC,GAAK4xC,EAAcD,EAAU3xC,GAAK4xC,EAAYjT,GAAK,IAAM,EAAIgT,EAAU3xC,GAAK2+B,GAAK,IAqD/F,YAAkCnuB,EAAWqhC,GAC3C,MAAM7oB,EAAQ3L,EAAM7f,KAAKqwC,8BAA8Br9B,GAEvDwY,EAAM,GAAK3nB,KAAKywC,OAAO9oB,EAAM,IAC7BA,EAAM,GAAK3nB,KAAKywC,OAAO9oB,EAAM,IAC7B,MAAM+oB,EAAc1wC,KAAKywC,QAAQtxB,WAAWwxB,kBAAoB,GAAK10B,GAAeyc,cAAcoD,kBAElG,YAAoBr8B,IAAhB+wC,EACKA,EACE7oB,EAAM,IAAM+oB,GAAe/oB,EAAM,IAAM+oB,EAOpD,MAAME,EAAkB,CAAC,OAAQ,QAAS,UACpCC,GAAmB,CAAC,QAAS,QAAS,SACtCC,GAAc,GACdC,GAAU,GAEhB,SACE56B,YAAY66B,EAAWnqB,EAAYC,EAAMuC,EAAeD,EAAYoC,EAAuBhC,EAAqBC,GAC9GvT,KAAK4rB,IAAMkP,EACX96B,KAAK6tB,QAAU,IAAIkN,EAAiB/6B,KAAK4rB,IAAIlK,OAAOlC,MAAOxf,KAAK4rB,IAAIlK,OAAOjC,QAC3Ezf,KAAKg7B,WAAa,GAClBh7B,KAAKi7B,YAAc,KACnBj7B,KAAKk7B,eAAgB,EACrBl7B,KAAKm7B,IAAM,KACXn7B,KAAKo7B,MAAQ,KACbp7B,KAAK2Q,WAAaA,EAClB3Q,KAAK4Q,KAAOA,EACZ5Q,KAAKmT,cAAgBA,EACrBnT,KAAKkT,WAAaA,EAClBlT,KAAKq7B,WAAa,GAClBr7B,KAAKs7B,gBAAkB,KACvBt7B,KAAKu7B,cAAgB,KACrBv7B,KAAKw7B,mBAAqB,GAC1Bx7B,KAAKy7B,WAAa,EAClBz7B,KAAK07B,WAAa,GAClB17B,KAAK27B,aAAe,EACpB37B,KAAK47B,UAAY,KACjB57B,KAAK67B,aAAe,KACpB77B,KAAK87B,gBAAiB,EACtB97B,KAAK+7B,mBAAqB,GAC1B/7B,KAAKsV,sBAAwBA,EAC7BtV,KAAKg8B,eAAiB,IAAIC,EAAej8B,KAAKmT,eAC9CnT,KAAKk8B,eAAiB,IAAI/qB,IAC1BnR,KAAKsT,oBAAsBA,EAC3BtT,KAAKm8B,cAAgB,EACrBn8B,KAAKo8B,aAAe,EACpBp8B,KAAKq8B,aAAe,EACpBr8B,KAAKs8B,gBAAkB/oB,GAAYH,YAAc,KACjDpT,KAAKq5B,gBAAkB9lB,GAAYgpB,YAAc,KAE7CzB,GACFnI,EAA2BmI,GAG7B96B,KAAKw8B,wBAA0B,KAC/Bx8B,KAAKy8B,2BAA6B,KAClCz8B,KAAK08B,kBAAoB,IAAIvrB,IAG/BwrB,UAAUh0C,EAAMi0C,EAAW,MACzB,MAAoB,iBAATj0C,EACFA,EAAKwC,WAAW,MAAQ6U,KAAK2Q,WAAWnmB,IAAI7B,GAAQqX,KAAK4Q,KAAKpmB,IAAI7B,GAGpEi0C,EAGT1a,cACEjpB,YACA+Z,WACAqC,gBAAe,EACfjC,aAAa,OAEb,MAAMoM,EAAQxf,KAAK4rB,IAAIlK,OAAOlC,MACxBC,EAASzf,KAAK4rB,IAAIlK,OAAOjC,OACzBod,EAAyBzpB,GAAc,UAG7C,GAFApT,KAAK4rB,IAAI7yB,OAELiH,KAAKq5B,iBAAmBr5B,KAAKs8B,gBAAiB,CAChDt8B,KAAK4rB,IAAI2N,UAAYv5B,KAAKq5B,gBAC1B,MAAMyD,EAAK98B,KAAKq5B,gBAAkBr5B,KAAK4rB,IAAI2N,UAC3Cv5B,KAAK4rB,IAAI2N,UAAYv5B,KAAKs8B,gBAC1B,MAAMS,EAAK/8B,KAAKs8B,gBAAkBt8B,KAAK4rB,IAAI2N,UAC3C,IAAIyD,GAAmB,EACnBC,EAAYJ,EAKhB,GAJA78B,KAAK4rB,IAAI2N,UAAYsD,EACrBI,EAAYj9B,KAAK4rB,IAAI2N,UACrByD,EAAwC,iBAAdC,GAA0B,oBAAoBzvC,KAAKyvC,GAElE,YAAPH,GAA2B,YAAPC,GAAoBD,IAAOC,IAAOC,EACxDh9B,KAAKq5B,gBAAkBr5B,KAAKs8B,gBAAkB,SACzC,CACL,MAAMY,EAAKvZ,SAASsZ,EAAUj7B,MAAM,GAAI,IAElCm7B,IAAMD,GAAM,QAAa,EACzBE,GAAKF,GAAM,IAEXG,GAAUlW,KACdA,IAAK,MACO,OAAUA,GAAI,QAAUA,GAAI,MAAS,QAAU,IAGvDmW,GAAOxzC,KAAK0pC,MAAM,MAAS6J,IATrBH,GAAM,WAAa,IASgB,MAASG,GAAQF,IAAM,MAASE,GAAQD,KAEvFp9B,KAAKu9B,YAAc,CAACr8B,GAAGC,GAAGC,KACxB,MAAMo8B,EAAO,MAASH,GAAQn8B,IAAK,MAASm8B,GAAQl8B,IAAK,MAASk8B,GAAQj8B,GAC1E,OAAOtX,KAAK0pC,MAAMgK,KAAUF,GAAOP,EAAKD,IAS9C,GAJA98B,KAAK4rB,IAAI2N,UAAYv5B,KAAKs8B,iBAAmBO,EAC7C78B,KAAK4rB,IAAI6R,SAAS,EAAG,EAAGje,EAAOC,GAC/Bzf,KAAK4rB,IAAI5yB,UAELqc,EAAc,CAChB,MAAMqoB,EAAoB19B,KAAKg8B,eAAexJ,UAAU,cAAehT,EAAOC,GAAQ,GACtFzf,KAAK29B,aAAe39B,KAAK4rB,IACzB5rB,KAAK09B,kBAAoBA,EAAkBhc,OAC3C1hB,KAAK4rB,IAAM8R,EAAkBzU,QAC7BjpB,KAAK4rB,IAAI7yB,OACTiH,KAAK4rB,IAAI3yB,UAAUtP,MAAMqW,KAAK4rB,IAAK5rB,KAAK29B,aAAajN,qBAGvD1wB,KAAK4rB,IAAI7yB,OACT6kC,EAAkB59B,KAAK4rB,IAAK5rB,KAAKq5B,iBAE7BpgC,IACF+G,KAAK4rB,IAAI3yB,UAAUtP,MAAMqW,KAAK4rB,IAAK3yB,GACnC+G,KAAKo8B,aAAenjC,EAAU,GAC9B+G,KAAKq8B,aAAepjC,EAAU,IAGhC+G,KAAK4rB,IAAI3yB,UAAUtP,MAAMqW,KAAK4rB,IAAK5Y,EAAS/Z,WAC5C+G,KAAKm8B,cAAgBnpB,EAASvB,MAC9BzR,KAAKu7B,cAAgBv7B,KAAK4rB,IAAI8E,oBAAoB1uB,QAE9ChC,KAAKkT,YACPlT,KAAKkT,WAAW2qB,cAIpBvb,oBAAoBpO,EAAc4pB,EAAmBC,EAAkBnc,GACrE,MAAMxN,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QAC7B,IAAI1rB,EAAIq1C,GAAqB,EAC7B,MAAME,EAAe5pB,EAAU9rB,OAE/B,GAAI01C,IAAiBv1C,EACnB,OAAOA,EAGT,MAAMw1C,EAAkBD,EAAev1C,EAxoCnB,IAwoCsE,mBAArBs1C,EAC/DG,EAAUD,EAAkBhyC,KAAK67B,MA1oCpB,GA0oC6C,EAChE,IAAIqW,EAAQ,EACZ,MAAMxtB,EAAa3Q,KAAK2Q,WAClBC,GAAO5Q,KAAK4Q,KAClB,IAAIwtB,GAEJ,OAAa,CACX,QAAgB70C,IAAZq4B,GAAyBn5B,IAAMm5B,EAAQE,eACzCF,SAAQyc,QAAQ51C,EAAGs1C,GACZt1C,EAKT,GAFA21C,GAAOjqB,EAAQ1rB,GAEX21C,KAASt4B,EAAMlf,IAAI0R,WACrB0H,KAAKo+B,IAAMz0C,MAAMqW,KAAMoU,EAAU3rB,SAEjC,UAAW61C,MAAYlqB,EAAU3rB,GAAI,CACnC,MAAM81C,GAAWD,GAASnzC,WAAW,MAAQwlB,EAAaC,GAE1D,IAAK2tB,GAASzkB,IAAIwkB,IAChBC,UAAS/zC,IAAI8zC,GAAUP,GAChBt1C,EAOb,GAFAA,IAEIA,IAAMu1C,EACR,OAAOv1C,EAGT,GAAIw1C,KAAqBE,EA1qCP,GA0qCgC,CAChD,GAAIlyC,KAAK67B,MAAQoW,EACfH,WACOt1C,EAGT01C,EAAQ,IAKdhc,aACE,KAAOniB,KAAKg7B,WAAW1yC,QAAU0X,KAAKw+B,aACpCx+B,KAAKhH,UAGPgH,KAAK4rB,IAAI5yB,UAELgH,KAAK09B,oBACP19B,KAAK4rB,IAAM5rB,KAAK29B,aAChB39B,KAAK4rB,IAAI7yB,OACTiH,KAAK4rB,IAAIuF,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrCnxB,KAAK4rB,IAAIiI,UAAU7zB,KAAK09B,kBAAmB,EAAG,GAC9C19B,KAAK4rB,IAAI5yB,UACTgH,KAAK09B,kBAAoB,MAG3B19B,KAAKg8B,eAAexkB,QACpBxX,KAAKk8B,eAAe1kB,QAEpB,UAAW+a,KAASvyB,KAAK08B,kBAAkBtlB,SAAU,CACnD,UAAWsK,KAAU6Q,EAAMnb,gBACdqnB,kBAAsB,KAAe/c,aAAkB+c,oBAChE/c,EAAOlC,MAAQkC,EAAOjC,OAAS,GAInC8S,EAAM/a,QAGRxX,KAAK08B,kBAAkBllB,QAEnBxX,KAAKkT,YACPlT,KAAKkT,WAAWwrB,YAIpBC,YAAYC,EAAKC,GACf,MAAMrf,EAAQof,EAAIpf,MACZC,EAASmf,EAAInf,OACnB,IAKIqf,EAAWC,EALXC,EAAal1C,KAAKqY,IAAIrY,KAAKgqC,MAAM+K,EAAiB,GAAIA,EAAiB,IAAK,GAC5EI,EAAcn1C,KAAKqY,IAAIrY,KAAKgqC,MAAM+K,EAAiB,GAAIA,EAAiB,IAAK,GAC7EK,EAAa1f,EACb2f,EAAc1f,EACd2f,EAAc,YAGlB,KAAOJ,EAAa,GAAKE,EAAa,GAAKD,EAAc,GAAKE,EAAc,GAAG,CAC7E,IAAIE,EAAWH,EACXI,GAAYH,EAEZH,EAAa,GAAKE,EAAa,IACjCG,EAAWv1C,KAAKy1C,KAAKL,EAAa,GAClCF,GAAcE,EAAaG,GAGzBJ,EAAc,GAAKE,EAAc,IACnCG,GAAYx1C,KAAKy1C,KAAKJ,EAAc,GACpCF,GAAeE,EAAcG,IAG/BR,EAAY9+B,KAAKg8B,eAAexJ,UAAU4M,EAAaC,EAAUC,IAAW,GAC5EP,EAASD,EAAU7V,QACnB8V,EAAOS,UAAU,EAAG,EAAGH,EAAUC,IACjCP,EAAOlL,UAAU+K,EAAK,EAAG,EAAGM,EAAYC,EAAa,EAAG,EAAGE,EAAUC,IACrEV,EAAME,EAAUpd,OAChBwd,EAAaG,EACbF,EAAcG,GACdF,EAA8B,cAAhBA,EAA8B,YAAc,YAG5D,MAAO,CACLR,MACAM,aACAC,eAIJM,kBAAkBb,GAChB,MAAMhT,EAAM5rB,KAAK4rB,KAEfpM,QACAC,UACEmf,EACE/J,EAAY70B,KAAK6tB,QAAQgH,UACzB6K,EAAgB1/B,KAAK6tB,QAAQkH,YAC7B4K,EAAmB/T,EAAI8E,oBAC7B,IAAI6B,EAAOngB,EAAUwtB,EAAQC,EAE7B,IAAKjB,EAAInnB,QAAUmnB,EAAIj2C,OAASi2C,EAAIkB,MAAQ,EAAG,CAC7C,MAAMC,GAAUnB,EAAInnB,QAAUmnB,EAAIj2C,KAAKuD,OACjC8zC,GAAqBL,EAAiB39B,MAAM,EAAG,GACrDoQ,EAAW6c,KAAKC,UAAUwQ,EAAgBM,GAAqB,CAACA,GAAoBnL,IACpFtC,EAAQvyB,KAAK08B,kBAAkBlyC,IAAIu1C,IAE9BxN,IACHA,EAAQ,IAAIphB,IAEZnR,KAAK08B,kBAAkB1zC,IAAI+2C,GAASxN,IAGtC,MAAM0N,GAAc1N,EAAM/nC,IAAI4nB,GAE9B,GAAI6tB,KAAgBP,EAGlB,MAAO,CACLhe,OAAQue,GACRtuB,QAJc7nB,KAAK0pC,MAAM1pC,KAAKC,IAAI41C,EAAiB,GAAIA,EAAiB,IAAMA,EAAiB,IAK/F/tB,QAJc9nB,KAAK0pC,MAAM1pC,KAAKC,IAAI41C,EAAiB,GAAIA,EAAiB,IAAMA,EAAiB,KAQnGC,EAASK,GAGNL,IACHC,EAAa7/B,KAAKg8B,eAAexJ,UAAU,aAAchT,EAAOC,GAAQ,GACxEygB,EAAmBL,EAAW5W,QAAS2V,IAGzC,IAAIuB,EAAer6B,EAAM7f,KAAKgT,UAAU0mC,EAAkB,CAAC,EAAIngB,EAAO,EAAG,GAAG,EAAKC,EAAQ,EAAG,IAE5F0gB,EAAer6B,EAAM7f,KAAKgT,UAAUknC,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI1gB,IAEnE,MAAM2gB,GAAQt6B,EAAM7f,KAAK6b,eAAe,CAAC,EAAG,GAAIq+B,GAE1CE,GAAQv6B,EAAM7f,KAAK6b,eAAe,CAAC0d,EAAOC,GAAS0gB,GAEnDz9B,GAAOoD,EAAM7f,KAAKq6C,cAAc,CAACF,GAAM,GAAIA,GAAM,GAAIC,GAAM,GAAIA,GAAM,KAErEE,GAAaz2C,KAAK0pC,MAAM9wB,GAAK,GAAKA,GAAK,KAAO,EAC9C89B,GAAc12C,KAAK0pC,MAAM9wB,GAAK,GAAKA,GAAK,KAAO,EAC/C+9B,GAAazgC,KAAKg8B,eAAexJ,UAAU,aAAc+N,GAAYC,IAAa,GAClFE,GAAUD,GAAWxX,QACrBtX,EAAU7nB,KAAKC,IAAIq2C,GAAM,GAAIC,GAAM,IACnCzuB,EAAU9nB,KAAKC,IAAIq2C,GAAM,GAAIC,GAAM,IACzCK,GAAQ1P,WAAWrf,GAAUC,GAC7B8uB,GAAQznC,UAAUtP,MAAM+2C,GAASP,GAE5BP,IACHA,EAAS5/B,KAAK2+B,YAAYkB,EAAWne,OAAQgf,GAAQC,4BACrDf,EAASA,EAAOhB,IAEZrM,GAASmN,GACXnN,EAAMvpC,IAAIopB,EAAUwtB,IAIxBc,GAAQE,sBAAwBC,GAAyBH,GAAQhQ,oBAAqBkO,EAAItE,aAC1FwG,EAAyBJ,GAASd,EAAQ,EAAG,EAAGA,EAAOpgB,MAAOogB,EAAOngB,OAAQ,EAAG,EAAGD,EAAOC,GAC1FihB,GAAQ7G,yBAA2B,YAEnC,MAAMkH,EAAUj7B,EAAM7f,KAAKgT,UAAUynC,GAAQC,2BAA4B,CAAC,EAAG,EAAG,EAAG,GAAIhvB,GAAUC,IAEjG8uB,UAAQnH,UAAYmG,EAAgB7K,EAAUmM,WAAWpV,EAAK5rB,KAAM+gC,EAAS1Q,EAAgBgG,SAAS3lC,MAAQmkC,EAC9G6L,GAAQjD,SAAS,EAAG,EAAGje,EAAOC,GAE1B8S,IAAUmN,IACZ1/B,KAAKg8B,eAAetnB,OAAO,cAC3B6d,EAAMvpC,IAAIopB,EAAUquB,GAAW/e,SAG1B,CACLA,OAAQ+e,GAAW/e,OACnB/P,QAAS7nB,KAAK0pC,MAAM7hB,GACpBC,QAAS9nB,KAAK0pC,MAAM5hB,IAIxBrZ,aAAainB,GACPA,IAAUxf,KAAK6tB,QAAQqH,YACzBl1B,KAAKw8B,wBAA0B,MAGjCx8B,KAAK6tB,QAAQqH,UAAY1V,EACzBxf,KAAK4rB,IAAIsJ,UAAY1V,EAGvBhnB,WAAWkrB,GACT1jB,KAAK4rB,IAAI8N,QAAUgB,EAAgBhX,GAGrCjrB,YAAYirB,GACV1jB,KAAK4rB,IAAI+N,SAAWgB,GAAiBjX,GAGvChrB,cAAcuoC,GACZjhC,KAAK4rB,IAAIgO,WAAaqH,EAGxBtoC,QAAQuoC,EAAWC,GACjB,MAAMvV,EAAM5rB,KAAK4rB,SAEOriC,IAApBqiC,EAAIsN,cACNtN,EAAIsN,YAAYgI,GAChBtV,EAAIwN,eAAiB+H,GAIzBvoC,mBAAmBqZ,IAEnBpZ,YAAYuoC,IAEZtoC,UAAUuoC,GACR,QAAS54C,EAAI,EAAG6E,EAAK+zC,EAAO/4C,OAAQG,EAAI6E,EAAI7E,IAAK,CAC/C,MAAM64C,EAAQD,EAAO54C,GAEf1C,EAAQu7C,EAAM,GAEpB,OAHYA,EAAM,IAGV1zC,IACD,KACHoS,KAAKzH,aAAaxS,GAClB,UAEG,KACHia,KAAKxH,WAAWzS,GAChB,UAEG,KACHia,KAAKvH,YAAY1S,GACjB,UAEG,KACHia,KAAKtH,cAAc3S,GACnB,UAEG,IACHia,KAAKrH,QAAQ5S,EAAM,GAAIA,EAAM,IAC7B,UAEG,KACHia,KAAKpH,mBAAmB7S,GACxB,UAEG,KACHia,KAAKnH,YAAY9S,GACjB,UAEG,OACHia,KAAKtF,QAAQ3U,EAAM,GAAIA,EAAM,IAC7B,UAEG,KACHia,KAAK6tB,QAAQoH,YAAcqM,EAAM,GACjC,UAEG,KACHthC,KAAK6tB,QAAQmH,UAAYsM,EAAM,GAC/BthC,KAAK4rB,IAAI6N,YAAc6H,EAAM,GAC7B,UAEG,KACHthC,KAAK4rB,IAAIiO,yBAA2B9zC,EACpC,UAEG,QACHia,KAAK6tB,QAAQsH,YAAcpvC,EAAQia,KAAK47B,UAAY,KACpD57B,KAAK47B,UAAY,KACjB57B,KAAKuhC,kBACL,UAEG,KACHvhC,KAAK6tB,QAAQuH,aAAervC,IAKhCy4C,kBACF,QAASx+B,KAAK67B,aAGhB0F,kBACE,MAAM/C,EAAcx+B,KAAKw+B,YAErBx+B,KAAK6tB,QAAQsH,cAAgBqJ,EAC/Bx+B,KAAKwhC,kBACKxhC,KAAK6tB,QAAQsH,aAAeqJ,GACtCx+B,KAAKyhC,eAITD,iBACE,GAAIxhC,KAAKw+B,YACP,MAAM,IAAI/+B,MAAM,qDAGlB,MAGMiiC,EAAgB1hC,KAAKg8B,eAAexJ,UAD1B,eAAiBxyB,KAAKy7B,WAFnBz7B,KAAK4rB,IAAIlK,OAAOlC,MACfxf,KAAK4rB,IAAIlK,OAAOjC,QAEkD,GACtFzf,KAAK67B,aAAe77B,KAAK4rB,IACzB5rB,KAAK4rB,IAAM8V,EAAczY,QACzB,MAAM2C,EAAM5rB,KAAK4rB,IACjBA,EAAIuF,aAAaxnC,MAAMiiC,EAAK5rB,KAAK67B,aAAanL,qBAC9CiR,EAAa3hC,KAAK67B,aAAcjQ,GAr9CpC,WAAiCA,EAAKmN,GACpC,GAAInN,EAAIgW,iBACN,MAAM,IAAIniC,MAAM,6CAGlBmsB,EAAIiW,eAAiBjW,EAAI7yB,KACzB6yB,EAAIkW,kBAAoBlW,EAAI5yB,QAC5B4yB,EAAImW,iBAAmBnW,EAAIva,OAC3Bua,EAAIoW,gBAAkBpW,EAAIna,MAC1Bma,EAAIqW,oBAAsBrW,EAAIoF,UAC9BpF,EAAIsW,oBAAsBtW,EAAI3yB,UAC9B2yB,EAAIuW,uBAAyBvW,EAAIuF,aACjCvF,EAAIwW,yBAA2BxW,EAAIyF,eACnCzF,EAAIyW,eAAiBzW,EAAI1xB,KACzB0xB,EAAI0W,iBAAmB1W,EAAI1yB,OAC3B0yB,EAAI2W,iBAAmB3W,EAAIzyB,OAC3ByyB,EAAI4W,wBAA0B5W,EAAI6W,cAClC7W,EAAI8W,eAAiB9W,EAAIlpB,KACzBkpB,EAAI+W,oBAAsB/W,EAAIryB,UAC9BqyB,EAAIgX,oBAAsBhX,EAAIiX,UAE9BjX,EAAIgW,iBAAmB,KACrBhW,EAAI7yB,KAAO6yB,EAAIiW,eACfjW,EAAI5yB,QAAU4yB,EAAIkW,kBAClBlW,EAAIva,OAASua,EAAImW,iBACjBnW,EAAIna,MAAQma,EAAIoW,gBAChBpW,EAAIoF,UAAYpF,EAAIqW,oBACpBrW,EAAI3yB,UAAY2yB,EAAIsW,oBACpBtW,EAAIuF,aAAevF,EAAIuW,uBACvBvW,EAAIyF,eAAiBzF,EAAIwW,yBACzBxW,EAAI1xB,KAAO0xB,EAAIyW,eACfzW,EAAI1yB,OAAS0yB,EAAI0W,iBACjB1W,EAAIzyB,OAASyyB,EAAI2W,iBACjB3W,EAAI6W,cAAgB7W,EAAI4W,wBACxB5W,EAAIlpB,KAAOkpB,EAAI8W,eACf9W,EAAIryB,UAAYqyB,EAAI+W,oBACpB/W,EAAIiX,UAAYjX,EAAIgX,2BACbhX,EAAIgW,kBAGbhW,EAAI7yB,KAAO,WACTggC,EAAQhgC,OAERiH,KAAK6hC,kBAGPjW,EAAI5yB,QAAU,WACZ+/B,EAAQ//B,UAERgH,KAAK8hC,qBAGPlW,EAAIoF,UAAY,SAAsB7J,EAAGC,GACvC2R,EAAQ/H,UAAU7J,EAAGC,GAErBpnB,KAAKiiC,oBAAoB9a,EAAGC,IAG9BwE,EAAIna,MAAQ,SAAkB0V,EAAGC,GAC/B2R,EAAQtnB,MAAM0V,EAAGC,GAEjBpnB,KAAKgiC,gBAAgB7a,EAAGC,IAG1BwE,EAAI3yB,UAAY,SAAsBoJ,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GACnDmH,EAAQ9/B,UAAUoJ,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAEjC5xB,KAAKkiC,oBAAoB7/B,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,IAG1ChG,EAAIuF,aAAe,SAAyB9uB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GACzDmH,EAAQ5H,aAAa9uB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAEpC5xB,KAAKmiC,uBAAuB9/B,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,IAG7ChG,EAAIyF,eAAiB,WACnB0H,EAAQ1H,iBAERrxB,KAAKoiC,4BAGPxW,EAAIva,OAAS,SAAmB6gB,GAC9B6G,EAAQ1nB,OAAO6gB,GAEflyB,KAAK+hC,iBAAiB7P,IAGxBtG,EAAI1xB,KAAO,SAAmB2vB,GAC5BkP,EAAQ7+B,KAAK2vB,GAEb7pB,KAAKqiC,eAAexY,IAGtB+B,EAAI1yB,OAAS,SAAUiuB,EAAGC,GACxB2R,EAAQ7/B,OAAOiuB,EAAGC,GAElBpnB,KAAKsiC,iBAAiBnb,EAAGC,IAG3BwE,EAAIzyB,OAAS,SAAUguB,EAAGC,GACxB2R,EAAQ5/B,OAAOguB,EAAGC,GAElBpnB,KAAKuiC,iBAAiBpb,EAAGC,IAG3BwE,EAAI6W,cAAgB,SAAUK,EAAMC,EAAMC,EAAMC,EAAM9b,EAAGC,GACvD2R,EAAQ0J,cAAcK,EAAMC,EAAMC,EAAMC,EAAM9b,EAAGC,GAEjDpnB,KAAKwiC,wBAAwBM,EAAMC,EAAMC,EAAMC,EAAM9b,EAAGC,IAG1DwE,EAAIlpB,KAAO,SAAUykB,EAAGC,EAAG5H,EAAOC,GAChCsZ,EAAQr2B,KAAKykB,EAAGC,EAAG5H,EAAOC,GAE1Bzf,KAAK0iC,eAAevb,EAAGC,EAAG5H,EAAOC,IAGnCmM,EAAIryB,UAAY,WACdw/B,EAAQx/B,YAERyG,KAAK2iC,uBAGP/W,EAAIiX,UAAY,WACd9J,EAAQ8J,YAER7iC,KAAK4iC,uBAu1CLM,CAAwBtX,EAAK5rB,KAAK67B,cAClC77B,KAAKlH,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KAG3D2oC,eACE,IAAKzhC,KAAKw+B,YACR,MAAM,IAAI/+B,MAAM,+CAGlBO,KAAK4rB,IAAIgW,mBAETD,EAAa3hC,KAAK4rB,IAAK5rB,KAAK67B,cAC5B77B,KAAK4rB,IAAM5rB,KAAK67B,aAChB77B,KAAK67B,aAAe,KAGtBsH,QAAQC,GACDpjC,KAAK6tB,QAAQsH,cAIbiO,GAGHA,EAAS,GAAKt5C,KAAKu5C,MAAMD,EAAS,IAClCA,EAAS,GAAKt5C,KAAKu5C,MAAMD,EAAS,IAClCA,EAAS,GAAKt5C,KAAKy1C,KAAK6D,EAAS,IACjCA,EAAS,GAAKt5C,KAAKy1C,KAAK6D,EAAS,KALjCA,EAAW,CAAC,EAAG,EAAGpjC,KAAK4rB,IAAIlK,OAAOlC,MAAOxf,KAAK4rB,IAAIlK,OAAOjC,QA1hB/D,WAAsBmM,EAAKvtB,EAAOilC,EAAUC,GAC1C,MAAMC,EAAeD,EAAS,GACxBE,EAAeF,EAAS,GACxBG,EAAaH,EAAS,GAAKC,EAC3BG,EAAcJ,EAAS,GAAKE,EAEf,IAAfC,GAAoC,IAAhBC,IApC1B,WAA6BC,EAASN,EAAU9jB,EAAOC,EAAQokB,EAASC,EAAUzJ,EAAamJ,EAAcC,EAAcM,EAAaC,GACtI,MAAMC,IAAgBH,EAChBhK,EAAKmK,EAAcH,EAAS,GAAK,EACjC/J,GAAKkK,EAAcH,EAAS,GAAK,EACjC9J,GAAKiK,EAAcH,EAAS,GAAK,EACvC,IAAII,GAGFA,GADc,eAAZL,EACUM,EAEAC,EAId,MAAMC,GAAYv6C,KAAKC,IAAI01B,EAAQ31B,KAAKy1C,KAAK+E,QAAoB9kB,IAEjE,QAAS+kB,GAAM,EAAGA,GAAM9kB,EAAQ8kB,IAAOF,GAAW,CAChD,MAAMG,GAAc16C,KAAKC,IAAIs6C,GAAW5kB,EAAS8kB,IAC3CpK,EAAWyJ,EAAQ9W,aAAa0W,EAAeO,EAAaQ,IAAOd,EAAeO,GAAcxkB,EAAOglB,IACvGpK,EAAYkJ,EAASxW,aAAa0W,EAAce,GAAMd,EAAcjkB,EAAOglB,IAE7EP,GACFQ,EAAqBtK,EAASxxC,KAAMmxC,EAAIC,GAAIC,IAG9CkK,GAAU/J,EAASxxC,KAAMyxC,EAAUzxC,KAAM0xC,GACzCiJ,EAAStM,aAAaoD,EAAWoJ,EAAce,GAAMd,IAcvDiB,CAAoBrmC,EAAM4qB,QAASqa,EAAUI,EAAYC,EAAatlC,EAAMwlC,QAASxlC,EAAMylC,SAAUzlC,EAAMg8B,YAAamJ,EAAcC,EAAcplC,EAAMsT,QAAStT,EAAMuT,SACzKga,EAAI7yB,OACJ6yB,EAAI6N,YAAc,EAClB7N,EAAIiO,yBAA2B,cAC/BjO,EAAIuF,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCvF,EAAIiI,UAAUyP,EAAS5hB,OAAQ,EAAG,GAClCkK,EAAI5yB,WAohBF2rC,CADqB3kC,KAAK67B,aADZ77B,KAAK6tB,QAAQsH,YAEOn1B,KAAK4rB,IAAKwX,GAC5CpjC,KAAK4rB,IAAI7yB,OACTiH,KAAK4rB,IAAIuF,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrCnxB,KAAK4rB,IAAI4T,UAAU,EAAG,EAAGx/B,KAAK4rB,IAAIlK,OAAOlC,MAAOxf,KAAK4rB,IAAIlK,OAAOjC,QAChEzf,KAAK4rB,IAAI5yB,WAGXD,OACMiH,KAAKw+B,aACPmD,EAAa3hC,KAAK4rB,IAAK5rB,KAAK67B,cAC5B77B,KAAK67B,aAAa9iC,QAElBiH,KAAK4rB,IAAI7yB,OAGX,MAAMg5B,EAAM/xB,KAAK6tB,QACjB7tB,KAAKg7B,WAAW9wC,KAAK6nC,GACrB/xB,KAAK6tB,QAAUkE,EAAI9K,QAGrBjuB,UACiC,IAA3BgH,KAAKg7B,WAAW1yC,QAAgB0X,KAAKw+B,aACvCx+B,KAAKyhC,eAGwB,IAA3BzhC,KAAKg7B,WAAW1yC,SAClB0X,KAAK6tB,QAAU7tB,KAAKg7B,WAAW/I,MAE/BjyB,KAASw+B,aACPx+B,KAAK67B,aAAa7iC,UAClB2oC,EAAa3hC,KAAK67B,aAAc77B,KAAK4rB,MAErC5rB,KAAK4rB,IAAI5yB,UAGXgH,KAAKuhC,kBACLvhC,KAAKi7B,YAAc,KACnBj7B,KAAKw8B,wBAA0B,KAC/Bx8B,KAAKy8B,2BAA6B,MAItCxjC,UAAUoJ,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GACvB5xB,KAAK4rB,IAAI3yB,UAAUoJ,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAClC5xB,KAAKw8B,wBAA0B,KAC/Bx8B,KAAKy8B,2BAA6B,KAGpCz+B,cAAc4mC,EAAK9W,EAAMzsB,GACvB,MAAMuqB,EAAM5rB,KAAK4rB,IACXiC,EAAU7tB,KAAK6tB,QACrB,IAEIgX,EAAQC,EAFR3d,EAAI0G,EAAQ1G,EACZC,EAAIyG,EAAQzG,EAEhB,MAAMuY,EAAmB/T,EAAI8E,oBACvBqU,EAA0C,IAAxBpF,EAAiB,IAAoC,IAAxBA,EAAiB,IAAoC,IAAxBA,EAAiB,IAAoC,IAAxBA,EAAiB,GAC1HqF,EAAkBD,EAAkB1jC,EAAOW,MAAM,GAAK,KAE5D,QAASvZ,GAAI,EAAG2b,GAAI,EAAG9W,GAAKs3C,EAAIt8C,OAAQG,GAAI6E,GAAI7E,KAC9C,OAAiB,EAATm8C,EAAIn8C,KAAK,KACVqd,EAAMlf,IAAI4S,UACb2tB,EAAI2G,EAAK1pB,MACTgjB,EAAI0G,EAAK1pB,MACT,MAAMob,GAAQsO,EAAK1pB,MACbqb,GAASqO,EAAK1pB,MACd6gC,GAAK9d,EAAI3H,GACT0lB,GAAK9d,EAAI3H,GACfmM,EAAI1yB,OAAOiuB,EAAGC,GAEA,IAAd+d,IAA8B,IAAX1lB,GACjBmM,EAAIzyB,OAAO8rC,GAAIC,KAEftZ,EAAIzyB,OAAO8rC,GAAI7d,GACfwE,EAAIzyB,OAAO8rC,GAAIC,IACftZ,EAAIzyB,OAAOguB,EAAG+d,KAGXH,GACHlX,EAAQgI,iBAAiB8J,EAAkB,CAACxY,EAAGC,EAAG6d,GAAIC,KAGxDtZ,EAAIryB,YACJ,WAEGuM,EAAMlf,IAAIsS,OACbiuB,EAAI2G,EAAK1pB,MACTgjB,EAAI0G,EAAK1pB,MACTwnB,EAAI1yB,OAAOiuB,EAAGC,GAET2d,GACHlX,EAAQ2H,iBAAiBmK,EAAkBxY,EAAGC,GAGhD,WAEGthB,EAAMlf,IAAIuS,OACbguB,EAAI2G,EAAK1pB,MACTgjB,EAAI0G,EAAK1pB,MACTwnB,EAAIzyB,OAAOguB,EAAGC,GAET2d,GACHlX,EAAQ2H,iBAAiBmK,EAAkBxY,EAAGC,GAGhD,WAEGthB,EAAMlf,IAAIwS,QACbyrC,EAAS1d,EACT2d,EAAS1d,EACTD,EAAI2G,EAAK1pB,GAAI,GACbgjB,EAAI0G,EAAK1pB,GAAI,GACbwnB,EAAI6W,cAAc3U,EAAK1pB,IAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI+iB,EAAGC,GACrEyG,EAAQmI,sBAAsB2J,EAAkBkF,EAAQC,EAAQhX,EAAK1pB,IAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI+iB,EAAGC,EAAG4d,GACtH5gC,IAAK,EACL,WAEG0B,EAAMlf,IAAIyS,SACbwrC,EAAS1d,EACT2d,EAAS1d,EACTwE,EAAI6W,cAActb,EAAGC,EAAG0G,EAAK1pB,IAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,IACpEypB,EAAQmI,sBAAsB2J,EAAkBkF,EAAQC,EAAQ3d,EAAGC,EAAG0G,EAAK1pB,IAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI0pB,EAAK1pB,GAAI,GAAI4gC,GACtH7d,EAAI2G,EAAK1pB,GAAI,GACbgjB,EAAI0G,EAAK1pB,GAAI,GACbA,IAAK,EACL,WAEG0B,EAAMlf,IAAI0S,SACburC,EAAS1d,EACT2d,EAAS1d,EACTD,EAAI2G,EAAK1pB,GAAI,GACbgjB,EAAI0G,EAAK1pB,GAAI,GACbwnB,EAAI6W,cAAc3U,EAAK1pB,IAAI0pB,EAAK1pB,GAAI,GAAI+iB,EAAGC,EAAGD,EAAGC,GACjDyG,EAAQmI,sBAAsB2J,EAAkBkF,EAAQC,EAAQhX,EAAK1pB,IAAI0pB,EAAK1pB,GAAI,GAAI+iB,EAAGC,EAAGD,EAAGC,EAAG4d,GAClG5gC,IAAK,EACL,WAEG0B,EAAMlf,IAAI2S,UACbqyB,EAAIryB,YAKNwrC,GACFlX,EAAQiI,wBAAwB6J,EAAkBqF,GAGpDnX,EAAQ0H,gBAAgBpO,EAAGC,GAG7B7tB,YACEyG,KAAK4rB,IAAIryB,YAGXE,OAAO2rC,GACLA,WAAqBA,EAAgB,MAAcA,EACnD,MAAMxZ,EAAM5rB,KAAK4rB,IACXkJ,EAAc90B,KAAK6tB,QAAQiH,YACjClJ,EAAI6N,YAAcz5B,KAAK6tB,QAAQoH,YAE3Bj1B,KAAK87B,iBACoB,iBAAhBhH,GAA4BA,GAAakM,YAClDpV,EAAI7yB,OACJ6yB,EAAI0N,YAAcxE,EAAYkM,WAAWpV,EAAK5rB,KAAM4rB,EAAI+U,2BAA4BtQ,EAAgBgG,SAAS1lC,QAC7GqP,KAAKqlC,kBAAiB,GACtBzZ,EAAI5yB,WAEJgH,KAAKqlC,kBAAiB,IAItBD,GACFplC,KAAKolC,YAAYplC,KAAK6tB,QAAQgJ,6BAGhCjL,EAAI6N,YAAcz5B,KAAK6tB,QAAQmH,UAGjCt7B,cACEsG,KAAKzG,YACLyG,KAAKvG,SAGPE,KAAKyrC,GACHA,WAAqBA,EAAgB,MAAcA,EACnD,MAAMxZ,EAAM5rB,KAAK4rB,IACXiJ,EAAY70B,KAAK6tB,QAAQgH,UAE/B,IAAIyQ,GAAc,EADItlC,KAAK6tB,QAAQkH,cAIjCnJ,EAAI7yB,OACJ6yB,EAAI2N,UAAY1E,EAAUmM,WAAWpV,EAAK5rB,KAAM4rB,EAAI+U,2BAA4BtQ,EAAgBgG,SAAS3lC,MACzG40C,GAAc,GAGhB,MAAM5O,EAAY12B,KAAK6tB,QAAQgJ,4BAE3B72B,KAAK87B,gBAAgC,OAAdpF,IACrB12B,KAAKk7B,eACPtP,EAAIjyB,KAAK,WACTqG,KAAKk7B,eAAgB,GAErBtP,EAAIjyB,QAIJ2rC,GACF1Z,EAAI5yB,UAGFosC,GACFplC,KAAKolC,YAAY1O,GAIrB98B,SACEoG,KAAKk7B,eAAgB,EACrBl7B,KAAKrG,OAGPE,aACEmG,KAAKrG,MAAK,GACVqG,KAAKvG,QAAO,GACZuG,KAAKolC,cAGPtrC,eACEkG,KAAKk7B,eAAgB,EACrBl7B,KAAKnG,aAGPE,kBACEiG,KAAKzG,YACLyG,KAAKnG,aAGPG,oBACEgG,KAAKk7B,eAAgB,EACrBl7B,KAAKzG,YACLyG,KAAKnG,aAGPI,UACE+F,KAAKolC,cAGPlrC,OACE8F,KAAKi7B,YAAcL,GAGrBzgC,SACE6F,KAAKi7B,YAAcJ,GAGrBzgC,YACE4F,KAAK6tB,QAAQqG,WAAapuB,EAAM9e,gBAChCgZ,KAAK6tB,QAAQsG,gBAAkB,EAC/Bn0B,KAAK6tB,QAAQ1G,EAAInnB,KAAK6tB,QAAQyG,MAAQ,EACtCt0B,KAAK6tB,QAAQzG,EAAIpnB,KAAK6tB,QAAQ0G,MAAQ,EAGxCl6B,UACE,MAAMkrC,EAAQvlC,KAAKwlC,iBACb5Z,EAAM5rB,KAAK4rB,IAEjB,QAAcriC,IAAVg8C,EAAJ,CAKA3Z,EAAI7yB,OACJ6yB,EAAIiX,YAEJ,QAASp6C,EAAI,EAAGA,EAAI88C,EAAMj9C,OAAQG,IAAK,CACrC,MAAMg9C,EAAOF,EAAM98C,GACnBmjC,EAAIuF,aAAaxnC,MAAMiiC,EAAK6Z,EAAKxsC,WACjC2yB,EAAIoF,UAAUyU,EAAKte,EAAGse,EAAKre,GAC3Bqe,EAAKC,UAAU9Z,EAAK6Z,EAAKzR,UAG3BpI,EAAI5yB,UACJ4yB,EAAI1xB,OACJ0xB,EAAIiX,mBACG7iC,KAAKwlC,sBAjBV5Z,EAAIiX,YAoBRvoC,eAAeqrC,GACb3lC,KAAK6tB,QAAQ2G,YAAcmR,EAG7BprC,eAAeorC,GACb3lC,KAAK6tB,QAAQ4G,YAAckR,EAG7BnrC,UAAUiX,GACRzR,KAAK6tB,QAAQ6G,WAAajjB,EAAQ,IAGpChX,WAAW45B,GACTr0B,KAAK6tB,QAAQwG,SAAWA,EAG1B35B,QAAQkrC,EAAa71B,GACnB,MAAM81B,EAAU7lC,KAAK2Q,WAAWnmB,IAAIo7C,GAC9B/X,EAAU7tB,KAAK6tB,QAErB,IAAKgY,EACH,MAAM,IAAIpmC,MAAO,uBAAsBmmC,KAmBzC,GAhBA/X,EAAQuG,WAAayR,EAAQzR,YAActuB,EAAM1e,sBAEnB,IAA1BymC,EAAQuG,WAAW,IAAsC,IAA1BvG,EAAQuG,WAAW,MACnD,EAAGtuB,EAAMjX,MAAM,gCAAkC+2C,GAGpDhU,EAAW,GACT7hB,GAAQA,EACR8d,EAAQiY,eAAgB,GAExBjY,EAAQiY,cAAgB,EAG1B9lC,KAAK6tB,QAAQtvB,KAAOsnC,EACpB7lC,KAAK6tB,QAAQmG,SAAWjkB,EAEpB81B,EAAQE,YACV,OAIF,IAAIC,EAAO,SAEPH,EAAQxN,MACV2N,EAAO,MACEH,EAAQG,OACjBA,EAAO,QAGT,MAAMC,EAASJ,EAAQI,OAAS,SAAW,SACrCC,EAAY,IAVLL,EAAQzZ,YAAc,kBAUJyZ,EAAQM,eACvC,IAAIC,EAAkBr2B,EAElBA,EAv1Dc,GAw1DhBq2B,EAx1DgB,GAy1DPr2B,EAx1DO,MAy1DhBq2B,EAz1DgB,KA41DlBpmC,KAAK6tB,QAAQoG,cAAgBlkB,EAAOq2B,EACpCpmC,KAAK4rB,IAAIrtB,KAAQ,GAAE0nC,KAAUD,KAAQI,OAAqBF,IAG5DvrC,qBAAqB0rC,GACnBrmC,KAAK6tB,QAAQ8G,kBAAoB0R,EAGnCzrC,YAAY0rC,GACVtmC,KAAK6tB,QAAQ+G,SAAW0R,EAG1BzrC,SAASssB,EAAGC,GACVpnB,KAAK6tB,QAAQ1G,EAAInnB,KAAK6tB,QAAQyG,OAASnN,EACvCnnB,KAAK6tB,QAAQzG,EAAIpnB,KAAK6tB,QAAQ0G,OAASnN,EAGzCtsB,mBAAmBqsB,EAAGC,GACpBpnB,KAAKvF,YAAY2sB,GACjBpnB,KAAKnF,SAASssB,EAAGC,GAGnBrsB,cAAcsH,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAC3B5xB,KAAK6tB,QAAQqG,WAAa,CAAC7xB,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAC1C5xB,KAAK6tB,QAAQsG,gBAAkBrqC,KAAKgqC,MAAMzxB,EAAGjB,GAC7CpB,KAAK6tB,QAAQ1G,EAAInnB,KAAK6tB,QAAQyG,MAAQ,EACtCt0B,KAAK6tB,QAAQzG,EAAIpnB,KAAK6tB,QAAQ0G,MAAQ,EAGxCv5B,WACEgF,KAAKnF,SAAS,EAAGmF,KAAK6tB,QAAQwG,SAGhCkS,UAAU7Y,EAAWvG,EAAGC,EAAGof,GACzB,MAAM5a,EAAM5rB,KAAK4rB,IACXiC,EAAU7tB,KAAK6tB,QACftvB,EAAOsvB,EAAQtvB,KACfo2B,EAAoB9G,EAAQ8G,kBAC5BX,EAAWnG,EAAQmG,SAAWnG,EAAQoG,cACtCwS,EAAiB9R,EAAoB7uB,EAAMzf,kBAAkB6K,iBAC7Dw1C,KAAoB/R,EAAoB7uB,EAAMzf,kBAAkB8K,kBAChE4jC,EAAclH,EAAQkH,cAAgBx2B,EAAK4rB,YACjD,IAAIub,IAEAnnC,EAAKuK,iBAAmB49B,GAAkB3R,KAC5C2Q,GAAYnnC,EAAKkvB,iBAAiBztB,KAAK2Q,WAAY+c,IAGrDiZ,EAAS79B,iBAAmBisB,GAC1BnJ,EAAI7yB,OACJ6yB,EAAIoF,UAAU7J,EAAGC,GACjBwE,EAAIiX,YACJ6C,GAAU9Z,EAAKoI,GAEXwS,GACF5a,EAAIuF,aAAaxnC,MAAMiiC,EAAK4a,IAG1BC,IAAmB3gC,EAAMzf,kBAAkBqK,MAAQ+1C,IAAmB3gC,EAAMzf,kBAAkBuK,cAChGg7B,EAAIjyB,QAGF8sC,IAAmB3gC,EAAMzf,kBAAkBsK,QAAU81C,IAAmB3gC,EAAMzf,kBAAkBuK,cAClGg7B,EAAInyB,SAGNmyB,EAAI5yB,aAEAytC,IAAmB3gC,EAAMzf,kBAAkBqK,MAAQ+1C,IAAmB3gC,EAAMzf,kBAAkBuK,cAChGg7B,EAAIiB,SAASa,EAAWvG,EAAGC,IAGzBqf,IAAmB3gC,EAAMzf,kBAAkBsK,QAAU81C,IAAmB3gC,EAAMzf,kBAAkBuK,cAClGg7B,EAAIgb,WAAWlZ,EAAWvG,EAAGC,IAI7Bsf,IACY1mC,KAAKwlC,mBAAqBxlC,KAAKwlC,iBAAmB,KAC1Dt7C,KAAK,CACT+O,UAAW2yB,EAAI8E,oBACfvJ,IACAC,IACA4M,WACA0R,eAKFmB,8BACF,MACE5d,QAAS2C,GACP5rB,KAAKg8B,eAAexJ,UAAU,0BAA2B,GAAI,IAAI,GACrE5G,EAAIna,MAAM,IAAK,GACfma,EAAIiB,SAAS,IAAK,EAAG,IACrB,MAAMlkC,EAAOijC,EAAIkB,aAAa,EAAG,EAAG,GAAI,IAAInkC,KAC5C,IAAIq2B,GAAU,EAEd,QAASv2B,EAAI,EAAGA,EAAIE,EAAKL,OAAQG,GAAK,EACpC,GAAIE,EAAKF,GAAK,GAAKE,EAAKF,GAAK,IAAK,CAChCu2B,GAAU,EACV,MAIJ,OAAQ,EAAGlZ,EAAM3X,QAAQ6R,KAAM,0BAA2Bgf,GAG5D/jB,SAAS6rC,GACP,MAAMjZ,EAAU7tB,KAAK6tB,QACftvB,EAAOsvB,EAAQtvB,KAErB,GAAIA,EAAKwnC,YACP,OAAO/lC,KAAK+mC,cAAcD,GAG5B,MAAM9S,EAAWnG,EAAQmG,SAEzB,GAAiB,IAAbA,EACF,OAGF,MAAMpI,EAAM5rB,KAAK4rB,IACXqI,EAAgBpG,EAAQoG,cACxBO,EAAc3G,EAAQ2G,YACtBC,EAAc5G,EAAQ4G,YACtBqR,EAAgBjY,EAAQiY,cACxBpR,EAAa7G,EAAQ6G,WAAaoR,EAClCkB,EAAeF,EAAOx+C,OACtB2+C,EAAW1oC,EAAK0oC,SAChBC,GAAaD,EAAW,GAAI,EAC5BE,GAAkB5oC,EAAK4oC,gBACvBC,GAAoBpT,EAAWnG,EAAQuG,WAAW,GAClDiT,GAAiBxZ,EAAQ8G,oBAAsB7uB,EAAMzf,kBAAkBqK,OAAS6N,EAAKuK,kBAAoB+kB,EAAQkH,YAWvH,IAAIyR,GAEJ,GAZA5a,EAAI7yB,OACJ6yB,EAAI3yB,UAAUtP,MAAMiiC,EAAKiC,EAAQqG,YACjCtI,EAAIoF,UAAUnD,EAAQ1G,EAAG0G,EAAQzG,EAAIyG,EAAQ+G,UAG3ChJ,EAAIna,MAAMijB,EADZ4S,EAAoB,GACI,EAEA,GAKpBzZ,EAAQkH,YAAa,CACvBnJ,EAAI7yB,OACJ,MAAMwuC,EAAU1Z,EAAQgH,UAAUmM,WAAWpV,EAAK5rB,KAAM4rB,EAAI+U,2BAA4BtQ,EAAgBgG,SAAS3lC,MACjH81C,GAAmB5a,EAAI8E,oBACvB9E,EAAI5yB,UACJ4yB,EAAI2N,UAAYgO,EAGlB,IAAIrS,GAAYrH,EAAQqH,UACxB,MAAMzjB,GAAQoc,EAAQsG,gBAEtB,GAAc,IAAV1iB,IAA6B,IAAdyjB,GAAiB,CAClC,MAAMuR,EAAiB5Y,EAAQ8G,kBAAoB7uB,EAAMzf,kBAAkB6K,kBAEvEu1C,IAAmB3gC,EAAMzf,kBAAkBsK,QAAU81C,IAAmB3gC,EAAMzf,kBAAkBuK,eAClGskC,GAAYl1B,KAAKwnC,4BAGnBtS,IAAazjB,GAGO,IAAlBwiB,IACFrI,EAAIna,MAAMwiB,EAAeA,GACzBiB,IAAajB,GAGfrI,EAAIsJ,UAAYA,GAChB,IACIzsC,EADA0+B,EAAI,EAGR,IAAK1+B,EAAI,EAAGA,EAAIu+C,IAAgBv+C,EAAG,CACjC,MAAMg/C,EAAQX,EAAOr+C,GAErB,GAAqB,iBAAVg/C,EAAoB,CAC7BtgB,GAAK+f,GAAaO,EAAQzT,EAAW,IACrC,SAGF,IAAI0T,IAAgB,EACpB,MAAM/B,IAAW8B,EAAME,QAAUlT,EAAc,GAAKD,EAC9C9G,GAAY+Z,EAAMG,SAClBC,GAASJ,EAAMI,OACrB,IAAIC,GAASC,GA2CTC,GA1CAxoB,GAAQioB,EAAMjoB,MAElB,GAAIynB,EAAU,CACZ,MAAMgB,GAAUR,EAAMQ,SAAWd,GAC3Be,IAAOT,EAAMQ,QAAUA,GAAQ,GAAa,GAARzoB,IAAe4nB,GAEzD5nB,GAAQyoB,IAAWA,GAAQ,GAAKzoB,GAChCsoB,GAAUI,EAAKjU,EACf8T,IAAW5gB,EAHA8gB,GAAQ,GAAKb,IAGHnT,OAErB6T,GAAU3gB,EAAI8M,EACd8T,GAAU,EAGZ,GAAIxpC,EAAK4pC,WAAa3oB,GAAQ,EAAG,CAC/B,MAAM4oB,GAAmD,IAAnCxc,EAAIyc,YAAY3a,IAAWlO,MAAewU,EAAWC,EAE3E,GAAIzU,GAAQ4oB,IAAiBpoC,KAAK6mC,wBAAyB,CACzD,MAAMyB,EAAkB9oB,GAAQ4oB,GAChCV,IAAgB,EAChB9b,EAAI7yB,OACJ6yB,EAAIna,MAAM62B,EAAiB,GAC3BR,IAAWQ,OACF9oB,KAAU4oB,KACnBN,KAAYtoB,GAAQ4oB,IAAiB,IAAOpU,EAAWC,GAIvDj0B,KAAK87B,iBAAmB2L,EAAMc,UAAYhqC,EAAK4rB,eAC7Ckd,KAAmBQ,GACrBjc,EAAIiB,SAASa,GAAWoa,GAASC,KAEjC/nC,KAAKumC,UAAU7Y,GAAWoa,GAASC,GAASvB,IAExCqB,IAGF7nC,KAAKumC,UAAUsB,GAAOD,SAFAE,GAAU9T,EAAW6T,GAAOpc,OAAOtE,EAAI8M,EACvC8T,GAAU/T,EAAW6T,GAAOpc,OAAOrE,EAAI6M,EACCuS,MAQlEwB,GADEf,EACUznB,GAAQ4nB,GAAoBzB,GAAUG,EAEtCtmB,GAAQ4nB,GAAoBzB,GAAUG,EAGpD3e,GAAK6gB,GAEDN,IACF9b,EAAI5yB,UAIJiuC,EACFpZ,EAAQzG,GAAKD,EAEb0G,EAAQ1G,GAAKA,EAAIuN,EAGnB9I,EAAI5yB,UACJgH,KAAKmjC,UAIP4D,cAAcD,GACZ,MAAMlb,EAAM5rB,KAAK4rB,IACXiC,EAAU7tB,KAAK6tB,QACftvB,EAAOsvB,EAAQtvB,KACfy1B,EAAWnG,EAAQmG,SACnB8R,EAAgBjY,EAAQiY,cACxBoB,EAAa3oC,EAAK0oC,SAAW,GAAI,EACjCzS,EAAc3G,EAAQ2G,YACtBC,EAAc5G,EAAQ4G,YACtBC,EAAa7G,EAAQ6G,WAAaoR,EAClC1R,EAAavG,EAAQuG,YAActuB,EAAM1e,qBACzC4/C,EAAeF,EAAOx+C,OAE5B,IAAIG,GAAGg/C,GAAOjoB,GAAOgpB,GAErB,GAHwB3a,EAAQ8G,oBAAsB7uB,EAAMzf,kBAAkBwK,WAG1C,IAAbmjC,EAWvB,KAPAh0B,KAAKw8B,wBAA0B,KAC/Bx8B,KAAKy8B,2BAA6B,KAClC7Q,EAAI7yB,OACJ6yB,EAAI3yB,UAAUtP,MAAMiiC,EAAKiC,EAAQqG,YACjCtI,EAAIoF,UAAUnD,EAAQ1G,EAAG0G,EAAQzG,GACjCwE,EAAIna,MAAMijB,EAAYoR,GAEjBr9C,GAAI,EAAGA,GAAIu+C,IAAgBv+C,GAAG,CAGjC,GAFAg/C,GAAQX,EAAOr+C,IAEM,iBAAVg/C,GAAoB,CAC7Be,GAAgBtB,EAAaO,GAAQzT,EAAW,IAChDh0B,KAAK4rB,IAAIoF,UAAUwX,GAAe,GAClC3a,EAAQ1G,GAAKqhB,GAAgB9T,EAC7B,SAGF,MAAMiR,IAAW8B,GAAME,QAAUlT,EAAc,GAAKD,EAC9CtgB,GAAe3V,EAAKkqC,qBAAqBhB,GAAMiB,gBAEhDx0B,IAKDlU,KAAK87B,iBACP97B,KAAKs7B,gBAAkBmM,GACvBznC,KAAKjH,OACL6yB,EAAIna,MAAMuiB,EAAUA,GACpBpI,EAAI3yB,UAAUtP,MAAMiiC,EAAKwI,GACzBp0B,KAAKsiB,oBAAoBpO,IACzBlU,KAAKhH,WAKPwmB,GAAQmpB,EAFkB1iD,KAAK6b,eAAe,CAAC2lC,GAAMjoB,MAAO,GAAI4U,GAE5C,GAAKJ,EAAW2R,GACpC/Z,EAAIoF,UAAUxR,GAAO,GACrBqO,EAAQ1G,GAAK3H,GAAQkV,IAjBlB,EAAG5uB,EAAMjX,MAAO,oBAAmB44C,GAAMiB,qCAoB9C9c,EAAI5yB,UACJgH,KAAKs7B,gBAAkB,MAGzBjgC,aAAautC,EAAQC,IAErBvtC,sBAAsBstC,EAAQC,EAAQC,EAAKC,EAAKC,EAAKC,GACnDjpC,KAAK4rB,IAAIlpB,KAAKomC,EAAKC,EAAKC,EAAMF,EAAKG,EAAMF,GACzC/oC,KAAK4rB,IAAI1xB,OACT8F,KAAK/F,UAGPivC,kBAAkBC,GAChB,IAAI5B,EAEJ,GAAc,kBAAV4B,EAAG,GAAwB,CAC7B,MAAMC,EAAQD,EAAG,GACX5N,EAAgBv7B,KAAKu7B,eAAiBv7B,KAAK4rB,IAAI8E,oBAAoB1uB,QAMzEulC,EAAU,IAAIlX,EAAgBgZ,cAAcF,EAAIC,EAAOppC,KAAK4rB,IAL9B,CAC5B0d,qBAAsB1d,GACb,IAAI3J,GAAe2J,EAAK5rB,KAAK2Q,WAAY3Q,KAAK4Q,KAAM5Q,KAAKmT,gBAGoBooB,QAExFgM,EAAUvnC,KAAKupC,YAAYJ,EAAG,GAAIA,EAAG,IAGvC,OAAO5B,EAGT7rC,kBACEsE,KAAK6tB,QAAQiH,YAAc90B,KAAKkpC,kBAAkB11B,WAGpD5X,gBACEoE,KAAK6tB,QAAQgH,UAAY70B,KAAKkpC,kBAAkB11B,WAChDxT,KAAK6tB,QAAQkH,aAAc,EAG7Bh5B,kBAAkBmF,EAAGC,EAAGC,GACtB,MAAMgoC,EAAQppC,KAAKu9B,cAAcr8B,EAAGC,EAAGC,IAAM0E,EAAM7f,KAAKujD,aAAatoC,EAAGC,EAAGC,GAE3EpB,KAAK4rB,IAAI0N,YAAc8P,EACvBppC,KAAK6tB,QAAQiH,YAAcsU,EAG7BptC,gBAAgBkF,EAAGC,EAAGC,GACpB,MAAMgoC,EAAQppC,KAAKu9B,cAAcr8B,EAAGC,EAAGC,IAAM0E,EAAM7f,KAAKujD,aAAatoC,EAAGC,EAAGC,GAE3EpB,KAAK4rB,IAAI2N,UAAY6P,EACrBppC,KAAK6tB,QAAQgH,UAAYuU,EACzBppC,KAAK6tB,QAAQkH,aAAc,EAG7BwU,YAAYjpB,EAAOmpB,EAAS,MAC1B,IAAIlC,EAEJ,OAAIvnC,KAAKk8B,eAAepiB,IAAIwG,GAC1BinB,EAAUvnC,KAAKk8B,eAAe1xC,IAAI81B,IAElCinB,GAAW,EAAGlX,EAAgBqZ,mBAAmB1pC,KAAK4Q,KAAKpmB,IAAI81B,IAC/DtgB,KAAKk8B,eAAelzC,IAAIs3B,EAAOinB,IAG7BkC,IACFlC,EAAQkC,OAASA,GAGZlC,EAGTprC,YAAYmkB,GACV,IAAKtgB,KAAK87B,eACR,OAGF,MAAMlQ,EAAM5rB,KAAK4rB,IACjB5rB,KAAKjH,OAEL,MAAMwuC,EAAUvnC,KAAKupC,YAAYjpB,GAEjCsL,EAAI2N,UAAYgO,EAAQvG,WAAWpV,EAAK5rB,KAAM4rB,EAAI+U,2BAA4BtQ,EAAgBgG,SAASsT,SACvG,MAAMC,EAAMhe,EAAI+U,2BAEhB,GAAIiJ,EAAK,CACP,MAAMloB,EAASkK,EAAIlK,OACblC,EAAQkC,EAAOlC,MACfC,EAASiC,EAAOjC,OAEhBoqB,EAAK/jC,EAAM7f,KAAK6b,eAAe,CAAC,EAAG,GAAI8nC,GAEvCE,EAAKhkC,EAAM7f,KAAK6b,eAAe,CAAC,EAAG2d,GAASmqB,GAE5CG,EAAKjkC,EAAM7f,KAAK6b,eAAe,CAAC0d,EAAO,GAAIoqB,GAE3CI,EAAKlkC,EAAM7f,KAAK6b,eAAe,CAAC0d,EAAOC,GAASmqB,GAEhD3mC,EAAKnZ,KAAKC,IAAI8/C,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtC9mC,GAAKpZ,KAAKC,IAAI8/C,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtC7mC,GAAKrZ,KAAKqY,IAAI0nC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtC5mC,GAAKtZ,KAAKqY,IAAI0nC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IAC5ChqC,KAAK4rB,IAAI6R,SAASx6B,EAAIC,GAAIC,GAAKF,EAAIG,GAAKF,SAExClD,KAAK4rB,IAAI6R,UAAS,MAAO,KAAO,KAAM,MAGxCz9B,KAAKmjC,QAAQnjC,KAAK6tB,QAAQgJ,6BAC1B72B,KAAKhH,UAGPoD,oBACG,EAAG0J,EAAM1c,aAAa,oCAGzBiT,kBACG,EAAGyJ,EAAM1c,aAAa,kCAGzB2T,sBAAsB0sC,EAAQQ,GACvBjqC,KAAK87B,iBAIV97B,KAAKjH,OACLiH,KAAKw7B,mBAAmBtxC,KAAK8V,KAAKu7B,eAE9Bx6B,MAAMmpC,QAAQT,IAA6B,IAAlBA,EAAOnhD,QAClC0X,KAAK/G,UAAUtP,MAAMqW,KAAMypC,GAG7BzpC,KAAKu7B,cAAgBv7B,KAAK4rB,IAAI8E,oBAE1BuZ,KAGFjqC,KAAK4rB,IAAIlpB,KAAKunC,EAAK,GAAIA,EAAK,GAFdA,EAAK,GAAKA,EAAK,GACdA,EAAK,GAAKA,EAAK,IAE9BjqC,KAAK6tB,QAAQgI,iBAAiB71B,KAAK4rB,IAAI8E,oBAAqBuZ,GAC5DjqC,KAAK9F,OACL8F,KAAK/F,WAIT+C,uBACOgD,KAAK87B,iBAIV97B,KAAKhH,UACLgH,KAAKu7B,cAAgBv7B,KAAKw7B,mBAAmBvJ,OAG/Ch1B,WAAWktC,GACT,IAAKnqC,KAAK87B,eACR,OAGF97B,KAAKjH,OAEDiH,KAAKw+B,cACPx+B,KAAKyhC,eACLzhC,KAAK6tB,QAAQsH,YAAc,MAG7B,MAAMiV,EAAapqC,KAAK4rB,IAEnBue,EAAME,WACR,EAAGvkC,EAAMjZ,MAAM,sCAGds9C,EAAMG,WACP,EAAGxkC,EAAMjX,MAAM,kCAGlB,MAAM8wC,EAAmByK,EAAW1Z,oBAMpC,GAJIyZ,EAAMV,QACRW,EAAWnxC,UAAUtP,MAAMygD,EAAYD,EAAMV,SAG1CU,EAAMF,KACT,MAAM,IAAIxqC,MAAM,6BAGlB,IAAIiE,EAASoC,EAAM7f,KAAKskD,2BAA2BJ,EAAMF,KAAMG,EAAW1Z,qBAG1EhtB,EAASoC,EAAM7f,KAAKywC,UAAUhzB,EADT,CAAC,EAAG,EAAG0mC,EAAW1oB,OAAOlC,MAAO4qB,EAAW1oB,OAAOjC,UAChB,CAAC,EAAG,EAAG,EAAG,GACjE,MAAM9N,EAAU7nB,KAAKu5C,MAAM3/B,EAAO,IAC5BkO,EAAU9nB,KAAKu5C,MAAM3/B,EAAO,IAClC,IAAI68B,EAAaz2C,KAAKqY,IAAIrY,KAAKy1C,KAAK77B,EAAO,IAAMiO,EAAS,GACtD6uB,EAAc12C,KAAKqY,IAAIrY,KAAKy1C,KAAK77B,EAAO,IAAMkO,EAAS,GACvD44B,EAAS,EACTC,EAAS,EAETlK,EAAahQ,IACfia,EAASjK,EAAahQ,EACtBgQ,EAAahQ,GAGXiQ,EAAcjQ,IAChBka,EAASjK,EAAcjQ,EACvBiQ,EAAcjQ,GAGhBvwB,KAAK6tB,QAAQwH,uBAAuB,CAAC,EAAG,EAAGkL,EAAYC,IACvD,IAAIkK,EAAU,UAAY1qC,KAAKy7B,WAE3B0O,EAAM9rC,QACRqsC,GAAW,UAAY1qC,KAAK27B,eAAiB,GAG/C,MAAM+F,GAAgB1hC,KAAKg8B,eAAexJ,UAAUkY,EAASnK,EAAYC,GAAa,GAChFmK,GAAWjJ,GAAczY,QAC/B0hB,GAASl5B,MAAM,EAAI+4B,EAAQ,EAAIC,GAC/BE,GAAS3Z,WAAWrf,GAAUC,GAC9B+4B,GAAS1xC,UAAUtP,MAAMghD,GAAUhL,GAEnCiL,EAAUvsC,MACR2B,KAAK07B,WAAWxxC,KAAK,CACnBw3B,OAAQggB,GAAchgB,OACtBuH,QAAS0hB,GACTh5B,UACAC,UACA44B,SACAC,SACA5G,QAASsG,EAAM9rC,MAAMwlC,QACrBC,SAAUqG,EAAM9rC,MAAMylC,SACtBzJ,YAAa8P,EAAM9rC,MAAMg8B,aAAe,KACxCwQ,sBAAuB,QAGzBT,EAAWjZ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACvCiZ,EAAWpZ,UAAUrf,EAASC,GAC9Bw4B,EAAW34B,MAAM+4B,EAAQC,GACzBL,EAAWrxC,QAGb4oC,EAAayI,EAAYO,IACzB3qC,KAAK4rB,IAAM+e,GACX3qC,KAAKlH,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KACzDkH,KAAKq7B,WAAWnxC,KAAKkgD,GACrBpqC,KAAKy7B,aAGPv+B,SAASitC,GACP,IAAKnqC,KAAK87B,eACR,OAGF97B,KAAKy7B,aACL,MAAMkP,EAAW3qC,KAAK4rB,IAChBA,EAAM5rB,KAAKq7B,WAAWpJ,MAI5B,GAHAjyB,KAAK4rB,IAAMA,EACX5rB,KAAK4rB,IAAIgV,uBAAwB,EAE7BuJ,EAAM9rC,MACR2B,KAAK47B,UAAY57B,KAAK07B,WAAWzJ,MACjCjyB,KAAKhH,cACA,CACLgH,KAAK4rB,IAAI5yB,UACT,MAAM8xC,EAAa9qC,KAAK4rB,IAAI8E,oBAC5B1wB,KAAKhH,UACLgH,KAAK4rB,IAAI7yB,OACTiH,KAAK4rB,IAAIuF,aAAaxnC,MAAMqW,KAAK4rB,IAAKkf,GAEtC,MAAM1H,EAAWt9B,EAAM7f,KAAKskD,2BAA2B,CAAC,EAAG,EAAGI,EAASjpB,OAAOlC,MAAOmrB,EAASjpB,OAAOjC,QAASqrB,GAE9G9qC,KAAK4rB,IAAIiI,UAAU8W,EAASjpB,OAAQ,EAAG,GACvC1hB,KAAK4rB,IAAI5yB,UACTgH,KAAKmjC,QAAQC,IAIjBjmC,mBACE6C,KAAKjH,OAEDiH,KAAKu7B,eACPv7B,KAAK4rB,IAAIuF,aAAaxnC,MAAMqW,KAAK4rB,IAAK5rB,KAAKu7B,eAI/Cn+B,iBACE4C,KAAKhH,UAGPqE,gBAAgBkR,EAAI7L,EAAMzJ,EAAWwwC,EAAQsB,GAG3C,GAFA/qC,KAAKjH,OAEDgI,MAAMmpC,QAAQxnC,IAAyB,IAAhBA,EAAKpa,OAAc,CAC5C,MAAMk3B,EAAQ9c,EAAK,GAAKA,EAAK,GACvB+c,EAAS/c,EAAK,GAAKA,EAAK,GAE9B,GAAIqoC,GAAgB/qC,KAAKsT,oBAAqB,EAC5Cra,EAAYA,EAAU+I,SACZ,IAAMU,EAAK,GACrBzJ,EAAU,IAAMyJ,EAAK,IACrBA,EAAOA,EAAKV,SACP,GAAKU,EAAK,GAAK,EACpBA,EAAK,GAAK8c,EACV9c,EAAK,GAAK+c,EAEV,MAAO+qB,EAAQC,GAAU3kC,EAAM7f,KAAKqwC,8BAA8Bt2B,KAAK4rB,IAAI8E,sBAGzEyL,iBACEn8B,KACEgrC,EAAclhD,KAAKy1C,KAAK/f,EAAQxf,KAAKo8B,aAAeD,GACpD8O,EAAenhD,KAAKy1C,KAAK9f,EAASzf,KAAKq8B,aAAeF,GAC5Dn8B,KAAKkrC,iBAAmBlrC,KAAKmT,cAAc7oB,OAAO0gD,EAAaC,GAC/D,MACEvpB,UACAuH,YACEjpB,KAAKkrC,iBACHC,GAA0B,wBAAuBplC,GAAeyc,cAAcoD,mBACpFlE,GAAOgC,MAAMlE,MAAS,QAAOA,SAAa2rB,MAC1CzpB,GAAOgC,MAAMjE,OAAU,QAAOA,SAAc0rB,MAC5CnrC,KAAKsT,oBAAoBtqB,IAAIulB,EAAImT,IACjC1hB,KAAKkrC,iBAAiBE,SAAWprC,KAAK4rB,IACtC5rB,KAAK4rB,IAAM3C,GACXjpB,KAAK4rB,IAAIuF,aAAaqZ,EAAQ,EAAG,GAAIC,EAAQ,EAAGhrB,EAASgrB,GACzD9X,EAA2B3yB,KAAK4rB,KAChCgS,EAAkB59B,KAAK4rB,IAAK5rB,KAAKq5B,sBAEjCuE,EAAkB59B,KAAK4rB,IAAK5rB,KAAKq5B,iBACjCr5B,KAAK4rB,IAAIlpB,KAAKA,EAAK,GAAIA,EAAK,GAAI8c,EAAOC,GACvCzf,KAAK4rB,IAAI1xB,OACT8F,KAAK/F,UAIT+F,KAAK6tB,QAAU,IAAIkN,EAAiB/6B,KAAK4rB,IAAIlK,OAAOlC,MAAOxf,KAAK4rB,IAAIlK,OAAOjC,QAC3Ezf,KAAK/G,UAAUtP,MAAMqW,KAAM/G,GAC3B+G,KAAK/G,UAAUtP,MAAMqW,KAAMypC,GAG7BnsC,gBACM0C,KAAKkrC,mBACPlrC,KAAK4rB,IAAM5rB,KAAKkrC,iBAAiBE,gBAC1BprC,KAAKkrC,iBAAiBE,gBACtBprC,KAAKkrC,kBAGdlrC,KAAKhH,UAGPwE,sBAAsBohC,GACpB,IAAK5+B,KAAK87B,eACR,OAGF,MAAMgE,EAAQlB,EAAIkB,OAClBlB,EAAM5+B,KAAK28B,UAAUiC,EAAIj2C,KAAMi2C,IAC3BkB,MAAQA,EACZ,MAAMlU,EAAM5rB,KAAK4rB,IACX6b,EAAQznC,KAAKs7B,gBAEnB,GAAImM,SACqBl+C,IAAnBk+C,EAAM4D,WACR5D,EAAM4D,SA/qEd,WAA2BvU,GACzB,MACEtX,QACAC,UACEqX,EAEJ,GAA6BtX,EAlVH,KAkVkCC,EAlVlC,IAmVxB,OAAO,KAGT,MACM6rB,EAAc,IAAI/iD,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAC5EgjD,EAAS/rB,EAAQ,EACvB,IACI/2B,EAAG2b,EAAGonC,EADNC,EAAS,IAAIljD,WAAWgjD,GAAU9rB,EAAS,IAE/C,MAAMisB,EAAWlsB,EAAQ,GAAI,EAC7B,IAAI72B,EAAO,IAAIJ,WAAWmjD,EAAWjsB,GACjC/2B,EAAM,EAEV,UAAWijD,MAAQ7U,EAAQnuC,KAAM,CAC/B,IAAI+vC,EAAO,IAEX,KAAOA,EAAO,GACZ/vC,EAAKD,KAASijD,GAAOjT,EAAO,EAAI,IAChCA,IAAS,EAIb,IAAIoH,GAAQ,EAQZ,IAPAp3C,EAAM,EAEY,IAAdC,EAAKD,KACP+iD,EAAO,GAAK,IACV3L,IAGC17B,EAAI,EAAGA,EAAIob,EAAOpb,IACjBzb,EAAKD,KAASC,EAAKD,EAAM,KAC3B+iD,EAAOrnC,GAAKzb,EAAKD,GAAO,EAAI,IAC1Bo3C,IAGJp3C,IAQF,IALkB,IAAdC,EAAKD,KACP+iD,EAAOrnC,GAAK,IACV07B,IAGCr3C,EAAI,EAAGA,EAAIg3B,EAAQh3B,IAAK,CAC3BC,EAAMD,EAAIijD,EACVF,EAAK/iD,EAAI8iD,EAEL5iD,EAAKD,EAAMgjD,KAAc/iD,EAAKD,KAChC+iD,EAAOD,GAAM7iD,EAAKD,GAAO,EAAI,IAC3Bo3C,IAGJ,IAAI8L,IAAOjjD,EAAKD,GAAO,EAAI,IAAMC,EAAKD,EAAMgjD,GAAY,EAAI,GAE5D,IAAKtnC,EAAI,EAAGA,EAAIob,EAAOpb,IACrBwnC,IAAOA,IAAO,IAAMjjD,EAAKD,EAAM,GAAK,EAAI,IAAMC,EAAKD,EAAMgjD,EAAW,GAAK,EAAI,GAEzEJ,EAAYM,MACdH,EAAOD,EAAKpnC,GAAKknC,EAAYM,MAC3B9L,IAGJp3C,IAQF,GALIC,EAAKD,EAAMgjD,KAAc/iD,EAAKD,KAChC+iD,EAAOD,EAAKpnC,GAAKzb,EAAKD,GAAO,EAAI,IAC/Bo3C,IAGAA,GAnEyB,IAoE3B,OAAO,KAYX,IARAp3C,EAAMgjD,GAAYjsB,EAAS,GAC3B+rB,EAAK/iD,EAAI8iD,EAES,IAAd5iD,EAAKD,KACP+iD,EAAOD,GAAM,IACX1L,IAGC17B,EAAI,EAAGA,EAAIob,EAAOpb,IACjBzb,EAAKD,KAASC,EAAKD,EAAM,KAC3B+iD,EAAOD,EAAKpnC,GAAKzb,EAAKD,GAAO,EAAI,IAC/Bo3C,IAGJp3C,IAQF,GALkB,IAAdC,EAAKD,KACP+iD,EAAOD,EAAKpnC,GAAK,IACf07B,IAGAA,GA9F2B,IA+F7B,OAAO,KAGT,MAAM3B,GAAQ,IAAI0N,WAAW,CAAC,EAAGN,GAAQ,EAAI,GAAIA,EAAQ,EAAG,EAAG,EAAG,IAClE,IAAI9F,GAAMqG,GAAUC,GAQpB,IANA3uB,EAAc3Y,SAGZqnC,GAAW,GAFXrG,GAAO,IAAIuG,OAKRvjD,EAAI,EAAGq3C,IAASr3C,GAAKg3B,EAAQh3B,IAAK,CACrC,IAAIgZ,GAAIhZ,EAAI8iD,EACZ,MAAMr+B,EAAMzL,GAAI+d,EAEhB,KAAO/d,GAAIyL,IAAQu+B,EAAOhqC,KACxBA,KAGF,GAAIA,KAAMyL,EACR,SAGEu4B,GACFA,GAAKvsC,OAAOuI,GAAI8pC,EAAQ9iD,GAExBsjD,GAAS,CAACtqC,GAAI8pC,EAAQ9iD,GAGxB,MAAMwjD,EAAKxqC,GACX,IAAIqD,EAAO2mC,EAAOhqC,IAElB,EAAG,CACD,MAAMyqC,GAAO/N,GAAMr5B,GAEnB,GACErD,IAAKyqC,UACGT,EAAOhqC,KAEjB,MAAM0qC,GAAKV,EAAOhqC,IAEP,IAAP0qC,IAAmB,KAAPA,IACdrnC,EAAOqnC,GACPV,EAAOhqC,IAAK,IAEZqD,EAAOqnC,GAAK,GAAOrnC,GAAQ,EAC3B2mC,EAAOhqC,KAAMqD,GAAQ,EAAIA,GAAQ,GAGnCsnC,GACE3G,GAAKtsC,OAAOsI,GAAI8pC,EAAQ9pC,GAAI8pC,EAAS,GAErCQ,GAAO7hD,KAAKuX,GAAI8pC,EAAQ9pC,GAAI8pC,EAAS,GAGlCE,EAAOhqC,OACRq+B,SAEGmM,IAAOxqC,IAEXgkC,IACHqG,GAAS5hD,KAAK6hD,MAGdtjD,EAGJE,SAAO,KACP8iD,EAAS,KAEW,SAAU9nC,IAK5B,GAJAA,GAAE5K,OACF4K,GAAE8N,MAAM,EAAI+N,GAAO,EAAKC,GACxB9b,GAAEqtB,UAAU,GAAIvR,GAEZgmB,GACF9hC,GAAEhK,KAAK8rC,QACF,CACL9hC,GAAEk/B,YAEF,UAAWx1B,KAAKy+B,GAAU,CACxBnoC,GAAEzK,OAAOmU,EAAE,GAAIA,EAAE,IAEjB,QAASxB,EAAI,EAAGwgC,EAAKh/B,EAAE/kB,OAAQujB,EAAIwgC,EAAIxgC,GAAK,EAC1ClI,GAAExK,OAAOkU,EAAExB,GAAIwB,EAAExB,EAAI,IAIzBlI,GAAEhK,OAGJgK,GAAEk/B,YACFl/B,GAAE3K,WAy+DmBszC,CAAkB1N,IAGjC6I,EAAM4D,UAER,YADA5D,EAAM4D,SAASzf,GAKnB,MAAM8M,EAAO14B,KAAKy/B,kBAAkBb,GAE9BiB,EAAanH,EAAKhX,OACxBkK,EAAI7yB,OACJ6yB,EAAIuF,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCvF,EAAIiI,UAAUgM,EAAYnH,EAAK/mB,QAAS+mB,EAAK9mB,SAC7Cga,EAAI5yB,UACJgH,KAAKmjC,UAGPrlC,4BAA4B8gC,EAAK4L,EAAQ+B,EAAQ,EAAGC,EAAQ,EAAG/B,EAAQgC,GACrE,IAAKzsC,KAAK87B,eACR,OAGF8C,EAAM5+B,KAAK28B,UAAUiC,EAAIj2C,KAAMi2C,GAC/B,MAAMhT,EAAM5rB,KAAK4rB,IACjBA,EAAI7yB,OACJ,MAAM4mC,EAAmB/T,EAAI8E,oBAC7B9E,EAAI3yB,UAAUuxC,EAAQ+B,EAAOC,EAAO/B,EAAQ,EAAG,GAE/C,MAAM/R,EAAO14B,KAAKy/B,kBAAkBb,GAEpChT,EAAIuF,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhC,QAAS1oC,EAAI,EAAG6E,EAAKm/C,EAAUnkD,OAAQG,EAAI6E,EAAI7E,GAAK,EAAG,CACrD,MAAMikD,EAAQ5mC,EAAM7f,KAAKgT,UAAU0mC,EAAkB,CAAC6K,EAAQ+B,EAAOC,EAAO/B,EAAQgC,EAAUhkD,GAAIgkD,EAAUhkD,EAAI,MAEzG0+B,GAAGC,IAAKthB,EAAM7f,KAAK6b,eAAe,CAAC,EAAG,GAAI4qC,GAEjD9gB,EAAIiI,UAAU6E,EAAKhX,OAAQyF,GAAGC,IAGhCwE,EAAI5yB,UACJgH,KAAKmjC,UAGP1lC,2BAA2BkvC,GACzB,IAAK3sC,KAAK87B,eACR,OAGF,MAAMlQ,EAAM5rB,KAAK4rB,IACXiJ,EAAY70B,KAAK6tB,QAAQgH,UACzB6K,EAAgB1/B,KAAK6tB,QAAQkH,YAEnC,QAAStsC,EAAI,EAAG6E,EAAKq/C,EAAOrkD,OAAQG,EAAI6E,EAAI7E,IAAK,CAC/C,MAAMmkD,EAAQD,EAAOlkD,GACf+2B,EAAQotB,EAAMptB,MACdC,EAASmtB,EAAMntB,OACfogB,EAAa7/B,KAAKg8B,eAAexJ,UAAU,aAAchT,EAAOC,GAAQ,GACxEmkB,EAAU/D,EAAW5W,QAC3B2a,EAAQ7qC,OACRmnC,EAAmB0D,EAASgJ,GAC5BhJ,EAAQ/J,yBAA2B,YACnC+J,EAAQrK,UAAYmG,EAAgB7K,EAAUmM,WAAW4C,EAAS5jC,KAAM4rB,EAAI+U,2BAA4BtQ,EAAgBgG,SAAS3lC,MAAQmkC,EACzI+O,EAAQnG,SAAS,EAAG,EAAGje,EAAOC,GAC9BmkB,EAAQ5qC,UACR4yB,EAAI7yB,OACJ6yB,EAAI3yB,UAAUtP,MAAMiiC,EAAKghB,EAAM3zC,WAC/B2yB,EAAIna,MAAM,GAAG,GACbqvB,EAAyBlV,EAAKiU,EAAWne,OAAQ,EAAG,EAAGlC,EAAOC,EAAQ,GAAG,EAAI,EAAG,GAChFmM,EAAI5yB,UAGNgH,KAAKmjC,UAGPzlC,kBAAkB4iB,GAChB,IAAKtgB,KAAK87B,eACR,OAGF,MAAMhF,EAAU92B,KAAK28B,UAAUrc,GAE1BwW,EAKL92B,KAAKrC,wBAAwBm5B,IAJ1B,EAAGhxB,EAAMjX,MAAM,mCAOpBgP,wBAAwByiB,EAAOkqB,EAAQC,EAAQgC,GAC7C,IAAKzsC,KAAK87B,eACR,OAGF,MAAMhF,EAAU92B,KAAK28B,UAAUrc,GAE/B,IAAKwW,EAEH,YADC,EAAGhxB,EAAMjX,MAAM,mCAIlB,MAAM2wB,EAAQsX,EAAQtX,MAChBC,EAASqX,EAAQrX,OACjB/xB,EAAM,GAEZ,QAASjF,EAAI,EAAG6E,EAAKm/C,EAAUnkD,OAAQG,EAAI6E,EAAI7E,GAAK,EAClDiF,EAAIxD,KAAK,CACP+O,UAAW,CAACuxC,EAAQ,EAAG,EAAGC,EAAQgC,EAAUhkD,GAAIgkD,EAAUhkD,EAAI,IAC9D0+B,EAAG,EACHC,EAAG,EACHuf,EAAGnnB,EACH4K,EAAG3K,IAIPzf,KAAKpC,6BAA6Bk5B,EAASppC,GAG7CiQ,wBAAwBm5B,GACtB,IAAK92B,KAAK87B,eACR,OAGF,MAAMtc,EAAQsX,EAAQtX,MAChBC,EAASqX,EAAQrX,OACjBmM,EAAM5rB,KAAK4rB,IAGjB,IAAIihB,EAEJ,GAJA7sC,KAAKjH,OACL6yB,EAAIna,MAAM,EAAI+N,GAAO,EAAKC,GAGC,mBAAhBqtB,aAA8BhW,aAAmBgW,cAAgBhW,EAAQnuC,KAClFkkD,EAAa/V,MACR,CACL,MAAMgI,EAAY9+B,KAAKg8B,eAAexJ,UAAU,cAAehT,EAAOC,GAAQ,GAE9EstB,EADejO,EAAU7V,QACE6N,EAAS92B,KAAK6tB,QAAQuH,cACjDyX,EAAa/N,EAAUpd,OAGzB,MAAMke,EAAS5/B,KAAK2+B,YAAYkO,EAAYjhB,EAAI+U,4BAEhD/U,EAAIgV,sBAAwBC,GAAyBjV,EAAI8E,oBAAqBoG,EAAQwD,aACtF,MAAO5G,EAAQC,GAAWmN,EAAyBlV,EAAKgU,EAAOhB,IAAK,EAAG,EAAGgB,EAAOV,WAAYU,EAAOT,YAAa,GAAI1f,EAAQD,EAAOC,GAEpI,GAAIzf,KAAKkT,WAAY,CACnB,MAAMqZ,EAAWvsB,KAAKgtC,kBAAkB,GAAIvtB,GAC5Czf,KAAKkT,WAAW+5B,YAAY,CAC1BnW,UACArK,KAAMF,EAAS,GACfC,IAAKD,EAAS,GACd/M,MAAOkU,EACPjU,OAAQkU,IAIZ3zB,KAAKmjC,UACLnjC,KAAKhH,UAGP4E,6BAA6Bk5B,EAASppC,GACpC,IAAKsS,KAAK87B,eACR,OAGF,MAAMlQ,EAAM5rB,KAAK4rB,IACX+a,EAAI7P,EAAQtX,MACZ4K,EAAI0M,EAAQrX,OACZqf,EAAY9+B,KAAKg8B,eAAexJ,UAAU,cAAemU,EAAGvc,GAAG,GAErE2iB,EADejO,EAAU7V,QACE6N,EAAS92B,KAAK6tB,QAAQuH,cAEjD,QAAS3sC,EAAI,EAAG6E,EAAKI,EAAIpF,OAAQG,EAAI6E,EAAI7E,IAAK,CAC5C,MAAMimC,EAAQhhC,EAAIjF,GAMlB,GALAmjC,EAAI7yB,OACJ6yB,EAAI3yB,UAAUtP,MAAMiiC,EAAK8C,EAAMz1B,WAC/B2yB,EAAIna,MAAM,GAAG,GACbqvB,EAAyBlV,EAAKkT,EAAUpd,OAAQgN,EAAMvH,EAAGuH,EAAMtH,EAAGsH,EAAMiY,EAAGjY,EAAMtE,EAAG,GAAG,EAAI,EAAG,GAE1FpqB,KAAKkT,WAAY,CACnB,MAAMqZ,EAAWvsB,KAAKgtC,kBAAkBte,EAAMvH,EAAGuH,EAAMtH,GACvDpnB,KAAKkT,WAAW+5B,YAAY,CAC1BnW,UACArK,KAAMF,EAAS,GACfC,IAAKD,EAAS,GACd/M,MAAOmnB,EACPlnB,OAAQ2K,IAIZwB,EAAI5yB,UAGNgH,KAAKmjC,UAGPplC,4BACOiC,KAAK87B,iBAIV97B,KAAK4rB,IAAI6R,SAAS,EAAG,EAAG,EAAG,GAC3Bz9B,KAAKmjC,WAGP3mC,UAAU0wC,IAEVzwC,eAAeywC,EAAKlU,IAEpBt8B,mBAAmBwwC,GACjBltC,KAAK+7B,mBAAmB7xC,KAAK,CAC3BijD,SAAS,IAIbxwC,wBAAwBuwC,EAAKlU,GAEzBh5B,KAAK+7B,mBAAmB7xC,KADd,OAARgjD,EAC2B,CAC3BC,QAASntC,KAAKsV,sBAAsB83B,UAAUpU,IAGnB,CAC3BmU,SAAS,IAIbntC,KAAK87B,eAAiB97B,KAAKqtC,mBAG7BzwC,mBACEoD,KAAK+7B,mBAAmB9J,MACxBjyB,KAAK87B,eAAiB97B,KAAKqtC,mBAG7BxwC,eAEAC,aAEAsoC,YAAY9P,GACV,MAAMgY,EAAUttC,KAAK6tB,QAAQ8I,cAEzB32B,KAAKi7B,aACPj7B,KAAK6tB,QAAQ4I,qBAGVz2B,KAAKi7B,aACRj7B,KAAKmjC,QAAQ7N,GAGf,MAAM1J,EAAM5rB,KAAK4rB,IAEb5rB,KAAKi7B,cACFqS,IACCttC,KAAKi7B,cAAgBJ,GACvBjP,EAAI1xB,KAAK,WAET0xB,EAAI1xB,QAIR8F,KAAKi7B,YAAc,MAGrBj7B,KAAK6tB,QAAQwH,uBAAuBr1B,KAAK6tB,QAAQyH,SACjD1J,EAAIiX,YAGN2E,sBACE,IAAKxnC,KAAKy8B,2BAA4B,CACpC,MAAM/6B,EAAI1B,KAAK4rB,IAAI8E,oBAEnB,GAAa,IAAThvB,EAAE,IAAqB,IAATA,EAAE,GAClB1B,KAAKy8B,2BAA6B,EAAI3yC,KAAKC,IAAID,KAAKoa,IAAIxC,EAAE,IAAK5X,KAAKoa,IAAIxC,EAAE,SACrE,CACL,MAAM6rC,EAASzjD,KAAKoa,IAAIxC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACzC8rC,EAAQ1jD,KAAKgqC,MAAMpyB,EAAE,GAAIA,EAAE,IAC3B+rC,EAAQ3jD,KAAKgqC,MAAMpyB,EAAE,GAAIA,EAAE,IACjC1B,KAAKy8B,2BAA6B3yC,KAAKqY,IAAIqrC,EAAOC,GAASF,GAI/D,OAAOvtC,KAAKy8B,2BAGdiR,sBACE,IAAK1tC,KAAKw8B,wBAAyB,CACjC,MACEtH,aACEl1B,KAAK6tB,QACHnsB,EAAI1B,KAAK4rB,IAAI8E,oBACnB,IAAI8Z,EAAQC,EAEZ,GAAa,IAAT/oC,EAAE,IAAqB,IAATA,EAAE,GAAU,CAC5B,MAAM8rC,EAAQ1jD,KAAKoa,IAAIxC,EAAE,IACnB+rC,EAAQ3jD,KAAKoa,IAAIxC,EAAE,IAEzB,GAAkB,IAAdwzB,EACFsV,EAAS,EAAIgD,EACb/C,EAAS,EAAIgD,MACR,CACL,MAAME,EAAmBH,EAAQtY,EAC3B0Y,EAAmBH,EAAQvY,EACjCsV,EAASmD,EAAmB,EAAI,EAAIA,EAAmB,EACvDlD,EAASmD,EAAmB,EAAI,EAAIA,EAAmB,OAEpD,CACL,MAAML,EAASzjD,KAAKoa,IAAIxC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACzC8rC,EAAQ1jD,KAAKgqC,MAAMpyB,EAAE,GAAIA,EAAE,IAC3B+rC,EAAQ3jD,KAAKgqC,MAAMpyB,EAAE,GAAIA,EAAE,IAEjC,GAAkB,IAAdwzB,EACFsV,EAASiD,EAAQF,EACjB9C,EAAS+C,EAAQD,MACZ,CACL,MAAMM,EAAW3Y,EAAYqY,EAC7B/C,EAASiD,EAAQI,EAAWJ,EAAQI,EAAW,EAC/CpD,EAAS+C,EAAQK,EAAWL,EAAQK,EAAW,GAInD7tC,KAAKw8B,wBAA0B,CAACgO,EAAQC,GAG1C,OAAOzqC,KAAKw8B,wBAGd6I,iBAAiByI,GACf,MACEliB,OACE5rB,MAEFk1B,aACEl1B,KAAK6tB,SACF2c,EAAQC,GAAUzqC,KAAK0tC,sBAG9B,GAFA9hB,EAAIsJ,UAAYA,GAAa,EAEd,IAAXsV,GAA2B,IAAXC,EAElB,YADA7e,EAAInyB,SAIN,IAAIs0C,EAAaC,EAAaC,EAE1BH,IACFC,EAAcniB,EAAI8E,oBAAoB1uB,QACtCgsC,EAAcpiB,EAAIuN,cAAcn3B,QAChCisC,EAAkBriB,EAAIwN,gBAGxBxN,EAAIna,MAAM+4B,EAAQC,GAClB,MAAMh5B,EAAQ3nB,KAAKqY,IAAIqoC,EAAQC,GAC/B7e,EAAIsN,YAAYtN,EAAIuN,cAAczrC,IAAIy5B,GAAKA,EAAI1V,IAC/Cma,EAAIwN,gBAAkB3nB,EACtBma,EAAInyB,SAEAq0C,IACFliB,EAAIuF,gBAAgB4c,GACpBniB,EAAIsN,YAAY8U,GAChBpiB,EAAIwN,eAAiB6U,GAIzBjB,kBAAkB7lB,EAAGC,GACnB,MAAMnuB,EAAY+G,KAAK4rB,IAAI8E,oBAC3B,MAAO,CAACz3B,EAAU,GAAKkuB,EAAIluB,EAAU,GAAKmuB,EAAInuB,EAAU,GAAIA,EAAU,GAAKkuB,EAAIluB,EAAU,GAAKmuB,EAAInuB,EAAU,IAG9Go0C,mBACE,QAAS5kD,EAAIuX,KAAK+7B,mBAAmBzzC,OAAS,EAAGG,GAAK,EAAGA,IACvD,IAAKuX,KAAK+7B,mBAAmBtzC,GAAG0kD,QAC9B,OAAO,EAIX,OAAO,GAKXxnD,EAAQs8B,eAAiBA,GAEzB,UAAWisB,KAAMpoC,EAAMlf,SACgB2C,IAAjC04B,GAAe/hB,UAAUguC,KAC3BjsB,GAAe/hB,UAAU4F,EAAMlf,IAAIsnD,IAAOjsB,GAAe/hB,UAAUguC,KAMhE,CAACxoD,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ0jD,cAAgB1jD,EAAQ0wC,cAAW,EAC3C1wC,EAAQ+jD,kBAmXR,WAA2BP,GACzB,OAAQA,EAAG,QACJ,cACH,OAAO,IAAIgF,EAA0BhF,OAElC,OACH,OAAO,IAAIiF,EAAmBjF,OAE3B,QACH,OAAO,IAAIkF,EAGf,MAAM,IAAI5uC,MAAO,oBAAmB0pC,EAAG,OA7XzC,IAAIrjC,EAAQlgB,EAAoB,GAE5BwgB,EAAWxgB,EAAoB,GAEnC,MAAMywC,EAAW,CACf3lC,KAAM,OACNC,OAAQ,SACRg5C,QAAS,WAIX,WAA0B/d,EAAKqe,GAC7B,IAAKA,GAAQ7jC,EAAS3B,SACpB,OAGF,MAAM+a,EAAQyqB,EAAK,GAAKA,EAAK,GACvBxqB,EAASwqB,EAAK,GAAKA,EAAK,GACxBqE,EAAS,IAAItC,OACnBsC,EAAO5rC,KAAKunC,EAAK,GAAIA,EAAK,GAAIzqB,EAAOC,GACrCmM,EAAI1xB,KAAKo0C,GAXX3oD,EAAQ0wC,SAAWA,EAcnB,SACEp2B,cACMD,KAAKC,cAAgBsuC,KACtB,EAAGzoC,EAAM1c,aAAa,yCAI3B43C,cACG,EAAGl7B,EAAM1c,aAAa,yCAK3B,gBAAwCmlD,GACtCtuC,YAAYkpC,GACVhpC,QACAH,KAAKwuC,MAAQrF,EAAG,GAChBnpC,KAAKyuC,MAAQtF,EAAG,GAChBnpC,KAAK0uC,YAAcvF,EAAG,GACtBnpC,KAAK2uC,IAAMxF,EAAG,GACdnpC,KAAK4uC,IAAMzF,EAAG,GACdnpC,KAAK6uC,IAAM1F,EAAG,GACdnpC,KAAK8uC,IAAM3F,EAAG,GACdnpC,KAAKypC,OAAS,KAGhBsF,gBAAgBnjB,GACd,IAAIojB,EAEe,UAAfhvC,KAAKwuC,MACPQ,EAAOpjB,EAAIqjB,qBAAqBjvC,KAAK2uC,IAAI,GAAI3uC,KAAK2uC,IAAI,GAAI3uC,KAAK4uC,IAAI,GAAI5uC,KAAK4uC,IAAI,IACxD,WAAf5uC,KAAKwuC,QACdQ,EAAOpjB,EAAIsjB,qBAAqBlvC,KAAK2uC,IAAI,GAAI3uC,KAAK2uC,IAAI,GAAI3uC,KAAK6uC,IAAK7uC,KAAK4uC,IAAI,GAAI5uC,KAAK4uC,IAAI,GAAI5uC,KAAK8uC,MAGrG,UAAWK,KAAanvC,KAAK0uC,YAC3BM,EAAKI,aAAaD,EAAU,GAAIA,EAAU,IAG5C,OAAOH,EAGThO,WAAWpV,EAAKyjB,EAAOtO,EAAS3K,GAC9B,IAAImR,EAEJ,GAAInR,IAAaC,EAAS1lC,QAAUylC,IAAaC,EAAS3lC,KAAM,CAC9D,MAAM4+C,EAAYD,EAAMxhB,QAAQgJ,0BAA0BT,EAAUxK,EAAI8E,sBAAwB,CAAC,EAAG,EAAG,EAAG,GACpGlR,EAAQ11B,KAAKy1C,KAAK+P,EAAU,GAAKA,EAAU,KAAO,EAClD7vB,EAAS31B,KAAKy1C,KAAK+P,EAAU,GAAKA,EAAU,KAAO,EACnDxQ,EAAYuQ,EAAMrT,eAAexJ,UAAU,UAAWhT,EAAOC,GAAQ,GACrEsf,EAASD,EAAU7V,QACzB8V,EAAOS,UAAU,EAAG,EAAGT,EAAOrd,OAAOlC,MAAOuf,EAAOrd,OAAOjC,QAC1Dsf,EAAO8D,YACP9D,EAAOr8B,KAAK,EAAG,EAAGq8B,EAAOrd,OAAOlC,MAAOuf,EAAOrd,OAAOjC,QACrDsf,EAAO/N,WAAWse,EAAU,IAAKA,EAAU,IAC3CvO,EAAUj7B,EAAM7f,KAAKgT,UAAU8nC,EAAS,CAAC,EAAG,EAAG,EAAG,EAAGuO,EAAU,GAAIA,EAAU,KAC7EvQ,EAAO9lC,UAAUtP,MAAMo1C,EAAQsQ,EAAM9T,eAEjCv7B,KAAKypC,QACP1K,EAAO9lC,UAAUtP,MAAMo1C,EAAQ/+B,KAAKypC,QAGtC8F,EAAiBxQ,EAAQ/+B,KAAKyuC,OAC9B1P,EAAOxF,UAAYv5B,KAAK+uC,gBAAgBhQ,GACxCA,EAAOplC,OACP4tC,EAAU3b,EAAI4jB,cAAc1Q,EAAUpd,OAAQ,aAC9C,MAAM+tB,EAAY,IAAIC,UAAU3O,GAEhC,IACEwG,EAAQpW,aAAase,SACd7gD,IACN,EAAGkX,EAAMjX,MAAO,0CAAyCD,GAAIkR,mBAGhEyvC,EAAiB3jB,EAAK5rB,KAAKyuC,OAC3BlH,EAAUvnC,KAAK+uC,gBAAgBnjB,GAGjC,OAAO2b,GAKX,WAAsB5+C,EAAMsgC,EAASpnB,EAAIE,EAAIE,EAAI0tC,EAAIC,EAAIC,GACvD,MAAM9D,EAAS9iB,EAAQ8iB,OACjB+D,EAAS7mB,EAAQ6mB,OACjBxmD,EAAQX,EAAKA,KACbonD,EAAuB,EAAbpnD,EAAK62B,MACrB,IAAIwwB,EAEAjE,EAAOlqC,EAAK,GAAKkqC,EAAOhqC,EAAK,KAC/BiuC,EAAMnuC,EACNA,EAAKE,EACLA,EAAKiuC,EACLA,EAAML,EACNA,EAAKC,EACLA,EAAKI,GAGHjE,EAAOhqC,EAAK,GAAKgqC,EAAO9pC,EAAK,KAC/B+tC,EAAMjuC,EACNA,EAAKE,EACLA,EAAK+tC,EACLA,EAAMJ,EACNA,EAAKC,EACLA,EAAKG,GAGHjE,EAAOlqC,EAAK,GAAKkqC,EAAOhqC,EAAK,KAC/BiuC,EAAMnuC,EACNA,EAAKE,EACLA,EAAKiuC,EACLA,EAAML,EACNA,EAAKC,EACLA,EAAKI,GAGP,MAAM7sC,GAAM4oC,EAAOlqC,GAAMonB,EAAQtX,SAAWsX,EAAQuhB,OAC9CpnC,GAAM2oC,EAAOlqC,EAAK,GAAKonB,EAAQrX,SAAWqX,EAAQwhB,OAClDpnC,GAAM0oC,EAAOhqC,GAAMknB,EAAQtX,SAAWsX,EAAQuhB,OAC9ClnC,IAAMyoC,EAAOhqC,EAAK,GAAKknB,EAAQrX,SAAWqX,EAAQwhB,OAClDlnC,GAAMwoC,EAAO9pC,GAAMgnB,EAAQtX,SAAWsX,EAAQuhB,OAC9ChnC,IAAMuoC,EAAO9pC,EAAK,GAAKgnB,EAAQrX,SAAWqX,EAAQwhB,OAExD,GAAIrnC,GAAMI,GACR,OAGF,MAAMysC,GAAMH,EAAOH,GACbO,GAAMJ,EAAOH,EAAK,GAClBQ,GAAML,EAAOH,EAAK,GAClBS,EAAMN,EAAOF,GACbS,EAAMP,EAAOF,EAAK,GAClBU,EAAMR,EAAOF,EAAK,GAClBW,EAAMT,EAAOD,GACbW,EAAMV,EAAOD,EAAK,GAClBY,EAAMX,EAAOD,EAAK,GAClBna,EAAO5rC,KAAK0pC,MAAMpwB,GAClBwyB,EAAO9rC,KAAK0pC,MAAMhwB,IACxB,IAAIktC,EAAIC,EAAKC,EAAKC,EACdC,EAAIC,GAAKC,GAAKC,GAElB,QAAS7pB,GAAIsO,EAAMtO,IAAKwO,EAAMxO,KAAK,CACjC,GAAIA,GAAI9jB,GAAI,CACV,IAAIi1B,EAGFA,EADEnR,GAAIhkB,EACF,GAECA,EAAKgkB,KAAMhkB,EAAKE,IAGvBotC,EAAKvtC,GAAMA,EAAKE,GAAMk1B,EACtBoY,EAAMV,IAAOA,GAAMG,GAAO7X,EAC1BqY,EAAMV,IAAOA,GAAMG,GAAO9X,EAC1BsY,EAAMV,IAAOA,GAAMG,GAAO/X,MACrB,CACL,IAAIA,EAGFA,EADEnR,GAAI5jB,GACF,EACC0tC,KAAW1tC,GACZ,GAECF,GAAK8jB,KAAM9jB,GAAKE,IAGvBktC,EAAKrtC,GAAMA,EAAKE,GAAMg1B,EACtBoY,EAAMP,GAAOA,EAAMG,GAAOhY,EAC1BqY,EAAMP,GAAOA,EAAMG,GAAOjY,EAC1BsY,EAAMP,GAAOA,EAAMG,GAAOlY,EAG5B,IAAIA,GAGFA,GADEnR,GAAIhkB,EACF,EACC+hC,GAAQ3hC,GACT,GAECJ,EAAKgkB,KAAMhkB,EAAKI,IAGvBstC,EAAK3tC,GAAMA,EAAKI,GAAMg1B,GACtBwY,GAAMd,IAAOA,GAAMM,GAAOhY,GAC1ByY,GAAMd,IAAOA,GAAMM,GAAOjY,GAC1B0Y,GAAMd,IAAOA,GAAMM,GAAOlY,GAC1B,MAAM4Y,GAAMrnD,KAAK0pC,MAAM1pC,KAAKC,IAAI2mD,EAAII,IAC9BM,GAAMtnD,KAAK0pC,MAAM1pC,KAAKqY,IAAIuuC,EAAII,IACpC,IAAI1sC,EAAI2rC,EAAU3oB,GAAU,EAAN+pB,GAEtB,QAAShqB,EAAIgqB,GAAKhqB,GAAKiqB,GAAKjqB,IAC1BoR,IAAKmY,EAAKvpB,IAAMupB,EAAKI,GAErBO,GAAQ,EACN9Y,GAAI,EACKA,GAAI,IACbA,GAAI,GAGNjvC,EAAM8a,KAAOusC,GAAOA,EAAMI,IAAOxY,GAAI,EACrCjvC,EAAM8a,KAAOwsC,GAAOA,EAAMI,IAAOzY,GAAI,EACrCjvC,EAAM8a,KAAOysC,GAAOA,EAAMI,IAAO1Y,GAAI,EACrCjvC,EAAM8a,KAAO,KAKnB,WAAoBzb,EAAM2oD,EAAQroB,GAChC,MAAMsoB,EAAKD,EAAOvF,OACZyF,EAAKF,EAAOxB,OAClB,IAAIrnD,EAAG6E,EAEP,OAAQgkD,EAAOxsC,UACR,UACH,MAAM2sC,EAAiBH,EAAOG,eACxBC,EAAO5nD,KAAKu5C,MAAMkO,EAAGjpD,OAASmpD,GAAkB,EAChDE,EAAOF,EAAiB,EAE9B,IAAKhpD,EAAI,EAAGA,EAAIipD,EAAMjpD,IAAK,CACzB,IAAImpD,EAAInpD,EAAIgpD,EAEZ,QAASrtC,EAAI,EAAGA,EAAIutC,EAAMvtC,IAAKwtC,IAC7BC,EAAalpD,EAAMsgC,EAASsoB,EAAGK,GAAIL,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,GAAIJ,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAC/FI,EAAalpD,EAAMsgC,EAASsoB,EAAGK,EAAIH,EAAiB,GAAIF,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,EAAIH,EAAiB,GAAID,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAI7I,UAEG,YACH,IAAKhpD,EAAI,EAAG6E,EAAKikD,EAAGjpD,OAAQG,EAAI6E,EAAI7E,GAAK,EACvCopD,EAAalpD,EAAMsgC,EAASsoB,EAAG9oD,GAAI8oD,EAAG9oD,EAAI,GAAI8oD,EAAG9oD,EAAI,GAAI+oD,EAAG/oD,GAAI+oD,EAAG/oD,EAAI,GAAI+oD,EAAG/oD,EAAI,IAGpF,cAGA,MAAM,IAAIgX,MAAM,mBAItB,gBAAiC8uC,GAC/BtuC,YAAYkpC,GACVhpC,QACAH,KAAK8xC,QAAU3I,EAAG,GAClBnpC,KAAK+xC,QAAU5I,EAAG,GAClBnpC,KAAKgyC,SAAW7I,EAAG,GACnBnpC,KAAKiyC,QAAU9I,EAAG,GAClBnpC,KAAKyuC,MAAQtF,EAAG,GAChBnpC,KAAKkyC,YAAc/I,EAAG,GACtBnpC,KAAKypC,OAAS,KAGhB0I,kBAAkBC,EAAe9V,EAAiBN,GAIhD,MAAMrqB,EAAU7nB,KAAKu5C,MAAMrjC,KAAKiyC,QAAQ,IAClCrgC,EAAU9nB,KAAKu5C,MAAMrjC,KAAKiyC,QAAQ,IAClCI,EAAcvoD,KAAKy1C,KAAKv/B,KAAKiyC,QAAQ,IAAMtgC,EAC3C2gC,EAAexoD,KAAKy1C,KAAKv/B,KAAKiyC,QAAQ,IAAMrgC,EAC5C4N,EAAQ11B,KAAKC,IAAID,KAAKy1C,KAAKz1C,KAAKoa,IAAImuC,EAAcD,EAAc,GAAKG,MAAkBC,KACvF/yB,EAAS31B,KAAKC,IAAID,KAAKy1C,KAAKz1C,KAAKoa,IAAIouC,EAAeF,EAAc,GAAKG,MAAkBC,KACzFhI,EAAS6H,EAAc7yB,EACvBirB,EAAS6H,EAAe7yB,EACxBwJ,EAAU,CACd8iB,OAAQ/rC,KAAK8xC,QACbhC,OAAQ9vC,KAAK+xC,QACbpgC,SAAUA,EACVC,SAAUA,EACV44B,OAAQ,EAAIA,EACZC,OAAQ,EAAIA,GAIR3L,GAAY9C,EAAexJ,UAAU,OAFvBhT,EAAQizB,EACPhzB,EAASgzB,GACgD,GACxE1T,GAASD,GAAU7V,QACnBtgC,GAAOo2C,GAAO1H,gBAAgB7X,EAAOC,GAE3C,GAAI6c,EAAiB,CACnB,MAAMhzC,EAAQX,GAAKA,KAEnB,QAASF,EAAI,EAAG6E,EAAKhE,EAAMhB,OAAQG,EAAI6E,EAAI7E,GAAK,EAC9Ca,EAAMb,GAAK6zC,EAAgB,GAC3BhzC,EAAMb,EAAI,GAAK6zC,EAAgB,GAC/BhzC,EAAMb,EAAI,GAAK6zC,EAAgB,GAC/BhzC,EAAMb,EAAI,GAAK,IAInB,UAAW6oD,KAAUtxC,KAAKgyC,SACxBU,EAAW/pD,GAAM2oD,EAAQroB,GAG3B8V,UAAO/H,aAAaruC,GAAM8pD,EAAaA,GAEhC,CACL/wB,OAFaod,GAAUpd,OAGvB/P,QAASA,EAAU8gC,EAAcjI,EACjC54B,QAASA,EAAU6gC,EAAchI,EACjCD,SACAC,UAIJzJ,WAAWpV,EAAKyjB,EAAOtO,EAAS3K,GAE9B,IAAI3kB,EAEJ,GAHA89B,EAAiB3jB,EAAK5rB,KAAKyuC,OAGvBrY,IAAaC,EAASsT,QACxBl4B,EAAQ3L,EAAM7f,KAAKqwC,8BAA8B1K,EAAI8E,6BAErDjf,EAAQ3L,EAAM7f,KAAKqwC,8BAA8B+Y,EAAM9T,eAEnDv7B,KAAKypC,OAAQ,CACf,MAAMkJ,EAAc7sC,EAAM7f,KAAKqwC,8BAA8Bt2B,KAAKypC,QAElEh4B,EAAQ,CAACA,EAAM,GAAKkhC,EAAY,GAAIlhC,EAAM,GAAKkhC,EAAY,IAI/D,MAAMC,EAAyB5yC,KAAKmyC,kBAAkB1gC,EAAO2kB,IAAaC,EAASsT,QAAU,KAAO3pC,KAAKkyC,YAAa7C,EAAMrT,gBAE5H,OAAI5F,IAAaC,EAASsT,UACxB/d,EAAIuF,aAAaxnC,MAAMiiC,EAAKyjB,EAAM9T,eAE9Bv7B,KAAKypC,QACP7d,EAAI3yB,UAAUtP,MAAMiiC,EAAK5rB,KAAKypC,SAIlC7d,EAAIoF,UAAU4hB,EAAuBjhC,QAASihC,EAAuBhhC,SACrEga,EAAIna,MAAMmhC,EAAuBpI,OAAQoI,EAAuBnI,QACzD7e,EAAI4jB,cAAcoD,EAAuBlxB,OAAQ,cAK5D,gBAAkC6sB,GAChCvN,aACE,MAAO,WAyBX,QACawR,8BACT,OAAQ,EAAG1sC,EAAM3X,QAAQ6R,KAAM,mBAAoB,KAGrDC,YAAYkpC,EAAIC,EAAOxd,EAAKinB,EAAuBtX,GACjDv7B,KAAKkU,aAAei1B,EAAG,GACvBnpC,KAAKypC,OAASN,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvCnpC,KAAKiqC,KAAOd,EAAG,GACfnpC,KAAK8yC,MAAQ3J,EAAG,GAChBnpC,KAAK+yC,MAAQ5J,EAAG,GAChBnpC,KAAKgzC,UAAY7J,EAAG,GACpBnpC,KAAKizC,WAAa9J,EAAG,GACrBnpC,KAAKopC,MAAQA,EACbppC,KAAK4rB,IAAMA,EACX5rB,KAAK6yC,sBAAwBA,EAC7B7yC,KAAKu7B,cAAgBA,EAGvB2X,oBAAoB7D,GAClB,MAAMn7B,EAAelU,KAAKkU,aACpB+1B,EAAOjqC,KAAKiqC,KACZ6I,EAAQ9yC,KAAK8yC,MACbC,EAAQ/yC,KAAK+yC,MACbC,EAAYhzC,KAAKgzC,UAEjB5J,EAAQppC,KAAKopC,MACbyJ,EAAwB7yC,KAAK6yC,uBAClC,EAAG/sC,EAAMjZ,MAAM,eAHGmT,KAAKizC,YAIxB,MAAMhwC,EAAKgnC,EAAK,GACV/mC,EAAK+mC,EAAK,GACV9mC,EAAK8mC,EAAK,GACV7mC,EAAK6mC,EAAK,GAEV0I,EAAc7sC,EAAM7f,KAAKqwC,8BAA8Bt2B,KAAKypC,QAE5D0J,EAAiBrtC,EAAM7f,KAAKqwC,8BAA8Bt2B,KAAKu7B,eAE/D6W,GAAgB,CAACO,EAAY,GAAKQ,EAAe,GAAIR,EAAY,GAAKQ,EAAe,IACrFC,EAAOpzC,KAAKqzC,gBAAgBP,EAAO9yC,KAAK4rB,IAAIlK,OAAOlC,MAAO4yB,GAAc,IACxEkB,GAAOtzC,KAAKqzC,gBAAgBN,EAAO/yC,KAAK4rB,IAAIlK,OAAOjC,OAAQ2yB,GAAc,IACzEtT,GAAYuQ,EAAMrT,eAAexJ,UAAU,UAAW4gB,EAAKrjC,KAAMujC,GAAKvjC,MAAM,GAC5EgvB,GAASD,GAAU7V,QACnBsqB,GAAWV,EAAsBvJ,qBAAqBvK,IAC5DwU,GAAS9X,WAAa4T,EAAM5T,WAC5Bz7B,KAAKwzC,+BAA+BD,GAAUP,EAAW5J,GACzD,IAAIqK,EAAaxwC,EACbywC,EAAaxwC,EACbywC,EAAaxwC,EACbywC,EAAaxwC,EAEjB,OAAIH,EAAK,IACPwwC,EAAa,EACbE,GAAc7pD,KAAKoa,IAAIjB,IAGrBC,EAAK,IACPwwC,EAAa,EACbE,GAAc9pD,KAAKoa,IAAIhB,IAGzB67B,GAAO/N,WAAYoiB,EAAK3hC,MAAQgiC,GAAeH,GAAK7hC,MAAQiiC,GAC5DH,GAASt6C,UAAUm6C,EAAK3hC,MAAO,EAAG,EAAG6hC,GAAK7hC,MAAO,EAAG,GACpDstB,GAAOhmC,OACPiH,KAAK6zC,SAASN,GAAUE,EAAYC,EAAYC,EAAYC,GAC5DL,GAAShY,cAAgBgY,GAAS3nB,IAAI8E,oBAAoB1uB,QAC1DuxC,GAASjxB,oBAAoBpO,GAC7Bq/B,GAASpxB,aACF,CACLT,OAAQod,GAAUpd,OAClB8oB,OAAQ4I,EAAK3hC,MACbg5B,OAAQ6I,GAAK7hC,MACbE,QAAS8hC,EACT7hC,QAAS8hC,GAIbL,gBAAgBnH,EAAM4H,EAAgBriC,GACpCy6B,EAAOpiD,KAAKoa,IAAIgoC,GAChB,MAAM6H,EAAUjqD,KAAKqY,IAAIknC,EAAcmJ,iBAAkBsB,GACzD,IAAI/jC,EAAOjmB,KAAKy1C,KAAK2M,EAAOz6B,GAE5B,OAAI1B,GAAQgkC,EACVhkC,EAAOgkC,EAEPtiC,EAAQ1B,EAAOm8B,EAGV,CACLz6B,QACA1B,QAIJ8jC,SAASN,EAAUtwC,EAAIC,EAAIC,EAAIC,GAG7BmwC,EAAS3nB,IAAIlpB,KAAKO,EAAIC,EAFJC,EAAKF,EACJG,EAAKF,GAExBqwC,EAAS1lB,QAAQgI,iBAAiB0d,EAAS3nB,IAAI8E,oBAAqB,CAACztB,EAAIC,EAAIC,EAAIC,IACjFmwC,EAASr5C,OACTq5C,EAASt5C,UAGXu5C,+BAA+BD,EAAUP,EAAW5J,GAClD,MAAMngB,EAAUsqB,EAAS3nB,IACnBiC,EAAU0lB,EAAS1lB,QAEzB,OAAQmlB,QA/GD,EAiHH,MAAMpnB,EAAM5rB,KAAK4rB,IACjB3C,EAAQsQ,UAAY3N,EAAI2N,UACxBtQ,EAAQqQ,YAAc1N,EAAI0N,YAC1BzL,EAAQgH,UAAYjJ,EAAI2N,UACxB1L,EAAQiH,YAAclJ,EAAI0N,YAC1B,WArHK,EAwHL,MAAM0a,EAAWluC,EAAM7f,KAAKujD,aAAaJ,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAEnEngB,EAAQsQ,UAAYya,EACpB/qB,EAAQqQ,YAAc0a,EACtBnmB,EAAQgH,UAAYmf,EACpBnmB,EAAQiH,YAAckf,EACtB,cAGA,MAAM,IAAIluC,EAAM7e,YAAa,2BAA0B+rD,MAI7DhS,WAAWpV,EAAKyjB,EAAOtO,EAAS3K,GAC9B,IAAIqT,EAAS1I,EAET3K,IAAaC,EAASsT,UACxBF,EAAS3jC,EAAM7f,KAAKgT,UAAUwwC,EAAQ4F,EAAM9T,eAExCv7B,KAAKypC,SACPA,EAAS3jC,EAAM7f,KAAKgT,UAAUwwC,EAAQzpC,KAAKypC,UAI/C,MAAMmJ,EAAyB5yC,KAAKkzC,oBAAoB7D,GACxD,IAAII,EAAY,IAAIC,UAAUjG,GAC9BgG,EAAYA,EAAUze,UAAU4hB,EAAuBjhC,QAASihC,EAAuBhhC,SACvF69B,EAAYA,EAAUh+B,MAAM,EAAImhC,EAAuBpI,OAAQ,EAAIoI,EAAuBnI,QAC1F,MAAMlD,EAAU3b,EAAI4jB,cAAcoD,EAAuBlxB,OAAQ,UAEjE,IACE6lB,EAAQpW,aAAase,SACd7gD,IACN,EAAGkX,EAAMjX,MAAO,8BAA6BD,GAAIkR,aAGpD,OAAOynC,GAKX5hD,EAAQ0jD,cAAgBA,GAIjB,CAAC3jD,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQkzC,mBAIR,YACEzxB,MACAmwB,SAAS,EACTC,QACAF,UAAU,EACV9X,QACAC,SACAw0B,iBAAgB,IAEhB,MAAMC,EAASpuC,EAAM3e,YAAYmZ,eAAiB,WAAa,KACxD6zC,EAAaC,GAAcC,EAA+B,CAAC,EAAGH,GAAlB,CAACA,EAAQ,GACtDI,EAAgB90B,GAAS,EACzB+0B,EAAyB,EAAR/0B,EACjBwY,EAAY5wB,EAAI9e,OACtBkvC,GAAO,IAAI/2B,YAAY+2B,GAAKtrC,QAE5B,QAASzD,EAAI,EAAGA,EAAIg3B,EAAQh3B,IAAK,CAC/B,UAAW0Z,EAAMo1B,EAAS+c,EAAe/c,EAASp1B,EAAKo1B,IAAU,CAC/D,MAAMoU,EAAOpU,EAASS,EAAY5wB,EAAImwB,GAAU,IAChDC,GAAKF,KAAoB,IAAPqU,EAAoByI,EAAaD,EACnD3c,GAAKF,KAAoB,GAAPqU,EAAmByI,EAAaD,EAClD3c,GAAKF,KAAoB,GAAPqU,EAAkByI,EAAaD,EACjD3c,GAAKF,KAAoB,GAAPqU,EAAiByI,EAAaD,EAChD3c,GAAKF,KAAoB,EAAPqU,EAAgByI,EAAaD,EAC/C3c,GAAKF,KAAoB,EAAPqU,EAAeyI,EAAaD,EAC9C3c,GAAKF,KAAoB,EAAPqU,EAAcyI,EAAaD,EAC7C3c,GAAKF,KAAoB,EAAPqU,EAAayI,EAAaD,EAG9C,GAAuB,IAAnBI,EACF,SAGF,MAAM5I,EAAOpU,EAASS,EAAY5wB,EAAImwB,KAAY,IAElD,QAASnzB,EAAI,EAAGA,EAAImwC,EAAgBnwC,IAClCozB,GAAKF,KAAaqU,EAAO,GAAK,EAAIvnC,EAAIgwC,EAAaD,EAIvD,MAAO,CACL5c,SACAD,YA5CJ,IAAIxxB,EAAQlgB,EAAoB,IAkDzB,CAACF,GAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ6jB,yBAAsB,EAC9B,MAAMA,EAAsB3jB,OAAOyE,OAAO,MAC1C3E,EAAQ6jB,oBAAsBA,EAC9BA,EAAoBC,gBAAgDlgB,IAAnCigB,EAAoBC,WAA2B,KAAOD,EAAoBC,WAC3GD,EAAoB+Q,eAA8ChxB,IAAlCigB,EAAoB+Q,UAA0B,GAAK/Q,EAAoB+Q,WAIhG,CAAC70B,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQilB,oBAAiB,EAEzB,IAAI9E,EAAQlgB,EAAoB,GAmBhC,WAAoBiF,GAKlB,OAJMA,aAAkB4U,OAA2B,iBAAX5U,GAAkC,OAAXA,IAC5D,EAAGib,EAAM1c,aAAa,kEAGjByB,EAAOkV,UACR,iBACH,OAAO,IAAI+F,EAAM5d,eAAe2C,EAAOiV,aAEpC,sBACH,OAAO,IAAIgG,EAAMjf,oBAAoBgE,EAAOiV,aAEzC,oBACH,OAAO,IAAIgG,EAAMpf,kBAAkBmE,EAAOiV,QAASjV,EAAOiE,UAEvD,8BACH,OAAO,IAAIgX,EAAM3f,4BAA4B0E,EAAOiV,QAASjV,EAAOwV,YAEjE,wBACH,OAAO,IAAIyF,EAAM5f,sBAAsB2E,EAAOiV,QAASjV,EAAOuV,iBAG9D,OAAO,IAAI0F,EAAM5f,sBAAsB2E,EAAOiV,QAASjV,EAAOuB,aAgbpEzG,EAAQilB,eA5aR,SACE3K,YAAYu0C,EAAYC,EAAYC,GAClC10C,KAAKw0C,WAAaA,EAClBx0C,KAAKy0C,WAAaA,EAClBz0C,KAAK00C,OAASA,EACd10C,KAAK20C,WAAa,EAClB30C,KAAK40C,SAAW,EAChB50C,KAAK60C,YAAchvD,OAAOyE,OAAO,MACjC0V,KAAK80C,kBAAoBjvD,OAAOyE,OAAO,MACvC0V,KAAK+0C,qBAAuBlvD,OAAOyE,OAAO,MAC1C0V,KAAKg1C,cAAgBnvD,OAAOyE,OAAO,MAEnC0V,KAAKi1C,mBAAqBx8B,IACxB,MAAM9vB,EAAO8vB,EAAM9vB,KAEnB,GAAIA,EAAK8rD,aAAez0C,KAAKw0C,WAC3B,OAGF,GAAI7rD,EAAKusD,OAGP,YAFAl1C,KAAKm1C,sBAAsBxsD,GAK7B,GAAIA,EAAKssB,SAAU,CACjB,MAAM0/B,EAAahsD,EAAKgsD,WAClBtqD,EAAa2V,KAAK+0C,qBAAqBJ,GAE7C,IAAKtqD,EACH,MAAM,IAAIoV,MAAO,2BAA0Bk1C,KAK7C,UAFO30C,KAAK+0C,qBAAqBJ,GA1EjC,IA4EIhsD,EAAKssB,SACP5qB,EAAWM,QAAQhC,EAAKA,cA5EzB,IA6EUA,EAAKssB,SAGd,MAAM,IAAIxV,MAAM,4BAFhBpV,EAAWO,OAAOwqD,EAAWzsD,EAAKkC,SAKpC,OAGF,MAAMwqD,EAASr1C,KAAKg1C,cAAcrsD,EAAK0sD,QAEvC,IAAKA,EACH,MAAM,IAAI51C,MAAO,+BAA8B9W,EAAK0sD,UAGtD,GAAI1sD,EAAKgsD,WAAT,CACE,MAAMW,EAAet1C,KAAKw0C,WACpBe,EAAe5sD,EAAK6rD,WAC1B,IAAI9pD,QAAQ,SAAUC,GACpBA,EAAQ0qD,EAAO1sD,EAAKA,SACnBkhB,KAAK,SAAU2rC,GAChBd,EAAOn8B,YAAY,CACjBi8B,WAAYc,EACZb,WAAYc,EACZtgC,SAtGJ,EAuGI0/B,WAAYhsD,EAAKgsD,WACjBhsD,KAAM6sD,KAEP,SAAU3qD,GACX6pD,EAAOn8B,YAAY,CACjBi8B,WAAYc,EACZb,WAAYc,EACZtgC,SA7GH,EA8GG0/B,WAAYhsD,EAAKgsD,WACjB9pD,OAAQuqD,EAAWvqD,YAMrBlC,EAAKisD,SACP50C,KAAKy1C,kBAAkB9sD,GAKzB0sD,EAAO1sD,EAAKA,OAGd+rD,EAAO97B,iBAAiB,UAAW5Y,KAAKi1C,oBAG1C76B,GAAGs7B,EAAYC,GACb,MAAMC,EAAK51C,KAAKg1C,cAEhB,GAAIY,EAAGF,GACL,MAAM,IAAIj2C,MAAO,0CAAyCi2C,MAG5DE,EAAGF,GAAcC,EAGnB3qC,KAAK0qC,EAAY/sD,EAAM6vB,GACrBxY,KAAK00C,OAAOn8B,YAAY,CACtBi8B,WAAYx0C,KAAKw0C,WACjBC,WAAYz0C,KAAKy0C,WACjBY,OAAQK,EACR/sD,QACC6vB,GAGLpN,gBAAgBsqC,EAAY/sD,EAAM6vB,GAChC,MAAMm8B,EAAa30C,KAAK20C,aAClBtqD,GAAc,EAAGyb,EAAM1b,2BAC7B4V,KAAK+0C,qBAAqBJ,GAActqD,EAExC,IACE2V,KAAK00C,OAAOn8B,YAAY,CACtBi8B,WAAYx0C,KAAKw0C,WACjBC,WAAYz0C,KAAKy0C,WACjBY,OAAQK,EACRf,aACAhsD,QACC6vB,SACI5pB,GACPvE,EAAWO,OAAOgE,GAGpB,OAAOvE,EAAWI,QAGpBsrB,eAAe2/B,EAAY/sD,EAAMktD,EAAkBr9B,GACjD,MAAMo8B,EAAW50C,KAAK40C,WAChBJ,EAAax0C,KAAKw0C,WAClBC,EAAaz0C,KAAKy0C,WAClBC,EAAS10C,KAAK00C,OACpB,OAAO,IAAIoB,eAAe,CACxB/tB,MAAOguB,IACL,MAAMC,GAAmB,EAAGlwC,EAAM1b,2BAClC,YAAK0qD,kBAAkBF,GAAY,CACjCmB,aACAE,UAAWD,EACXE,SAAU,KACVC,WAAY,KACZC,UAAU,GAEZ1B,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAY,OAAQK,EACRd,WACAjsD,OACA0tD,YAAaN,EAAWM,aACvB79B,GACIw9B,EAAgBvrD,SAEzB6rD,KAAMP,IACJ,MAAMQ,GAAkB,EAAGzwC,EAAM1b,2BACjC,YAAK0qD,kBAAkBF,GAAUsB,SAAWK,EAC5C7B,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OA9LF,EA+LEN,WACAyB,YAAaN,EAAWM,cAEnBE,EAAe9rD,SAExB8sB,OAAQ1sB,KACL,EAAGib,EAAM7c,QAAQ4B,aAAkB4U,MAAO,mCAC3C,MAAM+2C,GAAoB,EAAG1wC,EAAM1b,2BACnC,YAAK0qD,kBAAkBF,GAAUuB,WAAaK,EAC9Cx2C,KAAK80C,kBAAkBF,GAAUwB,UAAW,EAC5C1B,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OAjNA,EAkNAN,WACA/pD,OAAQuqD,EAAWvqD,KAEd2rD,EAAiB/rD,UAEzBorD,GAGLJ,kBAAkB9sD,GAChB,MAAMisD,EAAWjsD,EAAKisD,SAChBJ,EAAax0C,KAAKw0C,WAClBC,EAAa9rD,EAAK6rD,WAClBE,EAAS10C,KAAK00C,OACd+B,EAAOz2C,KACPq1C,EAASr1C,KAAKg1C,cAAcrsD,EAAK0sD,QACjCqB,EAAa,CACjB94B,QAAQ5zB,EAAO+lB,EAAO,EAAGyI,GACvB,GAAIxY,KAAK22C,YACP,OAGF,MAAMC,EAAkB52C,KAAKq2C,YAC7Br2C,KAAKq2C,aAAetmC,EAEhB6mC,EAAkB,GAAK52C,KAAKq2C,aAAe,IAC7Cr2C,KAAK62C,gBAAkB,EAAG/wC,EAAM1b,2BAChC4V,KAAK8d,MAAQ9d,KAAK62C,eAAepsD,SAGnCiqD,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OA/OC,EAgPDN,WACA5qD,SACCwuB,IAGLd,QACM1X,KAAK22C,cAIT32C,KAAK22C,aAAc,EACnBjC,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OA/PD,EAgQCN,oBAEK6B,EAAK5B,YAAYD,KAG1BpgC,MAAM3pB,IACH,EAAGib,EAAM7c,QAAQ4B,aAAkB4U,MAAO,mCAEvCO,KAAK22C,cAIT32C,KAAK22C,aAAc,EACnBjC,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OA9QD,EA+QCN,WACA/pD,OAAQuqD,EAAWvqD,OAIvBgsD,gBAAiB,EAAG/wC,EAAM1b,2BAC1BuzB,OAAQ,KACRE,SAAU,KACV84B,aAAa,EACbN,YAAa1tD,EAAK0tD,YAClBv4B,MAAO,MAET44B,EAAWG,eAAelsD,UAC1B+rD,EAAW54B,MAAQ44B,EAAWG,eAAepsD,QAC7CuV,KAAK60C,YAAYD,GAAY8B,EAC7B,IAAIhsD,QAAQ,SAAUC,GACpBA,EAAQ0qD,EAAO1sD,EAAKA,KAAM+tD,MACzB7sC,KAAK,WACN6qC,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OAjSU,EAkSVN,WACAkC,SAAS,KAEV,SAAUjsD,GACX6pD,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OAzSU,EA0SVN,WACA/pD,OAAQuqD,EAAWvqD,OAKzBsqD,sBAAsBxsD,GACpB,MAAMisD,EAAWjsD,EAAKisD,SAChBJ,EAAax0C,KAAKw0C,WAClBC,EAAa9rD,EAAK6rD,WAClBE,EAAS10C,KAAK00C,OACdqC,EAAmB/2C,KAAK80C,kBAAkBF,GAC1C8B,EAAa12C,KAAK60C,YAAYD,GAEpC,OAAQjsD,EAAKusD,aAxTC,EA0TNvsD,EAAKmuD,QACPC,EAAiBd,UAAUtrD,UAE3BosD,EAAiBd,UAAUrrD,OAAOwqD,EAAWzsD,EAAKkC,SAGpD,WAjUS,EAoULlC,EAAKmuD,QACPC,EAAiBb,SAASvrD,UAE1BosD,EAAiBb,SAAStrD,OAAOwqD,EAAWzsD,EAAKkC,SAGnD,WA3UA,EA8UA,IAAK6rD,EAAY,CACfhC,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OAjVK,EAkVLN,WACAkC,SAAS,IAEX,MAGEJ,EAAWL,aAAe,GAAK1tD,EAAK0tD,YAAc,GACpDK,EAAWG,eAAelsD,UAG5B+rD,EAAWL,YAAc1tD,EAAK0tD,YAC9B,IAAI3rD,QAAQ,SAAUC,GACpBA,EAAQ+rD,EAAW/4B,QAAU+4B,EAAW/4B,YACvC9T,KAAK,WACN6qC,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OAnWK,EAoWLN,WACAkC,SAAS,KAEV,SAAUjsD,GACX6pD,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OA3WK,EA4WLN,WACA/pD,OAAQuqD,EAAWvqD,OAGvB,WAnXG,EAwXH,IAFC,EAAGib,EAAM7c,QAAQ8tD,EAAkB,yCAEhCA,EAAiBX,SACnB,MAGFW,EAAiBhB,WAAWn4B,QAAQj1B,EAAKqB,OACzC,WA9XC,EAmYD,IAFC,EAAG8b,EAAM7c,QAAQ8tD,EAAkB,uCAEhCA,EAAiBX,SACnB,MAGFW,EAAiBX,UAAW,EAC5BW,EAAiBhB,WAAWr+B,QAE5B1X,KAAKg3C,wBAAwBD,EAAkBnC,GAE/C,WA1YC,GA6YA,EAAG9uC,EAAM7c,QAAQ8tD,EAAkB,uCACpCA,EAAiBhB,WAAWvhC,MAAM4gC,EAAWzsD,EAAKkC,SAElDmV,KAAKg3C,wBAAwBD,EAAkBnC,GAE/C,WArZW,EAwZPjsD,EAAKmuD,QACPC,EAAiBZ,WAAWxrD,UAE5BosD,EAAiBZ,WAAWvrD,OAAOwqD,EAAWzsD,EAAKkC,SAGrDmV,KAAKg3C,wBAAwBD,EAAkBnC,GAE/C,WAjaE,EAoaF,IAAK8B,EACH,MAGF,IAAIhsD,QAAQ,SAAUC,GACpBA,EAAQ+rD,EAAW74B,UAAY64B,EAAW74B,SAASu3B,EAAWzsD,EAAKkC,YAClEgf,KAAK,WACN6qC,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OA7aO,EA8aPN,WACAkC,SAAS,KAEV,SAAUjsD,GACX6pD,EAAOn8B,YAAY,CACjBi8B,aACAC,aACAS,OArbO,EAsbPN,WACA/pD,OAAQuqD,EAAWvqD,OAGvB6rD,EAAWG,eAAejsD,OAAOwqD,EAAWzsD,EAAKkC,SACjD6rD,EAAWC,aAAc,SAClB32C,KAAK60C,YAAYD,GACxB,cAGA,MAAM,IAAIn1C,MAAM,2BAIhBu3C,wBAAwBD,EAAkBnC,GAAU,sDAClDlqD,QAAQusD,WAAW,CAACF,EAAiBd,WAAac,EAAiBd,UAAUxrD,QAASssD,EAAiBb,UAAYa,EAAiBb,SAASzrD,QAASssD,EAAiBZ,YAAcY,EAAiBZ,WAAW1rD,iBAChN4pD,EAAKS,kBAAkBF,IAF0B9oC,GAK1DF,UACE5L,KAAK00C,OAAO77B,oBAAoB,UAAW7Y,KAAKi1C,uBAS7C,CAACvvD,GAAyBC,EAASC,aAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQy6B,cAAW,EAEnB,IAAIta,EAAQlgB,EAAoB,GAG9Bm3B,cACAK,cA4BFz3B,EAAQy6B,SA9BR,QAIEngB,aACEi3C,aACAC,YALFz7B,kBACAA,kBAMEyB,QAAKJ,EAAem6B,GACpB/5B,QAAKC,EAAQ+5B,GAGfC,SACE,OAAOn8B,QAAKmC,GAGd5yB,IAAIuV,GACF,OAAOkb,QAAK8B,GAAavyB,IAAIuV,IAAS,KAGxC+uB,SACE,OAAQ,EAAGhpB,EAAMrY,eAAewtB,QAAK8B,IAGvCjD,IAAI/Z,GACF,OAAOkb,QAAK8B,GAAajD,IAAI/Z,MAS1B,CAACra,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQu6B,2BAAwB,EAEhC,IAAIpa,EAAQlgB,EAAoB,GAEhC,QACEqa,YAAYF,GAAMkS,GAChBjS,KAAKmtC,SAAU,EACfntC,KAAKD,KAAOA,GACZC,KAAKiS,OAASA,GA0MlBtsB,EAAQu6B,sBArMR,QACEjgB,YAAYtX,IAMV,GALAqX,KAAKD,KAAO,KACZC,KAAKq3C,QAAU,KACfr3C,KAAKs3C,OAAS,KACdt3C,KAAKu3C,QAAU,IAAIpmC,IAEN,OAATxoB,GAIJ,MAAKoX,KAAOpX,GAAKoX,KACjBC,KAAKq3C,QAAU1uD,GAAK0uD,QACpBr3C,KAAKs3C,OAAS3uD,GAAK6uD,MAEnB,UAAWrN,KAASxhD,GAAK8uD,OACvBz3C,KAAKu3C,QAAQvuD,IAAImhD,EAAM57B,GAAI,IAAImpC,EAAqBvN,EAAMpqC,KAAMoqC,EAAMl4B,SAGxE,GAAuB,QAAnBtpB,GAAKgvD,UACP,UAAWxN,KAASnqC,KAAKu3C,QACvBpN,EAAMgD,SAAU,EAIpB,UAAW/yB,KAAMzxB,GAAKyxB,GACpBpa,KAAKu3C,QAAQ/sD,IAAI4vB,GAAI+yB,SAAU,EAGjC,UAAWyK,KAAOjvD,GAAKivD,IACrB53C,KAAKu3C,QAAQ/sD,IAAIotD,GAAKzK,SAAU,GAIpC0K,8BAA8BC,IAC5B,MAAMxvD,EAASwvD,GAAMxvD,OAErB,GAAIA,EAAS,EACX,OAAO,EAGT,MAAMyvD,EAAWD,GAAM,GAEvB,QAASrvD,EAAI,EAAGA,EAAIH,EAAQG,IAAK,CAC/B,MAAMuvD,EAAUF,GAAMrvD,GACtB,IAAI64C,EAEJ,GAAIvgC,MAAMmpC,QAAQ8N,GAChB1W,EAAQthC,KAAK63C,8BAA8BG,YAClCh4C,KAAKu3C,QAAQz9B,IAAIk+B,GAG1B,OAAC,EAAGlyC,EAAMjX,MAAO,qCAAoCmpD,MAC9C,EAHP1W,EAAQthC,KAAKu3C,QAAQ/sD,IAAIwtD,GAAS7K,QAMpC,OAAQ4K,OACD,MACH,IAAKzW,EACH,OAAO,EAGT,UAEG,KACH,GAAIA,EACF,OAAO,EAGT,UAEG,MACH,OAAQA,UAGR,OAAO,GAIb,MAAoB,QAAbyW,EAGT3K,UAAUjD,IACR,GAA0B,IAAtBnqC,KAAKu3C,QAAQxnC,KACf,OAAO,EAGT,IAAKo6B,GACH,OAAC,EAAGrkC,EAAMjX,MAAM,wCACT,EAGT,GAAmB,QAAfs7C,GAAMrlC,KACR,OAAK9E,KAAKu3C,QAAQz9B,IAAIqwB,GAAM57B,IAKrBvO,KAAKu3C,QAAQ/sD,IAAI2/C,GAAM57B,IAAI4+B,YAJ5BrnC,EAAMjX,MAAO,qCAAoCs7C,GAAM57B,OACpD,GAIJ,GAAmB,SAAf47B,GAAMrlC,KAAiB,CAChC,GAAIqlC,GAAM8N,WACR,OAAOj4C,KAAK63C,8BAA8B1N,GAAM8N,YAGlD,IAAK9N,GAAM+N,QAA2B,UAAjB/N,GAAM+N,OAAoB,CAC7C,UAAW3pC,KAAM47B,GAAMgO,IAAK,CAC1B,IAAKn4C,KAAKu3C,QAAQz9B,IAAIvL,GACpB,OAAC,EAAGzI,EAAMjX,MAAO,qCAAoC0f,MAC9C,EAGT,GAAIvO,KAAKu3C,QAAQ/sD,IAAI+jB,GAAI4+B,QACvB,OAAO,EAIX,OAAO,KACmB,UAAjBhD,GAAM+N,OAAoB,CACnC,UAAW3pC,KAAM47B,GAAMgO,IAAK,CAC1B,IAAKn4C,KAAKu3C,QAAQz9B,IAAIvL,GACpB,OAAC,EAAGzI,EAAMjX,MAAO,qCAAoC0f,MAC9C,EAGT,IAAKvO,KAAKu3C,QAAQ/sD,IAAI+jB,GAAI4+B,QACxB,OAAO,EAIX,OAAO,KACmB,WAAjBhD,GAAM+N,OAAqB,CACpC,UAAW3pC,KAAM47B,GAAMgO,IAAK,CAC1B,IAAKn4C,KAAKu3C,QAAQz9B,IAAIvL,GACpB,OAAC,EAAGzI,EAAMjX,MAAO,qCAAoC0f,MAC9C,EAGT,IAAKvO,KAAKu3C,QAAQ/sD,IAAI+jB,GAAI4+B,QACxB,OAAO,EAIX,OAAO,KACmB,WAAjBhD,GAAM+N,OAAqB,CACpC,UAAW3pC,KAAM47B,GAAMgO,IAAK,CAC1B,IAAKn4C,KAAKu3C,QAAQz9B,IAAIvL,GACpB,OAAC,EAAGzI,EAAMjX,MAAO,qCAAoC0f,MAC9C,EAGT,GAAIvO,KAAKu3C,QAAQ/sD,IAAI+jB,GAAI4+B,QACvB,OAAO,EAIX,OAAO,EAGT,OAAC,EAAGrnC,EAAMjX,MAAO,mCAAkCs7C,GAAM+N,YAClD,EAGT,OAAC,EAAGpyC,EAAMjX,MAAO,sBAAqBs7C,GAAMrlC,UACrC,EAGTszC,cAAc7pC,GAAI4+B,GAAU,GACrBntC,KAAKu3C,QAAQz9B,IAAIvL,IAKtBvO,KAAKu3C,QAAQ/sD,IAAI+jB,IAAI4+B,UAAYA,GAJ9B,EAAGrnC,EAAMjX,MAAO,qCAAoC0f,MAOzD8pC,WACE,OAAKr4C,KAAKu3C,QAAQxnC,KAId/P,KAAKs3C,OACAt3C,KAAKs3C,OAAOt1C,QAGdjB,MAAMu3C,KAAKt4C,KAAKu3C,QAAQzpD,QAPtB,KAUXyqD,YACE,OAAOv4C,KAAKu3C,QAAQxnC,KAAO,GAAK,EAAGjK,EAAMrY,eAAeuS,KAAKu3C,SAAW,KAG1EiB,SAASjqC,IACP,OAAOvO,KAAKu3C,QAAQ/sD,IAAI+jB,KAAO,QAS5B,CAAC7oB,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQwkB,4BAAyB,EAEjC,IAAIrE,EAAQlgB,EAAoB,GAE5BmgB,EAAiBngB,EAAoB,GAsJzCD,EAAQwkB,uBApJR,QACElK,YAAYuH,EAAQ2D,IACjB,EAAGrF,EAAM7c,QAAQkiB,EAAuB,+EACzCnL,KAAKy4C,cAAgB,GACrBz4C,KAAK04C,iBAAmBlxC,EAAO6C,kBAAmB,EAClDrK,KAAK24C,4BAA8BnxC,EAAO8C,4BAA8B,KACxE,MAAMF,EAAc5C,EAAO4C,YAE3B,GAAIA,GAAa9hB,OAAS,EAAG,CAC3B,MAAM4D,EAAS,IAAI3D,WAAW6hB,GAAale,OAE3C8T,KAAKy4C,cAAcvuD,KAAKgC,GAG1B8T,KAAK44C,uBAAyBztC,EAC9BnL,KAAK64C,uBAAyBrxC,EAAO4B,cACrCpJ,KAAK84C,mBAAqBtxC,EAAO2B,aACjCnJ,KAAK+4C,eAAiBvxC,EAAOlf,OAC7B0X,KAAKg5C,mBAAqB,KAC1Bh5C,KAAKi5C,cAAgB,GAErBj5C,KAAK44C,uBAAuBxsC,iBAAiB,CAACM,EAAO1iB,KACnDgW,KAAKk5C,eAAe,CAClBxsC,QACA1iB,YAIJgW,KAAK44C,uBAAuBtsC,oBAAoB,CAACM,EAAQC,KACvD7M,KAAKm5C,YAAY,CACfvsC,SACAC,YAIJ7M,KAAK44C,uBAAuBrsC,2BAA2BviB,IACrDgW,KAAKk5C,eAAe,CAClBlvD,YAIJgW,KAAK44C,uBAAuBpsC,2BAA2B,KACrDxM,KAAKo5C,uBAGPp5C,KAAK44C,uBAAuB5rC,iBAG9BksC,eAAeprB,GACb,MAAM5hC,EAAS,IAAI3D,WAAWulC,EAAK9jC,OAAOkC,OAE1C,QAAmB3C,IAAfukC,EAAKphB,MACH1M,KAAKg5C,mBACPh5C,KAAKg5C,mBAAmBK,SAASntD,GAEjC8T,KAAKy4C,cAAcvuD,KAAKgC,OAErB,CACL,MAAMotD,EAAQt5C,KAAKi5C,cAAcM,KAAK,SAAUj7B,GAC9C,OAAIA,EAAYk7B,SAAW1rB,EAAKphB,QAIhC4R,EAAY+6B,SAASntD,IAEd,MAGR,EAAG4Z,EAAM7c,QAAQqwD,EAAO,4EAIzBG,6BACF,OAAOz5C,KAAKg5C,oBAAoBU,SAAW,EAG7CP,YAAYz7B,GACV,QAAkBn0B,IAAdm0B,EAAI7Q,MAAqB,CAC3B,MAAM8sC,EAAc35C,KAAKi5C,cAAc,GAEnCU,GAAajuC,YACfiuC,EAAYjuC,WAAW,CACrBkB,OAAQ8Q,EAAI9Q,aAGX,CACL,MAAMqR,EAAaje,KAAKg5C,mBAEpB/6B,GAAYvS,YACduS,EAAWvS,WAAW,CACpBkB,OAAQ8Q,EAAI9Q,OACZC,MAAO6Q,EAAI7Q,SAMnBusC,qBACMp5C,KAAKg5C,oBACPh5C,KAAKg5C,mBAAmB3uC,kBAG1BrK,KAAK04C,kBAAmB,EAG1BkB,mBAAmBnjC,GACjB,MAAMhuB,EAAIuX,KAAKi5C,cAAcngC,QAAQrC,GAEjChuB,GAAK,GACPuX,KAAKi5C,cAAclgC,OAAOtwB,EAAG,GAIjCg1B,iBACG,EAAG3X,EAAM7c,SAAS+W,KAAKg5C,mBAAoB,iEAC5C,MAAMa,EAAe75C,KAAKy4C,cAC1B,YAAKA,cAAgB,KACd,IAAIqB,EAA6B95C,KAAM65C,EAAc75C,KAAK04C,iBAAkB14C,KAAK24C,6BAG1Fp6B,eAAe7R,EAAOQ,GACpB,GAAIA,GAAOlN,KAAKy5C,uBACd,OAAO,KAGT,MAAMhjC,EAAS,IAAIsjC,GAAkC/5C,KAAM0M,EAAOQ,GAElE,YAAK0rC,uBAAuB3rC,iBAAiBP,EAAOQ,GAEpDlN,KAAKi5C,cAAc/uD,KAAKusB,GAEjBA,EAGT8G,kBAAkB1yB,GACZmV,KAAKg5C,oBACPh5C,KAAKg5C,mBAAmBzhC,OAAO1sB,GAGjC,UAAW4rB,KAAUzW,KAAKi5C,cAAcj3C,MAAM,GAC5CyU,EAAOc,OAAO1sB,GAGhBmV,KAAK44C,uBAAuBzrC,UAOhC,QACElN,YAAYi1C,EAAQ2E,EAAcxvC,GAAkB,EAAOC,EAA6B,MACtFtK,KAAKg6C,QAAU9E,EACfl1C,KAAKi6C,MAAQ5vC,IAAmB,EAChCrK,KAAKk6C,WAAa,EAAGn0C,EAAe6d,WAAWtZ,GAA8BA,EAA6B,KAC1GtK,KAAKy4C,cAAgBoB,GAAgB,GACrC75C,KAAK05C,QAAU,EAEf,UAAW1vD,KAASgW,KAAKy4C,cACvBz4C,KAAK05C,SAAW1vD,EAAMjB,WAGxBiX,KAAKm6C,UAAY,GACjBn6C,KAAKo6C,cAAgB1vD,QAAQC,UAC7BuqD,EAAO8D,mBAAqBh5C,KAC5BA,KAAK0L,WAAa,KAGpB2tC,SAASrvD,GACHgW,KAAKi6C,QAILj6C,KAAKm6C,UAAU7xD,OAAS,EAG1B+xD,KAF+BF,UAAU5uB,QAEvB5gC,QAAQ,CACxB5E,MAAOiE,EACP6sB,MAAM,IAGR7W,KAAKy4C,cAAcvuD,KAAKF,GAG1BgW,KAAK05C,SAAW1vD,EAAMjB,YAGpBm1B,mBACF,OAAOle,KAAKo6C,cAGVp6B,eACF,OAAOhgB,KAAKk6C,UAGV97B,uBACF,OAAOpe,KAAKg6C,QAAQlB,kBAGlB36B,2BACF,OAAOne,KAAKg6C,QAAQnB,sBAGlBx6B,oBACF,OAAOre,KAAKg6C,QAAQjB,eAGhBniC,OAAO,gDACX,GAAIwT,EAAKquB,cAAcnwD,OAAS,EAG9B,MAAO,CACLvC,MAHYqkC,EAAKquB,cAAcltB,QAI/B1U,MAAM,GAIV,GAAIuT,EAAK6vB,MACP,MAAO,CACLl0D,WAAOwD,EACPstB,MAAM,GAIV,MAAMwjC,GAAqB,EAAGv0C,EAAM1b,2BAEpC,SAAK+vD,UAAUjwD,KAAKmwD,GAEbA,EAAkB5vD,SArBdqhB,GAwBbyL,OAAO1sB,GACLmV,KAAKi6C,OAAQ,EAEb,UAAWI,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,EAG1B+hB,kBACMrK,KAAKi6C,QAITj6C,KAAKi6C,OAAQ,IAKjB,SACEh6C,YAAYi1C,EAAQxoC,EAAOQ,GACzBlN,KAAKg6C,QAAU9E,EACfl1C,KAAKw5C,OAAS9sC,EACd1M,KAAKs6C,KAAOptC,EACZlN,KAAKu6C,aAAe,KACpBv6C,KAAKm6C,UAAY,GACjBn6C,KAAKi6C,OAAQ,EACbj6C,KAAK0L,WAAa,KAGpB2tC,SAASrvD,GACP,IAAIgW,KAAKi6C,MAIT,IAA8B,IAA1Bj6C,KAAKm6C,UAAU7xD,OACjB0X,KAAKu6C,aAAevwD,MACf,CACsBgW,KAAKm6C,UAAU5uB,QAEvB5gC,QAAQ,CACzB5E,MAAOiE,EACP6sB,MAAM,IAGR,UAAWwjC,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,EAG1B0X,KAAKi6C,OAAQ,EAEbj6C,KAAKg6C,QAAQJ,mBAAmB55C,OAG9Bme,2BACF,OAAO,EAGHvH,OAAO,gDACX,GAAIwT,EAAKmwB,aAAc,CACrB,MAAMvwD,EAAQogC,EAAKmwB,aACnB,SAAKA,aAAe,KACb,CACLx0D,MAAOiE,EACP6sB,MAAM,GAIV,GAAIuT,EAAK6vB,MACP,MAAO,CACLl0D,WAAOwD,EACPstB,MAAM,GAIV,MAAMwjC,GAAqB,EAAGv0C,EAAM1b,2BAEpC,SAAK+vD,UAAUjwD,KAAKmwD,GAEbA,EAAkB5vD,SArBdqhB,GAwBbyL,OAAO1sB,GACLmV,KAAKi6C,OAAQ,EAEb,UAAWI,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,EAExB0X,KAAKg6C,QAAQJ,mBAAmB55C,SAO7B,CAACta,GAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ4wB,aAAU,EAElB,QAActV,mBACOqV,GACjB,MAAMF,EAAQ,GACRokC,EAAS,CACbpkC,QACAO,OAAQ9wB,OAAOyE,OAAO,OAoCxBmwD,OAjCA,YAAcC,GACZ,IAAKA,EACH,OAGF,IAAI7uD,EAAM,KACV,MAAMkU,EAAO26C,EAAK36C,KAElB,GAAa,UAATA,EACFlU,EAAM6uD,EAAK30D,eACDwwB,EAAQokC,gBAAgB56C,GAClC,OACS26C,GAAMj3B,YAAYtN,YAC3BtqB,EAAM6uD,EAAKj3B,WAAWtN,YACbukC,EAAK30D,QACd8F,EAAM6uD,EAAK30D,OASb,GANY,OAAR8F,GACFuqB,EAAMlsB,KAAK,CACT2B,QAIC6uD,EAAK7nC,SAIV,UAAW+nC,KAASF,EAAK7nC,SACvB4nC,GAAKG,GAITH,CAAKnkC,GACEkkC,yBAGcz6C,GACrB,QAAkB,aAATA,GAAgC,UAATA,GAA6B,WAATA,GAA8B,WAATA,IAK7Epa,EAAQ4wB,QAAUA,GAIX,CAAC7wB,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQuhB,4BAA8BvhB,EAAQqhB,kBAAoBrhB,EAAQshB,2BAAwB,EAElG,IAAIsd,EAAgB3+B,EAAoB,GAIxC,MAAMugC,EAAY,SAAUp7B,GAC1B,OAAO,IAAIL,QAAQ,CAACC,EAASC,KAChBiwD,oBAAQ,OAEhBC,SAAS/vD,EAAK,CAACypB,EAAO7rB,MACnB6rB,GAAU7rB,EAKdgC,EAAQ,IAAIpC,WAAWI,IAJrBiC,EAAO,IAAI6U,MAAM+U,SAkBzB7uB,EAAQqhB,kBATR,gBAAgCud,EAAcsB,kBAC5CE,cAAcvG,EAAOC,GAGnB,OAAOs7B,oBAFgB,OAETC,aAAax7B,EAAOC,KAmBtC95B,EAAQshB,sBAZR,gBAAoCsd,EAAcyB,sBAChDC,WAAWl7B,EAAKm7B,GACd,OAAOC,EAAUp7B,GAAK8e,KAAKlhB,IAClB,CACLy9B,SAAUz9B,EACVu9B,uBAgBRvgC,EAAQuhB,4BAPR,iBAA0Cqd,EAAc8B,4BACtDJ,WAAWl7B,GACT,OAAOo7B,EAAUp7B,MASd,CAACrF,GAAyBC,EAASC,cAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQs1D,qBAAkB,EAE1B,IAAIn1C,EAAQlgB,EAAoB,GAE5BmgB,EAAiBngB,EAAoB,GAErCqgB,EAAsBrgB,EAAoB,GAE1Cs1D,EAAmBt1D,EAAoB,IAEvCu1D,GAAav1D,EAAoB,IAErC,MAAMw1D,EAAoB,IACpBC,EAAuB,IAAI94B,QAEjC,WAAqB7f,GACnB,MAAO,CACL8c,MAAO9c,EAAK,GAAKA,EAAK,GACtB+c,OAAQ/c,EAAK,GAAKA,EAAK,IAI3B,QAA+BzB,cACfq6C,GAGZ,OAFgBA,EAAW3yD,KAAK4yD,qBAGzBz1C,EAAMte,eAAegK,KACxB,OAAO,IAAIgqD,EAAsBF,QAE9Bx1C,EAAMte,eAAe+J,KACxB,OAAO,IAAIkqD,EAAsBH,QAE9Bx1C,EAAMte,eAAekL,OAGxB,OAFkB4oD,EAAW3yD,KAAK+yD,eAG3B,KACH,OAAO,IAAIC,EAA4BL,OAEpC,MACH,OAAIA,EAAW3yD,KAAKizD,YACX,IAAIC,EAAmCP,GACrCA,EAAW3yD,KAAKmzD,SAClB,IAAIC,EAAgCT,GAGtC,IAAIU,EAAkCV,OAE1C,KACH,OAAO,IAAIW,EAA8BX,GAG7C,OAAO,IAAIY,EAAwBZ,QAEhCx1C,EAAMte,eAAe8K,MACxB,OAAO,IAAI6pD,EAAuBb,QAE/Bx1C,EAAMte,eAAeiK,SACxB,OAAO,IAAI2qD,EAA0Bd,QAElCx1C,EAAMte,eAAekK,KACxB,OAAO,IAAI2qD,EAAsBf,QAE9Bx1C,EAAMte,eAAemK,OACxB,OAAO,IAAI2qD,EAAwBhB,QAEhCx1C,EAAMte,eAAeoK,OACxB,OAAO,IAAI2qD,EAAwBjB,QAEhCx1C,EAAMte,eAAesK,SACxB,OAAO,IAAI0qD,EAA0BlB,QAElCx1C,EAAMte,eAAe4K,MACxB,OAAO,IAAIqqD,EAAuBnB,QAE/Bx1C,EAAMte,eAAe6K,IACxB,OAAO,IAAIqqD,EAAqBpB,QAE7Bx1C,EAAMte,eAAeqK,QACxB,OAAO,IAAI8qD,EAAyBrB,QAEjCx1C,EAAMte,eAAeuK,UACxB,OAAO,IAAI6qD,EAA2BtB,QAEnCx1C,EAAMte,eAAewK,UACxB,OAAO,IAAI6qD,GAA2BvB,QAEnCx1C,EAAMte,eAAeyK,SACxB,OAAO,IAAI6qD,EAA0BxB,QAElCx1C,EAAMte,eAAe0K,UACxB,OAAO,IAAI6qD,GAA2BzB,QAEnCx1C,EAAMte,eAAe2K,MACxB,OAAO,IAAI6qD,GAAuB1B,QAE/Bx1C,EAAMte,eAAe+K,eACxB,OAAO,IAAI0qD,GAAgC3B,WAG3C,OAAO,IAAI4B,EAAkB5B,KAMrC,QACEr7C,YAAYq7C,GACV6B,gBAAe,EACfC,gBAAe,EACfC,wBAAuB,GACrB,IACFr9C,KAAKm9C,aAAeA,EACpBn9C,KAAKrX,KAAO2yD,EAAW3yD,KACvBqX,KAAKs9C,MAAQhC,EAAWgC,MACxBt9C,KAAK6c,KAAOy+B,EAAWz+B,KACvB7c,KAAKgT,SAAWsoC,EAAWtoC,SAC3BhT,KAAKu9C,YAAcjC,EAAWiC,YAC9Bv9C,KAAKw9C,gBAAkBlC,EAAWkC,gBAClCx9C,KAAKy9C,mBAAqBnC,EAAWmC,mBACrCz9C,KAAK09C,YAAcpC,EAAWoC,YAC9B19C,KAAK29C,WAAarC,EAAWqC,WAC7B39C,KAAK4N,kBAAoB0tC,EAAW1tC,kBACpC5N,KAAK49C,gBAAkBtC,EAAWsC,gBAClC59C,KAAKiQ,aAAeqrC,EAAWrrC,aAC/BjQ,KAAK69C,cAAgBvC,EAAWwC,aAChC99C,KAAK+9C,YAAczC,EAAW0C,WAE1Bb,IACFn9C,KAAKi+C,UAAYj+C,KAAKk+C,iBAAiBd,IAGrCC,IACFr9C,KAAKm+C,eAAiBn+C,KAAKo+C,sBAAsBhB,IAIrDc,iBAAiBd,GAAe,GAC9B,MAAMz0D,EAAOqX,KAAKrX,KACZk0B,EAAO7c,KAAK6c,KACZ7J,EAAWhT,KAAKgT,SAChBirC,EAAY/0C,SAAS8a,cAAc,WACzC,IACExE,QACAC,UACE4+B,EAAY11D,EAAK+Z,MACrBu7C,EAAU30B,aAAa,qBAAsB3gC,EAAK4lB,IAElD,MAAM7L,EAAOoD,EAAM7f,KAAKq6C,cAAc,CAAC33C,EAAK+Z,KAAK,GAAIma,EAAKtL,KAAK,GAAK5oB,EAAK+Z,KAAK,GAAKma,EAAKtL,KAAK,GAAI5oB,EAAK+Z,KAAK,GAAIma,EAAKtL,KAAK,GAAK5oB,EAAK+Z,KAAK,GAAKma,EAAKtL,KAAK,KAEvJ,GAAI5oB,EAAKoiD,aAAc,CACrB,MAAM9xC,EAAY+Z,EAAS/Z,UAAU+I,SAE9BwoC,EAAQC,IAAU3kC,EAAM7f,KAAKqwC,8BAA8Br9B,GAElEumB,EAAQ11B,KAAKy1C,KAAK/f,EAAQgrB,GAC1B/qB,EAAS31B,KAAKy1C,KAAK9f,EAASgrB,IAC5B/nC,EAAK,IAAM8nC,EACX9nC,EAAK,IAAM+nC,GAEX,QAAShiD,GAAI,EAAGA,GAAI,EAAGA,KACrBwQ,EAAUxQ,IAAKqB,KAAK8pC,KAAK36B,EAAUxQ,KAGrCw1D,EAAUv6B,MAAMzqB,UAAa,UAASA,EAAU9O,KAAK,aAErD8zD,EAAUv6B,MAAMzqB,UAAa,UAAS+Z,EAAS/Z,UAAU9O,KAAK,QAKhE,GAFA8zD,EAAUv6B,MAAM46B,gBAAmB,IAAG57C,EAAK,SAASA,EAAK,QAEpD06C,GAAgBz0D,EAAK41D,YAAY/+B,MAAQ,EAAG,CAC/Cy+B,EAAUv6B,MAAM86B,YAAe,GAAE71D,EAAK41D,YAAY/+B,UAE9C72B,EAAK41D,YAAY76B,QAAU5d,EAAM9d,0BAA0BgK,YAC7DwtB,GAAS,EAAI72B,EAAK41D,YAAY/+B,MAC9BC,GAAU,EAAI92B,EAAK41D,YAAY/+B,OAGjC,MAAMi/B,EAAmB91D,EAAK41D,YAAYG,uBACpCC,EAAiBh2D,EAAK41D,YAAYK,qBAOxC,QALIH,EAAmB,GAAKE,EAAiB,KAE3CV,EAAUv6B,MAAMm7B,aADA,GAAEJ,SAAwBE,OAIpCh2D,EAAK41D,YAAY76B,YAClB5d,EAAM9d,0BAA0BqN,MACnC4oD,EAAUv6B,MAAM66B,YAAc,QAC9B,WAEGz4C,EAAM9d,0BAA0BsN,OACnC2oD,EAAUv6B,MAAM66B,YAAc,SAC9B,WAEGz4C,EAAM9d,0BAA0BuN,SAClC,EAAGuQ,EAAMjX,MAAM,uCAChB,WAEGiX,EAAM9d,0BAA0BwN,OAClC,EAAGsQ,EAAMjX,MAAM,qCAChB,WAEGiX,EAAM9d,0BAA0BgK,UACnCisD,EAAUv6B,MAAMo7B,kBAAoB,QAOpBn2D,EAAKo2D,aAAep2D,EAAKygD,MAG3C6U,EAAUv6B,MAAMq7B,YAAcj5C,EAAM7f,KAAKujD,aAA6B,EAAhB7gD,EAAKygD,MAAM,GAAwB,EAAhBzgD,EAAKygD,MAAM,GAAwB,EAAhBzgD,EAAKygD,MAAM,IAEvG6U,EAAUv6B,MAAM86B,YAAc,EAIlCP,SAAUv6B,MAAM+I,KAAQ,GAAE/pB,EAAK,OAC/Bu7C,EAAUv6B,MAAM8I,IAAO,GAAE9pB,EAAK,OAE9BjB,EAASspC,aACPkT,EAAUv6B,MAAMlE,MAAQy+B,EAAUv6B,MAAMjE,OAAS,QAEjDw+B,EAAUv6B,MAAMlE,MAAS,GAAEA,MAC3By+B,EAAUv6B,MAAMjE,OAAU,GAAEA,OAGvBw+B,EAGLe,qBACF,MAAMC,EAAW,CAACC,EAAQC,EAAW1mC,KACnC,MAAM2wB,EAAQ3wB,EAAM2mC,OAAOF,GAC3BzmC,EAAM4mC,OAAO37B,MAAMy7B,GAAajE,EAAiBoE,gBAAiB,GAAElW,EAAM,WAAWA,EAAMpnC,MAAM,KAGnG,OAAQ,EAAG8D,EAAM3X,QAAQ6R,KAAM,iBAAkB,CAC/Cu/C,QAAS9mC,IACP,MAAM+mC,EAAS/mC,EAAM2mC,OAAOG,QAAU,GAAM,EAC5C9mC,EAAM4mC,OAAO37B,MAAM4I,WAAakzB,EAAS,SAAW,UACpDx/C,KAAK4N,kBAAkB4gB,SAASxuB,KAAKrX,KAAK4lB,GAAI,CAC5CixC,SACAC,MAAgC,IAAzBhnC,EAAM2mC,OAAOG,SAA0C,IAAzB9mC,EAAM2mC,OAAOG,WAGtDE,MAAOhnC,IACLzY,KAAK4N,kBAAkB4gB,SAASxuB,KAAKrX,KAAK4lB,GAAI,CAC5CkxC,MAAOhnC,EAAM2mC,OAAOK,SAGxBD,OAAQ/mC,IACNA,EAAM4mC,OAAO37B,MAAM4I,WAAa7T,EAAM2mC,OAAOI,OAAS,SAAW,UACjEx/C,KAAK4N,kBAAkB4gB,SAASxuB,KAAKrX,KAAK4lB,GAAI,CAC5CixC,OAAQ/mC,EAAM2mC,OAAOI,UAGzBE,MAAOjnC,IACLP,WAAW,IAAMO,EAAM4mC,OAAOK,MAAM,CAClCC,eAAe,IACb,IAENC,SAAUnnC,IACRA,EAAM4mC,OAAOQ,MAAQpnC,EAAM2mC,OAAOQ,UAEpCE,SAAUrnC,IACJA,EAAM2mC,OAAOU,SACfrnC,EAAM4mC,OAAO/1B,aAAa,WAAY,IAEtC7Q,EAAM4mC,OAAOU,gBAAgB,aAGjCC,SAAUvnC,IACJA,EAAM2mC,OAAOY,SACfvnC,EAAM4mC,OAAO/1B,aAAa,WAAY,IAEtC7Q,EAAM4mC,OAAOU,gBAAgB,aAGjCE,QAASxnC,IACPwmC,EAAS,UAAW,kBAAmBxmC,IAEzCoc,UAAWpc,IACTwmC,EAAS,YAAa,kBAAmBxmC,IAE3CynC,QAASznC,IACPwmC,EAAS,UAAW,QAASxmC,IAE/B0nC,UAAW1nC,IACTwmC,EAAS,YAAa,QAASxmC,IAEjCsmC,YAAatmC,IACXwmC,EAAS,cAAe,cAAexmC,IAEzCqc,YAAarc,IACXwmC,EAAS,cAAe,cAAexmC,MAK7C2nC,0BAA0BC,EAASC,GACjC,MAAMC,EAAgBvgD,KAAKg/C,eAE3B,UAAWj/C,KAAQla,OAAOiI,KAAKwyD,EAAQlB,QAAS,CAC9C,MAAM/J,EAASgL,EAAQtgD,IAASwgD,EAAcxgD,GAE1Cs1C,GACFA,EAAOiL,IAKbE,4BAA4BxI,GAC1B,IAAKh4C,KAAK49C,gBACR,OAGF,MAAM6C,EAAazgD,KAAK4N,kBAAkB2gB,YAAYvuB,KAAKrX,KAAK4lB,IAEhE,IAAKkyC,EACH,OAGF,MAAMF,EAAgBvgD,KAAKg/C,eAE3B,UAAYtJ,EAAY0J,KAAWv5D,OAAO+oC,QAAQ6xB,GAAa,CAC7D,MAAMpL,EAASkL,EAAc7K,GAEzBL,IACFA,EAAO,CACL+J,SACAC,OAAQrH,WAEHyI,EAAW/K,KAKxB0I,sBAAsBhB,GAAe,GACnC,IAAKp9C,KAAKrX,KAAK+3D,WACb,OAAO,KAGT,MAAMvC,EAAiB,GACjBwC,EAAY3gD,KAAKrX,KAAK+Z,KAE5B,UAAWk+C,KAAa5gD,KAAKrX,KAAK+3D,WAChC1gD,KAAKrX,KAAK+Z,KAAO,CAACk+C,EAAU,GAAGz5B,EAAGy5B,EAAU,GAAGx5B,EAAGw5B,EAAU,GAAGz5B,EAAGy5B,EAAU,GAAGx5B,GAC/E+2B,EAAej0D,KAAK8V,KAAKk+C,iBAAiBd,IAG5C,YAAKz0D,KAAK+Z,KAAOi+C,EACVxC,EAGT0C,aAAaC,EAASn4D,GACpB,IAAIs1D,EAAYj+C,KAAKi+C,UAEjBj+C,KAAKm+C,iBACP2C,EAAUA,GAAW9gD,KAAKm+C,eAC1BF,EAAYj+C,KAAKm+C,eAAe,IAG7B2C,KACHA,EAAU53C,SAAS8a,cAAc,QACzBN,MAAMjE,OAASw+B,EAAUv6B,MAAMjE,OACvCqhC,EAAQp9B,MAAMlE,MAAQy+B,EAAUv6B,MAAMlE,MACtCy+B,EAAU35B,YAAYw8B,IAaxB,MAAMC,EAAQC,IAVWC,EAAa,CACpChD,YACA6C,UACA1X,MAAOzgD,EAAKygD,MACZ52B,SAAU7pB,EAAK6pB,SACf0uC,iBAAkBv4D,EAAKu4D,iBACvBzuC,YAAa9pB,EAAK8pB,YAClB0uC,SAAUx4D,EAAKw4D,SACfC,aAAa,IAEYtuC,SAC3BiuC,EAAMr9B,MAAM+I,KAAOwxB,EAAUv6B,MAAMlE,MACnCy+B,EAAU35B,YAAYy8B,GAGxBM,sBAAsBC,GACpB,UAAWC,KAAiBvhD,KAAKm+C,eAC/BoD,EAAcD,UAAYA,EAG5B,OAAOthD,KAAKm+C,eAGdrrC,UACG,EAAGhN,EAAM1c,aAAa,qDAGzBo4D,mBAAmBzhD,EAAM0hD,EAAS,MAChC,MAAMC,EAAS,GAEf,GAAI1hD,KAAK69C,cAAe,CACtB,MAAM8D,EAAW3hD,KAAK69C,cAAc99C,GAEpC,GAAI4hD,EACF,UACE9kC,OACAtO,KACAqzC,kBACGD,EAAU,CAKb,IAJa,IAAT9kC,GAIAtO,IAAOkzC,EACT,SAGF,MAAMI,EAAsC,iBAAjBD,EAA4BA,EAAe,KAChEE,EAAa54C,SAAS64C,eAAexzC,IAEvCuzC,GAAezG,EAAqBvhC,IAAIgoC,GAK5CJ,EAAOx3D,KAAK,CACVqkB,KACAszC,cACAC,gBAPC,EAAGh8C,EAAMjX,MAAO,6CAA4C0f,KAYnE,OAAOmzC,EAGT,UAAWI,KAAc54C,SAAS84C,kBAAkBjiD,GAAO,CACzD,MACEwO,KACAszC,eACEC,EAEAvzC,IAAOkzC,KAINpG,EAAqBvhC,IAAIgoC,IAI9BJ,EAAOx3D,KAAK,CACVqkB,KACAszC,cACAC,gBAIJ,OAAOJ,EAGEO,sBACT,MAAMA,SAAkB72B,UAAc,IAAcA,UAAU62B,SAAW,GACzE,OAAQ,EAAGn8C,EAAM3X,QAAQ6R,KAAM,WAAY,CACzCkiD,MAAOD,EAAS3+B,SAAS,OACzB6+B,MAAOF,EAAS3+B,SAAS,UAM/B,gBAAoC45B,EAClCj9C,YAAYq7C,EAAYrwD,EAAU,MAEhCkV,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAKoC,KAAOuwD,EAAW3yD,KAAK6uC,MAAQ8jB,EAAW3yD,KAAK0sD,QAAUiG,EAAW3yD,KAAKy5D,eAAiB9G,EAAW3yD,KAAK05D,WAAa/G,EAAW3yD,KAAK03D,UAAY/E,EAAW3yD,KAAK03D,QAAQiC,QAAUhH,EAAW3yD,KAAK03D,QAAQ,aAAe/E,EAAW3yD,KAAK03D,QAAQ,gBAG1RjD,eAAgBnyD,GAASmyD,aACzBC,sBAAsB,IAI1BvqC,SACE,MACEnqB,OACA40D,eACEv9C,KACEuiD,EAAOr5C,SAAS8a,cAAc,KAEpC,GAAIr7B,EAAKoC,IACPwyD,EAAYiF,kBAAkBD,EAAM55D,EAAKoC,IAAKpC,EAAK85D,mBAC1C95D,EAAK0sD,OACdr1C,KAAK0iD,iBAAiBH,EAAM55D,EAAK0sD,gBACxB1sD,EAAK6uC,KACdx3B,KAAK2iD,UAAUJ,EAAM55D,EAAK6uC,UACrB,CACL,IAAIorB,GAAiB,EAEjBj6D,EAAK03D,UAAY13D,EAAK03D,QAAQiC,QAAU35D,EAAK03D,QAAQ,aAAe13D,EAAK03D,QAAQ,gBAAkBrgD,KAAK49C,iBAAmB59C,KAAKiQ,eAClI2yC,GAAiB,EAEjB5iD,KAAK6iD,cAAcN,EAAM55D,IAG3BF,EAAS45D,UACPriD,KAAK8iD,qBAAqBP,EAAM55D,EAAK05D,WAC3BO,GACV5iD,KAAK2iD,UAAUJ,EAAM,IAIzB,OAAIviD,KAAKm+C,eACAn+C,KAAKqhD,sBAAsB,kBAAkB3zD,IAAI,CAAC6zD,EAAewB,KACtE,MAAMC,EAAwB,IAAVD,EAAcR,EAAOA,EAAKU,YAC9C1B,SAAcj9B,YAAY0+B,GACnBzB,KAIXvhD,KAAKi+C,UAAUqD,UAAY,iBAC3BthD,KAAKi+C,UAAU35B,YAAYi+B,GACpBviD,KAAKi+C,WAGd0E,UAAUJ,EAAMW,GACdX,EAAK16C,KAAO7H,KAAKu9C,YAAY4F,mBAAmBD,GAEhDX,EAAKa,QAAU,KACTF,GACFljD,KAAKu9C,YAAY8F,gBAAgBH,IAG5B,IAGLA,GAA+B,KAAhBA,KACjBX,EAAKjB,UAAY,gBAIrBoB,iBAAiBH,EAAMlN,GACrBkN,EAAK16C,KAAO7H,KAAKu9C,YAAY+F,aAAa,IAE1Cf,EAAKa,QAAU,KACbpjD,KAAKu9C,YAAYgG,mBAAmBlO,IAC7B,GAGTkN,EAAKjB,UAAY,eAGnBuB,cAAcN,EAAM55D,GAClB45D,EAAK16C,KAAO7H,KAAKu9C,YAAY+F,aAAa,IAC1C,MAAM51D,EAAM,IAAIyjB,IAAI,CAAC,CAAC,SAAU,WAAY,CAAC,WAAY,aAAc,CAAC,aAAc,iBAEtF,UAAWpR,KAAQla,OAAOiI,KAAKnF,EAAK03D,SAAU,CAC5C,MAAMnB,EAASxxD,EAAIlD,IAAIuV,IAElBm/C,IAILqD,EAAKrD,GAAU,KACbl/C,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,GAAI5lB,EAAK4lB,GACTxO,WAGG,IAINwiD,EAAKa,UACRb,EAAKa,QAAU,KAAM,GAGvBb,EAAKjB,UAAY,eAGnBwB,qBAAqBP,EAAMF,GACzB,MAAMqB,EAAmBnB,EAAKa,QAQ9B,GANKM,IACHnB,EAAK16C,KAAO7H,KAAKu9C,YAAY+F,aAAa,KAG5Cf,EAAKjB,UAAY,gBAEZthD,KAAK69C,cAOR,OANC,EAAG/3C,EAAMjX,MAAO,uHAEZ60D,IACHnB,EAAKa,QAAU,KAAM,IAMzBb,EAAKa,QAAU,KACTM,GACFA,IAGF,MACEhC,OAAQiC,EACRC,KAAMC,EACNC,WACEzB,EACE0B,EAAY,GAElB,GAA+B,IAA3BJ,EAAgBr7D,QAAyC,IAAzBu7D,EAAcv7D,OAAc,CAC9D,MAAM07D,EAAW,IAAIjzC,IAAI8yC,GAEzB,UAAWI,MAAaN,EAAiB,CACvC,MAAMjC,GAAS1hD,KAAK69C,cAAcoG,KAAc,GAEhD,UACE11C,SACGmzC,GACHsC,EAAS7uC,IAAI5G,IAIjB,UAAWmzC,MAAU77D,OAAOuxB,OAAOpX,KAAK69C,eACtC,UAAWqG,MAASxC,GACdsC,EAASlqC,IAAIoqC,GAAM31C,MAAQu1C,GAC7BC,EAAU75D,KAAKg6D,SAKrB,UAAWxC,KAAU77D,OAAOuxB,OAAOpX,KAAK69C,eACtCkG,EAAU75D,QAAQw3D,GAItB,MAAMyC,EAAUnkD,KAAK4N,kBACfw2C,EAAS,GAEf,UAAWF,KAASH,EAAW,CAC7B,MACEx1C,OACE21C,EAGJ,OAFAE,EAAOl6D,KAAKqkB,IAEJ21C,EAAMp/C,UACP,OAgBD,IAGC,eACA,UAGDq/C,EAAQ31B,SAASjgB,GAAI,CACnBxoB,MAFYm+D,EAAM51B,cAAgB,KAIpC,MApBA,IAGC,eACA,cAGD61B,EAAQ31B,SAASjgB,GAAI,CACnBxoB,MAFYm+D,EAAM51B,eAAiB41B,EAAMtC,eAI3C,MAUA,QAIF,SAGJ,MAAME,GAAa54C,SAAS64C,eAAexzC,KAEtCuzC,KAAezG,EAAqBvhC,IAAIgoC,KAI7CA,GAAWuC,cAAc,IAAIC,MAAM,cAGrC,OAAItkD,KAAK49C,iBACP59C,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,GAAI,MACJ4pC,IAAKiM,EACLrkD,KAAM,gBAKL,IAMb,gBAAoCm9C,EAClCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,OAMrJinB,SACE9S,KAAKi+C,UAAUqD,UAAY,iBAC3B,MAAM1U,EAAQ1jC,SAAS8a,cAAc,OACrC4oB,SAAMlpB,MAAMjE,OAASzf,KAAKi+C,UAAUv6B,MAAMjE,OAC1CmtB,EAAMlpB,MAAMlE,MAAQxf,KAAKi+C,UAAUv6B,MAAMlE,MACzCotB,EAAMxlC,IAAMpH,KAAKy9C,mBAAqB,cAAgBz9C,KAAKrX,KAAKoX,KAAK4nB,cAAgB,OACrFilB,EAAM4X,IAAM,wBACZ5X,EAAM6X,QAAQC,OAAS,uBACvB9X,EAAM6X,QAAQE,SAAW11B,KAAKC,UAAU,CACtCpqB,KAAM9E,KAAKrX,KAAKoX,OAGbC,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAajU,EAAO5sC,KAAKrX,MAGhCqX,KAAKi+C,UAAU35B,YAAYsoB,GACpB5sC,KAAKi+C,WAKhB,gBAAsCf,EACpCpqC,SACE,OAAI9S,KAAKrX,KAAKi8D,kBACZ5kD,KAAKi+C,UAAU4B,MAAQ7/C,KAAKrX,KAAKi8D,iBAG5B5kD,KAAKi+C,UAGd4G,gBAAgBpsC,GACd,MACEypC,QACAC,SACEjF,EAAkB+E,SACtB,OAAOC,GAASzpC,EAAMqsC,SAAW3C,GAAS1pC,EAAMssC,QAGlDC,kBAAkBhN,EAASiN,EAAUC,EAAWC,GAC1CF,EAAS3hC,SAAS,SACpB00B,EAAQp/B,iBAAiBqsC,EAAUxsC,IACjCzY,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,GAAIvO,KAAKrX,KAAK4lB,GACdxO,KAAMmlD,EACNn/D,MAAOo/D,EAAY1sC,GACnB8S,MAAO9S,EAAM2sC,SACbC,SAAUrlD,KAAK6kD,gBAAgBpsC,QAKrCu/B,EAAQp/B,iBAAiBqsC,EAAUxsC,IACjCzY,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,GAAIvO,KAAKrX,KAAK4lB,GACdxO,KAAMmlD,EACNn/D,MAAOo/D,EAAY1sC,QAO7B6sC,mBAAmBtN,EAAS7rB,EAAOo5B,GACjC,UAAYN,EAAUC,KAAc/4B,GAChB,WAAd+4B,GAA0BllD,KAAKrX,KAAK03D,UAAU6E,KAChDllD,KAAKglD,kBAAkBhN,EAASiN,EAAUC,EAAWK,GAK3DC,oBAAoBxN,GAClB,MAAM5O,EAAQppC,KAAKrX,KAAK2zC,iBAAmB,KAC3C0b,EAAQt0B,MAAM4Y,gBAA4B,OAAV8M,EAAiB,cAAgBtjC,EAAM7f,KAAKujD,aAAaJ,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAKvH,gBAA0C8S,EACxCj8C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,aAFmB7B,EAAWoC,cAAgBpC,EAAW3yD,KAAK88D,iBAAmBnK,EAAW3yD,KAAK+8D,aAMrGC,sBAAsBnsC,EAAM5rB,EAAK7H,EAAO6/D,GACtC,MAAMzB,EAAUnkD,KAAK4N,kBAErB,UAAWoqC,KAAWh4C,KAAKwhD,mBAAmBhoC,EAAKzZ,KAAMyZ,EAAKjL,IACxDypC,EAAQ8J,aACV9J,EAAQ8J,WAAWl0D,GAAO7H,GAG5Bo+D,EAAQ31B,SAASwpB,EAAQzpC,GAAI,EAC1Bq3C,GAAe7/D,IAKtB+sB,SACE,MAAMqxC,EAAUnkD,KAAK4N,kBACfW,EAAKvO,KAAKrX,KAAK4lB,GACrBvO,KAAKi+C,UAAUqD,UAAY,uBAC3B,IAAItJ,EAAU,KAEd,GAAIh4C,KAAK09C,YAAa,CACpB,MAAM+C,EAAa0D,EAAQ91B,SAAS9f,EAAI,CACtCxoB,MAAOia,KAAKrX,KAAK+8D,aAEbvvC,EAAcsqC,EAAWoF,gBAAkBpF,EAAW16D,OAAS,GAC/D+/D,EAAc,CAClBC,UAAW,KACXF,eAAgB,KAChBG,aAAc,IAGZhmD,KAAKrX,KAAKs9D,WACZjO,EAAU9uC,SAAS8a,cAAc,YACjCg0B,EAAQ7hC,YAAcA,IAEtB6hC,EAAU9uC,SAAS8a,cAAc,SACjCg0B,EAAQlzC,KAAO,OACfkzC,EAAQ1uB,aAAa,QAASnT,IAGhCklC,EAAqBlmC,IAAI6iC,GACzBA,EAAQkO,SAAWlmD,KAAKrX,KAAKw9D,SAC7BnO,EAAQj4C,KAAOC,KAAKrX,KAAKs7D,UACzBjM,EAAQoO,SAAWhL,EACnB0K,EAAYC,UAAY5vC,EACxB6hC,EAAQ1uB,aAAa,KAAM/a,GAC3BypC,EAAQp/B,iBAAiB,QAASH,IAChC0rC,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAO0yB,EAAM4mC,OAAOt5D,QAEtBia,KAAK2lD,sBAAsB3N,EAAS,QAASv/B,EAAM4mC,OAAOt5D,MAAO,WAEnEiyD,EAAQp/B,iBAAiB,YAAaH,IAEpCu/B,EAAQjyD,MAAQ+/D,EAAYC,UADP/lD,KAAKrX,KAAK09D,mBAAqB,GAEpDP,EAAYD,eAAiB,OAG/B,IAAIS,EAAe7tC,IACjB,MACEotC,kBACEC,EAEmB,MAAnBD,IACFptC,EAAM4mC,OAAOt5D,MAAQ8/D,GAGvBptC,EAAM4mC,OAAOkH,WAAa,GAG5B,GAAIvmD,KAAK49C,iBAAmB59C,KAAKiQ,aAAc,CAC7C+nC,EAAQp/B,iBAAiB,QAASH,IAC5BqtC,EAAYC,YACdttC,EAAM4mC,OAAOt5D,MAAQ+/D,EAAYC,WAGnCD,EAAYE,aAAevtC,EAAM4mC,OAAOt5D,QAE1CiyD,EAAQp/B,iBAAiB,oBAAqB0nC,IA+B5CtgD,KAAKogD,0BA9BW,CACdr6D,MAAM0yB,IACJqtC,EAAYC,UAAYttC,GAAM2mC,OAAOr5D,OAAS,GAC9Co+D,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAO+/D,EAAYC,UAAU35D,aAE/BqsB,GAAM4mC,OAAOt5D,MAAQ+/D,EAAYC,WAGnCF,eAAeptC,IACb,MACEotC,mBACEptC,GAAM2mC,OACV0G,EAAYD,eAAiBA,GAEN,MAAnBA,IAA2DptC,GAAM4mC,SAAWn2C,SAASs9C,gBACvF/tC,GAAM4mC,OAAOt5D,MAAQ8/D,IAGvB1B,EAAQ31B,SAASjgB,EAAI,CACnBs3C,qBAIJY,SAAShuC,IACPA,GAAM4mC,OAAOqH,qBAAqBjuC,GAAM2mC,OAAOqH,YAKXnG,KAE1CtI,EAAQp/B,iBAAiB,UAAWH,IAClC,IAAIkuC,GAAY,EAUhB,GARkB,WAAlBC,EAAUh5D,IACR+4D,EAAY,EACW,UAAlBC,EAAUh5D,IACf+4D,EAAY,EACW,QAAdluC,EAAM7qB,MACf+4D,EAAY,IAGI,IAAdA,EACF,OAGF,MACE5gE,UACE0yB,EAAM4mC,OAENyG,EAAYE,eAAiBjgE,KAIjC+/D,EAAYC,UAAYhgE,GACxBia,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,KACAxO,KAAM,YACNha,SACA8gE,YAAY,EACZF,YACAG,SAAUruC,EAAM4mC,OAAO0H,eACvBC,OAAQvuC,EAAM4mC,OAAO4H,mBAI3B,MAAMC,EAAgBZ,EACtBA,EAAe,KACftO,EAAQp/B,iBAAiB,OAAQH,IAC/B,MACE1yB,SACE0yB,EAAM4mC,OACVyG,EAAYC,UAAYhgE,EAEpBia,KAAK+9C,YAAYoJ,QAAUrB,EAAYE,eAAiBjgE,GAC1Dia,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,KACAxO,KAAM,YACNha,QACA8gE,YAAY,EACZF,UAAW,EACXG,SAAUruC,EAAM4mC,OAAO0H,eACvBC,OAAQvuC,EAAM4mC,OAAO4H,gBAK3BC,EAAczuC,KAGZzY,KAAKrX,KAAK03D,SAAS+G,WACrBpP,EAAQp/B,iBAAiB,cAAeH,IACtC,MACE9vB,OACA02D,WACE5mC,GAEF1yB,SACAghE,kBACAE,iBACE5H,GACJ,IAAIyH,GAAWC,GACXC,GAASC,GAEb,OAAQxuC,EAAM4uC,eACP,qBACH,CACE,MAAMh8D,GAAQtF,GAAM+8B,UAAU,EAAGikC,IAAgB17D,MAAM,cAEnDA,KACFy7D,IAAYz7D,GAAM,GAAG/C,QAGvB,UAGC,oBACH,CACE,MAAM+C,GAAQtF,GAAM+8B,UAAUikC,IAAgB17D,MAAM,cAEhDA,KACF27D,IAAU37D,GAAM,GAAG/C,QAGrB,UAGC,wBACCy+D,KAAmBE,KACrBH,IAAY,GAGd,UAEG,uBACCC,KAAmBE,KACrBD,IAAU,GAMhBvuC,EAAM6uC,iBACNtnD,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,KACAxO,KAAM,YACNha,SACAwhE,OAAQ5+D,GAAQ,GAChBk+D,YAAY,EACZC,YACAE,eAMRhnD,KAAKslD,mBAAmBtN,EAAS,CAAC,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,aAAcv/B,GAASA,EAAM4mC,OAAOt5D,OAWpN,GARIugE,GACFtO,EAAQp/B,iBAAiB,OAAQ0tC,GAGV,OAArBtmD,KAAKrX,KAAK6+D,SACZxP,EAAQyP,UAAYznD,KAAKrX,KAAK6+D,QAG5BxnD,KAAKrX,KAAK++D,KAAM,CAElB,MAAMC,GADa3nD,KAAKrX,KAAK+Z,KAAK,GAAK1C,KAAKrX,KAAK+Z,KAAK,IACvB1C,KAAKrX,KAAK6+D,OACzCxP,EAAQ4P,UAAUzyC,IAAI,QACtB6iC,EAAQt0B,MAAMmkC,cAAiB,QAAOF,mBAGxC3P,EAAU9uC,SAAS8a,cAAc,OACjCg0B,EAAQ7hC,YAAcnW,KAAKrX,KAAK+8D,WAChC1N,EAAQt0B,MAAMokC,cAAgB,SAC9B9P,EAAQt0B,MAAM67B,QAAU,aAG1B,YAAKwI,cAAc/P,GAEnBh4C,KAAKwlD,oBAAoBxN,GAEzBh4C,KAAKwgD,4BAA4BxI,GAEjCh4C,KAAKi+C,UAAU35B,YAAY0zB,GACpBh4C,KAAKi+C,UAGd8J,cAAc/P,GACZ,MAEEhkB,WACAg0B,aACEhoD,KAAKrX,KAAKs/D,sBACRvkC,EAAQs0B,EAAQt0B,MAElBsQ,IACFtQ,EAAMsQ,SAAY,GAAEA,OAGtBtQ,EAAM0lB,MAAQtjC,EAAM7f,KAAKujD,aAAawe,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAE5C,OAA5BhoD,KAAKrX,KAAKu/D,gBACZxkC,EAAMykC,UAde,CAAC,OAAQ,SAAU,SAcPnoD,KAAKrX,KAAKu/D,iBAMjD,gBAA8ChM,EAC5Cj8C,YAAYq7C,GACVn7C,MAAMm7C,EAAY,CAChB6B,aAAc7B,EAAWoC,cAI7B5qC,SACE,MAAMqxC,EAAUnkD,KAAK4N,kBACfjlB,EAAOqX,KAAKrX,KACZ4lB,EAAK5lB,EAAK4lB,GAChB,IAAIxoB,EAAQo+D,EAAQ91B,SAAS9f,EAAI,CAC/BxoB,MAAO4C,EAAKk5D,cAAgBl5D,EAAK+8D,aAChC3/D,MAEkB,iBAAVA,IACTA,EAAkB,QAAVA,EACRo+D,EAAQ31B,SAASjgB,EAAI,CACnBxoB,WAIJia,KAAKi+C,UAAUqD,UAAY,kCAC3B,MAAMtJ,EAAU9uC,SAAS8a,cAAc,SACvCq3B,SAAqBlmC,IAAI6iC,GACzBA,EAAQkO,SAAWv9D,EAAKw9D,SACxBnO,EAAQlzC,KAAO,WACfkzC,EAAQj4C,KAAOpX,EAAKs7D,UAEhBl+D,GACFiyD,EAAQ1uB,aAAa,WAAW,GAGlC0uB,EAAQ1uB,aAAa,KAAM/a,GAC3BypC,EAAQ1uB,aAAa,cAAe3gC,EAAKk5D,aACzC7J,EAAQoO,SAAWhL,EACnBpD,EAAQp/B,iBAAiB,SAAUH,IACjC,MACE1Y,OACAqoD,WACE3vC,EAAM4mC,OAEV,UAAWgJ,KAAYroD,KAAKwhD,mBAAmBzhD,EAAMwO,GAAK,CACxD,MAAM+5C,EAAaF,GAAWC,EAASxG,cAAgBl5D,EAAKk5D,YAExDwG,EAASvG,aACXuG,EAASvG,WAAWsG,QAAUE,GAGhCnE,EAAQ31B,SAAS65B,EAAS95C,GAAI,CAC5BxoB,MAAOuiE,IAIXnE,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOqiE,MAGXpQ,EAAQp/B,iBAAiB,YAAaH,IAEpCA,EAAM4mC,OAAO+I,SADQz/D,EAAK09D,mBAAqB,SACP19D,EAAKk5D,cAG3C7hD,KAAK49C,iBAAmB59C,KAAKiQ,eAC/B+nC,EAAQp/B,iBAAiB,oBAAqB0nC,IAW5CtgD,KAAKogD,0BAVW,CACdr6D,MAAM0yB,GACJA,EAAM4mC,OAAO+I,QAAiC,QAAvB3vC,EAAM2mC,OAAOr5D,MACpCo+D,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAO0yB,EAAM4mC,OAAO+I,YAMc9H,KAG1CtgD,KAAKslD,mBAAmBtN,EAAS,CAAC,CAAC,SAAU,YAAa,CAAC,SAAU,UAAW,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,aAAcv/B,GAASA,EAAM4mC,OAAO+I,UAGlQpoD,KAAKwlD,oBAAoBxN,GAEzBh4C,KAAKwgD,4BAA4BxI,GAEjCh4C,KAAKi+C,UAAU35B,YAAY0zB,GACpBh4C,KAAKi+C,WAKhB,gBAAiD/B,EAC/Cj8C,YAAYq7C,GACVn7C,MAAMm7C,EAAY,CAChB6B,aAAc7B,EAAWoC,cAI7B5qC,SACE9S,KAAKi+C,UAAUqD,UAAY,qCAC3B,MAAM6C,EAAUnkD,KAAK4N,kBACfjlB,EAAOqX,KAAKrX,KACZ4lB,EAAK5lB,EAAK4lB,GAChB,IAAIxoB,EAAQo+D,EAAQ91B,SAAS9f,EAAI,CAC/BxoB,MAAO4C,EAAK+8D,aAAe/8D,EAAK4/D,cAC/BxiE,MAEkB,iBAAVA,IACTA,EAAQA,IAAU4C,EAAK4/D,YACvBpE,EAAQ31B,SAASjgB,EAAI,CACnBxoB,WAIJ,MAAMiyD,EAAU9uC,SAAS8a,cAAc,SAiCvC,GAhCAq3B,EAAqBlmC,IAAI6iC,GACzBA,EAAQkO,SAAWv9D,EAAKw9D,SACxBnO,EAAQlzC,KAAO,QACfkzC,EAAQj4C,KAAOpX,EAAKs7D,UAEhBl+D,GACFiyD,EAAQ1uB,aAAa,WAAW,GAGlC0uB,EAAQ1uB,aAAa,KAAM/a,GAC3BypC,EAAQoO,SAAWhL,EACnBpD,EAAQp/B,iBAAiB,SAAUH,IACjC,MACE1Y,OACAqoD,WACE3vC,EAAM4mC,OAEV,UAAWmJ,KAASxoD,KAAKwhD,mBAAmBzhD,EAAMwO,GAChD41C,EAAQ31B,SAASg6B,EAAMj6C,GAAI,CACzBxoB,OAAO,IAIXo+D,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOqiE,MAGXpQ,EAAQp/B,iBAAiB,YAAaH,IACpC,MAAM6V,EAAe3lC,EAAK09D,kBAC1B5tC,EAAM4mC,OAAO+I,QAA2B,MAAjB95B,GAAuDA,IAAiB3lC,EAAK4/D,cAGlGvoD,KAAK49C,iBAAmB59C,KAAKiQ,aAAc,CAC7C,MAAMw4C,EAAiB9/D,EAAK4/D,YAC5BvQ,EAAQp/B,iBAAiB,oBAAqB0nC,IAmB5CtgD,KAAKogD,0BAlBW,CACdr6D,MAAO0yB,IACL,MAAM2vC,EAAUK,IAAmBhwC,EAAM2mC,OAAOr5D,MAEhD,UAAWyiE,MAASxoD,KAAKwhD,mBAAmB/oC,EAAM4mC,OAAOt/C,MAAO,CAC9D,MAAMuoD,GAAaF,GAAWI,GAAMj6C,KAAOA,EAEvCi6C,GAAM1G,aACR0G,GAAM1G,WAAWsG,QAAUE,IAG7BnE,EAAQ31B,SAASg6B,GAAMj6C,GAAI,CACzBxoB,MAAOuiE,QAMyBhI,KAG1CtgD,KAAKslD,mBAAmBtN,EAAS,CAAC,CAAC,SAAU,YAAa,CAAC,SAAU,UAAW,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,aAAcv/B,GAASA,EAAM4mC,OAAO+I,SAGlQ,YAAK5C,oBAAoBxN,GAEzBh4C,KAAKwgD,4BAA4BxI,GAEjCh4C,KAAKi+C,UAAU35B,YAAY0zB,GACpBh4C,KAAKi+C,WAKhB,gBAAgDzC,EAC9Cv7C,YAAYq7C,GACVn7C,MAAMm7C,EAAY,CAChB8B,aAAc9B,EAAW3yD,KAAK88D,gBAIlC3yC,SACE,MAAMmrC,EAAY99C,MAAM2S,SACxBmrC,SAAUqD,UAAY,oCAElBthD,KAAKrX,KAAKi8D,kBACZ3G,EAAU4B,MAAQ7/C,KAAKrX,KAAKi8D,iBAG9B5kD,KAAKwgD,4BAA4BvC,GAE1BA,GAKX,gBAA4C/B,EAC1Cj8C,YAAYq7C,GACVn7C,MAAMm7C,EAAY,CAChB6B,aAAc7B,EAAWoC,cAI7B5qC,SACE9S,KAAKi+C,UAAUqD,UAAY,yBAC3B,MAAM6C,EAAUnkD,KAAK4N,kBACfW,EAAKvO,KAAKrX,KAAK4lB,GACfkyC,EAAa0D,EAAQ91B,SAAS9f,EAAI,CACtCxoB,MAAOia,KAAKrX,KAAK+8D,aAEnB,IACE1xB,YACEh0B,KAAKrX,KAAKs/D,sBAETj0B,IACHA,EAAW,GAGb,MAAM00B,EAAiB,QAAO10B,4BACxB20B,EAAgBz/C,SAAS8a,cAAc,UAC7Cq3B,EAAqBlmC,IAAIwzC,GACzBA,EAAczC,SAAWlmD,KAAKrX,KAAKw9D,SACnCwC,EAAc5oD,KAAOC,KAAKrX,KAAKs7D,UAC/B0E,EAAcr/B,aAAa,KAAM/a,GACjCo6C,EAAcvC,SAAWhL,EACzBuN,EAAcjlC,MAAMsQ,SAAY,GAAEA,MAE7Bh0B,KAAKrX,KAAKigE,QACbD,EAAc54C,KAAO/P,KAAKrX,KAAKsC,QAAQ3C,OAEnC0X,KAAKrX,KAAKkgE,cACZF,EAAcG,UAAW,IAI7BH,EAAc/vC,iBAAiB,YAAaH,IAC1C,MAAM6V,EAAetuB,KAAKrX,KAAK09D,kBAE/B,UAAW0C,MAAUJ,EAAc19D,QACjC89D,GAAOC,SAAWD,GAAOhjE,QAAUuoC,IAIvC,UAAWy6B,KAAU/oD,KAAKrX,KAAKsC,QAAS,CACtC,MAAMg+D,EAAgB//C,SAAS8a,cAAc,UAC7CilC,EAAc9yC,YAAc4yC,EAAOG,aACnCD,EAAcljE,MAAQgjE,EAAOlH,YAEzB7hD,KAAKrX,KAAKigE,QACZK,EAAcvlC,MAAMsQ,SAAW00B,GAG7BjI,EAAW16D,MAAMu9B,SAASylC,EAAOlH,cACnCoH,EAAc3/B,aAAa,YAAY,GAGzCq/B,EAAcrkC,YAAY2kC,GAG5B,MAAM56B,EAAW,CAAC5V,EAAO0wC,KACvB,MAAMppD,GAAOopD,EAAW,QAAU,cAC5Bl+D,GAAUwtB,EAAM4mC,OAAOp0D,QAE7B,OAAKwtB,EAAM4mC,OAAOyJ,SAIX/nD,MAAMb,UAAUkpD,OAAOzwC,KAAK1tB,GAAS89D,IAAUA,GAAOC,UAAUt7D,IAAIq7D,IAAUA,GAAOhpD,MAHzD,IAA1B9U,GAAQo+D,cAAuB,KAAOp+D,GAAQA,GAAQo+D,eAAetpD,KAM1EupD,EAAW7wC,GAER1X,MAAMb,UAAUxS,IAAIirB,KADXF,EAAM4mC,OAAOp0D,QACY89D,KAChC,CACLG,aAAcH,GAAO5yC,YACrB0rC,YAAakH,GAAOhjE,SAK1B,OAAIia,KAAK49C,iBAAmB59C,KAAKiQ,cAC/B04C,EAAc/vC,iBAAiB,oBAAqB0nC,IAkHlDtgD,KAAKogD,0BAjHW,CACdr6D,MAAM0yB,IACJ,MAAM1yB,GAAQ0yB,GAAM2mC,OAAOr5D,MACrBqxB,GAAS,IAAIrG,IAAIhQ,MAAMmpC,QAAQnkD,IAASA,GAAQ,CAACA,KAEvD,UAAWgjE,MAAUJ,EAAc19D,QACjC89D,GAAOC,SAAW5xC,GAAO0C,IAAIivC,GAAOhjE,OAGtCo+D,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOsoC,EAAS5V,IAAO,MAI3B8wC,kBAAkB9wC,IAChBkwC,EAAcG,UAAW,GAG3B5kC,OAAOzL,IACL,MAAMxtB,GAAU09D,EAAc19D,QACxB83D,GAAQtqC,GAAM2mC,OAAOl7B,OAC3Bj5B,GAAQ83D,IAAOiG,UAAW,EAC1BL,EAAczkC,OAAO6+B,IAEjB93D,GAAQ3C,OAAS,IAGT,IAANG,MAFYyX,UAAUspD,UAAU7wC,KAAK1tB,GAAS89D,IAAUA,GAAOC,YAGjE/9D,GAAQ,GAAG+9D,UAAW,GAI1B7E,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOsoC,EAAS5V,IAAO,GACvBrC,MAAOkzC,EAAS7wC,OAIpBjB,MAAMiB,IACJ,KAAgC,IAAzBkwC,EAAcrgE,QACnBqgE,EAAczkC,OAAO,GAGvBigC,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAO,KACPqwB,MAAO,MAIXuV,OAAOlT,IACL,MACEsqC,SACAmG,gBACArH,gBACEppC,GAAM2mC,OAAOzzB,OACXs9B,GAAgB//C,SAAS8a,cAAc,UAC7CilC,GAAc9yC,YAAc+yC,GAC5BD,GAAcljE,MAAQ87D,GACtB8G,EAAcc,aAAaR,GAAeN,EAAc91C,SAASkwC,KACjEoB,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOsoC,EAAS5V,IAAO,GACvBrC,MAAOkzC,EAAS7wC,OAIpBrC,MAAMqC,IACJ,MACErC,UACEqC,GAAM2mC,OAEV,KAAgC,IAAzBuJ,EAAcrgE,QACnBqgE,EAAczkC,OAAO,GAGvB,UAAWt7B,MAAQwtB,GAAO,CACxB,MACE8yC,gBACArH,gBACEj5D,GACEqgE,GAAgB//C,SAAS8a,cAAc,UAC7CilC,GAAc9yC,YAAc+yC,GAC5BD,GAAcljE,MAAQ87D,GACtB8G,EAAcrkC,YAAY2kC,IAGxBN,EAAc19D,QAAQ3C,OAAS,IACjCqgE,EAAc19D,QAAQ,GAAG+9D,UAAW,GAGtC7E,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOsoC,EAAS5V,IAAO,GACvBrC,MAAOkzC,EAAS7wC,OAIpBixC,QAAQjxC,IACN,MAAMixC,GAAU,IAAI34C,IAAI0H,GAAM2mC,OAAOsK,SAErC,UAAWX,MAAUtwC,GAAM4mC,OAAOp0D,QAChC89D,GAAOC,SAAWU,GAAQ5vC,IAAIivC,GAAOhG,OAGvCoB,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOsoC,EAAS5V,IAAO,MAI3BkxC,SAASlxC,IACPA,GAAM4mC,OAAO6G,UAAYztC,GAAM2mC,OAAOuK,WAKFrJ,KAE1CqI,EAAc/vC,iBAAiB,QAASH,IACtC,MAAMopC,EAAcxzB,EAAS5V,GAAO,GAC9B1yB,GAAQsoC,EAAS5V,GAAO,GAC9B0rC,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAO87D,IAET7hD,KAAKu9C,YAAYiG,UAAUC,SAAS,yBAA0B,CAC5Dn8C,OAAQtH,KACRo/C,OAAQ,CACN7wC,KACAxO,KAAM,YACNha,SACA6jE,SAAU/H,EACVgF,YAAY,EACZF,UAAW,EACXkD,SAAS,OAKf7pD,KAAKslD,mBAAmBqD,EAAe,CAAC,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,YAAa,CAAC,QAAS,WAAYlwC,GAASA,EAAM4mC,OAAO+I,UAE7OO,EAAc/vC,iBAAiB,QAAS,SAAUH,GAChD0rC,EAAQ31B,SAASjgB,EAAI,CACnBxoB,MAAOsoC,EAAS5V,GAAO,OAK7BzY,KAAKwlD,oBAAoBmD,GAEzB3oD,KAAKwgD,4BAA4BmI,GAEjC3oD,KAAKi+C,UAAU35B,YAAYqkC,GACpB3oD,KAAKi+C,WAKhB,gBAAqCf,EACnCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,OAMzHinB,SAIE,GAFA9S,KAAKi+C,UAAUqD,UAAY,kBADN,CAAC,OAAQ,SAAU,SAAU,WAAY,UAAW,OAGxDh+B,SAAStjB,KAAKrX,KAAKmhE,YAClC,OAAO9pD,KAAKi+C,UAGd,MACM8L,EAAiB/pD,KAAKs9C,MAAM0M,iBADhB,wBAAuBhqD,KAAKrX,KAAKshE,cAGnD,GAA8B,IAA1BF,EAAezhE,OACjB,OAAO0X,KAAKi+C,UAGd,MAAM8C,EAAQ,IAAIE,EAAa,CAC7BhD,UAAWj+C,KAAKi+C,UAChB6C,QAAS//C,MAAMu3C,KAAKyR,GACpB3gB,MAAOppC,KAAKrX,KAAKygD,MACjB52B,SAAUxS,KAAKrX,KAAK6pB,SACpB0uC,iBAAkBlhD,KAAKrX,KAAKu4D,iBAC5BzuC,YAAazS,KAAKrX,KAAK8pB,YACvB0uC,SAAUnhD,KAAKrX,KAAKw4D,WAEhBtkC,EAAO7c,KAAK6c,KAEZna,EAAOoD,EAAM7f,KAAKq6C,cAAc,CAACtgC,KAAKrX,KAAKuhE,WAAW,GAAIrtC,EAAKtL,KAAK,GAAKvR,KAAKrX,KAAKuhE,WAAW,GAAKrtC,EAAKtL,KAAK,GAAIvR,KAAKrX,KAAKuhE,WAAW,GAAIrtC,EAAKtL,KAAK,GAAKvR,KAAKrX,KAAKuhE,WAAW,GAAKrtC,EAAKtL,KAAK,KAE7L44C,EAAYznD,EAAK,GAAK1C,KAAKrX,KAAKuhE,WAAW,GAAKlqD,KAAKrX,KAAKuhE,WAAW,GACrEE,EAAW1nD,EAAK,GACtB,YAAKu7C,UAAUv6B,MAAM46B,gBAAmB,IAAG6L,QAAgBC,MAC3DpqD,KAAKi+C,UAAUv6B,MAAM+I,KAAQ,GAAE09B,MAC/BnqD,KAAKi+C,UAAUv6B,MAAM8I,IAAO,GAAE49B,MAC9BpqD,KAAKi+C,UAAU35B,YAAYy8B,EAAMjuC,UAC1B9S,KAAKi+C,WAKhB,QACEh+C,YAAYq7C,GACVt7C,KAAKi+C,UAAY3C,EAAW2C,UAC5Bj+C,KAAK8gD,QAAUxF,EAAWwF,QAC1B9gD,KAAKopC,MAAQkS,EAAWlS,MACxBppC,KAAKwS,SAAW8oC,EAAW9oC,SAC3BxS,KAAKkhD,iBAAmB5F,EAAW4F,iBACnClhD,KAAKyS,YAAc6oC,EAAW7oC,YAC9BzS,KAAKmhD,SAAW7F,EAAW6F,SAC3BnhD,KAAKohD,YAAc9F,EAAW8F,cAAe,EAC7CphD,KAAKqqD,QAAS,EAGhBv3C,SAEE,MAAMw3C,EAAUphD,SAAS8a,cAAc,OACvCsmC,EAAQhJ,UAAY,eACpBthD,KAAKuqD,YAAcvqD,KAAKohD,YAAckJ,EAAUtqD,KAAKi+C,UACrDj+C,KAAKuqD,YAAY/K,QAAS,EAC1B,MAAMuB,EAAQ73C,SAAS8a,cAAc,OACrC+8B,EAAMO,UAAY,QAClB,MAAMlY,EAAQppC,KAAKopC,MAEfA,IAIF2X,EAAMr9B,MAAM4Y,gBAAkBx2B,EAAM7f,KAAKujD,aAAiB,EAHhDghB,IAAsB,IAAMphB,EAAM,IAAMA,EAAM,GAGS,EAFvDohB,IAAsB,IAAMphB,EAAM,IAAMA,EAAM,GAEgB,EAD9DohB,IAAsB,IAAMphB,EAAM,IAAMA,EAAM,KAI1D,MAAMyW,EAAQ32C,SAAS8a,cAAc,MACrC67B,EAAM4K,IAAMzqD,KAAKwS,SAASi4C,IAC1B5K,EAAM1pC,YAAcnW,KAAKwS,SAAS3mB,IAClCk1D,EAAMz8B,YAAYu7B,GAElB,MAAM6K,EAAa3kD,EAAe0c,cAAckoC,aAAa3qD,KAAKkhD,kBAElE,GAAIwJ,EAAY,CACd,MAAMxJ,EAAmBh4C,SAAS8a,cAAc,QAChDk9B,EAAiBI,UAAY,YAC7BJ,EAAiB/qC,YAAc,qBAC/B+qC,EAAiBuD,QAAQC,OAAS,yBAClCxD,EAAiBuD,QAAQE,SAAW11B,KAAKC,UAAU,CACjDljC,KAAM0+D,EAAWE,qBACjBj3C,KAAM+2C,EAAWG,uBAEnB9J,EAAMz8B,YAAY48B,GAGpB,IAAIlhD,KAAKmhD,UAAUt1D,KAASmU,KAAKyS,aAAa5mB,KAAOmU,KAAKyS,YAAY5mB,MAAQmU,KAAKmhD,SAASt1D,IAQrF,CACL,MAAMi/D,EAAW9qD,KAAK+qD,gBAAgB/qD,KAAKyS,aAE3CsuC,EAAMz8B,YAAYwmC,QAVlB3P,GAAW6P,SAASl4C,OAAO,CACzBm4C,QAASjrD,KAAKmhD,SAAS+J,KACvBj5C,OAAQ,WACRoa,IAAK00B,IAGPA,EAAMoK,UAAU7J,UAAY,wBAOzBvgD,MAAMmpC,QAAQlqC,KAAK8gD,WACtB9gD,KAAK8gD,QAAU,CAAC9gD,KAAK8gD,UAGvB,UAAW9I,KAAWh4C,KAAK8gD,QACzB9I,EAAQp/B,iBAAiB,QAAS5Y,KAAKorD,QAAQtvC,KAAK9b,OACpDg4C,EAAQp/B,iBAAiB,YAAa5Y,KAAKqrD,MAAMvvC,KAAK9b,MAAM,IAC5Dg4C,EAAQp/B,iBAAiB,WAAY5Y,KAAKsrD,MAAMxvC,KAAK9b,MAAM,IAG7D+gD,SAAMnoC,iBAAiB,QAAS5Y,KAAKsrD,MAAMxvC,KAAK9b,MAAM,IACtDsqD,EAAQhmC,YAAYy8B,GACbuJ,EAGTS,iBACEl/D,MACA4+D,QAEA,MAAMhpD,EAAIyH,SAAS8a,cAAc,KACjCviB,EAAE6/C,UAAY,eACd7/C,EAAEgpD,IAAMA,EACR,MAAMc,EAAQ1/D,EAAI2/D,MAAM,gBAExB,QAAS/iE,EAAI,EAAG6E,EAAKi+D,EAAMjjE,OAAQG,EAAI6E,IAAM7E,EAE3CgZ,EAAE6iB,YAAYpb,SAASuiD,eADVF,EAAM9iE,KAGfA,EAAI6E,EAAK,GACXmU,EAAE6iB,YAAYpb,SAAS8a,cAAc,OAIzC,OAAOviB,EAGT2pD,UACMprD,KAAKqqD,OACPrqD,KAAKsrD,OAAM,GAEXtrD,KAAKqrD,OAAM,GAIfA,MAAMK,GAAM,GACNA,IACF1rD,KAAKqqD,QAAS,GAGZrqD,KAAKuqD,YAAY/K,SACnBx/C,KAAKuqD,YAAY/K,QAAS,EAC1Bx/C,KAAKi+C,UAAUv6B,MAAMioC,QAAU,GAInCL,MAAMM,GAAQ,GACRA,IACF5rD,KAAKqqD,QAAS,IAGXrqD,KAAKuqD,YAAY/K,SAAWx/C,KAAKqqD,SACpCrqD,KAAKuqD,YAAY/K,QAAS,EAC1Bx/C,KAAKi+C,UAAUv6B,MAAMioC,QAAU,IAMrC,gBAAwCzO,EACtCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAIlBtqC,SACE,YAAKmrC,UAAUqD,UAAY,qBAEtBthD,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAGxBqX,KAAKi+C,WAKhB,gBAAoCf,EAClCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAIlBtqC,SACE9S,KAAKi+C,UAAUqD,UAAY,iBAC3B,MAAM34D,EAAOqX,KAAKrX,MAEhB62B,QACAC,UACE4+B,EAAY11D,EAAK+Z,MACf2mB,EAAMrpB,KAAK29C,WAAWrzD,OAAOk1B,EAAOC,GACpCosC,EAAO7rD,KAAK29C,WAAW35B,cAAc,YAC3C6nC,SAAKviC,aAAa,KAAM3gC,EAAK+Z,KAAK,GAAK/Z,EAAKmjE,gBAAgB,IAC5DD,EAAKviC,aAAa,KAAM3gC,EAAK+Z,KAAK,GAAK/Z,EAAKmjE,gBAAgB,IAC5DD,EAAKviC,aAAa,KAAM3gC,EAAK+Z,KAAK,GAAK/Z,EAAKmjE,gBAAgB,IAC5DD,EAAKviC,aAAa,KAAM3gC,EAAK+Z,KAAK,GAAK/Z,EAAKmjE,gBAAgB,IAC5DD,EAAKviC,aAAa,eAAgB3gC,EAAK41D,YAAY/+B,OAAS,GAC5DqsC,EAAKviC,aAAa,SAAU,eAC5BuiC,EAAKviC,aAAa,OAAQ,eAC1BD,EAAI/E,YAAYunC,GAChB7rD,KAAKi+C,UAAU8N,OAAO1iC,GAEtBrpB,KAAK6gD,aAAagL,EAAMljE,GAEjBqX,KAAKi+C,WAKhB,gBAAsCf,EACpCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAIlBtqC,SACE9S,KAAKi+C,UAAUqD,UAAY,mBAC3B,MAAM34D,EAAOqX,KAAKrX,MAEhB62B,QACAC,UACE4+B,EAAY11D,EAAK+Z,MACf2mB,EAAMrpB,KAAK29C,WAAWrzD,OAAOk1B,EAAOC,GACpC++B,EAAc71D,EAAK41D,YAAY/+B,MAC/BwsC,EAAShsD,KAAK29C,WAAW35B,cAAc,YAC7CgoC,SAAO1iC,aAAa,IAAKk1B,EAAc,GACvCwN,EAAO1iC,aAAa,IAAKk1B,EAAc,GACvCwN,EAAO1iC,aAAa,QAAS9J,EAAQg/B,GACrCwN,EAAO1iC,aAAa,SAAU7J,EAAS++B,GACvCwN,EAAO1iC,aAAa,eAAgBk1B,GAAe,GACnDwN,EAAO1iC,aAAa,SAAU,eAC9B0iC,EAAO1iC,aAAa,OAAQ,eAC5BD,EAAI/E,YAAY0nC,GAChBhsD,KAAKi+C,UAAU8N,OAAO1iC,GAEtBrpB,KAAK6gD,aAAamL,EAAQrjE,GAEnBqX,KAAKi+C,WAKhB,gBAAsCf,EACpCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAIlBtqC,SACE9S,KAAKi+C,UAAUqD,UAAY,mBAC3B,MAAM34D,EAAOqX,KAAKrX,MAEhB62B,QACAC,UACE4+B,EAAY11D,EAAK+Z,MACf2mB,EAAMrpB,KAAK29C,WAAWrzD,OAAOk1B,EAAOC,GACpC++B,EAAc71D,EAAK41D,YAAY/+B,MAC/BysC,EAASjsD,KAAK29C,WAAW35B,cAAc,eAC7CioC,SAAO3iC,aAAa,KAAM9J,EAAQ,GAClCysC,EAAO3iC,aAAa,KAAM7J,EAAS,GACnCwsC,EAAO3iC,aAAa,KAAM9J,EAAQ,EAAIg/B,EAAc,GACpDyN,EAAO3iC,aAAa,KAAM7J,EAAS,EAAI++B,EAAc,GACrDyN,EAAO3iC,aAAa,eAAgBk1B,GAAe,GACnDyN,EAAO3iC,aAAa,SAAU,eAC9B2iC,EAAO3iC,aAAa,OAAQ,eAC5BD,EAAI/E,YAAY2nC,GAChBjsD,KAAKi+C,UAAU8N,OAAO1iC,GAEtBrpB,KAAK6gD,aAAaoL,EAAQtjE,GAEnBqX,KAAKi+C,WAKhB,gBAAwCf,EACtCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAEhBp9C,KAAKksD,mBAAqB,qBAC1BlsD,KAAKmsD,eAAiB,eAGxBr5C,SACE9S,KAAKi+C,UAAUqD,UAAYthD,KAAKksD,mBAChC,MAAMvjE,EAAOqX,KAAKrX,MAEhB62B,QACAC,UACE4+B,EAAY11D,EAAK+Z,MACf2mB,EAAMrpB,KAAK29C,WAAWrzD,OAAOk1B,EAAOC,GAC1C,IAAIgsB,EAAS,GAEb,UAAW2gB,KAAczjE,EAAK0jE,SAG5B5gB,EAAOvhD,KAFGkiE,EAAWjlC,EAAIx+B,EAAK+Z,KAAK,GAEnB,KADN/Z,EAAK+Z,KAAK,GAAK0pD,EAAWhlC,IAItCqkB,EAASA,EAAOthD,KAAK,KACrB,MAAMmiE,EAAWtsD,KAAK29C,WAAW35B,cAAchkB,KAAKmsD,gBACpDG,SAAShjC,aAAa,SAAUmiB,GAChC6gB,EAAShjC,aAAa,eAAgB3gC,EAAK41D,YAAY/+B,OAAS,GAChE8sC,EAAShjC,aAAa,SAAU,eAChCgjC,EAAShjC,aAAa,OAAQ,eAC9BD,EAAI/E,YAAYgoC,GAChBtsD,KAAKi+C,UAAU8N,OAAO1iC,GAEtBrpB,KAAK6gD,aAAayL,EAAU3jE,GAErBqX,KAAKi+C,WAKhB,gBAAuCzB,EACrCv8C,YAAYq7C,GACVn7C,MAAMm7C,GACNt7C,KAAKksD,mBAAqB,oBAC1BlsD,KAAKmsD,eAAiB,eAK1B,gBAAqCjP,EACnCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAIlBtqC,SACE,YAAKmrC,UAAUqD,UAAY,kBAEtBthD,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAGxBqX,KAAKi+C,WAKhB,gBAAmCf,EACjCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAEhBp9C,KAAKksD,mBAAqB,gBAC1BlsD,KAAKmsD,eAAiB,eAGxBr5C,SACE9S,KAAKi+C,UAAUqD,UAAYthD,KAAKksD,mBAChC,MAAMvjE,EAAOqX,KAAKrX,MAEhB62B,QACAC,UACE4+B,EAAY11D,EAAK+Z,MACf2mB,EAAMrpB,KAAK29C,WAAWrzD,OAAOk1B,EAAOC,GAE1C,UAAW8sC,KAAW5jE,EAAK6jE,SAAU,CACnC,IAAI/gB,EAAS,GAEb,UAAW2gB,KAAcG,EAGvB9gB,EAAOvhD,KAAM,GAFHkiE,EAAWjlC,EAAIx+B,EAAK+Z,KAAK,MACzB/Z,EAAK+Z,KAAK,GAAK0pD,EAAWhlC,KAItCqkB,EAASA,EAAOthD,KAAK,KACrB,MAAMmiE,EAAWtsD,KAAK29C,WAAW35B,cAAchkB,KAAKmsD,gBACpDG,EAAShjC,aAAa,SAAUmiB,GAChC6gB,EAAShjC,aAAa,eAAgB3gC,EAAK41D,YAAY/+B,OAAS,GAChE8sC,EAAShjC,aAAa,SAAU,eAChCgjC,EAAShjC,aAAa,OAAQ,eAE9BtpB,KAAK6gD,aAAayL,EAAU3jE,GAE5B0gC,EAAI/E,YAAYgoC,GAGlB,YAAKrO,UAAU8N,OAAO1iC,GACfrpB,KAAKi+C,WAKhB,gBAAyCf,EACvCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,EACdC,sBAAsB,IAI1BvqC,SAKE,OAJK9S,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAG3BqX,KAAKm+C,eACAn+C,KAAKqhD,sBAAsB,wBAGpCrhD,KAAKi+C,UAAUqD,UAAY,sBACpBthD,KAAKi+C,YAKhB,iBAAyCf,EACvCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,EACdC,sBAAsB,IAI1BvqC,SAKE,OAJK9S,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAG3BqX,KAAKm+C,eACAn+C,KAAKqhD,sBAAsB,wBAGpCrhD,KAAKi+C,UAAUqD,UAAY,sBACpBthD,KAAKi+C,YAKhB,gBAAwCf,EACtCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,EACdC,sBAAsB,IAI1BvqC,SAKE,OAJK9S,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAG3BqX,KAAKm+C,eACAn+C,KAAKqhD,sBAAsB,uBAGpCrhD,KAAKi+C,UAAUqD,UAAY,qBACpBthD,KAAKi+C,YAKhB,iBAAyCf,EACvCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,EACdC,sBAAsB,IAI1BvqC,SAKE,OAJK9S,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAG3BqX,KAAKm+C,eACAn+C,KAAKqhD,sBAAsB,wBAGpCrhD,KAAKi+C,UAAUqD,UAAY,sBACpBthD,KAAKi+C,YAKhB,iBAAqCf,EACnCj9C,YAAYq7C,GAEVn7C,MAAMm7C,EAAY,CAChB6B,gBAFsB7B,EAAW3yD,KAAK47D,UAAYjJ,EAAW3yD,KAAK6pB,UAAU3mB,KAAOyvD,EAAW3yD,KAAK8pB,aAAa5mB,KAAOyvD,EAAW3yD,KAAKw4D,UAAUt1D,KAGjJuxD,cAAc,IAIlBtqC,SACE,YAAKmrC,UAAUqD,UAAY,kBAEtBthD,KAAKrX,KAAK47D,UACbvkD,KAAK6gD,aAAa,KAAM7gD,KAAKrX,MAGxBqX,KAAKi+C,WAKhB,iBAA8Cf,EAC5Cj9C,YAAYq7C,GACVn7C,MAAMm7C,EAAY,CAChB6B,cAAc,IAEhB,MACEn9B,WACAysC,WACEzsD,KAAKrX,KAAK+jE,KACd1sD,KAAKggB,UAAY,EAAGja,EAAe4c,oBAAoB3C,GACvDhgB,KAAKysD,QAAUA,EACfzsD,KAAKu9C,YAAYiG,UAAUC,SAAS,2BAA4B,CAC9Dn8C,OAAQtH,KACRggB,WACAysC,YAIJ35C,SACE9S,KAAKi+C,UAAUqD,UAAY,2BAC3B,MAAMR,EAAU53C,SAAS8a,cAAc,OACvC88B,SAAQp9B,MAAMjE,OAASzf,KAAKi+C,UAAUv6B,MAAMjE,OAC5CqhC,EAAQp9B,MAAMlE,MAAQxf,KAAKi+C,UAAUv6B,MAAMlE,MAC3CshC,EAAQloC,iBAAiB,WAAY5Y,KAAK2sD,UAAU7wC,KAAK9b,QAEpDA,KAAKrX,KAAK47D,WAAavkD,KAAKrX,KAAK6pB,UAAU3mB,KAAOmU,KAAKrX,KAAK8pB,aAAa5mB,KAAOmU,KAAKrX,KAAKw4D,WAC7FnhD,KAAK6gD,aAAaC,EAAS9gD,KAAKrX,MAGlCqX,KAAKi+C,UAAU35B,YAAYw8B,GACpB9gD,KAAKi+C,UAGd0O,YACE3sD,KAAKw9C,iBAAiBoP,mBAAmB5sD,KAAKi+C,UAAWj+C,KAAKysD,QAASzsD,KAAKggB,WAKhF,SAAsB/e,cACNq6C,GACZ,MAAMuR,EAAoB,GACpBC,EAAmB,GAEzB,UAAWnkE,KAAQ2yD,EAAWhpC,YAAa,CACzC,IAAK3pB,EACH,SAGF,MACE62B,QACAC,UACE4+B,EAAY11D,EAAK+Z,MAErB,KAAI8c,GAAS,GAAKC,GAAU,GAI5B,IAAI92B,EAAK4yD,iBAAmBz1C,EAAMte,eAAe8K,MAAO,CACtDw6D,EAAiB5iE,KAAKvB,GACtB,SAGFkkE,EAAkB3iE,KAAKvB,IAGrBmkE,EAAiBxkE,QACnBukE,EAAkB3iE,QAAQ4iE,GAG5B,MAAMzgC,EAAMivB,EAAWjvB,IAEvB,UAAW1jC,KAAQkkE,EAAmB,CACpC,MAAM7U,EAAU+U,EAAyBziE,OAAO,CAC9C3B,OACA20D,MAAOjxB,EACPxP,KAAMy+B,EAAWz+B,KACjB7J,SAAUsoC,EAAWtoC,SACrBuqC,YAAajC,EAAWiC,YACxBC,gBAAiBlC,EAAWkC,gBAC5BC,mBAAoBnC,EAAWmC,oBAAsB,GACrDC,aAAwC,IAA3BpC,EAAWoC,YACxBC,WAAY,IAAI53C,EAAe2c,cAC/B9U,kBAAmB0tC,EAAW1tC,mBAAqB,IAAI3H,EAAoBwW,kBAC3EmhC,gBAAiBtC,EAAWsC,gBAC5B3tC,aAAcqrC,EAAWrrC,aACzB6tC,aAAcxC,EAAWwC,aACzBE,WAAY1C,EAAW0C,YAAc,CACnCmJ,QAAQ,KAIZ,GAAInP,EAAQmF,aAAc,CACxB,MAAM6P,EAAWhV,EAAQllC,SAMzB,GAJInqB,EAAK62D,SACPwN,EAAStpC,MAAM4I,WAAa,UAG1BvrB,MAAMmpC,QAAQ8iB,GAChB,UAAWC,KAAmBD,EAC5B3gC,EAAI/H,YAAY2oC,QAGdjV,aAAmBmE,EACrB9vB,EAAI6gC,QAAQF,GAEZ3gC,EAAI/H,YAAY0oC,IAMxBzsC,QAAK4sC,MAALx0C,UAA6B0T,EAAKivB,EAAWhoC,mCAGjCgoC,GACZ,MACEz+B,OACA7J,WACAV,cACAgB,sBACA+Y,OACEivB,EACEriD,EAAY+Z,EAAS/Z,UACrBwwC,EAAU,UAASxwC,EAAU9O,KAAK,QACxC,IAAIsnB,EAAO27C,EAEX,UAAWzkE,MAAQ2pB,EAAa,CAC9B,MAAM+6C,GAAWhhC,EAAI29B,iBAAkB,wBAAuBrhE,GAAK4lB,QAEnE,GAAI8+C,GACF,UAAWrV,MAAWqV,GACpB,GAAI1kE,GAAKoiD,aAAc,CACrB,MAAMroC,GAAOoD,EAAM7f,KAAKq6C,cAAc,CAAC33C,GAAK+Z,KAAK,GAAIma,EAAKtL,KAAK,GAAK5oB,GAAK+Z,KAAK,GAAKma,EAAKtL,KAAK,GAAI5oB,GAAK+Z,KAAK,GAAIma,EAAKtL,KAAK,GAAK5oB,GAAK+Z,KAAK,GAAKma,EAAKtL,KAAK,KAEvJ,IAAK67C,EAAW,CACd37C,EAAQ3nB,KAAKoa,IAAIjL,EAAU,IAAMA,EAAU,IAC3C,MAAMq0D,GAAer0D,EAAU+I,QAE/B,QAASvZ,EAAI,EAAGA,EAAI,EAAGA,IACrB6kE,GAAa7kE,GAAKqB,KAAK8pC,KAAK05B,GAAa7kE,IAG3C2kE,EAAa,UAASE,GAAanjE,KAAK,QAG1C,MAAMsiC,GAAO/pB,GAAK,GAAK+O,EACjB+a,GAAM9pB,GAAK,GAAK+O,EACtBumC,GAAQt0B,MAAM+I,KAAQ,GAAEA,OACxBurB,GAAQt0B,MAAM8I,IAAO,GAAEA,OACvBwrB,GAAQt0B,MAAM46B,gBAAmB,IAAG7xB,SAAWD,OAC/CwrB,GAAQt0B,MAAMzqB,UAAYm0D,OAE1BpV,GAAQt0B,MAAMzqB,UAAYwwC,EAMlClpB,QAAK4sC,MAALx0C,UAA6B0T,EAAK/Y,GAClC+Y,EAAImzB,QAAS,GAGR2N,iBAAuB,SAAC9gC,EAAK/Y,GAClC,GAAKA,EAIL,WAAY/E,EAAImT,KAAWpO,EAAqB,CAC9C,MAAM0kC,EAAU3rB,EAAIkhC,cAAe,wBAAuBh/C,OAE1D,IAAKypC,EACH,SAGF,MACEwV,cACExV,EAEwB,WAAxBwV,EAAWC,SACbzV,EAAQ0V,aAAahsC,EAAQ8rC,GAE7BxV,EAAQyR,aAAa/nC,EAAQ8rC,GAIjCl6C,EAAoBkE,UAvBfkE,GA7HTiyC,GA6HSR,GA4BTxnE,EAAQs1D,gBAAkBA,IAInB,CAACv1D,GAAyBC,KASjC,WAAuBqb,GACrB,OAAOlX,KAAKu5C,MAAoC,IAA9Bv5C,KAAKqY,IAAI,EAAGrY,KAAKC,IAAI,EAAGiX,KAAW5U,SAAS,IAAIE,SAAS,EAAG,KANhFzG,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ25D,qBAAkB,EAyD1B35D,EAAQ25D,gBAnDR,QAAsBr+C,eACL0C,EAAGyjB,EAAG1lB,GAAG62B,IACtB,MAAO,CAAC,IAAK,EAAIzuC,KAAKC,IAAI,EAAG,GAAM4Z,EAAI,IAAOjC,GAAI,IAAO0lB,EAAImR,mBAGhDp3B,IACb,MAAO,CAAC,OAAQ,EAAG,EAAG,EAAG,EAAIA,iBAGjBA,IACZ,MAAO,CAAC,MAAOA,EAAGA,EAAGA,kBAGRA,IACb,MAAMylD,EAAIgH,EAAczsD,GACxB,MAAQ,IAAGylD,IAAIA,IAAIA,kBAGP1lD,EAAGC,EAAGC,KAClB,MAAO,CAAC,IAAK,GAAMF,EAAI,IAAOC,EAAI,IAAOC,qBAG1BF,EAAGC,EAAGC,KAIrB,MAAQ,IAHEwsD,EAAc1sD,KACd0sD,EAAczsD,KACdysD,EAAcxsD,MACLysD,gBAInB,MAAO,6BAGQlqD,EAAGyjB,EAAG1lB,GAAG62B,IACxB,MAAO,CAAC,MAAO,EAAIzuC,KAAKC,IAAI,EAAG4Z,EAAI40B,GAAI,EAAIzuC,KAAKC,IAAI,EAAG2X,GAAI62B,GAAI,EAAIzuC,KAAKC,IAAI,EAAGq9B,EAAImR,qBAGpEu1B,GACf,OAAO9tD,KAAK+tD,SAAS/tD,KAAKguD,SAASF,qBAGpB5sD,EAAGC,EAAGC,KACrB,MAAMuC,EAAI,EAAIzC,EACRQ,EAAI,EAAIP,EACRimB,EAAI,EAAIhmB,GAEd,MAAO,CAAC,OAAQuC,EAAGjC,EAAG0lB,EADZt9B,KAAKC,IAAI4Z,EAAGjC,EAAG0lB,OAUtB,CAAC1hC,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQqlE,cAAW,EAEnB,IAAIvkD,EAAY7gB,EAAoB,IA2OpCD,EAAQqlE,SAzOR,QAAe/pD,oBACOiqD,EAAM38C,GAAIypC,EAASmM,EAASlyC,GAC9C,MAAMwuC,EAAa0D,EAAQ91B,SAAS9f,GAAI,CACtCxoB,MAAO,OAGT,OAAQiyD,EAAQj4C,UACT,WAKH,GAJyB,OAArB0gD,EAAW16D,QACbmlE,EAAK/0C,YAAcsqC,EAAW16D,OAGjB,UAAXksB,EACF,MAGFi5C,EAAKtyC,iBAAiB,QAASH,IAC7B0rC,EAAQ31B,SAASjgB,GAAI,CACnBxoB,MAAO0yB,EAAM4mC,OAAOt5D,UAGxB,UAEG,QACH,GAAgC,UAA5BiyD,EAAQv0B,WAAW3e,MAAgD,aAA5BkzC,EAAQv0B,WAAW3e,KAAqB,CAOjF,GANAuvC,EAAetuD,QAAUiyD,EAAQv0B,WAAWwqC,MAC1C/C,EAAK5hC,aAAa,WAAW,GACpBm3B,EAAW16D,QAAUiyD,EAAQv0B,WAAWyqC,QACjDhD,EAAKnL,gBAAgB,WAGR,UAAX9tC,EACF,MAGFi5C,EAAKtyC,iBAAiB,SAAUH,IAC9B0rC,EAAQ31B,SAASjgB,GAAI,CACnBxoB,MAA8B0yB,EAAM4mC,OAAO8O,aAApC11C,EAAM4mC,OAAO+I,QAAoC,QAAqC,kBAG5F,CAKL,GAJyB,OAArB3H,EAAW16D,OACbmlE,EAAK5hC,aAAa,QAASm3B,EAAW16D,OAGzB,UAAXksB,EACF,MAGFi5C,EAAKtyC,iBAAiB,QAASH,IAC7B0rC,EAAQ31B,SAASjgB,GAAI,CACnBxoB,MAAO0yB,EAAM4mC,OAAOt5D,UAK1B,UAEG,SACH,GAAyB,OAArB06D,EAAW16D,MACb,UAAWgjE,KAAU/Q,EAAQnlC,SACvBk2C,EAAOtlC,WAAW19B,QAAU06D,EAAW16D,QACzCgjE,EAAOtlC,WAAWulC,UAAW,GAKnCkC,EAAKtyC,iBAAiB,QAASH,IAC7B,MAAMxtB,EAAUwtB,EAAM4mC,OAAOp0D,QAE7Bk5D,EAAQ31B,SAASjgB,GAAI,CACnBxoB,OAFsC,IAA1BkF,EAAQo+D,cAAuB,GAAKp+D,EAAQA,EAAQo+D,eAAetjE,WAKnFkb,sBAKJiqD,OACAlT,WACAmM,UAAU,KACVlyC,SACAsrC,gBAEA,MACE95B,cACEu0B,GACEoW,EAAsBlD,aAAgBmD,kBAEpB,UAApB5qC,EAAW3e,OACb2e,EAAW1jB,KAAQ,GAAE0jB,EAAW1jB,QAAQkS,KAG1C,UAAYrkB,EAAK7H,KAAUF,OAAO+oC,QAAQnL,GACxC,GAAc,MAAV19B,GAAiD,WAAR6H,EAI7C,GAAY,UAARA,EACF,GAAY,gBAARA,EACFs9D,EAAK/0C,YAAcpwB,UACF,UAAR6H,EACL7H,EAAMuC,QACR4iE,EAAK5hC,aAAa17B,EAAK7H,EAAMoE,KAAK,UAE/B,CACL,GAAIikE,IAAgC,SAARxgE,GAA0B,cAARA,GAC5C,SAGFs9D,EAAK5hC,aAAa17B,EAAK7H,QAGzBF,OAAOixB,OAAOo0C,EAAKxnC,MAAO39B,GAI1BqoE,GACF7Q,EAAYiF,kBAAkB0I,EAAMznC,EAAW5b,KAAM4b,EAAWg/B,WAG9D0B,GAAW1gC,EAAW6qC,QACxBtuD,KAAKuuD,aAAarD,EAAMznC,EAAW6qC,OAAQtW,GAASmM,iBAI1C7I,GACZ,MAAM6I,GAAU7I,EAAW1tC,kBACrB2vC,EAAcjC,EAAWiC,YACzBiR,EAAOlT,EAAW2P,QAClBh5C,EAASqpC,EAAWrpC,QAAU,UAC9Bw8C,EAAWvlD,SAAS8a,cAAcwqC,EAAKzuD,MAEzCyuD,EAAK/qC,YACPzjB,KAAK0uD,cAAc,CACjBxD,KAAMuD,EACNzW,QAASwW,EACTv8C,SACAsrC,gBAIJ,MAAMoR,EAAQ,CAAC,CAACH,GAAM,EAAIC,IACpBG,EAAUtT,EAAWjvB,IAG3B,GAFAuiC,EAAQtqC,YAAYmqC,GAEhBnT,EAAWtoC,SAAU,CACvB,MAAM/Z,EAAa,UAASqiD,EAAWtoC,SAAS/Z,UAAU9O,KAAK,QAC/DykE,EAAQlrC,MAAMzqB,UAAYA,EAGb,aAAXgZ,GACF28C,EAAQtlC,aAAa,QAAS,oBAGhC,MAAMulC,EAAW,GAEjB,KAAOF,EAAMrmE,OAAS,GAAG,CACvB,MAAOwmE,EAAQrmE,EAAGyiE,GAAQyD,EAAMA,EAAMrmE,OAAS,GAE/C,GAAIG,EAAI,IAAMqmE,EAAOj8C,SAASvqB,OAAQ,CACpCqmE,EAAM18B,MACN,SAGF,MAAM2oB,EAAQkU,EAAOj8C,WAAW87C,EAAMA,EAAMrmE,OAAS,GAAG,IAExD,GAAc,OAAVsyD,EACF,SAGF,MACE76C,QACE66C,EAEJ,GAAa,UAAT76C,EAAkB,CACpB,MAAM26C,EAAOxxC,SAASuiD,eAAe7Q,EAAM70D,OAC3C8oE,EAAS3kE,KAAKwwD,GACdwQ,EAAK5mC,YAAYo2B,GACjB,SAGF,IAAIqU,EAoBJ,GAjBEA,EADFx2B,GAAW9U,YAAYurC,MACT9lD,SAASsd,gBAAgBo0B,EAAMn3B,WAAWurC,MAAOjvD,GAEjDmJ,SAAS8a,cAAcjkB,GAGrCmrD,EAAK5mC,YAAYyqC,GAEbnU,EAAMn3B,YACRzjB,KAAK0uD,cAAc,CACjBxD,KAAM6D,EACN/W,QAAS4C,EACTuJ,WACAlyC,SACAsrC,gBAIA3C,EAAM/nC,UAAY+nC,EAAM/nC,SAASvqB,OAAS,EAC5CqmE,EAAMzkE,KAAK,CAAC0wD,GAAO,EAAImU,YACdnU,EAAM70D,MAAO,CACtB,MAAM20D,EAAOxxC,SAASuiD,eAAe7Q,EAAM70D,OAEvC0gB,EAAU8P,QAAQokC,gBAAgB56C,IACpC8uD,EAAS3kE,KAAKwwD,GAGhBqU,EAAUzqC,YAAYo2B,IAI1B,UAAWuU,KAAML,EAAQ5E,iBAAiB,yDACxCiF,EAAG3lC,aAAa,YAAY,GAG9B,MAAO,CACLulC,0BAIUvT,GACZ,MAAMriD,GAAa,UAASqiD,EAAWtoC,SAAS/Z,UAAU9O,KAAK,QAC/DmxD,EAAWjvB,IAAI3I,MAAMzqB,UAAYA,GACjCqiD,EAAWjvB,IAAImzB,QAAS,KASrB,CAAC95D,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQupE,gBAovBR,WAAyBC,GACvB,MAAM9nD,EAAO,IAAI+nD,EAAoB,CACnCj5C,YAAag5C,EAAiBh5C,YAC9Bk5C,kBAAmBF,EAAiBE,kBACpCpR,UAAWkR,EAAiBlR,UAC5BjrC,SAAUm8C,EAAiBn8C,SAC3B67C,SAAUM,EAAiBN,SAC3BS,oBAAqBH,EAAiBG,oBACtCC,qBAAsBJ,EAAiBI,uBAGzCloD,SAAKmoD,QAAQL,EAAiBM,SAEvBpoD,GA/vBT,IAAIvB,EAAQlgB,EAAoB,GAEhC,MACM8pE,EAAoB,GAEpBC,GAAc,IAAIx+C,IAClBy+C,EAAsB,SA2D5B,WAAoBvoD,EAAMwoD,EAAMl5C,EAAQiV,GACtC,MAAMkkC,EAAU5mD,SAAS8a,cAAc,QACjC+rC,EAAoB1oD,EAAK2oD,sBAAwB,CACrD99B,MAAO,EACP8Y,YAAa,EACbilB,QAAsB,KAAbJ,EAAKhkE,IACdqkE,OAAQL,EAAKK,OACbC,kBAAmB,KACnBC,cAAe,EACfC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZ9+C,MAAO,GACL,CACFygB,MAAO,EACP8Y,YAAa,EACbilB,QAAsB,KAAbJ,EAAKhkE,IACdqkE,OAAQL,EAAKK,QAGf7oD,EAAKmpD,UAAUtmE,KAAK4lE,GAEpB,MAAMz8B,EAAKvtB,EAAM7f,KAAKgT,UAAUoO,EAAKopD,UAAUx3D,UAAW42D,EAAK52D,WAE/D,IAAIi5B,EAAQpoC,KAAK4mE,MAAMr9B,EAAG,GAAIA,EAAG,IACjC,MAAM3P,EAAQ/M,EAAOk5C,EAAKc,UAEtBjtC,EAAMujB,WACR/U,GAASpoC,KAAKoM,GAAK,GAGrB,MAAM06D,EAAa9mE,KAAKgqC,MAAMT,EAAG,GAAIA,EAAG,IAClCw9B,EAAaD,EAzFrB,WAAmBjkC,EAAYf,GAC7B,MAAMklC,EAAenB,GAAYnlE,IAAImiC,GAErC,GAAImkC,EACF,OAAOA,EAGTllC,EAAI7yB,OACJ6yB,EAAIrtB,KAAQ,QAAyBouB,IACrC,MAAMokC,EAAUnlC,EAAIyc,YAAY,IAChC,IAAI2oB,EAASD,EAAQE,sBACjBC,EAAUpnE,KAAKoa,IAAI6sD,EAAQI,wBAE/B,GAAIH,EAAQ,CACVplC,EAAI5yB,UACJ,MAAMo4D,EAAQJ,GAAUA,EAASE,GACjCvB,UAAY3mE,IAAI2jC,EAAYykC,GACrBA,EAGTxlC,EAAI0N,YAAc,MAClB1N,EAAI4T,UAAU,EAAG,EAAGkwB,EAAmBA,GACvC9jC,EAAIgb,WAAW,IAAK,EAAG,GACvB,IAAIyqB,EAASzlC,EAAIkB,aAAa,EAAG,EAAG4iC,EAAmBA,GAAmB/mE,KAC1EuoE,EAAU,EAEV,QAASzoE,EAAI4oE,EAAO/oE,OAAS,EAAI,EAAGG,GAAK,EAAGA,GAAK,EAC/C,GAAI4oE,EAAO5oE,GAAK,EAAG,CACjByoE,EAAUpnE,KAAKy1C,KAAK92C,EAAI,EAAIinE,GAC5B,MAIJ9jC,EAAI4T,UAAU,EAAG,EAAGkwB,EAAmBA,GACvC9jC,EAAIgb,WAAW,IAAK,EAAG8oB,GACvB2B,EAASzlC,EAAIkB,aAAa,EAAG,EAAG4iC,EAAmBA,GAAmB/mE,KACtEqoE,EAAS,EAET,QAASvoE,EAAI,EAAG6E,EAAK+jE,EAAO/oE,OAAQG,EAAI6E,EAAI7E,GAAK,EAC/C,GAAI4oE,EAAO5oE,GAAK,EAAG,CACjBuoE,EAAStB,EAAoB5lE,KAAKu5C,MAAM56C,EAAI,EAAIinE,GAChD,MAMJ,GAFA9jC,EAAI5yB,UAEAg4D,EAAQ,CACV,MAAMI,EAAQJ,GAAUA,EAASE,GACjCvB,UAAY3mE,IAAI2jC,EAAYykC,GACrBA,EAGTzB,UAAY3mE,IAAI2jC,EAzDU,OA6FM2kC,CAAU5tC,EAAMiJ,WAAYf,GAC5D,IAAIa,EAAMD,EAEI,IAAV0F,GACFzF,EAAO4G,EAAG,GACV7G,EAAM6G,EAAG,GAAKw9B,IAEdpkC,EAAO4G,EAAG,GAAKw9B,EAAa/mE,KAAKwoC,IAAIJ,GACrC1F,EAAM6G,EAAG,GAAKw9B,EAAa/mE,KAAKsoC,IAAIF,IAGtC49B,EAAQpsC,MAAM+I,KAAQ,GAAEA,MACxBqjC,EAAQpsC,MAAM8I,IAAO,GAAEA,MACvBsjC,EAAQpsC,MAAMsQ,SAAY,GAAE48B,MAC5Bd,EAAQpsC,MAAMiJ,WAAajJ,EAAMiJ,WACjCmjC,EAAQxmC,aAAa,OAAQ,gBAC7BwmC,EAAQ35C,YAAc05C,EAAKhkE,IAC3BikE,EAAQrF,IAAMoF,EAAKpF,IAEfpjD,EAAKkqD,wBACPzB,EAAQrL,QAAQkM,SAAWd,EAAKc,UAGpB,IAAVz+B,IACF69B,EAAkB79B,MAAQA,GAAS,IAAMpoC,KAAKoM,KAGhD,IAAIs7D,GAAkB,EAEtB,GAAI3B,EAAKhkE,IAAIvD,OAAS,GAAK+e,EAAK2oD,uBAAyBJ,EAAoBpiE,KAAKqiE,EAAKhkE,KACrF2lE,GAAkB,UACI,MAAb3B,EAAKhkE,KAAegkE,EAAK52D,UAAU,KAAO42D,EAAK52D,UAAU,GAAI,CACtE,MAAMw4D,GAAY3nE,KAAKoa,IAAI2rD,EAAK52D,UAAU,IACpCy4D,EAAY5nE,KAAKoa,IAAI2rD,EAAK52D,UAAU,IAEtCw4D,KAAcC,GAAa5nE,KAAKqY,IAAIsvD,GAAWC,GAAa5nE,KAAKC,IAAI0nE,GAAWC,GAAa,MAC/FF,GAAkB,GAkBtB,GAdIA,IAEAzB,EAAkB/kB,YADhBtnB,EAAMujB,SACwB4oB,EAAKpwC,OAASpY,EAAKopD,UAAUh/C,MAE7Bo+C,EAAKrwC,MAAQnY,EAAKopD,UAAUh/C,OAIhEpK,EAAKsqD,mBAAmB3oE,IAAI8mE,EAASC,GAEjC1oD,EAAKuqD,oBACPvqD,EAAKwqD,YAAY/B,GAGfzoD,EAAK2oD,uBAAyBD,EAAkBE,QAAS,CAC3D,IAAI6B,GAAW,EACXC,EAAW,EAED,IAAV7/B,IACF4/B,GAAWhoE,KAAKsoC,IAAIF,GACpB6/B,EAAWjoE,KAAKwoC,IAAIJ,IAGtB,MAAM8/B,IAAYtuC,EAAMujB,SAAW4oB,EAAKpwC,OAASowC,EAAKrwC,OAASnY,EAAKopD,UAAUh/C,MACxEwgD,GAAYrB,EAClB,IAAIlvD,GAAGN,GAEO,IAAV8wB,GACFxwB,GAAI,CAACowD,GAAUC,GAAWA,EAAUD,GAAUrlC,EAAMD,GACpDprB,GAAI0E,EAAM7f,KAAKskD,2BAA2B,CAAC,EAAG,EAAGynB,GAAUC,IAAYvwD,KAEvEN,GAAI,CAACqrB,EAAMD,EAAKC,EAAOulC,GAAUxlC,EAAMylC,IAGzC5qD,EAAK4qC,QAAQ/nD,KAAK,CAChBuiC,KAAMrrB,GAAE,GACRorB,IAAKprB,GAAE,GACP8wD,MAAO9wD,GAAE,GACT+wD,OAAQ/wD,GAAE,GACVirB,IAAKyjC,EACL//C,KAAM,CAACiiD,GAAUC,IACjBvwD,QAKN,WAAgB2F,GACd,GAAIA,EAAK+qD,UACP,OAGF,MAAMvD,EAAWxnD,EAAKmpD,UAChBnmE,EAAagd,EAAK6D,YAClBmnD,EAAiBxD,EAASvmE,OAEhC,GAAI+pE,EA9L0B,IAiM5B,OAFAhrD,EAAKirD,gBAAiB,OACtBjoE,EAAWM,UAIb,IAAK0c,EAAKuqD,mBACR,QAASnpE,EAAI,EAAGA,EAAI4pE,EAAgB5pE,IAClC4e,EAAKwqD,YAAYhD,EAASpmE,IAI9B4e,EAAKirD,gBAAiB,EACtBjoE,EAAWM,UAGb,WAAyB4nE,EAAI9mC,EAAQqU,GACnC,IAAI0V,EAAS,EAEb,QAAS/sD,EAAI,EAAGA,EAAIq3C,EAAOr3C,IAAK,CAC9B,MAAMmb,EAAI2uD,EAAG9mC,KAET7nB,EAAI,IACN4xC,EAASA,EAAS1rD,KAAKC,IAAI6Z,EAAG4xC,GAAU5xC,GAI5C,OAAO4xC,EA8GT,WAAyBh2B,EAAO9b,GAC9BA,EAAO8uD,KAAK,SAAUnwD,EAAGjB,GACvB,OAAOiB,EAAEc,GAAK/B,EAAE+B,IAAMd,EAAE0gD,MAAQ3hD,EAAE2hD,QAWpC,MAAM0P,EAAU,CAAC,CACf1qC,OAAO,IACP7a,IAAK0pB,IACL87B,SAZmB,CACnBvvD,IAAI,IACJC,IAAI,IACJC,GAAI,EACJC,GAAIszB,IACJmsB,OAAO,EACP4P,MAAO,EACPC,MAAO,KAQT,UAAWF,KAAYhvD,EAAQ,CAC7B,IAAIjb,EAAI,EAER,KAAOA,EAAIgqE,EAAQnqE,QAAUmqE,EAAQhqE,GAAGykB,KAAOwlD,EAAStvD,IACtD3a,IAGF,IAAI2b,EAAIquD,EAAQnqE,OAAS,EAEzB,KAAO8b,GAAK,GAAKquD,EAAQruD,GAAG2jB,OAAS2qC,EAASpvD,IAC5Cc,IAGF,IAAIyuD,EAAaC,EACblhB,EACArZ,EACAw6B,GAAU,IAEd,IAAKnhB,EAAInpD,EAAGmpD,GAAKxtC,EAAGwtC,IAAK,CAGvB,IAAIohB,GAFJH,EAAcJ,EAAQ7gB,GACtBkhB,EAAmBD,EAAYH,SAI7BM,GADEF,EAAiBzvD,GAAKqvD,EAASvvD,GAC1B2vD,EAAiB/P,MAAQ2P,EAAS3P,MAAQ+P,EAAiBH,MAAQD,EAASvvD,QAC/C5Z,IAA/Bi7B,EAAqBouC,OAClBE,EAAiBzvD,GAAKqvD,EAASvvD,IAAM,EAEtC2vD,EAAiBF,MAGtBI,GAAOD,IACTA,EAAUC,IAMd,IAFAN,EAASC,MAAQI,EAEZnhB,EAAInpD,EAAGmpD,GAAKxtC,EAAGwtC,IAClBihB,EAAcJ,EAAQ7gB,GACtBkhB,EAAmBD,EAAYH,cAEAnpE,IAA/Bi7B,EAAqBouC,MACnBpuC,EAAqBnhB,GAAKqvD,EAASvvD,GAC7B2vD,EAAiB/P,MAAQ2P,EAAS3P,QACpC+P,EAAiBF,MAAQE,EAAiBzvD,IAG5CyvD,EAAiBF,MAAQG,EAElBD,EAAiBF,MAAQG,IAClCD,EAAiBF,MAAQ9oE,KAAKqY,IAAI4wD,EAASD,EAAiBzvD,KAIhE,MAAM4vD,EAAiB,GACvB,IAAIC,EAAe,KAEnB,IAAKthB,EAAInpD,EAAGmpD,GAAKxtC,EAAGwtC,IAAK,CACvBihB,EAAcJ,EAAQ7gB,GACtBkhB,EAAmBD,EAAYH,SAC/B,MAAMS,GAAcL,EAAiBzvD,GAAKqvD,EAASrvD,GAAKyvD,EAAmBJ,EAEvEQ,IAAiBC,GACnBF,EAAeA,EAAe3qE,OAAS,GAAG4kB,IAAM2lD,EAAY3lD,KAE5D+lD,EAAe/oE,KAAK,CAClB69B,MAAO8qC,EAAY9qC,MACnB7a,IAAK2lD,EAAY3lD,IACjBwlD,SAAUS,KAEZD,EAAeC,IAsBnB,IAlBIV,EAAQhqE,GAAGs/B,MAAQ2qC,EAAStvD,KAC9B6vD,EAAe,GAAGlrC,MAAQ2qC,EAAStvD,GACnC6vD,EAAeG,QAAQ,CACrBrrC,MAAO0qC,EAAQhqE,GAAGs/B,MAClB7a,IAAKwlD,EAAStvD,GACdsvD,SAAUD,EAAQhqE,GAAGiqE,YAIrBA,EAASpvD,GAAKmvD,EAAQruD,GAAG8I,MAC3B+lD,EAAeA,EAAe3qE,OAAS,GAAG4kB,IAAMwlD,EAASpvD,GACzD2vD,EAAe/oE,KAAK,CAClB69B,MAAO2qC,EAASpvD,GAChB4J,IAAKulD,EAAQruD,GAAG8I,IAChBwlD,SAAUD,EAAQruD,GAAGsuD,YAIpB9gB,EAAInpD,EAAGmpD,GAAKxtC,EAAGwtC,IAAK,CAIvB,GAHAihB,EAAcJ,EAAQ7gB,GACtBkhB,EAAmBD,EAAYH,cAEAnpE,IAA3BupE,EAAiBF,MACnB,SAGF,IAAIS,IAAO,EAEX,IAAK96B,EAAI9vC,EAAI,GAAI4qE,IAAQ96B,GAAK,GAAKk6B,EAAQl6B,GAAGxQ,OAAS+qC,EAAiB1vD,GAAIm1B,IAC1E86B,GAAOZ,EAAQl6B,GAAGm6B,WAAaI,EAGjC,IAAKv6B,EAAIn0B,EAAI,GAAIivD,IAAQ96B,EAAIk6B,EAAQnqE,QAAUmqE,EAAQl6B,GAAGrrB,KAAO4lD,EAAiBxvD,GAAIi1B,IACpF86B,GAAOZ,EAAQl6B,GAAGm6B,WAAaI,EAGjC,IAAKv6B,EAAI,GAAI86B,IAAQ96B,EAAI06B,EAAe3qE,OAAQiwC,IAC9C86B,GAAOJ,EAAe16B,GAAGm6B,WAAaI,EAGnCO,KACHP,EAAiBF,MAAQG,GAI7BhyD,MAAMb,UAAU6Y,OAAOpvB,MAAM8oE,EAAS,CAAChqE,EAAG2b,EAAI3b,EAAI,GAAG6qE,OAAOL,IAG9D,UAAWJ,KAAeJ,EAAS,CACjC,MAAMK,EAAmBD,EAAYH,cAENnpE,IAA3BupE,EAAiBF,QACnBE,EAAiBF,MAAQ9oE,KAAKqY,IAAIqd,EAAOszC,EAAiBzvD,MAKhE,QACEpD,aACEkW,cACAk5C,oBACApR,YACAjrC,WACA67C,WACAS,sBACAC,yBAEAvvD,KAAKuzD,aAAep9C,EACpBnW,KAAK4xD,mBAAqBvC,EAC1BrvD,KAAKwzD,WAAavV,EAClBj+C,KAAK8lB,UAAYm4B,EAAUj1C,cAC3BhJ,KAAKywD,UAAYz9C,EACjBhT,KAAKwwD,UAAY3B,GAAY,GAC7B7uD,KAAKyzD,qBAAuBnE,GAAuB,GACnDtvD,KAAKgwD,wBAA0BT,EAC/BvvD,KAAKuxD,wBAA0BtoD,WAAW8V,eAAeC,QACzDhf,KAAK0zD,QAAU,KACf1zD,KAAK2zD,wBAA0B,KAC/B3zD,KAAK4zD,0BAA4B,KACjC5zD,KAAK6zD,eAAiB,KACtB7zD,KAAK2xD,mBAAqB,IAAIn2C,QAC9Bxb,KAAKsyD,gBAAiB,EACtBtyD,KAAKoyD,WAAY,EACjBpyD,KAAKkL,aAAe,EAAGpF,EAAM1b,2BAC7B4V,KAAK8zD,aAAe,KACpB9zD,KAAKiyC,QAAU,GAEfjyC,KAAKkL,YAAYzgB,QAAQ20B,QAAQ,KAC1Bpf,KAAKgwD,wBACRhwD,KAAK2xD,mBAAqB,MAGxB3xD,KAAK6zD,iBACP7zD,KAAK6zD,eAAenyC,OAAOlC,MAAQ,EACnCxf,KAAK6zD,eAAenyC,OAAOjC,OAAS,EACpCzf,KAAK6zD,eAAiB,QAEvB5oD,MAAM,QAGPxgB,cACF,OAAOuV,KAAKkL,YAAYzgB,QAG1B8sB,SACEvX,KAAKoyD,WAAY,EAEbpyD,KAAK0zD,UACP1zD,KAAK0zD,QAAQn8C,OAAO,IAAIzR,EAAM5d,eAAe,8BAA8B+iB,MAAM,QAEjFjL,KAAK0zD,QAAU,MAGS,OAAtB1zD,KAAK8zD,eACPhgD,aAAa9T,KAAK8zD,cAClB9zD,KAAK8zD,aAAe,MAGtB9zD,KAAKkL,YAAYtgB,OAAO,IAAI6U,MAAM,8BAGpCs0D,cAAc39C,EAAO49C,GACnB,QAASvrE,EAAI,EAAGwrE,EAAM79C,EAAM9tB,OAAQG,EAAIwrE,EAAKxrE,IAC3C,QAAqBc,IAAjB6sB,EAAM3tB,GAAGoD,IAmBbmU,KAAKyzD,qBAAqBvpE,KAAKksB,EAAM3tB,GAAGoD,KAExCqoE,EAAWl0D,KAAMoW,EAAM3tB,GAAIurE,EAAYh0D,KAAK6zD,qBApB1C,GAAsB,4BAAlBz9C,EAAM3tB,GAAGqc,MAAwD,uBAAlBsR,EAAM3tB,GAAGqc,KAA+B,CACzF,MAAMgqD,EAAS9uD,KAAKwzD,WACpBxzD,KAAKwzD,WAAatqD,SAAS8a,cAAc,QAEzChkB,KAAKwzD,WAAW5L,UAAUzyC,IAAI,iBAEV,OAAhBiB,EAAM3tB,GAAG8lB,IACXvO,KAAKwzD,WAAWlqC,aAAa,KAAO,GAAElT,EAAM3tB,GAAG8lB,MAGjDugD,EAAOxqC,YAAYtkB,KAAKwzD,gBACG,qBAAlBp9C,EAAM3tB,GAAGqc,OAClB9E,KAAKwzD,WAAaxzD,KAAKwzD,WAAWW,YAY1CtC,YAAY/B,GACV,MAAMC,EAAoB/vD,KAAK2xD,mBAAmBnnE,IAAIslE,GAEtD,IAAI72D,EAAY,GAEhB,GAAsC,IAAlC82D,EAAkB/kB,aAAqB+kB,EAAkBE,QAAS,CACpE,MACEj8B,WACArH,cACEmjC,EAAQpsC,OAERsQ,IAAah0B,KAAK2zD,yBAA2BhnC,IAAe3sB,KAAK4zD,6BACnE5zD,KAAK6zD,eAAet1D,KAAQ,GAAEy1B,KAAYrH,IAC1C3sB,KAAK2zD,wBAA0B3/B,EAC/Bh0B,KAAK4zD,0BAA4BjnC,GAGnC,MACEnN,SACExf,KAAK6zD,eAAexrB,YAAYynB,EAAQ35C,aAE5C,GAAIqJ,EAAQ,EAAG,CACb,MAAM/N,EAAQs+C,EAAkB/kB,YAAcxrB,EAE1Cxf,KAAKgwD,wBACPD,EAAkBt+C,MAAQA,GAG5BxY,EAAa,UAASwY,MAoB1B,GAhBgC,IAA5Bs+C,EAAkB79B,QACpBj5B,EAAa,UAAS82D,EAAkB79B,aAAaj5B,KAGnDA,EAAU3Q,OAAS,IACjB0X,KAAKgwD,wBACPD,EAAkBI,kBAAoBl3D,GAGxC62D,EAAQpsC,MAAMzqB,UAAYA,GAGxB82D,EAAkBE,SACpBjwD,KAAKwzD,WAAWlvC,YAAYwrC,GAG1BC,EAAkBG,OAAQ,CAC5B,MAAMpmB,EAAK5gC,SAAS8a,cAAc,MAClC8lB,EAAGxgB,aAAa,OAAQ,gBAExBtpB,KAAKwzD,WAAWlvC,YAAYwlB,IAIhC0lB,QAAQC,EAAU,GAChB,MAAMplE,GAAc,EAAGyb,EAAM1b,2BAC7B,IAAI4pE,EAAanuE,OAAOyE,OAAO,MAE/B,MAAMo3B,EAAS1hB,KAAK8lB,UAAU9B,cAAc,UAO5C,GALAtC,EAAOjC,OAASiC,EAAOlC,MAAQkwC,EAC/B1vD,KAAK6zD,eAAiBnyC,EAAOwH,WAAW,KAAM,CAC5C+Q,OAAO,IAGLj6B,KAAKuzD,aAIPvzD,KAAK+zD,cAHa/zD,KAAKuzD,aAAan9C,MACjBpW,KAAKuzD,aAAa58C,QAIrCtsB,EAAWM,mBACFqV,KAAK4xD,mBAsBd,MAAM,IAAInyD,MAAM,uEAtBkB,CAClC,MAAMsX,EAAO,KACX/W,KAAK0zD,QAAQ98C,OAAO/M,KAAK,EACvB9jB,QACA8wB,WAEIA,EACFxsB,EAAWM,WAIb9E,OAAOixB,OAAOk9C,EAAYjuE,EAAM4wB,QAEhC3W,KAAK+zD,cAAchuE,EAAMqwB,MAAO49C,GAEhCj9C,MACC1sB,EAAWO,SAGhBoV,KAAK0zD,QAAU1zD,KAAK4xD,mBAAmBl7C,YACvCK,KAKF1sB,EAAWI,QAAQof,KAAK,KACtBmqD,EAAa,KAEb19D,EAGE0J,KAAK8zD,aAAe57C,WAAW,KAC7BpF,EAAO9S,MACPA,KAAK8zD,aAAe,MACnBrE,GALH38C,EAAO9S,OAORA,KAAKkL,YAAYtgB,QAGtBwpE,eAAeC,GAAa,GAC1B,IAAKr0D,KAAKgwD,wBAA0BhwD,KAAKsyD,eACvC,OAGmB,OAAjBtyD,KAAKiyC,UAndb,WAAgB5qC,GACd,MAAM3D,EAAS2D,EAAK4qC,QACdj/B,EAAW3L,EAAKopD,UAChB6D,EAyDR,WAAsB90C,EAAOC,EAAQ80C,GACnC,MAAM7wD,EAAS6wD,EAAM7mE,IAAI,SAAUuoC,EAAKxtC,GACtC,MAAO,CACL0a,GAAI8yB,EAAIxJ,KACRrpB,GAAI6yB,EAAIzJ,IACRnpB,GAAI4yB,EAAIi8B,MACR5uD,GAAI2yB,EAAIk8B,OACRpP,MAAOt6D,EACPkqE,WAAOppE,EACPqpE,WAAOrpE,KAGXirE,EAAgBh1C,EAAO9b,GACvB,MAAM4wD,EAAW,IAAIvzD,MAAMwzD,EAAMjsE,QAEjC,UAAW8Y,KAAKsC,EAEd4wD,EADUlzD,EAAE2hD,OACE,CACZt2B,KAAMrrB,EAAEuxD,MACRnmC,IAAK,EACL0lC,MAAO9wD,EAAEwxD,MACTT,OAAQ,GAIZoC,EAAM7mE,IAAI,SAAUuoC,EAAKxtC,GACvB,MAAMq0B,EAAIw3C,EAAS7rE,GACb2Y,EAAIsC,EAAOjb,GACjB2Y,EAAE+B,GAAK8yB,EAAIzJ,IACXprB,EAAEgC,GAAKoc,EAAQ1C,EAAEo1C,MACjB9wD,EAAEiC,GAAK4yB,EAAIk8B,OACX/wD,EAAEkC,GAAKkc,EAAQ1C,EAAE2P,KACjBrrB,EAAE2hD,MAAQt6D,EACV2Y,EAAEuxD,WAAQppE,EACV6X,EAAEwxD,WAAQrpE,IAEZirE,EAAgB/0C,EAAQ/b,GAExB,UAAWtC,KAAKsC,EAAQ,CACtB,MAAMjb,EAAI2Y,EAAE2hD,MACZuR,EAAS7rE,GAAG+jC,IAAMprB,EAAEuxD,MACpB2B,EAAS7rE,GAAG0pE,OAAS/wD,EAAEwxD,MAGzB,OAAO0B,EArGUG,CAAazhD,EAASwM,MAAOxM,EAASyM,OAAQ/b,GAE/D,QAASjb,EAAI,EAAGA,EAAI6rE,EAAShsE,OAAQG,IAAK,CACxC,MAAM4jC,EAAM3oB,EAAOjb,GAAG4jC,IAEhBqoC,EAAgBrtD,EAAKsqD,mBAAmBnnE,IAAI6hC,GAElD,GAA4B,IAAxBqoC,EAAcxiC,MAAa,CAC7BwiC,EAAcrE,YAAc3sD,EAAOjb,GAAGgkC,KAAO6nC,EAAS7rE,GAAGgkC,KACzDioC,EAAcnE,WAAa7sD,EAAOjb,GAAG+jC,IAAM8nC,EAAS7rE,GAAG+jC,IACvDkoC,EAAcpE,aAAegE,EAAS7rE,GAAGypE,MAAQxuD,EAAOjb,GAAGypE,MAC3DwC,EAActE,cAAgBkE,EAAS7rE,GAAG0pE,OAASzuD,EAAOjb,GAAG0pE,OAE7D9qD,EAAKsqD,mBAAmB3oE,IAAIqjC,EAAKqoC,GAEjC,SAGF,MAAM53C,EAAIw3C,EAAS7rE,GACb2Y,EAAIsC,EAAOjb,GACXiZ,EAAIN,EAAEM,EACNiC,EAAIjC,EAAE,GACNgqB,EAAIhqB,EAAE,GACN+pC,EAAS,CAAC,CAAC,EAAG,GAAI,CAAC,EAAGrqC,EAAE2O,KAAK,IAAK,CAAC3O,EAAE2O,KAAK,GAAI,GAAI3O,EAAE2O,MACpDwiD,EAAK,IAAIoC,aAAa,IAE5B,QAASvwD,EAAI,EAAGwwD,GAAKnpB,EAAOnjD,OAAQ8b,EAAIwwD,GAAIxwD,IAAK,CAC/C,MAAMR,GAAIkC,EAAM7f,KAAK6b,eAAe2pC,EAAOrnC,GAAI1C,GAE/C6wD,EAAGnuD,EAAI,GAAKT,IAAMmZ,EAAE2P,KAAO7oB,GAAE,IAAMD,EACnC4uD,EAAGnuD,EAAI,GAAKsnB,IAAM5O,EAAE0P,IAAM5oB,GAAE,IAAM8nB,EAClC6mC,EAAGnuD,EAAI,GAAKT,IAAMmZ,EAAEo1C,MAAQtuD,GAAE,IAAMD,EACpC4uD,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAEq1C,OAASvuD,GAAE,IAAM8nB,EACtC6mC,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAE2P,KAAO7oB,GAAE,KAAO8nB,EACrC6mC,EAAGnuD,EAAI,IAAMT,IAAMmZ,EAAE0P,IAAM5oB,GAAE,IAAMD,EACnC4uD,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAEo1C,MAAQtuD,GAAE,KAAO8nB,EACtC6mC,EAAGnuD,EAAI,IAAMT,IAAMmZ,EAAEq1C,OAASvuD,GAAE,IAAMD,EACtC4uD,EAAGnuD,EAAI,IAAMT,IAAMmZ,EAAE2P,KAAO7oB,GAAE,KAAOD,EACrC4uD,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAE0P,IAAM5oB,GAAE,KAAO8nB,EACpC6mC,EAAGnuD,EAAI,IAAMT,IAAMmZ,EAAEo1C,MAAQtuD,GAAE,KAAOD,EACtC4uD,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAEq1C,OAASvuD,GAAE,KAAO8nB,EACvC6mC,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAE2P,KAAO7oB,GAAE,IAAM8nB,EACpC6mC,EAAGnuD,EAAI,IAAMT,IAAMmZ,EAAE0P,IAAM5oB,GAAE,KAAOD,EACpC4uD,EAAGnuD,EAAI,IAAMsnB,IAAM5O,EAAEo1C,MAAQtuD,GAAE,IAAM8nB,EACrC6mC,EAAGnuD,EAAI,IAAMT,IAAMmZ,EAAEq1C,OAASvuD,GAAE,KAAOD,EAGzC,MAAMkxD,GAAW,EAAI/qE,KAAKC,IAAID,KAAKoa,IAAIP,GAAI7Z,KAAKoa,IAAIwnB,IACpDgpC,EAAcrE,YAAcyE,EAAgBvC,EAAI,GAAI,IAAMsC,GAC1DH,EAAcnE,WAAauE,EAAgBvC,EAAI,GAAI,IAAMsC,GACzDH,EAAcpE,aAAewE,EAAgBvC,EAAI,EAAG,IAAMsC,GAC1DH,EAActE,cAAgB0E,EAAgBvC,EAAI,GAAI,IAAMsC,GAE5DxtD,EAAKsqD,mBAAmB3oE,IAAIqjC,EAAKqoC,IA4Z/BK,CAAO/0D,MACPA,KAAKiyC,QAAU,MAGjB,MAAM+iB,EAAe,GACfC,EAAa,GAEnB,QAASxsE,EAAI,EAAG6E,EAAK0S,KAAKwwD,UAAUloE,OAAQG,EAAI6E,EAAI7E,IAAK,CACvD,MAAM4jC,EAAMrsB,KAAKwwD,UAAU/nE,GAErBysE,EAAWl1D,KAAK2xD,mBAAmBnnE,IAAI6hC,IAExC6oC,EAASjF,UAIVoE,GACFW,EAAa1sE,OAAS,EACtB2sE,EAAW3sE,OAAS,EAEhB4sE,EAAS/E,mBACX6E,EAAa9qE,KAAKgrE,EAAS/E,mBAG7BhvD,EAAaovD,WAAa,GACxB0E,EAAW/qE,KAAM,GAAEgrE,EAAS3E,gBAC5ByE,EAAa9qE,KAAM,eAAcgrE,EAAS3E,kBAE1C0E,EAAW/qE,KAAK,GAIhB+qE,EAAW/qE,KADbiX,EAAamvD,aAAe,EACP4E,EAAS5E,aAAe4E,EAASzjD,MAAnC,KAED,GAIhBwjD,EAAW/qE,KADbiX,EAAaivD,cAAgB,EACV,GAAE8E,EAAS9E,kBAEZ,GAGlBjvD,EAAakvD,YAAc,GACzB4E,EAAW/qE,KAAQgrE,EAAS7E,YAAc6E,EAASzjD,MAAlC,MACjBujD,EAAa9qE,KAAM,eAAcgrE,EAAS7E,YAAc6E,EAASzjD,aAEjEwjD,EAAW/qE,KAAK,GAGlBmiC,EAAI3I,MAAMyxC,QAAUF,EAAW9qE,KAAK,KAEhC6qE,EAAa1sE,SACf+jC,EAAI3I,MAAMzqB,UAAY+7D,EAAa7qE,KAAK,QAG1CkiC,EAAI3I,MAAMyxC,QAAU,KACpB9oC,EAAI3I,MAAMzqB,UAAYi8D,EAAS/E,wBAyBhC,CAACzqE,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQyvE,iBAAc,EAEtB,IAAItvD,EAAQlgB,EAAoB,GAE5BmgB,EAAiBngB,EAAoB,GAErCwgB,EAAWxgB,EAAoB,GAEnC,IAAIwvE,EAAc,MAChBn1D,eACG,EAAG6F,EAAM1c,aAAa,kCAI3BzD,EAAQyvE,YAAcA,EACtB,CAyRE,IAASC,EAAT,SAAsBC,GACpB,IAAIC,EAAS,GACb,MAAMvlB,EAAM,GAEZ,UAAWwlB,KAAiBF,EACD,SAArBE,EAAcC,GAWO,YAArBD,EAAcC,GAChBF,EAASvlB,EAAI/d,MAEbsjC,EAAOrrE,KAAKsrE,IAbZD,EAAOrrE,KAAK,CACVk0C,KAAM,GACNq3B,GAAI,QACJr/C,MAAO,KAET45B,EAAI9lD,KAAKqrE,GACTA,EAASA,EAAOA,EAAOjtE,OAAS,GAAG8tB,OAWvC,OAAOm/C,GAGAG,EAAT,SAAY3vE,GACV,GAAIkI,OAAOC,UAAUnI,GACnB,OAAOA,EAAMqG,WAGf,MAAMs/B,EAAI3lC,EAAM4vE,QAAQ,IACxB,IAAIltE,EAAIijC,EAAEpjC,OAAS,EAEnB,GAAa,MAATojC,EAAEjjC,GACJ,OAAOijC,EAGT,GACEjjC,UACgB,MAATijC,EAAEjjC,IAEX,OAAOijC,EAAE5I,UAAU,EAAY,MAAT4I,EAAEjjC,GAAaA,EAAIA,EAAI,IAGtCmtE,EAAT,SAAYl0D,GACV,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAAU,CAC5B,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAClB,OAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GACX,GAGD,SAAQg0D,EAAGh0D,EAAE,OAAOg0D,EAAGh0D,EAAE,OAGnC,GAAIA,EAAE,KAAOA,EAAE,IAAMA,EAAE,MAAQA,EAAE,GAAI,CACnC,MAAMW,EAAsB,IAAlBvY,KAAK+rE,KAAKn0D,EAAE,IAAY5X,KAAKoM,GACvC,MAAQ,UAASw/D,EAAGrzD,eAGT,IAATX,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,GAC9C,MAAQ,aAAYg0D,EAAGh0D,EAAE,OAAOg0D,EAAGh0D,EAAE,OAIzC,MAAQ,UAASg0D,EAAGh0D,EAAE,OAAOg0D,EAAGh0D,EAAE,OAAOg0D,EAAGh0D,EAAE,OAAOg0D,EAAGh0D,EAAE,OAAOg0D,EAAGh0D,EAAE,OAAYg0D,EAAGh0D,EAAE,QAzVzF,MAAMo0D,GAAe,CACnBC,UAAW,SACX1oC,WAAY,SACZwH,UAAW,WAEPmhC,EAAS,uCACTC,EAAW,+BACXv7B,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SAEtC/gB,EAAkB,SAAUjxB,EAAMutE,EAAc,GAAIC,GAAkB,GAC1E,GAAI1qE,IAAImuB,wBAA0BC,KAAS,MAAgBs8C,EACzD,OAAO1qE,IAAImuB,gBAAgB,IAAIC,KAAK,CAAClxB,GAAO,CAC1Cmc,KAAMoxD,KAIV,MAAME,EAAS,oEACf,IAAIlqE,EAAU,QAAOgqE,YAErB,QAASztE,EAAI,EAAG6E,EAAK3E,EAAKL,OAAQG,EAAI6E,EAAI7E,GAAK,EAAG,CAChD,MAAM4tE,EAAe,IAAV1tE,EAAKF,GACV6tE,EAAmB,IAAd3tE,EAAKF,EAAI,GACd8tE,EAAmB,IAAd5tE,EAAKF,EAAI,GAKpByD,GAAUkqE,EAJCC,GAAM,GAIMD,GAHN,EAALC,IAAW,EAAIC,GAAM,GAGGF,EAFzB3tE,EAAI,EAAI6E,GAAW,GAALgpE,IAAa,EAAIC,GAAM,EAAI,IAEHH,EADtC3tE,EAAI,EAAI6E,EAAU,GAALipE,EAAY,IAItC,OAAOrqE,GAGHsqE,EAAsB,WAC1B,MAAMC,EAAa,IAAIluE,WAAW,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAEvEmuE,EAAW,IAAI7qB,WAAW,KAEhC,QAASpjD,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,IAAIkb,EAAIlb,EAER,QAAS2hC,GAAI,EAAGA,GAAI,EAAGA,KAEnBzmB,EADM,EAAJA,EACE,WAAaA,GAAK,EAAI,WAEtBA,GAAK,EAAI,WAIjB+yD,EAASjuE,GAAKkb,EAehB,WAAuBmB,EAAM8nB,EAAMjkC,GAAM8iC,GACvC,IAAIhqB,GAAIgqB,EACR,MAAMwoC,GAAMrnC,EAAKtkC,OACjBK,GAAK8Y,IAAKwyD,IAAO,GAAK,IACtBtrE,GAAK8Y,GAAI,GAAKwyD,IAAO,GAAK,IAC1BtrE,GAAK8Y,GAAI,GAAKwyD,IAAO,EAAI,IACzBtrE,GAAK8Y,GAAI,GAAW,IAANwyD,GACdxyD,IAAK,EACL9Y,GAAK8Y,IAA0B,IAArBqD,EAAK9V,WAAW,GAC1BrG,GAAK8Y,GAAI,GAA0B,IAArBqD,EAAK9V,WAAW,GAC9BrG,GAAK8Y,GAAI,GAA0B,IAArBqD,EAAK9V,WAAW,GAC9BrG,GAAK8Y,GAAI,GAA0B,IAArBqD,EAAK9V,WAAW,GAC9ByS,IAAK,EACL9Y,GAAKK,IAAI4jC,EAAMnrB,IACfA,IAAKmrB,EAAKtkC,OACV,MAAMquE,GA3BR,WAAehuE,EAAMo/B,EAAO7a,IAC1B,IAAIypD,GAAM,EAEV,QAASluE,GAAIs/B,EAAOt/B,GAAIykB,GAAKzkB,KAG3BkuE,EAAMA,IAAQ,EADJD,EADkB,KAAjBC,EAAMhuE,EAAKF,MAKxB,OAAa,EAANkuE,EAkBKC,CAAMjuE,GAAM8iC,EAAS,EAAGhqB,IACpC9Y,GAAK8Y,IAAKk1D,IAAO,GAAK,IACtBhuE,GAAK8Y,GAAI,GAAKk1D,IAAO,GAAK,IAC1BhuE,GAAK8Y,GAAI,GAAKk1D,IAAO,EAAI,IACzBhuE,GAAK8Y,GAAI,GAAW,IAANk1D,GAyChB,WAAiCE,GAC/B,IAAI5C,EAAM4C,EAASvuE,OACnB,MAAMwuE,GAAiB,MACjBC,EAAgBjtE,KAAKy1C,KAAK00B,EAAM6C,IAChCE,GAAO,IAAIzuE,WAAW,EAAI0rE,EAAsB,EAAhB8C,EAAoB,GAC1D,IAAIE,GAAK,EACTD,GAAKC,MAAQ,IACbD,GAAKC,MAAQ,IACb,IAAIvuE,GAAM,EAEV,KAAOurE,EAAM6C,IACXE,GAAKC,MAAQ,EACbD,GAAKC,MAAQ,IACbD,GAAKC,MAAQ,IACbD,GAAKC,MAAQ,EACbD,GAAKC,MAAQ,EACbD,GAAKhuE,IAAI6tE,EAAS5sE,SAASvB,GAAKA,GAAMouE,IAAiBG,IACvDA,IAAMH,GACNpuE,IAAOouE,GACP7C,GAAO6C,GAGTE,GAAKC,MAAQ,EACbD,GAAKC,MAAc,IAANhD,EACb+C,GAAKC,MAAQhD,GAAO,EAAI,IACxB+C,GAAKC,MAAe,KAANhD,EACd+C,GAAKC,OAAgB,OAANhD,IAAiB,EAAI,IACpC+C,GAAKhuE,IAAI6tE,EAAS5sE,SAASvB,IAAMuuE,IACjCA,IAAMJ,EAASvuE,OAASI,GACxB,MAAMwuE,GAnER,WAAiBvuE,EAAMo/B,EAAO7a,IAC5B,IAAI7K,EAAI,EACJjB,GAAI,EAER,QAAS3Y,GAAIs/B,EAAOt/B,GAAIykB,KAAOzkB,GAC7B4Z,GAAKA,GAAe,IAAV1Z,EAAKF,MAAc,MAC7B2Y,IAAKA,GAAIiB,GAAK,MAGhB,OAAOjB,IAAK,GAAKiB,EA0DH80D,CAAQN,EAAU,EAAGA,EAASvuE,QAC5C0uE,UAAKC,MAAQC,IAAS,GAAK,IAC3BF,GAAKC,MAAQC,IAAS,GAAK,IAC3BF,GAAKC,MAAQC,IAAS,EAAI,IAC1BF,GAAKC,MAAgB,IAARC,GACNF,GAsET,OAAO,SAA6BlgC,EAASq/B,GAAiBiB,GAE5D,OArEF,WAAgBtgC,EAASiB,EAAMo+B,GAAiBiB,GAC9C,MAAM53C,GAAQsX,EAAQtX,MAChBC,GAASqX,EAAQrX,OACvB,IAAI43C,GAAUC,GAAW5rB,EACzB,MAAMpiD,EAAQwtC,EAAQnuC,KAEtB,OAAQovC,QACDjyB,EAAM/e,UAAUqK,eACnBkmE,GAAY,EACZD,GAAW,EACX3rB,EAAWlsB,GAAQ,GAAK,EACxB,WAEG1Z,EAAM/e,UAAUsK,UACnBimE,GAAY,EACZD,GAAW,EACX3rB,EAAmB,EAARlsB,GACX,WAEG1Z,EAAM/e,UAAUuK,WACnBgmE,GAAY,EACZD,GAAW,EACX3rB,EAAmB,EAARlsB,GACX,cAGA,MAAM,IAAI/f,MAAM,kBAGpB,MAAMo3D,EAAW,IAAItuE,YAAY,EAAImjD,GAAYjsB,IACjD,IAAI83C,EAAiB,EACjBC,EAAc,EAElB,QAASpwC,EAAI,EAAGA,EAAI3H,KAAU2H,EAC5ByvC,EAASU,KAAoB,EAC7BV,EAAS7tE,IAAIM,EAAMW,SAASutE,EAAaA,EAAc9rB,GAAW6rB,GAClEC,GAAe9rB,EACf6rB,GAAkB7rB,EAGpB,GAAI3T,IAASjyB,EAAM/e,UAAUqK,gBAAkBgmE,EAAQ,CACrDG,EAAiB,EAEjB,QAASnwC,EAAI,EAAGA,EAAI3H,GAAQ2H,IAAK,CAC/BmwC,IAEA,QAAS9uE,EAAI,EAAGA,EAAIijD,EAAUjjD,IAC5BouE,EAASU,MAAqB,KAKpC,MAAME,EAAO,IAAIlvE,WAAW,CAACi3B,IAAS,GAAK,IAAMA,IAAS,GAAK,IAAMA,IAAS,EAAI,IAAc,IAARA,GAAcC,IAAU,GAAK,IAAMA,IAAU,GAAK,IAAMA,IAAU,EAAI,IAAe,IAATA,GAAe43C,GAAUC,GAAW,EAAM,EAAM,IAC9MN,EApHR,WAAqBH,GACnB,IAAKzwD,EAAS3B,SACZ,OAAOizD,EAAwBb,GAGjC,IACE,IAAIzuC,EAGFA,EADEzE,SAASjf,QAAQC,SAAS+1C,OAAS,EAC7Bmc,EAEA/uD,OAAOwwC,KAAKue,GAGtB,MAAMrc,GAASK,uCAA4BzyB,EAAO,CAChDp6B,MAAO,IAGT,OAAOwsD,cAAkBjyD,WAAaiyD,GAAS,IAAIjyD,WAAWiyD,UACvD19B,IACN,EAAGhX,EAAMjX,MAAM,gEAAkEiuB,GAGpF,OAAO46C,EAAwBb,GA6FlBc,CAAYd,GAEnBluE,EAAO,IAAIJ,WADCkuE,EAAWnuE,OAASsvE,GAAyBH,EAAKnvE,OAAS0uE,EAAK1uE,QAElF,IAAImjC,EAAS,EACb9iC,SAAKK,IAAIytE,EAAYhrC,GACrBA,GAAUgrC,EAAWnuE,OACrBuvE,EAAc,OAAQJ,EAAM9uE,EAAM8iC,GAClCA,GA1LyB,GA0LMgsC,EAAKnvE,OACpCuvE,EAAc,QAASb,EAAMruE,EAAM8iC,GACnCA,GA5LyB,GA4LMurC,EAAK1uE,OACpCuvE,EAAc,OAAQ,IAAItvE,WAAW,GAAII,EAAM8iC,GACxC7R,EAAgBjxB,EAAM,YAAawtE,IAKnC2B,CAAOhhC,OADgBvtC,IAAjButC,EAAQiB,KAAqBjyB,EAAM/e,UAAUqK,eAAiB0lC,EAAQiB,KACtDo+B,GAAiBiB,IArMtB,GAyM5B,QACEn3D,cACED,KAAKi0B,cAAgB,EACrBj0B,KAAKqtB,WAAayoC,GAAazoC,WAC/BrtB,KAAKg0B,SAAW,EAChBh0B,KAAKk0B,WAAapuB,EAAM9e,gBACxBgZ,KAAKo0B,WAAatuB,EAAM1e,qBACxB4Y,KAAKq0B,QAAU,EACfr0B,KAAK20B,kBAAoB7uB,EAAMzf,kBAAkBqK,KACjDsP,KAAKm0B,gBAAkB,EACvBn0B,KAAKmnB,EAAI,EACTnnB,KAAKonB,EAAI,EACTpnB,KAAKs0B,MAAQ,EACbt0B,KAAKu0B,MAAQ,EACbv0B,KAAKw0B,YAAc,EACnBx0B,KAAKy0B,YAAc,EACnBz0B,KAAK00B,WAAa,EAClB10B,KAAK40B,SAAW,EAChB50B,KAAK60B,UAAYihC,GAAajhC,UAC9B70B,KAAK80B,YAAc,UACnB90B,KAAKg1B,UAAY,EACjBh1B,KAAKi1B,YAAc,EACnBj1B,KAAKk1B,UAAY,EACjBl1B,KAAK25B,SAAW,GAChB35B,KAAK05B,QAAU,GACf15B,KAAK45B,WAAa,EAClB55B,KAAKkhC,UAAY,GACjBlhC,KAAKmhC,UAAY,EACjBnhC,KAAK+3D,aAAe,GACpB/3D,KAAKg4D,cAAgB,KACrBh4D,KAAKi4D,UAAY,KACjBj4D,KAAKk4D,OAAS,GAGhBjxC,QACE,OAAOphC,OAAOyE,OAAO0V,MAGvBu1B,gBAAgBpO,EAAGC,GACjBpnB,KAAKmnB,EAAIA,EACTnnB,KAAKonB,EAAIA,GAyEb,IAAI+wC,EAAY,EACZC,EAAY,EACZC,EAAe,EACnB1yE,EAAQyvE,YAAcA,EAAc,MAClCn1D,YAAY0Q,EAAYC,EAAMulD,GAAkB,GAC9Cn2D,KAAK29C,WAAa,IAAI53C,EAAe2c,cACrC1iB,KAAK6tB,QAAU,IAAIyqC,EACnBt4D,KAAKu4D,gBAAkBzyD,EAAM9e,gBAC7BgZ,KAAKw4D,eAAiB,GACtBx4D,KAAKy4D,WAAa,GAClBz4D,KAAK2Q,WAAaA,EAClB3Q,KAAK4Q,KAAOA,EACZ5Q,KAAKi7B,YAAc,KACnBj7B,KAAKk7B,eAAgB,EACrBl7B,KAAK04D,YAAa,EAClB14D,KAAK24D,cAAgB9yE,OAAOyE,OAAO,MACnC0V,KAAK44D,SAAW,KAChB54D,KAAKm2D,kBAAoBA,EACzBn2D,KAAK64D,mBAAqB,GAE1B,UAAW3qB,KAAMpoC,EAAMlf,IACrBoZ,KAAK64D,mBAAmB/yD,EAAMlf,IAAIsnD,IAAOA,EAI7Cn1C,OACEiH,KAAKw4D,eAAetuE,KAAK8V,KAAKu4D,iBAC9B,MAAMxmC,EAAM/xB,KAAK6tB,QACjB7tB,KAAKy4D,WAAWvuE,KAAK6nC,GACrB/xB,KAAK6tB,QAAUkE,EAAI9K,QAGrBjuB,UACEgH,KAAKu4D,gBAAkBv4D,KAAKw4D,eAAevmC,MAC3CjyB,KAAK6tB,QAAU7tB,KAAKy4D,WAAWxmC,MAC/BjyB,KAAKi7B,YAAc,KACnBj7B,KAAK84D,KAAO,KAGd3uB,MAAM/zB,GACJpW,KAAKjH,OACLiH,KAAK+4D,cAAc3iD,GACnBpW,KAAKhH,UAGPggE,iBAAiB9kD,GACf,MAAMC,EAAUD,EAAaC,QACvBC,EAAYF,EAAaE,UAE/B,QAAS3rB,EAAI,EAAG6E,EAAK6mB,EAAQ7rB,OAAQG,EAAI6E,EAAI7E,IAC3C,GAAI0rB,EAAQ1rB,KAAOqd,EAAMlf,IAAI0R,WAI7B,UAAW3K,KAAOymB,EAAU3rB,GAAI,CAC9B,MAAM81C,EAAW5wC,EAAIxC,WAAW,MAAQ6U,KAAK2Q,WAAa3Q,KAAK4Q,KACzDnmB,EAAU,IAAIC,QAAQC,IAC1B4zC,EAAS/zC,IAAImD,EAAKhD,KAEpBqV,KAAK6tB,QAAQkqC,aAAa7tE,KAAKO,GAInC,OAAOC,QAAQ+f,IAAIzK,KAAK6tB,QAAQkqC,cAGlC9+D,UAAUoJ,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAEvB5xB,KAAKu4D,gBAAkBzyD,EAAM7f,KAAKgT,UAAU+G,KAAKu4D,gBADzB,CAACl2D,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,IAExC5xB,KAAK84D,KAAO,KAGdG,OAAO/kD,EAAclB,GACnBhT,KAAKgT,SAAWA,EAEhB,MAAMkmD,EAAal5D,KAAKma,YAAYnH,GAEpC,OAAOhT,KAAKg5D,iBAAiB9kD,GAAcrK,KAAK,KAC9C7J,KAAKu4D,gBAAkBzyD,EAAM9e,gBAC7BgZ,KAAK+4D,cAAc/4D,KAAKm5D,cAAcjlD,IAC/BglD,IAIXC,cAAcjlD,GACZ,MAAMklD,EAAoBp5D,KAAK64D,mBACzBzkD,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QACvBmhD,EAAS,GAEf,QAAS7sE,EAAI,EAAG6E,EAAK6mB,EAAQ7rB,OAAQG,EAAI6E,EAAI7E,IAAK,CAChD,MAAM21C,EAAOjqB,EAAQ1rB,GACrB6sE,EAAOprE,KAAK,CACVk0C,OACAq3B,GAAI2D,EAAkBh7B,GACtBtQ,KAAM1Z,EAAU3rB,KAIpB,OAAO4sE,EAAaC,GAGtByD,cAAcxD,GACZ,UAAW8D,KAAiB9D,EAAQ,CAClC,MAAME,EAAK4D,EAAc5D,GAEnB3nC,EAAOurC,EAAcvrC,KAE3B,OAAe,EAHFurC,EAAcj7B,MAGZ,KACRt4B,EAAMlf,IAAIwT,UACb4F,KAAK5F,YACL,WAEG0L,EAAMlf,IAAI0R,WACb,WAEGwN,EAAMlf,IAAI6T,WACbuF,KAAKvF,WAAWqzB,GAChB,WAEGhoB,EAAMlf,IAAIkU,mBACbkF,KAAKlF,mBAAmBgzB,EAAK,GAAIA,EAAK,IACtC,WAEGhoB,EAAMlf,IAAI8T,QACbsF,KAAKtF,QAAQozB,GACb,WAEGhoB,EAAMlf,IAAIqU,SAEb,KAEG6K,EAAMlf,IAAIsU,eACb8E,KAAK/E,SAAS6yB,EAAK,IACnB,WAEGhoB,EAAMlf,IAAIyT,QACb2F,KAAK3F,UACL,WAEGyL,EAAMlf,IAAIiU,SACbmF,KAAKnF,SAASizB,EAAK,GAAIA,EAAK,IAC5B,WAEGhoB,EAAMlf,IAAI0T,eACb0F,KAAK1F,eAAewzB,EAAK,IACzB,WAEGhoB,EAAMlf,IAAI2T,eACbyF,KAAKzF,eAAeuzB,EAAK,IACzB,WAEGhoB,EAAMlf,IAAI4T,UACbwF,KAAKxF,UAAUszB,EAAK,IACpB,WAEGhoB,EAAMlf,IAAImU,cACbiF,KAAKjF,cAAc+yB,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACrE,WAEGhoB,EAAMlf,IAAIgU,YACboF,KAAKpF,YAAYkzB,EAAK,IACtB,WAEGhoB,EAAMlf,IAAI+T,qBACbqF,KAAKrF,qBAAqBmzB,EAAK,IAC/B,WAEGhoB,EAAMlf,IAAI2R,aACbyH,KAAKzH,aAAau1B,EAAK,IACvB,WAEGhoB,EAAMlf,IAAI6R,YACbuH,KAAKvH,YAAYq1B,EAAK,IACtB,WAEGhoB,EAAMlf,IAAI4R,WACbwH,KAAKxH,WAAWs1B,EAAK,IACrB,WAEGhoB,EAAMlf,IAAI8R,cACbsH,KAAKtH,cAAco1B,EAAK,IACxB,WAEGhoB,EAAMlf,IAAIoV,gBACbgE,KAAKhE,gBAAgB8xB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC5C,WAEGhoB,EAAMlf,IAAImV,kBACbiE,KAAKjE,kBAAkB+xB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC9C,WAEGhoB,EAAMlf,IAAI8U,gBACbsE,KAAKtE,gBAAgBoyB,GACrB,WAEGhoB,EAAMlf,IAAIgV,cACboE,KAAKpE,cAAckyB,GACnB,WAEGhoB,EAAMlf,IAAIuV,YACb6D,KAAK7D,YAAY2xB,EAAK,IACtB,WAEGhoB,EAAMlf,IAAI+R,QACbqH,KAAKrH,QAAQm1B,EAAK,GAAIA,EAAK,IAC3B,WAEGhoB,EAAMlf,IAAIgS,mBACboH,KAAKpH,mBAAmBk1B,EAAK,IAC7B,WAEGhoB,EAAMlf,IAAIiS,YACbmH,KAAKnH,YAAYi1B,EAAK,IACtB,WAEGhoB,EAAMlf,IAAIkS,UACbkH,KAAKlH,UAAUg1B,EAAK,IACpB,WAEGhoB,EAAMlf,IAAI+S,KACbqG,KAAKrG,OACL,WAEGmM,EAAMlf,IAAIgT,OACboG,KAAKpG,SACL,WAEGkM,EAAMlf,IAAI6S,OACbuG,KAAKvG,SACL,WAEGqM,EAAMlf,IAAIiT,WACbmG,KAAKnG,aACL,WAEGiM,EAAMlf,IAAIkT,aACbkG,KAAKlG,eACL,WAEGgM,EAAMlf,IAAIsT,KACb8F,KAAK9F,KAAK,WACV,WAEG4L,EAAMlf,IAAIuT,OACb6F,KAAK9F,KAAK,WACV,WAEG4L,EAAMlf,IAAImX,yBACbiC,KAAKjC,2BACL,WAEG+H,EAAMlf,IAAI8W,kBACbsC,KAAKtC,kBAAkBowB,EAAK,IAC5B,WAEGhoB,EAAMlf,IAAI+W,wBACbqC,KAAKrC,wBAAwBmwB,EAAK,IAClC,WAEGhoB,EAAMlf,IAAI4W,sBACbwC,KAAKxC,sBAAsBswB,EAAK,IAChC,WAEGhoB,EAAMlf,IAAImW,sBACbiD,KAAKjD,sBAAsB+wB,EAAK,GAAIA,EAAK,IACzC,WAEGhoB,EAAMlf,IAAIoW,oBACbgD,KAAKhD,sBACL,WAEG8I,EAAMlf,IAAI2S,UACbyG,KAAKzG,YACL,WAEGuM,EAAMlf,IAAI8S,YACbsG,KAAKtG,cACL,WAEGoM,EAAMlf,IAAImT,gBACbiG,KAAKjG,kBACL,WAEG+L,EAAMlf,IAAIoT,kBACbgG,KAAKhG,oBACL,WAEG8L,EAAMlf,IAAIoU,SACbgF,KAAKhF,WACL,WAEG8K,EAAMlf,IAAIqS,UACb+G,KAAK/G,UAAU60B,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjE,WAEGhoB,EAAMlf,IAAIoX,cACbgC,KAAKhC,cAAc8vB,EAAK,GAAIA,EAAK,IACjC,WAEGhoB,EAAMlf,IAAIqT,QACb+F,KAAK/F,UACL,WAEG,GACH+F,KAAKmqC,MAAMkvB,EAAcjjD,OACzB,eAGC,EAAGtQ,EAAMjX,MAAO,0BAAyB4mE,OAMlDl7D,eAAek6B,GACbz0B,KAAK6tB,QAAQ4G,YAAcA,EAG7Bn6B,eAAek6B,GACbx0B,KAAK6tB,QAAQ2G,YAAcA,EAG7Bx5B,WACEgF,KAAKnF,SAAS,EAAGmF,KAAK6tB,QAAQwG,SAGhCt5B,cAAcsH,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAC3B,MAAM/D,EAAU7tB,KAAK6tB,QACrBA,EAAQqG,WAAarG,EAAQyrC,WAAa,CAACj3D,EAAGjB,EAAGuC,EAAG/B,EAAGkb,EAAG8U,GAC1D/D,EAAQsG,gBAAkBrqC,KAAKgqC,MAAMzxB,EAAGjB,GACxCysB,EAAQ1G,EAAI0G,EAAQyG,MAAQ,EAC5BzG,EAAQzG,EAAIyG,EAAQ0G,MAAQ,EAC5B1G,EAAQ0rC,QAAU,GAClB1rC,EAAQ2rC,QAAU,GAClB3rC,EAAQ4rC,MAAQz5D,KAAK29C,WAAW35B,cAAc,aAC9C6J,EAAQ4rC,MAAMC,eAAe,KAAM,cAAe7rC,EAAQlB,YAC1DkB,EAAQ4rC,MAAMC,eAAe,KAAM,YAAc,GAAEhE,EAAG7nC,EAAQmG,eAC9DnG,EAAQ4rC,MAAMC,eAAe,KAAM,IAAKhE,GAAI7nC,EAAQzG,IACpDyG,EAAQ8rC,WAAa35D,KAAK29C,WAAW35B,cAAc,YACnD6J,EAAQ8rC,WAAWr1C,YAAYuJ,EAAQ4rC,OAGzCr/D,YACE,MAAMyzB,EAAU7tB,KAAK6tB,QACrBA,EAAQ1G,EAAI0G,EAAQyG,MAAQ,EAC5BzG,EAAQzG,EAAIyG,EAAQ0G,MAAQ,EAC5B1G,EAAQqG,WAAapuB,EAAM9e,gBAC3B6mC,EAAQyrC,WAAaxzD,EAAM9e,gBAC3B6mC,EAAQsG,gBAAkB,EAC1BtG,EAAQ4rC,MAAQz5D,KAAK29C,WAAW35B,cAAc,aAC9C6J,EAAQ8rC,WAAa35D,KAAK29C,WAAW35B,cAAc,YACnD6J,EAAQ+rC,OAAS55D,KAAK29C,WAAW35B,cAAc,SAC/C6J,EAAQ0rC,QAAU,GAClB1rC,EAAQ2rC,QAAU,GAGpB3+D,SAASssB,EAAGC,GACV,MAAMyG,EAAU7tB,KAAK6tB,QACrBA,EAAQ1G,EAAI0G,EAAQyG,OAASnN,EAC7B0G,EAAQzG,EAAIyG,EAAQ0G,OAASnN,EAC7ByG,EAAQ0rC,QAAU,GAClB1rC,EAAQ2rC,QAAU,GAClB3rC,EAAQ4rC,MAAQz5D,KAAK29C,WAAW35B,cAAc,aAC9C6J,EAAQ4rC,MAAMC,eAAe,KAAM,cAAe7rC,EAAQlB,YAC1DkB,EAAQ4rC,MAAMC,eAAe,KAAM,YAAc,GAAEhE,EAAG7nC,EAAQmG,eAC9DnG,EAAQ4rC,MAAMC,eAAe,KAAM,IAAKhE,GAAI7nC,EAAQzG,IAGtDnsB,SAAS6rC,GACP,MAAMjZ,EAAU7tB,KAAK6tB,QACftvB,EAAOsvB,EAAQtvB,KACfy1B,EAAWnG,EAAQmG,SAEzB,GAAiB,IAAbA,EACF,OAGF,MAAMC,EAAgBpG,EAAQoG,cACxBO,EAAc3G,EAAQ2G,YACtBC,EAAc5G,EAAQ4G,YACtBqR,EAAgBjY,EAAQiY,cACxBpR,EAAa7G,EAAQ6G,WAAaoR,EAClCmB,EAAW1oC,EAAK0oC,SAChBC,EAAaD,EAAW,GAAI,EAC5BE,GAAkB5oC,EAAK4oC,gBACvBC,EAAoBpT,EAAWnG,EAAQuG,WAAW,GACxD,IAAIjN,GAAI,EAER,UAAWsgB,MAASX,EAAQ,CAC1B,GAAc,OAAVW,GAAgB,CAClBtgB,IAAK2e,EAAgBrR,EACrB,YAC0B,iBAAVgT,GAAoB,CACpCtgB,IAAK+f,EAAaO,GAAQzT,EAAW,IACrC,SAGF,MAAM2R,GAAW8B,GAAME,QAAUlT,EAAc,GAAKD,EAC9C9G,EAAY+Z,GAAMG,SACxB,IAAIE,EAASC,EA2BTC,EA1BAxoB,EAAQioB,GAAMjoB,MAElB,GAAIynB,EAAU,CACZ,IAAIiB,EACJ,MAAMD,EAAUR,GAAMQ,SAAWd,GACjCe,EAAKT,GAAMQ,QAAUA,EAAQ,GAAa,GAARzoB,EAClC0oB,GAAMA,EAAKd,EAEX5nB,EAAQyoB,GAAWA,EAAQ,GAAKzoB,EAChCsoB,EAAUI,EAAKjU,EACf8T,GAAW5gB,GAHA8gB,EAAQ,GAAKb,GAGHnT,OAErB6T,EAAU3gB,GAAI8M,EACd8T,EAAU,GAGRN,GAAMc,UAAYhqC,EAAK4rB,eACzB0D,EAAQ0rC,QAAQrvE,KAAK2jC,EAAQ1G,EAAI2gB,GAE7Bb,GACFpZ,EAAQ2rC,QAAQtvE,MAAM2jC,EAAQzG,EAAI2gB,GAGpCla,EAAQ4rC,MAAMtjD,aAAeuX,GAM7Bsa,EADEf,EACUznB,EAAQ4nB,EAAoBzB,EAAUG,EAEtCtmB,EAAQ4nB,EAAoBzB,EAAUG,EAGpD3e,IAAK6gB,EAGPna,EAAQ4rC,MAAMC,eAAe,KAAM,IAAK7rC,EAAQ0rC,QAAQ7rE,IAAIgoE,GAAIvrE,KAAK,MAGnE0jC,EAAQ4rC,MAAMC,eAAe,KAAM,IADrCG,EAC0ChsC,EAAQ2rC,QAAQ9rE,IAAIgoE,GAAIvrE,KAAK,KAE7BurE,GAAI7nC,EAAQzG,IAGtDyyC,EACEhsC,EAAQzG,GAAKD,GAEb0G,EAAQ1G,GAAKA,GAAIuN,EAGnB7G,EAAQ4rC,MAAMC,eAAe,KAAM,cAAe7rC,EAAQlB,YAC1DkB,EAAQ4rC,MAAMC,eAAe,KAAM,YAAc,GAAEhE,EAAG7nC,EAAQmG,eAE1DnG,EAAQkoC,YAAcD,GAAaC,WACrCloC,EAAQ4rC,MAAMC,eAAe,KAAM,aAAc7rC,EAAQkoC,WAGvDloC,EAAQR,aAAeyoC,GAAazoC,YACtCQ,EAAQ4rC,MAAMC,eAAe,KAAM,cAAe7rC,EAAQR,YAG5D,MAAMoZ,GAAiB5Y,EAAQ8G,kBAAoB7uB,EAAMzf,kBAAkB6K,iBAE3E4oE,KAAuBh0D,EAAMzf,kBAAkBqK,MAAQ+1C,KAAmB3gC,EAAMzf,kBAAkBuK,aAC5Fi9B,EAAQgH,YAAcihC,GAAajhC,WACrChH,EAAQ4rC,MAAMC,eAAe,KAAM,OAAQ7rC,EAAQgH,WAGjDhH,EAAQmH,UAAY,GACtBnH,EAAQ4rC,MAAMC,eAAe,KAAM,eAAgB7rC,EAAQmH,YAG7DnH,EAAQ4rC,MAAMC,eAAe,KAAM,OAD9BhuC,EAAYiJ,oBAAsB7uB,EAAMzf,kBAAkB4K,YACpB,cAEA,SAGzCw1C,KAAmB3gC,EAAMzf,kBAAkBsK,QAAU81C,KAAmB3gC,EAAMzf,kBAAkBuK,cAGlGoP,KAAK+5D,qBAAqBlsC,EAAQ4rC,MAFX,GAAK5rC,EAAQsG,iBAAmB,IAKzD,IAAID,GAAarG,EAAQqG,WAEA,IAArBrG,EAAQ+G,WACVV,GAAaA,GAAWlyB,QACxBkyB,GAAW,IAAMrG,EAAQ+G,UAG3B/G,EAAQ8rC,WAAWD,eAAe,KAAM,YAAc,GAAE9D,EAAG1hC,aAAqBwhC,EAAGhhC,WACnF7G,EAAQ8rC,WAAWD,eAAe1D,EAAQ,YAAa,YACvDnoC,EAAQ8rC,WAAWr1C,YAAYuJ,EAAQ4rC,OACvC5rC,EAAQ+rC,OAAOt1C,YAAYuJ,EAAQ8rC,YAEnC35D,KAAKg6D,wBAAwB11C,YAAYuJ,EAAQ8rC,YAGnD7+D,mBAAmBqsB,EAAGC,GACpBpnB,KAAKvF,YAAY2sB,GACjBpnB,KAAKnF,SAASssB,EAAGC,GAGnB6yC,aAAap0B,GACX,IAAKA,EAAQl9C,KACX,MAAM,IAAI8W,MAAM,qGAGbO,KAAK44D,WACR54D,KAAK44D,SAAW54D,KAAK29C,WAAW35B,cAAc,aAC9ChkB,KAAK44D,SAASc,eAAe,KAAM,OAAQ,YAC3C15D,KAAKk6D,KAAK51C,YAAYtkB,KAAK44D,WAG7B,MAAM7tE,EAAM6uB,EAAgBisB,EAAQl9C,KAAMk9C,EAAQrY,SAAUxtB,KAAKm2D,iBACjEn2D,KAAK44D,SAASziD,aAAgB,8BAA6B0vB,EAAQzZ,yBAA8BrhC,UAGnG2P,QAAQ0F,GACN,MAAMytB,EAAU7tB,KAAK6tB,QACfgY,EAAU7lC,KAAK2Q,WAAWnmB,IAAI4V,EAAQ,IAC5C,IAAI2P,EAAO3P,EAAQ,GACnBytB,EAAQtvB,KAAOsnC,EAEX7lC,KAAK04D,aAAe7yB,EAAQ1b,cAAgBnqB,KAAK24D,cAAc9yB,EAAQzZ,cACzEpsB,KAAKi6D,aAAap0B,GAClB7lC,KAAK24D,cAAc9yB,EAAQzZ,YAAcyZ,GAG3ChY,EAAQuG,WAAayR,EAAQzR,YAActuB,EAAM1e,qBACjD,IAAI4+C,EAAO,SAEPH,EAAQxN,MACV2N,EAAO,MACEH,EAAQG,OACjBA,EAAO,QAGT,MAAMC,EAASJ,EAAQI,OAAS,SAAW,SAEvCl2B,EAAO,GACTA,GAAQA,EACR8d,EAAQiY,eAAgB,GAExBjY,EAAQiY,cAAgB,EAG1BjY,EAAQmG,SAAWjkB,EACnB8d,EAAQlB,WAAakZ,EAAQzZ,WAC7ByB,EAAQR,WAAa2Y,EACrBnY,EAAQkoC,UAAY9vB,EACpBpY,EAAQ4rC,MAAQz5D,KAAK29C,WAAW35B,cAAc,aAC9C6J,EAAQ4rC,MAAMC,eAAe,KAAM,IAAKhE,GAAI7nC,EAAQzG,IACpDyG,EAAQ0rC,QAAU,GAClB1rC,EAAQ2rC,QAAU,GAGpBn/D,UACE,MAAMwzB,EAAU7tB,KAAK6tB,QAEjBA,EAAQ8G,kBAAoB7uB,EAAMzf,kBAAkB8K,kBAAoB08B,EAAQ8rC,YAAYQ,kBAC9FtsC,EAAQmqB,QAAUnqB,EAAQ8rC,WAC1B35D,KAAK9F,KAAK,WACV8F,KAAK/F,WAIT1B,aAAainB,GACPA,EAAQ,IACVxf,KAAK6tB,QAAQqH,UAAY1V,GAI7BhnB,WAAWkrB,GACT1jB,KAAK6tB,QAAQ6L,QAAUgB,EAAgBhX,GAGzCjrB,YAAYirB,GACV1jB,KAAK6tB,QAAQ8L,SAAWgB,EAAiBjX,GAG3ChrB,cAAcuoC,GACZjhC,KAAK6tB,QAAQ+L,WAAaqH,EAG5Bm5B,eAAenlC,GACbj1B,KAAK6tB,QAAQoH,YAAcA,EAG7Bl5B,kBAAkBmF,EAAGC,EAAGC,GACtBpB,KAAK6tB,QAAQiH,YAAchvB,EAAM7f,KAAKujD,aAAatoC,EAAGC,EAAGC,GAG3Di5D,aAAarlC,GACXh1B,KAAK6tB,QAAQmH,UAAYA,EAG3Bh5B,gBAAgBkF,EAAGC,EAAGC,GACpBpB,KAAK6tB,QAAQgH,UAAY/uB,EAAM7f,KAAKujD,aAAatoC,EAAGC,EAAGC,GACvDpB,KAAK6tB,QAAQ4rC,MAAQz5D,KAAK29C,WAAW35B,cAAc,aACnDhkB,KAAK6tB,QAAQ0rC,QAAU,GACvBv5D,KAAK6tB,QAAQ2rC,QAAU,GAGzB99D,gBAAgBoyB,GACd9tB,KAAK6tB,QAAQiH,YAAc90B,KAAKs6D,oBAAoBxsC,GAGtDlyB,cAAckyB,GACZ9tB,KAAK6tB,QAAQgH,UAAY70B,KAAKs6D,oBAAoBxsC,GAGpD3xB,YAAY2xB,GACV,MAAMtO,EAAQxf,KAAKgT,SAASwM,MACtBC,EAASzf,KAAKgT,SAASyM,OAEvBmqB,EAAM9jC,EAAM7f,KAAK44C,iBAAiB7+B,KAAKu4D,iBAEvC1uB,EAAK/jC,EAAM7f,KAAK6b,eAAe,CAAC,EAAG,GAAI8nC,GAEvCE,EAAKhkC,EAAM7f,KAAK6b,eAAe,CAAC,EAAG2d,GAASmqB,GAE5CG,EAAKjkC,EAAM7f,KAAK6b,eAAe,CAAC0d,EAAO,GAAIoqB,GAE3CI,EAAKlkC,EAAM7f,KAAK6b,eAAe,CAAC0d,EAAOC,GAASmqB,GAEhD3mC,EAAKnZ,KAAKC,IAAI8/C,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtC9mC,EAAKpZ,KAAKC,IAAI8/C,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtC7mC,EAAKrZ,KAAKqY,IAAI0nC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtC5mC,GAAKtZ,KAAKqY,IAAI0nC,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIC,EAAG,IACtCtnC,EAAO1C,KAAK29C,WAAW35B,cAAc,YAC3CthB,EAAKg3D,eAAe,KAAM,IAAKz2D,GAC/BP,EAAKg3D,eAAe,KAAM,IAAKx2D,GAC/BR,EAAKg3D,eAAe,KAAM,QAASv2D,EAAKF,GACxCP,EAAKg3D,eAAe,KAAM,SAAUt2D,GAAKF,GACzCR,EAAKg3D,eAAe,KAAM,OAAQ15D,KAAKu6D,oBAAoBzsC,IAEvD9tB,KAAK6tB,QAAQmH,UAAY,GAC3BtyB,EAAKg3D,eAAe,KAAM,eAAgB15D,KAAK6tB,QAAQmH,WAGzDh1B,KAAKg6D,wBAAwB11C,YAAY5hB,GAG3C43D,oBAAoBxsC,GAClB,MAAgB,kBAAZA,EAAK,GACA9tB,KAAKw6D,mBAAmB1sC,GAG1B9tB,KAAKu6D,oBAAoBzsC,GAGlC0sC,mBAAmB1sC,GACjB,MAAMsb,EAAQtb,EAAK,GACb5Z,EAAe4Z,EAAK,GACpB2b,EAAS3b,EAAK,IAAMhoB,EAAM9e,iBACzBic,EAAIC,EAAIC,EAAIC,GAAM0qB,EAAK,GACxBglB,EAAQhlB,EAAK,GACbilB,EAAQjlB,EAAK,GACbklB,EAAYllB,EAAK,GACjB2sC,GAAY,UAASpC,KAEpBqC,EAAKC,GAAKC,GAAKC,IAAO/0D,EAAM7f,KAAKq6C,cAAc,IAAIx6B,EAAM7f,KAAK6b,eAAe,CAACmB,EAAIC,GAAKumC,MAAY3jC,EAAM7f,KAAK6b,eAAe,CAACqB,EAAIC,GAAKqmC,MAEvIqxB,GAAQC,GAAUj1D,EAAM7f,KAAKqwC,8BAA8BmT,GAE5DuxB,EAASloB,EAAQgoB,GACjBG,EAASloB,EAAQgoB,EACjBG,EAASl7D,KAAK29C,WAAW35B,cAAc,eAC7Ck3C,EAAOxB,eAAe,KAAM,KAAMe,IAClCS,EAAOxB,eAAe,KAAM,eAAgB,kBAC5CwB,EAAOxB,eAAe,KAAM,QAASsB,GACrCE,EAAOxB,eAAe,KAAM,SAAUuB,GACtCC,EAAOxB,eAAe,KAAM,IAAM,GAAEgB,KACpCQ,EAAOxB,eAAe,KAAM,IAAM,GAAEiB,MACpC,MAAMtxC,EAAMrpB,KAAKqpB,IACXkvC,EAAkBv4D,KAAKu4D,gBACvB1jC,EAAY70B,KAAK6tB,QAAQgH,UACzBC,EAAc90B,KAAK6tB,QAAQiH,YAC3BmV,EAAOjqC,KAAK29C,WAAWrzD,OAAOswE,GAAMF,EAAKG,GAAMF,IAIrD,GAHA36D,KAAKqpB,IAAM4gB,EACXjqC,KAAKu4D,gBAAkB9uB,EAEL,IAAduJ,EAAiB,CACnB,MAAMgB,EAAWluC,EAAM7f,KAAKujD,gBAAgBJ,GAE5CppC,KAAK6tB,QAAQgH,UAAYmf,EACzBh0C,KAAK6tB,QAAQiH,YAAckf,EAG7B,YAAK+kB,cAAc/4D,KAAKm5D,cAAcjlD,IACtClU,KAAKqpB,IAAMA,EACXrpB,KAAKu4D,gBAAkBA,EACvBv4D,KAAK6tB,QAAQgH,UAAYA,EACzB70B,KAAK6tB,QAAQiH,YAAcA,EAC3BomC,EAAO52C,YAAY2lB,EAAKkxB,WAAW,IACnCn7D,KAAKk6D,KAAK51C,YAAY42C,GACd,QAAOT,MAGjBF,oBAAoBzsC,GAKlB,OAJoB,iBAATA,IACTA,EAAO9tB,KAAK4Q,KAAKpmB,IAAIsjC,IAGfA,EAAK,QACN,cACH,MAAMstC,EAAa,UAAS/C,IACtBgD,EAAavtC,EAAK,GACxB,IAAIwtC,EAEJ,OAAQxtC,EAAK,QACN,QACH,MAAMytC,EAASztC,EAAK,GACd0tC,EAAS1tC,EAAK,GACpBwtC,EAAWt7D,KAAK29C,WAAW35B,cAAc,sBACzCs3C,EAAS5B,eAAe,KAAM,KAAM0B,GACpCE,EAAS5B,eAAe,KAAM,gBAAiB,kBAC/C4B,EAAS5B,eAAe,KAAM,KAAM6B,EAAO,IAC3CD,EAAS5B,eAAe,KAAM,KAAM6B,EAAO,IAC3CD,EAAS5B,eAAe,KAAM,KAAM8B,EAAO,IAC3CF,EAAS5B,eAAe,KAAM,KAAM8B,EAAO,IAC3C,UAEG,SACH,MAAMC,EAAa3tC,EAAK,GAClB4tC,EAAc5tC,EAAK,GACnB6tC,EAAc7tC,EAAK,GACnB8tC,EAAe9tC,EAAK,GAC1BwtC,EAAWt7D,KAAK29C,WAAW35B,cAAc,sBACzCs3C,EAAS5B,eAAe,KAAM,KAAM0B,GACpCE,EAAS5B,eAAe,KAAM,gBAAiB,kBAC/C4B,EAAS5B,eAAe,KAAM,KAAMgC,EAAY,IAChDJ,EAAS5B,eAAe,KAAM,KAAMgC,EAAY,IAChDJ,EAAS5B,eAAe,KAAM,IAAKkC,GACnCN,EAAS5B,eAAe,KAAM,KAAM+B,EAAW,IAC/CH,EAAS5B,eAAe,KAAM,KAAM+B,EAAW,IAC/CH,EAAS5B,eAAe,KAAM,KAAMiC,GACpC,cAGA,MAAM,IAAIl8D,MAAO,6BAA4BquB,EAAK,MAGtD,UAAWqhB,KAAaksB,EAAY,CAClC,MAAMQ,EAAO77D,KAAK29C,WAAW35B,cAAc,YAC3C63C,EAAKnC,eAAe,KAAM,SAAUvqB,EAAU,IAC9C0sB,EAAKnC,eAAe,KAAM,aAAcvqB,EAAU,IAClDmsB,EAASh3C,YAAYu3C,GAGvB,YAAK3B,KAAK51C,YAAYg3C,GACd,QAAOF,SAEZ,OACH,OAAC,EAAGt1D,EAAMjX,MAAM,8BACT,SAEJ,QACH,MAAO,kBAGP,MAAM,IAAI4Q,MAAO,oBAAmBquB,EAAK,OAI/Cn1B,QAAQuoC,EAAWC,GACjBnhC,KAAK6tB,QAAQqT,UAAYA,EACzBlhC,KAAK6tB,QAAQsT,UAAYA,EAG3BnjC,cAAc4mC,EAAK9W,GACjB,MAAMD,EAAU7tB,KAAK6tB,QACrB,IAAI1G,EAAI0G,EAAQ1G,EACZC,EAAIyG,EAAQzG,EACZxlB,EAAI,GACJwC,EAAI,EAER,UAAW8pC,KAAMtJ,EACf,OAAa,EAALsJ,GAAK,KACNpoC,EAAMlf,IAAI4S,UACb2tB,EAAI2G,EAAK1pB,KACTgjB,EAAI0G,EAAK1pB,KACT,MAEM6gC,EAAK9d,EAFG2G,EAAK1pB,KAGb8gC,GAAK9d,EAFI0G,EAAK1pB,KAGpBxC,EAAE1X,KAAK,IAAKwrE,EAAGvuC,GAAIuuC,EAAGtuC,GAAI,IAAKsuC,EAAGzwB,GAAKywB,EAAGtuC,GAAI,IAAKsuC,EAAGzwB,GAAKywB,EAAGxwB,IAAK,IAAKwwB,EAAGvuC,GAAIuuC,EAAGxwB,IAAK,KACvF,WAEGp/B,EAAMlf,IAAIsS,OACbiuB,EAAI2G,EAAK1pB,KACTgjB,EAAI0G,EAAK1pB,KACTxC,EAAE1X,KAAK,IAAKwrE,EAAGvuC,GAAIuuC,EAAGtuC,IACtB,WAEGthB,EAAMlf,IAAIuS,OACbguB,EAAI2G,EAAK1pB,KACTgjB,EAAI0G,EAAK1pB,KACTxC,EAAE1X,KAAK,IAAKwrE,EAAGvuC,GAAIuuC,EAAGtuC,IACtB,WAEGthB,EAAMlf,IAAIwS,QACb+tB,EAAI2G,EAAK1pB,EAAI,GACbgjB,EAAI0G,EAAK1pB,EAAI,GACbxC,EAAE1X,KAAK,IAAKwrE,EAAG5nC,EAAK1pB,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,IAAKsxD,EAAGvuC,GAAIuuC,EAAGtuC,IACtFhjB,GAAK,EACL,WAEG0B,EAAMlf,IAAIyS,SACbuI,EAAE1X,KAAK,IAAKwrE,EAAGvuC,GAAIuuC,EAAGtuC,GAAIsuC,EAAG5nC,EAAK1pB,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,KACrF+iB,EAAI2G,EAAK1pB,EAAI,GACbgjB,EAAI0G,EAAK1pB,EAAI,GACbA,GAAK,EACL,WAEG0B,EAAMlf,IAAI0S,SACb6tB,EAAI2G,EAAK1pB,EAAI,GACbgjB,EAAI0G,EAAK1pB,EAAI,GACbxC,EAAE1X,KAAK,IAAKwrE,EAAG5nC,EAAK1pB,IAAKsxD,EAAG5nC,EAAK1pB,EAAI,IAAKsxD,EAAGvuC,GAAIuuC,EAAGtuC,GAAIsuC,EAAGvuC,GAAIuuC,EAAGtuC,IAClEhjB,GAAK,EACL,WAEG0B,EAAMlf,IAAI2S,UACbqI,EAAE1X,KAAK,KAKb0X,EAAIA,EAAEzX,KAAK,KAEX2xE,EAAYr2B,MAAQb,EAAIt8C,OAAS,GAAKs8C,EAAI,KAAO9+B,EAAMlf,IAAI4S,WAAaorC,EAAI,KAAO9+B,EAAMlf,IAAIsS,OAC3F0I,EAAIisB,EAAQ4X,KAAKs2B,eAAe,KAAM,KAAOn6D,GAE7CisB,EAAQ4X,KAAOzlC,KAAK29C,WAAW35B,cAAc,YAE7ChkB,KAAKg6D,wBAAwB11C,YAAYuJ,EAAQ4X,OAGnD5X,EAAQ4X,KAAKi0B,eAAe,KAAM,IAAK93D,GACvCisB,EAAQ4X,KAAKi0B,eAAe,KAAM,OAAQ,QAC1C7rC,EAAQmqB,QAAUnqB,EAAQ4X,KAC1B5X,EAAQ0H,gBAAgBpO,EAAGC,GAG7BntB,UACE,MAAM4zB,EAAU7tB,KAAK6tB,QAGrB,GAFAA,EAAQ4X,KAAO,MAEVzlC,KAAKi7B,YACR,OAGF,IAAKpN,EAAQmqB,QAEX,YADAh4C,KAAKi7B,YAAc,MAIrB,MAAM+gC,EAAU,WAAU7D,IACpB8D,EAAWj8D,KAAK29C,WAAW35B,cAAc,gBAC/Ci4C,EAASvC,eAAe,KAAM,KAAMsC,GACpCC,EAASvC,eAAe,KAAM,YAAa9D,EAAG51D,KAAKu4D,kBACnD,MAAM2D,EAAcruC,EAAQmqB,QAAQiL,WAAU,GAY9C,GATEiZ,EAAYxC,eAAe,KAAM,YADV,YAAzB15D,KAASi7B,YACuC,UAEA,WAGhDj7B,KAAKi7B,YAAc,KACnBghC,EAAS33C,YAAY43C,GACrBl8D,KAAKk6D,KAAK51C,YAAY23C,GAElBpuC,EAAQmqC,cAAe,CACzBnqC,EAAQoqC,UAAY,KAEpB,UAAWjmC,KAAQhyB,KAAKy4D,WACtBzmC,EAAKimC,UAAY,KAGnBgE,EAASvC,eAAe,KAAM,YAAa7rC,EAAQmqC,eAGrDnqC,EAAQmqC,cAAiB,QAAOgE,KAChCh8D,KAAK84D,KAAO,KAGd5+D,KAAK4K,GACH9E,KAAKi7B,YAAcn2B,EAGrBvL,YACE,MAAMs0B,EAAU7tB,KAAK6tB,QAErB,GAAIA,EAAQ4X,KAAM,CAChB,MAAM7jC,EAAK,GAAEisB,EAAQ4X,KAAKs2B,eAAe,KAAM,QAC/CluC,EAAQ4X,KAAKi0B,eAAe,KAAM,IAAK93D,IAI3CnH,WAAW45B,GACTr0B,KAAK6tB,QAAQwG,SAAWA,EAG1Bz5B,YAAYg6B,GACV50B,KAAK6tB,QAAQ+G,SAAWA,EAG1Bj6B,qBAAqBg6B,GACnB30B,KAAK6tB,QAAQ8G,kBAAoBA,EAGnCn6B,UAAUiX,GACRzR,KAAK6tB,QAAQ6G,WAAajjB,EAAQ,IAGpC7Y,mBAAmBqZ,IAEnBpZ,YAAYuoC,IAEZtoC,UAAUuoC,GACR,UAAYzzC,EAAK7H,KAAUs7C,EACzB,OAAQzzC,OACD,KACHoS,KAAKzH,aAAaxS,GAClB,UAEG,KACHia,KAAKxH,WAAWzS,GAChB,UAEG,KACHia,KAAKvH,YAAY1S,GACjB,UAEG,KACHia,KAAKtH,cAAc3S,GACnB,UAEG,IACHia,KAAKrH,QAAQ5S,EAAM,GAAIA,EAAM,IAC7B,UAEG,KACHia,KAAKpH,mBAAmB7S,GACxB,UAEG,KACHia,KAAKnH,YAAY9S,GACjB,UAEG,OACHia,KAAKtF,QAAQ3U,GACb,UAEG,KACHia,KAAKo6D,eAAer0E,GACpB,UAEG,KACHia,KAAKq6D,aAAat0E,GAClB,eAGC,EAAG+f,EAAMjX,MAAO,wCAAuCjB,MAMhE+L,OACE,MAAMk0B,EAAU7tB,KAAK6tB,QAEjBA,EAAQmqB,UACVnqB,EAAQmqB,QAAQ0hB,eAAe,KAAM,OAAQ7rC,EAAQgH,WACrDhH,EAAQmqB,QAAQ0hB,eAAe,KAAM,eAAgB7rC,EAAQmH,WAC7Dh1B,KAAK/F,WAITR,SACE,MAAMo0B,EAAU7tB,KAAK6tB,QAEjBA,EAAQmqB,UACVh4C,KAAK+5D,qBAAqBlsC,EAAQmqB,SAElCnqB,EAAQmqB,QAAQ0hB,eAAe,KAAM,OAAQ,QAC7C15D,KAAK/F,WAIT8/D,qBAAqB/hB,EAASmkB,EAAiB,GAC7C,MAAMtuC,EAAU7tB,KAAK6tB,QACrB,IAAIqT,EAAYrT,EAAQqT,UAED,IAAnBi7B,GAAwBj7B,EAAU54C,OAAS,IAC7C44C,EAAYA,EAAUxzC,IAAI,SAAU3H,GAClC,OAAOo2E,EAAiBp2E,KAI5BiyD,EAAQ0hB,eAAe,KAAM,SAAU7rC,EAAQiH,aAC/CkjB,EAAQ0hB,eAAe,KAAM,iBAAkB7rC,EAAQoH,aACvD+iB,EAAQ0hB,eAAe,KAAM,oBAAqBhE,EAAG7nC,EAAQ+L,aAC7Doe,EAAQ0hB,eAAe,KAAM,iBAAkB7rC,EAAQ6L,SACvDse,EAAQ0hB,eAAe,KAAM,kBAAmB7rC,EAAQ8L,UACxDqe,EAAQ0hB,eAAe,KAAM,eAAgBhE,EAAGyG,EAAiBtuC,EAAQqH,WAAa,MACtF8iB,EAAQ0hB,eAAe,KAAM,mBAAoBx4B,EAAUxzC,IAAIgoE,GAAIvrE,KAAK,MACxE6tD,EAAQ0hB,eAAe,KAAM,oBAAqBhE,EAAGyG,EAAiBtuC,EAAQsT,WAAa,MAG7FvnC,SACMoG,KAAK6tB,QAAQmqB,SACfh4C,KAAK6tB,QAAQmqB,QAAQ0hB,eAAe,KAAM,YAAa,WAGzD15D,KAAKrG,OAGPE,aACEmG,KAAKvG,SACLuG,KAAKrG,OAGPG,eACMkG,KAAK6tB,QAAQmqB,SACfh4C,KAAK6tB,QAAQmqB,QAAQ0hB,eAAe,KAAM,YAAa,WAGzD15D,KAAKnG,aAGPH,cACEsG,KAAKzG,YACLyG,KAAKvG,SAGPM,kBACEiG,KAAKzG,YACLyG,KAAKnG,aAGPG,oBACEgG,KAAKzG,YACLyG,KAAKlG,eAGPiE,2BACE,MAAM2E,EAAO1C,KAAK29C,WAAW35B,cAAc,YAC3CthB,EAAKg3D,eAAe,KAAM,IAAK,KAC/Bh3D,EAAKg3D,eAAe,KAAM,IAAK,KAC/Bh3D,EAAKg3D,eAAe,KAAM,QAAS,OACnCh3D,EAAKg3D,eAAe,KAAM,SAAU,OACpCh3D,EAAKg3D,eAAe,KAAM,OAAQ15D,KAAK6tB,QAAQgH,WAE/C70B,KAAKg6D,wBAAwB11C,YAAY5hB,GAG3ChF,kBAAkB4iB,GAChB,MAAMwW,EAAUxW,EAAMn1B,WAAW,MAAQ6U,KAAK2Q,WAAWnmB,IAAI81B,GAAStgB,KAAK4Q,KAAKpmB,IAAI81B,GAE/EwW,EAKL92B,KAAKrC,wBAAwBm5B,IAJ1B,EAAGhxB,EAAMjX,MAAO,kCAAiCyxB,sBAOtD3iB,wBAAwBm5B,EAAS4B,GAC/B,MAAMlZ,EAAQsX,EAAQtX,MAChBC,EAASqX,EAAQrX,OACjB28C,EAAS5F,EAAoB1/B,EAAS92B,KAAKm2D,kBAAmBz9B,GAC9D2jC,EAAWr8D,KAAK29C,WAAW35B,cAAc,YAC/Cq4C,EAAS3C,eAAe,KAAM,IAAK,KACnC2C,EAAS3C,eAAe,KAAM,IAAK,KACnC2C,EAAS3C,eAAe,KAAM,QAAShE,EAAGl2C,IAC1C68C,EAAS3C,eAAe,KAAM,SAAUhE,EAAGj2C,IAC3Czf,KAAK6tB,QAAQmqB,QAAUqkB,EACvBr8D,KAAK9F,KAAK,WACV,MAAMoiE,EAAQt8D,KAAK29C,WAAW35B,cAAc,aAC5Cs4C,EAAM5C,eAAezD,EAAU,aAAcmG,GAC7CE,EAAM5C,eAAe,KAAM,IAAK,KAChC4C,EAAM5C,eAAe,KAAM,IAAKhE,GAAIj2C,IACpC68C,EAAM5C,eAAe,KAAM,QAAShE,EAAGl2C,GAAS,MAChD88C,EAAM5C,eAAe,KAAM,SAAUhE,EAAGj2C,GAAU,MAClD68C,EAAM5C,eAAe,KAAM,YAAc,SAAQhE,EAAG,EAAIl2C,MAAUk2C,GAAG,EAAKj2C,OAE1EiM,EACEgN,EAAKpU,YAAYg4C,GAEjBt8D,KAAKg6D,wBAAwB11C,YAAYg4C,GAI7C9+D,sBAAsBs5B,GACpB,MAAMjJ,EAAU7tB,KAAK6tB,QACfrO,EAAQsX,EAAQtX,MAChBC,EAASqX,EAAQrX,OACjBoV,EAAYhH,EAAQgH,UAC1BhH,EAAQqqC,OAAU,OAAME,IACxB,MAAM1/B,EAAO14B,KAAK29C,WAAW35B,cAAc,YAC3C0U,EAAKghC,eAAe,KAAM,KAAM7rC,EAAQqqC,QACxC,MAAMx1D,EAAO1C,KAAK29C,WAAW35B,cAAc,YAC3CthB,EAAKg3D,eAAe,KAAM,IAAK,KAC/Bh3D,EAAKg3D,eAAe,KAAM,IAAK,KAC/Bh3D,EAAKg3D,eAAe,KAAM,QAAShE,EAAGl2C,IACtC9c,EAAKg3D,eAAe,KAAM,SAAUhE,EAAGj2C,IACvC/c,EAAKg3D,eAAe,KAAM,OAAQ7kC,GAClCnyB,EAAKg3D,eAAe,KAAM,OAAS,QAAO7rC,EAAQqqC,WAClDl4D,KAAKk6D,KAAK51C,YAAYoU,GAEtB14B,KAAKg6D,wBAAwB11C,YAAY5hB,GAEzC1C,KAAKrC,wBAAwBm5B,EAAS4B,GAGxC37B,sBAAsB0sC,EAAQQ,GAK5B,GAJIlpC,MAAMmpC,QAAQT,IAA6B,IAAlBA,EAAOnhD,QAClC0X,KAAK/G,UAAUwwC,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAG3EQ,EAAM,CACR,MAAMzqB,EAAQyqB,EAAK,GAAKA,EAAK,GACvBxqB,EAASwqB,EAAK,GAAKA,EAAK,GACxBoyB,EAAWr8D,KAAK29C,WAAW35B,cAAc,YAC/Cq4C,EAAS3C,eAAe,KAAM,IAAKzvB,EAAK,IACxCoyB,EAAS3C,eAAe,KAAM,IAAKzvB,EAAK,IACxCoyB,EAAS3C,eAAe,KAAM,QAAShE,EAAGl2C,IAC1C68C,EAAS3C,eAAe,KAAM,SAAUhE,EAAGj2C,IAC3Czf,KAAK6tB,QAAQmqB,QAAUqkB,EACvBr8D,KAAK9F,KAAK,WACV8F,KAAK/F,WAIT+C,uBAEAmd,YAAYnH,GACV,MAAMqW,EAAMrpB,KAAK29C,WAAWrzD,OAAO0oB,EAASwM,MAAOxM,EAASyM,QACtD88C,EAAcv8D,KAAK29C,WAAW35B,cAAc,YAClDqF,EAAI/E,YAAYi4C,GAChBv8D,KAAKk6D,KAAOqC,EACZ,MAAMC,EAAYx8D,KAAK29C,WAAW35B,cAAc,SAChDw4C,SAAU9C,eAAe,KAAM,YAAa9D,EAAG5iD,EAAS/Z,YACxDowB,EAAI/E,YAAYk4C,GAChBx8D,KAAKqpB,IAAMmzC,EACJnzC,EAGTozC,mBACE,IAAKz8D,KAAK6tB,QAAQoqC,UAAW,CAC3B,MAAMA,EAAYj4D,KAAK29C,WAAW35B,cAAc,SAChDi0C,EAAUyB,eAAe,KAAM,YAAa15D,KAAK6tB,QAAQmqC,eACzDh4D,KAAKqpB,IAAI/E,YAAY2zC,GACrBj4D,KAAK6tB,QAAQoqC,UAAYA,EAG3B,OAAOj4D,KAAK6tB,QAAQoqC,UAGtB+B,wBACE,OAAKh6D,KAAK84D,OACR94D,KAAK84D,KAAO94D,KAAK29C,WAAW35B,cAAc,SAC1ChkB,KAAK84D,KAAKY,eAAe,KAAM,YAAa9D,EAAG51D,KAAKu4D,kBAEpDv4D,KAAS6tB,QAAQmqC,cACfh4D,KAAKy8D,mBAAmBn4C,YAAYtkB,KAAK84D,MAEzC94D,KAAKqpB,IAAI/E,YAAYtkB,KAAK84D,OAIvB94D,KAAK84D,SAQX,CAACpzE,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ+2E,mBAAgB,EAExB,IAAI52D,EAAQlgB,EAAoB,GAE5B+2E,EAAiB/2E,EAAoB,IAIzC,MAAMg3E,EAAK/hB,oBAAQ,OAEbgiB,EAAOhiB,oBAAQ,MAEfiiB,GAAQjiB,oBAAQ,OAEhB9vD,EAAM8vD,oBAAQ,OAEdkiB,EAAe,0BAiErBp3E,EAAQ+2E,cA7CR,QACEz8D,YAAYqH,GACVtH,KAAKsH,OAASA,EACdtH,KAAKjV,IArBT,WAAkBiyE,GAChB,MAAMC,EAAYlyE,EAAImyE,MAAMF,GAE5B,MAA2B,UAAvBC,EAAUvxE,UAAwBuxE,EAAUE,KACvCF,EAGL,gBAAgBzvE,KAAKwvE,GAChBjyE,EAAImyE,MAAO,WAAUF,MAGzBC,EAAUE,OACbF,EAAUvxE,SAAW,SAGhBuxE,GAMMG,CAAS91D,EAAOvc,KAC3BiV,KAAKq9D,OAA+B,UAAtBr9D,KAAKjV,IAAIW,UAA8C,WAAtBsU,KAAKjV,IAAIW,SACxDsU,KAAKs9D,QAAgC,UAAtBt9D,KAAKjV,IAAIW,SACxBsU,KAAKuK,YAAcvK,KAAKq9D,QAAU/1D,EAAOiD,aAAe,GACxDvK,KAAKg5C,mBAAqB,KAC1Bh5C,KAAKu9D,qBAAuB,GAG1B9jB,6BACF,OAAOz5C,KAAKg5C,oBAAoBU,SAAW,EAG7Cj8B,gBACE,OAAC,EAAG3X,EAAM7c,SAAS+W,KAAKg5C,mBAAoB,wDAC5Ch5C,KAAKg5C,mBAAqBh5C,KAAKs9D,QAAU,IAAIE,EAA0Bx9D,MAAQ,IAAIy9D,EAAwBz9D,MACpGA,KAAKg5C,mBAGdz6B,eAAewJ,EAAO7a,GACpB,GAAIA,GAAOlN,KAAKy5C,uBACd,OAAO,KAGT,MAAMn7B,EAActe,KAAKs9D,QAAU,IAAII,EAA2B19D,KAAM+nB,EAAO7a,GAAO,IAAIywD,EAAyB39D,KAAM+nB,EAAO7a,GAEhI,YAAKqwD,qBAAqBrzE,KAAKo0B,GAExBA,EAGTf,kBAAkB1yB,GACZmV,KAAKg5C,oBACPh5C,KAAKg5C,mBAAmBzhC,OAAO1sB,GAGjC,UAAW4rB,KAAUzW,KAAKu9D,qBAAqBv7D,MAAM,GACnDyU,EAAOc,OAAO1sB,KAQpB,QACEoV,YAAYi1C,GACVl1C,KAAK49D,KAAO1oB,EAAOnqD,IACnBiV,KAAKi6C,OAAQ,EACbj6C,KAAK69D,aAAe,KACpB79D,KAAK0L,WAAa,KAClB,MAAMpE,EAAS4tC,EAAO5tC,OACtBtH,KAAK+4C,eAAiBzxC,EAAOhf,OAC7B0X,KAAK05C,QAAU,EACf15C,KAAKk6C,UAAY,KACjBl6C,KAAK89D,cAAgBx2D,EAAO6B,eAAgB,EAC5CnJ,KAAK+9D,gBAAkBz2D,EAAOiB,gBAEzBvI,KAAK+9D,kBAAoB/9D,KAAK89D,gBACjC99D,KAAK89D,eAAgB,GAGvB99D,KAAK64C,uBAAyBvxC,EAAO8B,cACrCpJ,KAAK84C,mBAAqBxxC,EAAO6B,aACjCnJ,KAAKg+D,gBAAkB,KACvBh+D,KAAKi+D,iBAAmB,EAAGn4D,EAAM1b,2BACjC4V,KAAKk+D,oBAAsB,EAAGp4D,EAAM1b,2BAGlC8zB,mBACF,OAAOle,KAAKk+D,mBAAmBzzE,QAG7Bu1B,eACF,OAAOhgB,KAAKk6C,UAGV77B,oBACF,OAAOre,KAAK+4C,eAGV36B,uBACF,OAAOpe,KAAK84C,kBAGV36B,2BACF,OAAOne,KAAK64C,sBAGRjiC,OAAO,gDAGX,SAFMuQ,EAAK82C,gBAAgBxzE,QAEvB08B,EAAK8yB,MACP,MAAO,CACLl0D,WAAOwD,EACPstB,MAAM,GAIV,GAAIsQ,EAAK02C,aACP,MAAM12C,EAAK02C,aAGb,MAAM7zE,EAAQm9B,EAAK62C,gBAAgBpnD,OAEnC,OAAc,OAAV5sB,GACFm9B,EAAK82C,iBAAmB,EAAGn4D,EAAM1b,2BAC1B+8B,EAAKvQ,SAGduQ,EAAKuyB,SAAW1vD,EAAM1B,OAElB6+B,EAAKzb,YACPyb,EAAKzb,WAAW,CACdkB,OAAQua,EAAKuyB,QACb7sC,MAAOsa,EAAK4xB,iBAKT,CACLhzD,MAFa,IAAIwC,WAAWyB,GAAOkC,OAGnC2qB,MAAM,KAjCG/K,GAqCbyL,OAAO1sB,GACAmV,KAAKg+D,gBAMVh+D,KAAKg+D,gBAAgBpyD,QAAQ/gB,GAL3BmV,KAAKm+D,OAAOtzE,GAQhBszE,OAAOtzE,GACLmV,KAAK69D,aAAehzE,EAEpBmV,KAAKi+D,gBAAgBtzE,UAGvByzE,mBAAmB5nD,GACjBxW,KAAKg+D,gBAAkBxnD,EACvBA,EAAe4D,GAAG,WAAY,KAC5Bpa,KAAKi+D,gBAAgBtzE,YAEvB6rB,EAAe4D,GAAG,MAAO,KACvB5D,EAAe5K,UACf5L,KAAKi6C,OAAQ,EAEbj6C,KAAKi+D,gBAAgBtzE,YAEvB6rB,EAAe4D,GAAG,QAASvvB,IACzBmV,KAAKm+D,OAAOtzE,MAGTmV,KAAK64C,uBAAyB74C,KAAK84C,mBACtC94C,KAAKm+D,OAAO,IAAIr4D,EAAM5d,eAAe,0BAGnC8X,KAAK69D,cACP79D,KAAKg+D,gBAAgBpyD,QAAQ5L,KAAK69D,eAMxC,QACE59D,YAAYi1C,GACVl1C,KAAK49D,KAAO1oB,EAAOnqD,IACnBiV,KAAKi6C,OAAQ,EACbj6C,KAAK69D,aAAe,KACpB79D,KAAK0L,WAAa,KAClB1L,KAAK05C,QAAU,EACf15C,KAAKg+D,gBAAkB,KACvBh+D,KAAKi+D,iBAAmB,EAAGn4D,EAAM1b,2BAEjC4V,KAAK64C,uBADU3D,EAAO5tC,OACe8B,cAGnC+U,2BACF,OAAOne,KAAK64C,sBAGRjiC,OAAO,gDAGX,SAFMuQ,EAAK82C,gBAAgBxzE,QAEvB08B,EAAK8yB,MACP,MAAO,CACLl0D,WAAOwD,EACPstB,MAAM,GAIV,GAAIsQ,EAAK02C,aACP,MAAM12C,EAAK02C,aAGb,MAAM7zE,EAAQm9B,EAAK62C,gBAAgBpnD,OAEnC,OAAc,OAAV5sB,GACFm9B,EAAK82C,iBAAmB,EAAGn4D,EAAM1b,2BAC1B+8B,EAAKvQ,SAGduQ,EAAKuyB,SAAW1vD,EAAM1B,OAElB6+B,EAAKzb,YACPyb,EAAKzb,WAAW,CACdkB,OAAQua,EAAKuyB,UAKV,CACL3zD,MAFa,IAAIwC,WAAWyB,GAAOkC,OAGnC2qB,MAAM,KAhCG/K,GAoCbyL,OAAO1sB,GACAmV,KAAKg+D,gBAMVh+D,KAAKg+D,gBAAgBpyD,QAAQ/gB,GAL3BmV,KAAKm+D,OAAOtzE,GAQhBszE,OAAOtzE,GACLmV,KAAK69D,aAAehzE,EAEpBmV,KAAKi+D,gBAAgBtzE,UAGvByzE,mBAAmB5nD,GACjBxW,KAAKg+D,gBAAkBxnD,EACvBA,EAAe4D,GAAG,WAAY,KAC5Bpa,KAAKi+D,gBAAgBtzE,YAEvB6rB,EAAe4D,GAAG,MAAO,KACvB5D,EAAe5K,UACf5L,KAAKi6C,OAAQ,EAEbj6C,KAAKi+D,gBAAgBtzE,YAEvB6rB,EAAe4D,GAAG,QAASvvB,IACzBmV,KAAKm+D,OAAOtzE,KAGVmV,KAAK69D,cACP79D,KAAKg+D,gBAAgBpyD,QAAQ5L,KAAK69D,eAMxC,WAA8BZ,EAAWoB,GACvC,MAAO,CACL3yE,SAAUuxE,EAAUvxE,SACpB4yE,KAAMrB,EAAUqB,KAChBnB,KAAMF,EAAUsB,SAChBh1D,KAAM0zD,EAAU1zD,KAChBk8B,KAAMw3B,EAAUx3B,KAChB+4B,OAAQ,MACRH,WAIJ,gBAAsCI,EACpCx+D,YAAYi1C,GACV/0C,MAAM+0C,GAEN,MAAMwpB,EAAiB95C,IACrB,GAA4B,MAAxBA,EAAS+5C,WAAoB,CAC/B,MAAMnqD,EAAQ,IAAI1O,EAAMjf,oBAAqB,gBAAemZ,KAAK49D,UAKjE,OAJA59D,KAAK69D,aAAerpD,OAEpBxU,KAAKk+D,mBAAmBtzE,OAAO4pB,GAKjCxU,KAAKk+D,mBAAmBvzE,UAExBqV,KAAKo+D,mBAAmBx5C,GAExB,MAAMg6C,EAAoB7+D,GACjBC,KAAKg+D,gBAAgBK,QAAQt+D,EAAK4nB,gBAIzCk3C,qBACAC,oBACG,EAAGnC,EAAeoC,kCAAkC,CACvDH,oBACAvB,OAAQnoB,EAAOmoB,OACf90D,eAAgBvI,KAAK+9D,gBACrB50D,aAAcnJ,KAAK89D,gBAErB99D,KAAK84C,kBAAoB+lB,EACzB7+D,KAAK+4C,eAAiB+lB,GAAmB9+D,KAAK+4C,eAC9C/4C,KAAKk6C,WAAa,EAAGyiB,EAAeqC,2BAA2BJ,IAGjE5+D,KAAKi/D,SAAW,KAGdj/D,KAAKi/D,SADoB,UAA3Bj/D,KAAS49D,KAAKlyE,SACImxE,EAAK53C,QAAQi6C,EAAqBl/D,KAAK49D,KAAM1oB,EAAO3qC,aAAcm0D,GAElE5B,GAAM73C,QAAQi6C,EAAqBl/D,KAAK49D,KAAM1oB,EAAO3qC,aAAcm0D,GAGrF1+D,KAAKi/D,SAAS7kD,GAAG,QAASvvB,IACxBmV,KAAK69D,aAAehzE,EAEpBmV,KAAKk+D,mBAAmBtzE,OAAOC,KAGjCmV,KAAKi/D,SAAS/xD,OAKlB,gBAAuCiyD,EACrCl/D,YAAYi1C,EAAQntB,EAAO7a,GACzB/M,MAAM+0C,GACNl1C,KAAKo/D,aAAe,GAEpB,UAAWnmC,KAAYic,EAAO3qC,YAAa,CACzC,MAAMxkB,EAAQmvD,EAAO3qC,YAAY0uB,UAEtBlzC,EAAU,MAIrBia,KAAKo/D,aAAanmC,GAAYlzC,GAGhCia,KAAKo/D,aAAaC,MAAS,SAAQt3C,KAAS7a,EAAM,IAElD,MAAMwxD,EAAiB95C,IACrB,GAA4B,MAAxBA,EAAS+5C,WAMb3+D,KAAKo+D,mBAAmBx5C,OANxB,CACE,MAAMpQ,EAAQ,IAAI1O,EAAMjf,oBAAqB,gBAAemZ,KAAK49D,UACjE59D,KAAK69D,aAAerpD,IAOxBxU,KAAKi/D,SAAW,KAGdj/D,KAAKi/D,SADoB,UAA3Bj/D,KAAS49D,KAAKlyE,SACImxE,EAAK53C,QAAQi6C,EAAqBl/D,KAAK49D,KAAM59D,KAAKo/D,cAAeV,GAEjE5B,GAAM73C,QAAQi6C,EAAqBl/D,KAAK49D,KAAM59D,KAAKo/D,cAAeV,GAGpF1+D,KAAKi/D,SAAS7kD,GAAG,QAASvvB,IACxBmV,KAAK69D,aAAehzE,IAGtBmV,KAAKi/D,SAAS/xD,OAKlB,gBAAwCuxD,EACtCx+D,YAAYi1C,GACV/0C,MAAM+0C,GACN,IAAIzP,EAAOnhC,mBAAmBtE,KAAK49D,KAAKn4B,MAEpCs3B,EAAavvE,KAAKwS,KAAK49D,KAAK/1D,QAC9B49B,EAAOA,EAAK35C,QAAQ,MAAO,KAG7B8wE,EAAG0C,MAAM75B,EAAM,CAACjxB,EAAO+qD,KACrB,GAAI/qD,EASF,MARmB,WAAfA,EAAM1lB,OACR0lB,EAAQ,IAAI1O,EAAMjf,oBAAqB,gBAAe4+C,QAGxDzlC,KAAK69D,aAAerpD,OAEpBxU,KAAKk+D,mBAAmBtzE,OAAO4pB,GAKjCxU,KAAK+4C,eAAiBwmB,EAAKxvD,KAE3B/P,KAAKo+D,mBAAmBxB,EAAG4C,iBAAiB/5B,IAE5CzlC,KAAKk+D,mBAAmBvzE,aAM9B,gBAAyCw0E,EACvCl/D,YAAYi1C,EAAQntB,EAAO7a,GACzB/M,MAAM+0C,GACN,IAAIzP,EAAOnhC,mBAAmBtE,KAAK49D,KAAKn4B,MAEpCs3B,EAAavvE,KAAKwS,KAAK49D,KAAK/1D,QAC9B49B,EAAOA,EAAK35C,QAAQ,MAAO,KAG7BkU,KAAKo+D,mBAAmBxB,EAAG4C,iBAAiB/5B,EAAM,CAChD1d,QACA7a,IAAKA,EAAM,QAQV,CAACxnB,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ85E,0BAuER,WAAmCp/D,EAAQtV,GACzC,OAAe,MAAXsV,GAA6B,IAAXA,GAAgBtV,EAAII,WAAW,SAC5C,IAAI2a,EAAMjf,oBAAoB,gBAAkBkE,EAAM,MAGxD,IAAI+a,EAAM3f,4BAA6B,+BAA8Bka,4BAAiCtV,MAASsV,IA3ExH1a,EAAQq5E,0BAkDR,YAAmCJ,GACjC,MAAMc,EAAqBd,EAAkB,uBAE7C,GAAIc,EAAoB,CACtB,IAAI1/C,GAAY,EAAG2/C,EAAqBC,yCAAyCF,GAEjF,GAAI1/C,EAASsD,SAAS,KACpB,IACEtD,EAAW1b,mBAAmB0b,UAIlC,IAAK,EAAGja,EAAe6d,WAAW5D,GAChC,OAAOA,EAIX,OAAO,MAlETr6B,EAAQo5E,iCASR,YACEH,oBACAvB,SACA90D,iBACAY,iBAEA,MAAM02D,EAAe,CACnBhB,oBAAoB,EACpBC,qBAAiBv1E,GAEbjB,EAASq7B,SAASi7C,EAAkB,kBAAmB,IAsB7D,OApBK3wE,OAAOC,UAAU5F,KAItBu3E,EAAaf,gBAAkBx2E,EAE3BA,GAAU,EAAIigB,IAIdY,IAAiBk0D,GAIsB,UAAvCuB,EAAkB,kBAME,cAFAA,EAAkB,qBAAuB,cAMjEiB,EAAahB,oBAAqB,GAC3BgB,GA7CTl6E,EAAQm6E,uBA4ER,WAAgCz/D,GAC9B,OAAkB,MAAXA,GAA6B,MAAXA,GA3E3B,IAAIyF,EAAQlgB,EAAoB,GAE5B+5E,EAAuB/5E,EAAoB,IAE3CmgB,EAAiBngB,EAAoB,IA4ElC,CAACF,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQi6E,wCAIR,WAAiDF,GAC/C,IAAIK,GAAqB,EACrB/vB,GAAMgwB,EAAc,cAAe,KAAK58C,KAAKs8C,GAEjD,GAAI1vB,GAAK,CACPA,GAAMA,GAAI,GACV,IAAIhwB,EAAWigD,EAAejwB,IAC9BhwB,SAAW1wB,SAAS0wB,GACpBA,EAAWkgD,EAAclgD,GACzBA,EAAWmgD,EAAcngD,GAClBogD,EAAcpgD,GAKvB,GAFAgwB,GAmDA,WAAyBqwB,GACvB,MAAM/3C,EAAU,GAChB,IAAIj9B,EACJ,MAAMi1E,EAAON,EAAc,kCAAmC,MAE9D,KAAsD,QAA9C30E,EAAQi1E,EAAKl9C,KAAKi9C,KAAkC,CAC1D,IAAI,CAAGr/D,EAAGu/D,EAAMC,GAAQn1E,EAGxB,GAFA2V,EAAI2iB,SAAS3iB,EAAG,IAEZA,KAAKsnB,GACP,GAAU,IAANtnB,EACF,WAMJsnB,EAAQtnB,GAAK,CAACu/D,EAAMC,GAGtB,MAAMC,EAAQ,GAEd,QAASz/D,EAAI,EAAGA,EAAIsnB,EAAQhgC,QACpB0Y,KAAKsnB,IADyBtnB,EAAG,CAKvC,IAAKu/D,EAAMC,GAAQl4C,EAAQtnB,GAC3Bw/D,EAAOP,EAAeO,GAElBD,IACFC,EAAOlxE,SAASkxE,GAEN,IAANx/D,IACFw/D,EAAON,EAAcM,KAIzBC,EAAMv2E,KAAKs2E,GAGb,OAAOC,EAAMt2E,KAAK,IA5Fdu2E,CAAgBhB,GAElB1vB,GAEF,OAAOowB,EADUD,EAAcnwB,KAMjC,GAFAA,GAAMgwB,EAAc,WAAY,KAAK58C,KAAKs8C,GAEtC1vB,GAAK,CACPA,GAAMA,GAAI,GACV,IAAIhwB,EAAWigD,EAAejwB,IAC9BhwB,SAAWmgD,EAAcngD,GAClBogD,EAAcpgD,GAGvB,WAAuB2gD,EAAkBC,GACvC,OAAO,IAAIv4C,OAAO,cAAgBs4C,EAAmB,sDAAgFC,GAGvI,WAAoBtyE,EAAUvI,GAC5B,GAAIuI,EAAU,CACZ,IAAK,iBAAiBd,KAAKzH,GACzB,OAAOA,EAGT,IACE,MAAMyI,EAAU,IAAIC,YAAYH,EAAU,CACxCI,OAAO,IAEHxC,GAAU,EAAG4Z,EAAMjd,eAAe9C,GACxCA,EAAQyI,EAAQG,OAAOzC,GACvB6zE,GAAqB,UAIzB,OAAOh6E,EAGT,WAAuBA,GACrB,OAAIg6E,GAAsB,cAAcvyE,KAAKzH,KAC3CA,EAAQ86E,EAAW,QAAS96E,GAExBg6E,IACFh6E,EAAQ86E,EAAW,aAAc96E,KAI9BA,EA+CT,WAAwBA,GACtB,GAAIA,EAAMoF,WAAW,KAAM,CACzB,MAAMs1E,EAAQ16E,EAAMic,MAAM,GAAGwpD,MAAM,OAEnC,QAAS/iE,EAAI,EAAGA,EAAIg4E,EAAMn4E,SAAUG,EAAG,CACrC,MAAMq4E,EAAYL,EAAMh4E,GAAGqwB,QAAQ,MAEjB,IAAdgoD,IACFL,EAAMh4E,GAAKg4E,EAAMh4E,GAAGuZ,MAAM,EAAG8+D,GAC7BL,EAAMn4E,OAASG,EAAI,GAGrBg4E,EAAMh4E,GAAKg4E,EAAMh4E,GAAGqD,QAAQ,SAAU,MAGxC/F,EAAQ06E,EAAMt2E,KAAK,KAGrB,OAAOpE,EAGT,WAAuBg7E,GACrB,MAAMC,EAAcD,EAASjoD,QAAQ,KAErC,OAAoB,IAAhBkoD,EACKD,EAMFF,EAHUE,EAAS/+D,MAAM,EAAGg/D,GAErBC,EADaj/D,MAAMg/D,EAAc,GACvBl1E,QAAQ,UAAW,KAI7C,WAAuB/F,GACrB,OAAKA,EAAMoF,WAAW,OAAS,uBAAuBqC,KAAKzH,GAClDA,EAGFA,EAAM+F,QAAQ,iDAAkD,SAAUw8B,EAAS44C,EAAS5yE,EAAU02B,GAC3G,GAAiB,MAAb12B,GAAiC,MAAbA,EACtB02B,OAIO67C,EAAWK,EAHlBl8C,GADAA,EAAOA,EAAKl5B,QAAQ,KAAM,MACdA,QAAQ,qBAAsB,SAAUT,EAAO81E,GACzD,OAAO13E,OAAOC,aAAai6B,SAASw9C,EAAK,QAK7C,IACEn8C,EAAOwG,KAAKxG,UAGd,OAAO67C,EAAWK,EAASl8C,KAI/B,MAAO,IAtKT,IAAIlf,EAAQlgB,EAAoB,IA2KzB,CAACF,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQy7E,sBAAmB,EAE3B,IAAIt7D,EAAQlgB,EAAoB,GAE5B+2E,EAAiB/2E,EAAoB,IAiBzC,QACEqa,YAAYlV,EAAK+iC,EAAO,IACtB9tB,KAAKjV,IAAMA,EACXiV,KAAKq9D,OAAS,YAAY7vE,KAAKzC,GAC/BiV,KAAKuK,YAAcvK,KAAKq9D,QAAUvvC,EAAKvjB,aAAe1kB,OAAOyE,OAAO,MACpE0V,KAAKwK,gBAAkBsjB,EAAKtjB,kBAAmB,EAE/CxK,KAAKqhE,OAASvzC,EAAKuzC,QAAU,WAC3B,OAAO,IAAIn8C,gBAGbllB,KAAKshE,UAAY,EACjBthE,KAAKuhE,gBAAkB17E,OAAOyE,OAAO,MAGvCk3E,aAAa90D,EAAOQ,EAAKu0D,GACvB,MAAM3zC,EAAO,CACXphB,QACAQ,OAGF,UAAWxN,KAAQ+hE,EACjB3zC,EAAKpuB,GAAQ+hE,EAAU/hE,GAGzB,OAAOM,KAAKilB,QAAQ6I,GAGtB4zC,YAAYD,GACV,OAAOzhE,KAAKilB,QAAQw8C,GAGtBx8C,QAAQ6I,GACN,MAAM6zC,EAAM3hE,KAAKqhE,SACXO,EAAQ5hE,KAAKshE,YACbO,EAAiB7hE,KAAKuhE,gBAAgBK,GAAS,CACnDD,OAEFA,EAAIx8C,KAAK,MAAOnlB,KAAKjV,KACrB42E,EAAIn3D,gBAAkBxK,KAAKwK,gBAE3B,UAAWyuB,KAAYj5B,KAAKuK,YAAa,CACvC,MAAMxkB,EAAQia,KAAKuK,YAAY0uB,UAEpBlzC,EAAU,KAIrB47E,EAAIG,iBAAiB7oC,EAAUlzC,GAGjC,OAAIia,KAAKq9D,QAAU,UAAWvvC,GAAQ,QAASA,GAC7C6zC,EAAIG,iBAAiB,QAAU,SAAQh0C,EAAKphB,SAASohB,EAAK5gB,IAAM,KAChE20D,EAAeE,eAlEY,KAoE3BF,EAAeE,eArED,IAwEhBJ,EAAIv8C,aAAe,cAEf0I,EAAKk0C,UACPL,EAAIx9C,QAAU,SAAUzG,GACtBoQ,EAAKk0C,QAAQL,EAAIthE,UAIrBshE,EAAIt8C,mBAAqBrlB,KAAKiiE,cAAcnmD,KAAK9b,KAAM4hE,GACvDD,EAAIO,WAAaliE,KAAK0L,WAAWoQ,KAAK9b,KAAM4hE,GAC5CC,EAAeM,kBAAoBr0C,EAAKq0C,kBACxCN,EAAeO,OAASt0C,EAAKs0C,OAC7BP,EAAeG,QAAUl0C,EAAKk0C,QAC9BH,EAAen2D,WAAaoiB,EAAKpiB,WACjCi2D,EAAI32D,KAAK,MACF42D,EAGTl2D,WAAWk2D,EAAOlkD,GAChB,MAAMmkD,EAAiB7hE,KAAKuhE,gBAAgBK,IAEvCC,GAILA,EAAen2D,aAAagS,GAG9BukD,cAAcL,EAAOlkD,GACnB,MAAMmkD,EAAiB7hE,KAAKuhE,gBAAgBK,GAE5C,IAAKC,EACH,OAGF,MAAMF,EAAME,EAAeF,IAW3B,GATIA,EAAIr8C,YAAc,GAAKu8C,EAAeM,oBACxCN,EAAeM,2BACRN,EAAeM,mBAGD,IAAnBR,EAAIr8C,cAIFs8C,KAAS5hE,KAAKuhE,iBAClB,OAKF,UAFOvhE,KAAKuhE,gBAAgBK,GAET,IAAfD,EAAIthE,QAAgBL,KAAKq9D,OAE3B,YADAwE,EAAeG,UAAUL,EAAIthE,QAI/B,MAAMgiE,EAAYV,EAAIthE,QAjIN,IAoIhB,IApIgB,MAkIqBgiE,GAjIR,MAiIqCR,EAAeE,iBAE5CM,IAAcR,EAAeE,eAEhE,YADAF,EAAeG,UAAUL,EAAIthE,QAI/B,MAAMrW,EAtIV,YAAwB23E,GACtB,MAAMh5E,EAAOg5E,EAAI/8C,SAEjB,MAAoB,iBAATj8B,EACFA,GAIFmvD,EADWhyC,EAAMjd,eAAeF,GAC1BuD,OA8HGo2E,CAAeX,GAE7B,GA1I6B,MA0IzBU,EAAwC,CAC1C,MAAME,EAAcZ,EAAI/C,kBAAkB,iBACpCt2C,EAAU,2BAA2BlF,KAAKm/C,GAChDV,EAAeO,OAAO,CACpB11D,MAAOiX,SAAS2E,EAAQ,GAAI,IAC5Bt+B,eAEOA,EACT63E,EAAeO,OAAO,CACpB11D,MAAO,EACP1iB,UAGF63E,EAAeG,UAAUL,EAAIthE,QAIjCmiE,cAAcZ,GACZ,OAAO5hE,KAAKuhE,gBAAgBK,GAAOD,IAGrCc,iBAAiBb,GACf,OAAOA,KAAS5hE,KAAKuhE,gBAGvBmB,aAAad,GACX,MAAMD,EAAM3hE,KAAKuhE,gBAAgBK,GAAOD,WACjC3hE,KAAKuhE,gBAAgBK,GAC5BD,EAAIx0D,SAkDRxnB,EAAQy7E,iBA7CR,QACEnhE,YAAYqH,GACVtH,KAAK2iE,QAAUr7D,EACftH,KAAK4iE,SAAW,IAAIC,EAAev7D,EAAOvc,IAAK,CAC7Cwf,YAAajD,EAAOiD,YACpBC,gBAAiBlD,EAAOkD,kBAE1BxK,KAAK+9D,gBAAkBz2D,EAAOiB,eAC9BvI,KAAKg5C,mBAAqB,KAC1Bh5C,KAAKu9D,qBAAuB,GAG9BuF,4BAA4BrsD,GAC1B,MAAMhuB,EAAIuX,KAAKu9D,qBAAqBzkD,QAAQrC,GAExChuB,GAAK,GACPuX,KAAKu9D,qBAAqBxkD,OAAOtwB,EAAG,GAIxCg1B,gBACE,OAAC,EAAG3X,EAAM7c,SAAS+W,KAAKg5C,mBAAoB,2DAC5Ch5C,KAAKg5C,mBAAqB,IAAI+pB,EAAkC/iE,KAAK4iE,SAAU5iE,KAAK2iE,SAC7E3iE,KAAKg5C,mBAGdz6B,eAAe7R,EAAOQ,GACpB,MAAMuJ,EAAS,IAAIusD,EAAmChjE,KAAK4iE,SAAUl2D,EAAOQ,GAC5EuJ,SAAOwsD,SAAWjjE,KAAK8iE,4BAA4BhnD,KAAK9b,MAExDA,KAAKu9D,qBAAqBrzE,KAAKusB,GAExBA,EAGT8G,kBAAkB1yB,GAChBmV,KAAKg5C,oBAAoBzhC,OAAO1sB,GAEhC,UAAW4rB,KAAUzW,KAAKu9D,qBAAqBv7D,MAAM,GACnDyU,EAAOc,OAAO1sB,KAQpB,QACEoV,YAAYijE,EAAS57D,GACnBtH,KAAK4iE,SAAWM,EAChB,MAAMp1C,EAAO,CACXq0C,kBAAmBniE,KAAKmjE,mBAAmBrnD,KAAK9b,MAChDoiE,OAAQpiE,KAAKojE,QAAQtnD,KAAK9b,MAC1BgiE,QAAShiE,KAAKqjE,SAASvnD,KAAK9b,MAC5B0L,WAAY1L,KAAKm5C,YAAYr9B,KAAK9b,OAEpCA,KAAK49D,KAAOt2D,EAAOvc,IACnBiV,KAAKsjE,eAAiBJ,EAAQxB,YAAY5zC,GAC1C9tB,KAAKujE,4BAA8B,EAAGz9D,EAAM1b,2BAC5C4V,KAAK89D,cAAgBx2D,EAAO6B,eAAgB,EAC5CnJ,KAAK+4C,eAAiBzxC,EAAOhf,OAC7B0X,KAAK+9D,gBAAkBz2D,EAAOiB,gBAEzBvI,KAAK+9D,kBAAoB/9D,KAAK89D,gBACjC99D,KAAK89D,eAAgB,GAGvB99D,KAAK64C,uBAAwB,EAC7B74C,KAAK84C,mBAAoB,EACzB94C,KAAKwjE,cAAgB,GACrBxjE,KAAKm6C,UAAY,GACjBn6C,KAAKi6C,OAAQ,EACbj6C,KAAK69D,kBAAet0E,EACpByW,KAAKk6C,UAAY,KACjBl6C,KAAK0L,WAAa,KAGpBy3D,qBACE,MAAMM,EAAmBzjE,KAAKsjE,eAExBI,EAAiB1jE,KAAK4iE,SAASJ,cAAciB,GAE7C7E,EAAoB7+D,GACjB2jE,EAAe9E,kBAAkB7+D,IAIxC8+D,qBACAC,oBACG,EAAGnC,EAAeoC,kCAAkC,CACvDH,oBACAvB,OAAQr9D,KAAK4iE,SAASvF,OACtB90D,eAAgBvI,KAAK+9D,gBACrB50D,aAAcnJ,KAAK89D,gBAGjBe,IACF7+D,KAAK84C,mBAAoB,GAG3B94C,KAAK+4C,eAAiB+lB,GAAmB9+D,KAAK+4C,eAC9C/4C,KAAKk6C,WAAa,EAAGyiB,EAAeqC,2BAA2BJ,GAE3D5+D,KAAK84C,mBACP94C,KAAK4iE,SAASF,aAAae,GAG7BzjE,KAAKujE,2BAA2B54E,UAGlCy4E,QAAQz6E,GAgBN,GAfIA,IACEqX,KAAKm6C,UAAU7xD,OAAS,EAG1B+xD,KAF+BF,UAAU5uB,QAEvB5gC,QAAQ,CACxB5E,MAAO4C,EAAKqB,MACZ6sB,MAAM,IAGR7W,KAAKwjE,cAAct5E,KAAKvB,EAAKqB,QAIjCgW,KAAKi6C,OAAQ,IAETj6C,KAAKwjE,cAAcl7E,OAAS,GAIhC,WAAW+xD,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,GAG1B+6E,SAAShjE,GACPL,KAAK69D,cAAgB,EAAGlB,EAAe8C,2BAA2Bp/D,EAAQL,KAAK49D,MAE/E59D,KAAKujE,2BAA2B34E,OAAOoV,KAAK69D,cAE5C,UAAWxjB,KAAqBr6C,KAAKm6C,UACnCE,EAAkBzvD,OAAOoV,KAAK69D,cAGhC79D,KAAKm6C,UAAU7xD,OAAS,EACxB0X,KAAKwjE,cAAcl7E,OAAS,EAG9B6wD,YAAYz7B,GACV1d,KAAK0L,aAAa,CAChBkB,OAAQ8Q,EAAI9Q,OACZC,MAAO6Q,EAAIimD,iBAAmBjmD,EAAI7Q,MAAQ7M,KAAK+4C,iBAI/C/4B,eACF,OAAOhgB,KAAKk6C,UAGV97B,uBACF,OAAOpe,KAAK84C,kBAGV36B,2BACF,OAAOne,KAAK64C,sBAGVx6B,oBACF,OAAOre,KAAK+4C,eAGV76B,mBACF,OAAOle,KAAKujE,2BAA2B94E,QAGnCmsB,OAAO,gDACX,GAAI/K,EAAKgyD,aACP,MAAMhyD,EAAKgyD,aAGb,GAAIhyD,EAAK23D,cAAcl7E,OAAS,EAG9B,MAAO,CACLvC,MAHY8lB,EAAK23D,cAAcj4C,QAI/B1U,MAAM,GAIV,GAAIhL,EAAKouC,MACP,MAAO,CACLl0D,WAAOwD,EACPstB,MAAM,GAIV,MAAMwjC,GAAqB,EAAGv0C,EAAM1b,2BAEpC,SAAK+vD,UAAUjwD,KAAKmwD,GAEbA,EAAkB5vD,SAzBdqhB,GA4BbyL,OAAO1sB,GACLmV,KAAKi6C,OAAQ,EAEbj6C,KAAKujE,2BAA2B34E,OAAOC,GAEvC,UAAWwvD,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,EAEpB0X,KAAK4iE,SAASH,iBAAiBziE,KAAKsjE,iBACtCtjE,KAAK4iE,SAASF,aAAa1iE,KAAKsjE,gBAGlCtjE,KAAKg5C,mBAAqB,MAK9B,QACE/4C,YAAYijE,EAASx2D,EAAOQ,GAC1BlN,KAAK4iE,SAAWM,EAChB,MAAMp1C,EAAO,CACXs0C,OAAQpiE,KAAKojE,QAAQtnD,KAAK9b,MAC1BgiE,QAAShiE,KAAKqjE,SAASvnD,KAAK9b,MAC5B0L,WAAY1L,KAAKm5C,YAAYr9B,KAAK9b,OAEpCA,KAAK49D,KAAOsF,EAAQn4E,IACpBiV,KAAK4jE,WAAaV,EAAQ1B,aAAa90D,EAAOQ,EAAK4gB,GACnD9tB,KAAKm6C,UAAY,GACjBn6C,KAAKu6C,aAAe,KACpBv6C,KAAKi6C,OAAQ,EACbj6C,KAAK69D,kBAAet0E,EACpByW,KAAK0L,WAAa,KAClB1L,KAAKijE,SAAW,KAGlBY,SACE7jE,KAAKijE,WAAWjjE,MAGlBojE,QAAQz6E,GACN,MAAMqB,EAAQrB,EAAKqB,MAEfgW,KAAKm6C,UAAU7xD,OAAS,EAG1B+xD,KAF+BF,UAAU5uB,QAEvB5gC,QAAQ,CACxB5E,MAAOiE,EACP6sB,MAAM,IAGR7W,KAAKu6C,aAAevwD,EAGtBgW,KAAKi6C,OAAQ,EAEb,UAAWI,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,EAExB0X,KAAK6jE,SAGPR,SAAShjE,GACPL,KAAK69D,cAAgB,EAAGlB,EAAe8C,2BAA2Bp/D,EAAQL,KAAK49D,MAE/E,UAAWvjB,KAAqBr6C,KAAKm6C,UACnCE,EAAkBzvD,OAAOoV,KAAK69D,cAGhC79D,KAAKm6C,UAAU7xD,OAAS,EACxB0X,KAAKu6C,aAAe,KAGtBpB,YAAYz7B,GACL1d,KAAKme,sBACRne,KAAK0L,aAAa,CAChBkB,OAAQ8Q,EAAI9Q,SAKduR,2BACF,OAAO,EAGHvH,OAAO,gDACX,GAAI/K,EAAKgyD,aACP,MAAMhyD,EAAKgyD,aAGb,GAA0B,OAAtBhyD,EAAK0uC,aAAuB,CAC9B,MAAMvwD,EAAQ6hB,EAAK0uC,aACnB,SAAKA,aAAe,KACb,CACLx0D,MAAOiE,EACP6sB,MAAM,GAIV,GAAIhL,EAAKouC,MACP,MAAO,CACLl0D,WAAOwD,EACPstB,MAAM,GAIV,MAAMwjC,GAAqB,EAAGv0C,EAAM1b,2BAEpC,SAAK+vD,UAAUjwD,KAAKmwD,GAEbA,EAAkB5vD,SAzBdqhB,GA4BbyL,OAAO1sB,GACLmV,KAAKi6C,OAAQ,EAEb,UAAWI,KAAqBr6C,KAAKm6C,UACnCE,EAAkB1vD,QAAQ,CACxB5E,WAAOwD,EACPstB,MAAM,IAIV7W,KAAKm6C,UAAU7xD,OAAS,EAEpB0X,KAAK4iE,SAASH,iBAAiBziE,KAAK4jE,aACtC5jE,KAAK4iE,SAASF,aAAa1iE,KAAK4jE,YAGlC5jE,KAAK6jE,YAOF,CAACn+E,GAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQm+E,oBAAiB,EAEzB,IAAIh+D,EAAQlgB,EAAoB,GAE5B+2E,EAAiB/2E,EAAoB,IAIzC,WAA4By4E,EAAS7zD,EAAiBu5D,GACpD,MAAO,CACLvF,OAAQ,MACRH,UACA2F,OAAQD,GAAiBC,OACzB39B,KAAM,OACN49B,YAAaz5D,EAAkB,UAAY,cAC3C05D,SAAU,UAId,WAAuB35D,GACrB,MAAM8zD,EAAU,IAAI8F,QAEpB,UAAWlrC,KAAY1uB,EAAa,CAClC,MAAMxkB,EAAQwkB,EAAY0uB,UAEflzC,EAAU,KAIrBs4E,EAAQtS,OAAO9yB,EAAUlzC,GAG3B,OAAOs4E,EA8CT14E,EAAQm+E,eA3CR,SACE7jE,YAAYqH,GACVtH,KAAKsH,OAASA,EACdtH,KAAKq9D,OAAS,YAAY7vE,KAAK8Z,EAAOvc,KACtCiV,KAAKuK,YAAcvK,KAAKq9D,QAAU/1D,EAAOiD,aAAe,GACxDvK,KAAKg5C,mBAAqB,KAC1Bh5C,KAAKu9D,qBAAuB,GAG1B9jB,6BACF,OAAOz5C,KAAKg5C,oBAAoBU,SAAW,EAG7Cj8B,gBACE,OAAC,EAAG3X,EAAM7c,SAAS+W,KAAKg5C,mBAAoB,yDAC5Ch5C,KAAKg5C,mBAAqB,IAAIorB,EAAqBpkE,MAC5CA,KAAKg5C,mBAGdz6B,eAAe7R,EAAOQ,GACpB,GAAIA,GAAOlN,KAAKy5C,uBACd,OAAO,KAGT,MAAMhjC,EAAS,IAAI4tD,EAA0BrkE,KAAM0M,EAAOQ,GAE1D,YAAKqwD,qBAAqBrzE,KAAKusB,GAExBA,EAGT8G,kBAAkB1yB,GACZmV,KAAKg5C,oBACPh5C,KAAKg5C,mBAAmBzhC,OAAO1sB,GAGjC,UAAW4rB,KAAUzW,KAAKu9D,qBAAqBv7D,MAAM,GACnDyU,EAAOc,OAAO1sB,KAQpB,QACEoV,YAAYi1C,GACVl1C,KAAKg6C,QAAU9E,EACfl1C,KAAK0zD,QAAU,KACf1zD,KAAK05C,QAAU,EACf15C,KAAKk6C,UAAY,KACjB,MAAM5yC,EAAS4tC,EAAO5tC,OACtBtH,KAAKskE,iBAAmBh9D,EAAOkD,kBAAmB,EAClDxK,KAAK+4C,eAAiBzxC,EAAOhf,OAC7B0X,KAAKk+D,oBAAsB,EAAGp4D,EAAM1b,2BACpC4V,KAAK89D,cAAgBx2D,EAAO6B,eAAgB,EAC5CnJ,KAAK+9D,gBAAkBz2D,EAAOiB,gBAEzBvI,KAAK+9D,kBAAoB/9D,KAAK89D,gBACjC99D,KAAK89D,eAAgB,UAGZyG,gBAAoB,MAC7BvkE,KAAKwkE,iBAAmB,IAAID,iBAG9BvkE,KAAK64C,uBAAyBvxC,EAAO8B,cACrCpJ,KAAK84C,mBAAqBxxC,EAAO6B,aACjCnJ,KAAKykE,SAAWC,EAAc1kE,KAAKg6C,QAAQzvC,aAC3C,MAAMxf,EAAMuc,EAAOvc,IACnB40B,MAAM50B,EAAK45E,EAAmB3kE,KAAKykE,SAAUzkE,KAAKskE,iBAAkBtkE,KAAKwkE,mBAAmB36D,KAAK+a,IAC/F,KAAM,EAAG+3C,EAAemD,wBAAwBl7C,EAASvkB,QACvD,MAAO,EAAGs8D,EAAe8C,2BAA2B76C,EAASvkB,OAAQtV,GAGvEiV,KAAK0zD,QAAU9uC,EAASgI,KAAKlW,YAE7B1W,KAAKk+D,mBAAmBvzE,UAExB,MAAMi0E,EAAoB7+D,GACjB6kB,EAASy5C,QAAQ7zE,IAAIuV,IAI5B8+D,qBACAC,oBACG,EAAGnC,EAAeoC,kCAAkC,CACvDH,oBACAvB,OAAQr9D,KAAKg6C,QAAQqjB,OACrB90D,eAAgBvI,KAAK+9D,gBACrB50D,aAAcnJ,KAAK89D,gBAErB99D,KAAK84C,kBAAoB+lB,EACzB7+D,KAAK+4C,eAAiB+lB,GAAmB9+D,KAAK+4C,eAC9C/4C,KAAKk6C,WAAa,EAAGyiB,EAAeqC,2BAA2BJ,IAE1D5+D,KAAK64C,uBAAyB74C,KAAK84C,mBACtC94C,KAAKuX,OAAO,IAAIzR,EAAM5d,eAAe,6BAEtC+iB,MAAMjL,KAAKk+D,mBAAmBtzE,QACjCoV,KAAK0L,WAAa,KAGhBwS,mBACF,OAAOle,KAAKk+D,mBAAmBzzE,QAG7Bu1B,eACF,OAAOhgB,KAAKk6C,UAGV77B,oBACF,OAAOre,KAAK+4C,eAGV36B,uBACF,OAAOpe,KAAK84C,kBAGV36B,2BACF,OAAOne,KAAK64C,sBAGRjiC,OAAO,sDACLy9B,EAAK6pB,mBAAmBzzE,QAC9B,MACE1E,QACA8wB,cACQw9B,EAAKqf,QAAQ98C,OAEvB,OAAIC,EACK,CACL9wB,QACA8wB,SAIJw9B,EAAKqF,SAAW3zD,EAAMgD,WAElBsrD,EAAK3oC,YACP2oC,EAAK3oC,WAAW,CACdkB,OAAQynC,EAAKqF,QACb7sC,MAAOwnC,EAAK0E,iBAKT,CACLhzD,MAFa,IAAIwC,WAAWxC,GAAOmG,OAGnC2qB,MAAM,KA1BG/K,GA8BbyL,OAAO1sB,GACDmV,KAAK0zD,SACP1zD,KAAK0zD,QAAQn8C,OAAO1sB,GAGlBmV,KAAKwkE,kBACPxkE,KAAKwkE,iBAAiBr3D,SAM5B,QACElN,YAAYi1C,EAAQxoC,EAAOQ,GACzBlN,KAAKg6C,QAAU9E,EACfl1C,KAAK0zD,QAAU,KACf1zD,KAAK05C,QAAU,EACf,MAAMpyC,EAAS4tC,EAAO5tC,OACtBtH,KAAKskE,iBAAmBh9D,EAAOkD,kBAAmB,EAClDxK,KAAKi+D,iBAAmB,EAAGn4D,EAAM1b,2BACjC4V,KAAK64C,uBAAyBvxC,EAAO8B,qBAE1Bm7D,gBAAoB,MAC7BvkE,KAAKwkE,iBAAmB,IAAID,iBAG9BvkE,KAAKykE,SAAWC,EAAc1kE,KAAKg6C,QAAQzvC,aAE3CvK,KAAKykE,SAAS1Y,OAAO,QAAU,SAAQr/C,KAASQ,EAAM,KAEtD,MAAMniB,EAAMuc,EAAOvc,IACnB40B,MAAM50B,EAAK45E,EAAmB3kE,KAAKykE,SAAUzkE,KAAKskE,iBAAkBtkE,KAAKwkE,mBAAmB36D,KAAK+a,IAC/F,KAAM,EAAG+3C,EAAemD,wBAAwBl7C,EAASvkB,QACvD,MAAO,EAAGs8D,EAAe8C,2BAA2B76C,EAASvkB,OAAQtV,GAGvEiV,KAAKi+D,gBAAgBtzE,UAErBqV,KAAK0zD,QAAU9uC,EAASgI,KAAKlW,cAC5BzL,MAAMjL,KAAKi+D,gBAAgBrzE,QAC9BoV,KAAK0L,WAAa,KAGhByS,2BACF,OAAOne,KAAK64C,sBAGRjiC,OAAO,sDACLy9B,EAAK4pB,gBAAgBxzE,QAC3B,MACE1E,QACA8wB,cACQw9B,EAAKqf,QAAQ98C,OAEvB,OAAIC,EACK,CACL9wB,QACA8wB,SAIJw9B,EAAKqF,SAAW3zD,EAAMgD,WAElBsrD,EAAK3oC,YACP2oC,EAAK3oC,WAAW,CACdkB,OAAQynC,EAAKqF,UAKV,CACL3zD,MAFa,IAAIwC,WAAWxC,GAAOmG,OAGnC2qB,MAAM,KAzBG/K,GA6BbyL,OAAO1sB,GACDmV,KAAK0zD,SACP1zD,KAAK0zD,QAAQn8C,OAAO1sB,GAGlBmV,KAAKwkE,kBACPxkE,KAAKwkE,iBAAiBr3D,YAUdy3D,yBAA2B,GAG/B,6BAA6BC,IAE5B,IAAIC,EAAeF,yBAAyBC,IAC5C,QAAqBt7E,IAAjBu7E,EACH,OAAOA,EAAan/E,QAGrB,IAAIo/E,EAASH,yBAAyBC,IAAY,CAGjDl/E,QAAS,IAIVF,2BAAoBo/E,IAAUE,EAAQA,EAAOp/E,QAASC,qBAG/Cm/E,EAAOp/E,QAIzB,IAAIq/E,oBAAsB,GAE1B,MAAC,MACD,IAAIr/E,GAAUq/E,oBAGdn/E,OAAOC,eAAeH,GAAS,aAAe,CAC5CI,OAAO,IAETF,OAAOC,eAAeH,GAAS,kBAAoB,CACjDga,YAAY,EACZnV,IAAK,WACH,OAAOy6E,EAAkBhqB,mBAG7Bp1D,OAAOC,eAAeH,GAAS,iBAAmB,CAChDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMle,kBAGjB/B,OAAOC,eAAeH,GAAS,sBAAwB,CACrDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMxe,uBAGjBzB,OAAOC,eAAeH,GAAS,sBAAwB,CACrDga,YAAY,EACZnV,IAAK,WACH,OAAO2b,EAAgBqD,uBAG3B3jB,OAAOC,eAAeH,GAAS,sBAAwB,CACrDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMhf,uBAGjBjB,OAAOC,eAAeH,GAAS,eAAiB,CAC9Cga,YAAY,EACZnV,IAAK,WACH,OAAO06E,EAAK3/D,gBAGhB1f,OAAOC,eAAeH,GAAS,sBAAwB,CACrDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMjf,uBAGjBhB,OAAOC,eAAeH,GAAS,MAAQ,CACrCga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMlf,OAGjBf,OAAOC,eAAeH,GAAS,wBAA0B,CACvDga,YAAY,EACZnV,IAAK,WACH,OAAO06E,EAAK5/D,yBAGhBzf,OAAOC,eAAeH,GAAS,gBAAkB,CAC/Cga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAe0c,iBAG1B58B,OAAOC,eAAeH,GAAS,YAAc,CAC3Cga,YAAY,EACZnV,IAAK,WACH,OAAO06E,EAAKhgE,aAGhBrf,OAAOC,eAAeH,GAAS,oBAAsB,CACnDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMrf,qBAGjBZ,OAAOC,eAAeH,GAAS,iBAAmB,CAChDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMtf,kBAGjBX,OAAOC,eAAeH,GAAS,gBAAkB,CAC/Cga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAeyc,iBAG1B38B,OAAOC,eAAeH,GAAS,8BAAgC,CAC7Dga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAekS,+BAG1BpyB,OAAOC,eAAeH,GAAS,cAAgB,CAC7Cga,YAAY,EACZnV,IAAK,WACH,OAAO26E,EAAK/P,eAGhBvvE,OAAOC,eAAeH,GAAS,uBAAyB,CACtDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAM1f,wBAGjBP,OAAOC,eAAeH,GAAS,8BAAgC,CAC7Dga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAM3f,+BAGjBN,OAAOC,eAAeH,GAAS,OAAS,CACtCga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAM7f,QAGjBJ,OAAOC,eAAeH,GAAS,iBAAmB,CAChDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAM9f,kBAGjBH,OAAOC,eAAeH,GAAS,WAAa,CAC1Cga,YAAY,EACZnV,IAAK,WACH,OAAO2wD,EAAW6P,YAGtBnlE,OAAOC,eAAeH,GAAS,QAAU,CACvCga,YAAY,EACZnV,IAAK,WACH,OAAO06E,EAAKngE,SAGhBlf,OAAOC,eAAeH,GAAS,0BAA4B,CACzDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAM1b,2BAGjBvE,OAAOC,eAAeH,GAAS,yBAA2B,CACxDga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAMhb,0BAGjBjF,OAAOC,eAAeH,GAAS,cAAgB,CAC7Cga,YAAY,EACZnV,IAAK,WACH,OAAO06E,EAAKv/D,eAGhB9f,OAAOC,eAAeH,GAAS,qBAAuB,CACpDga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAe4c,sBAG1B98B,OAAOC,eAAeH,GAAS,wBAA0B,CACvDga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAeid,yBAG1Bn9B,OAAOC,eAAeH,GAAS,qBAAuB,CACpDga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAewd,sBAG1B19B,OAAOC,eAAeH,GAAS,YAAc,CAC3Cga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAe6d,aAG1B/9B,OAAOC,eAAeH,GAAS,aAAe,CAC5Cga,YAAY,EACZnV,IAAK,WACH,OAAOub,EAAewV,cAG1B11B,OAAOC,eAAeH,GAAS,kBAAoB,CACjDga,YAAY,EACZnV,IAAK,WACH,OAAO46E,GAAYlW,mBAGvBrpE,OAAOC,eAAeH,GAAS,SAAW,CACxCga,YAAY,EACZnV,IAAK,WACH,OAAOsb,EAAM3X,UAGjBtI,OAAOC,eAAeH,GAAS,UAAY,CACzCga,YAAY,EACZnV,IAAK,WACH,OAAO06E,EAAKr/D,WAIhB,IAAIC,EAAQlgB,oBAAoB,GAE5Bs/E,EAAOt/E,oBAAoB,GAE3BmgB,EAAiBngB,oBAAoB,GAErCq/E,EAAoBr/E,oBAAoB,IAExCugB,EAAkBvgB,oBAAoB,IAEtCwgB,EAAWxgB,oBAAoB,GAE/Bw/E,GAAcx/E,oBAAoB,IAElCu/E,EAAOv/E,oBAAoB,IAE3Bu1D,EAAav1D,oBAAoB,IAKnC,GAAIwgB,EAAS3B,SAAU,CACrB,MACEi4D,iBACE92E,oBAAoB,KAEvB,EAAGs/E,EAAKt/D,4BAA4B4B,GAC5B,IAAIk1D,EAAcl1D,QAEtB,CACL,MACE45D,oBACEx7E,oBAAoB,KAGtBk+E,kBACEl+E,oBAAoB,KAEvB,EAAGs/E,EAAKt/D,4BAA4B4B,IAC9B,EAAGzB,EAAe8d,iBAAiBrc,EAAOzc,KACtC,IAAI+4E,EAAet8D,GAGrB,IAAI45D,EAAiB55D,MAzPjC,GA+PgBw9D,qBApggBA,GARfD,OAAOp/E,QAAUH,gCCF8BA,uBASxC,IACQ,MACP,aACA,IAAIC,EAAuB,EAG9B,CAACC,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ0/E,uBAAyB1/E,EAAQ2/E,wBAA0B3/E,EAAQ4/E,8BAAgC5/E,EAAQ6/E,mCAAgC,EAEnJ,IAAIC,EAA4B7/E,EAAoB,GAEhD8/E,EAAc9/E,EAAoB,GAElC+/E,EAAoB//E,EAAoB,GAExCggF,EAA6BhgF,EAAoB,GAEjDigF,EAAsBjgF,EAAoB,GAE1CkgF,EAAqBlgF,EAAoB,GAsB7CD,EAAQ6/E,8BApBR,QACEO,6BAA6BC,EAASC,EAASr4D,EAAoB,KAAM6vC,EAAqB,GAAIC,GAAc,EAAMwoB,EAAOR,EAAYS,SAAUvoB,GAAkB,EAAOwoB,EAAsB,KAAMpoB,EAAa,KAAMqoB,EAAsB,KAAM/yD,GAAsB,MAC3Q,OAAO,IAAImyD,EAA0Ba,uBAAuB,CAC1DN,UACAC,UACAxoB,qBACAC,cACAH,YAAa,IAAIooB,EAAkBY,kBACnCL,OACAt4D,oBACAgwC,kBACAwoB,sBACAC,sBACAroB,aACA1qC,2BAiBN3tB,EAAQ4/E,8BATR,QACEiB,6BAA6BP,GAC3B,OAAO,IAAIL,EAA2Ba,uBAAuB,CAC3DR,cAsBNtgF,EAAQ2/E,wBAdR,QACEoB,uBAAuBC,EAAcx2D,EAAW6C,EAAUu8C,GAAuB,EAAO/L,EAAUojB,GAChG,OAAO,IAAIf,EAAoBgB,iBAAiB,CAC9CF,eACAx2D,YACA6C,WACAu8C,uBACA/L,WACAojB,kBAqBNjhF,EAAQ0/E,uBAbR,QACEyB,sBAAsBd,EAASC,EAASr4D,EAAoB,KAAMq9C,EAAU,MAC1E,OAAO,IAAI6a,EAAmBiB,gBAAgB,CAC5Cf,UACAC,UACAr4D,oBACA2vC,YAAa,IAAIooB,EAAkBY,kBACnCtb,eAUC,CAACvlE,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ2gF,4BAAyB,EAEjC,IAAIU,EAAYphF,EAAoB,GAEhC8/E,EAAc9/E,EAAoB,GA2FtCD,EAAQ2gF,uBAzFR,QACErmE,aACE+lE,UACAC,UACA1oB,cACAC,kBACA5vC,oBAAoB,KACpB6vC,qBAAqB,GACrBC,eAAc,EACdwoB,OAAOR,EAAYS,SACnBvoB,mBAAkB,EAClBwoB,sBAAsB,KACtBC,sBAAsB,KACtBroB,aAAa,KACb1qC,sBAAsB,OAEtBtT,KAAKgmE,QAAUA,EACfhmE,KAAKimE,QAAUA,EACfjmE,KAAKu9C,YAAcA,EACnBv9C,KAAKw9C,gBAAkBA,EACvBx9C,KAAKy9C,mBAAqBA,EAC1Bz9C,KAAK09C,YAAcA,EACnB19C,KAAKkmE,KAAOA,EACZlmE,KAAK4N,kBAAoBA,EACzB5N,KAAK49C,gBAAkBA,EACvB59C,KAAKsd,qBAAuB8oD,EAC5BpmE,KAAKinE,qBAAuBZ,EAC5BrmE,KAAK+9C,YAAcC,EACnBh+C,KAAKknE,qBAAuB5zD,EAC5BtT,KAAKqsB,IAAM,KACXrsB,KAAKmnE,YAAa,EAGdr0D,OAAOE,EAAUf,EAAS,WAAW,gCACzC,MAAOK,EAAarC,GAAe,EAAO6tC,EAAe,YAAcpzD,QAAQ+f,IAAI,CAAC/I,EAAKukE,QAAQj0D,eAAe,CAC9GC,WACEvQ,EAAK4b,qBAAsB5b,EAAKulE,uBAEpC,GAAIvlE,EAAKylE,YAAqC,IAAvB70D,EAAYhqB,OACjC,OAGF,MAAMgzD,EAAa,CACjBtoC,SAAUA,EAASiU,MAAM,CACvBpV,UAAU,IAEZwa,IAAK3qB,EAAK2qB,IACV/Z,cACAuK,KAAMnb,EAAKukE,QACXxoB,mBAAoB/7C,EAAK+7C,mBACzBC,YAAah8C,EAAKg8C,YAClBH,YAAa77C,EAAK67C,YAClBC,gBAAiB97C,EAAK87C,gBACtB5vC,kBAAmBlM,EAAKkM,kBACxBgwC,gBAAiBl8C,EAAKk8C,gBACtB3tC,eACA6tC,eACAE,WAAYt8C,EAAKq8C,YACjBzqC,oBAAqB5R,EAAKwlE,sBAGxBxlE,EAAK2qB,IACP26C,EAAU/rB,gBAAgBjsB,OAAOssB,IAEjC55C,EAAK2qB,IAAMnjB,SAAS8a,cAAc,OAClCtiB,EAAK2qB,IAAIi1B,UAAY,kBACrB5/C,EAAKskE,QAAQ1hD,YAAY5iB,EAAK2qB,KAC9BivB,EAAWjvB,IAAM3qB,EAAK2qB,IAEtB26C,EAAU/rB,gBAAgBnoC,OAAOwoC,GAEjC55C,EAAKwkE,KAAKl1C,UAAUtvB,EAAK2qB,OAtCcjrB,GA0C3CmW,SACEvX,KAAKmnE,YAAa,EAGpBC,QACOpnE,KAAKqsB,MAIVrsB,KAAKqsB,IAAImzB,QAAS,MASdulB,IAIR,IAAIsC,EAGFA,SADS1/D,OAAW,KAAeA,OAAO,wBAC/BA,OAAO,wBAEPkzC,EAAQ,MAGrBkqB,EAAOp/E,QAAU0hF,GAIV,CAAC3hF,EAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQwgF,cAAW,EACnBxgF,EAAQ2hF,cAsFR,WAAuBC,GACrB,OAAOC,EAAmBD,GAAU5/C,gBAAkB4/C,GAtFxD5hF,EAAQ8hF,gBAAkBA,EAC1B,MAAMC,EAAuB,CAC3BC,SAAU,oBACVC,cAAe,qCACfC,uBAAwB,oCACxBC,uBAAwB,oCACxBC,gCAAiC,qBACjCC,0CAA2C,KAC3CC,+CAAgD,KAChDC,mDAAoD,WACpDC,oDAAqD,YACrDC,sCAAuC,KACvCC,sCAAuC,KACvCC,0CAA2C,SAC3CC,yCAA0C,QAC1CC,+CAAgD,uDAChDC,oDAAqD,iEACrDC,mCAAoC,MACpCC,kCAAmC,KACnCC,uBAAwB,gBACxB,uBAAwB,iBACxB,qCAAsC,gEACtCC,kBAAmB,oBACnBC,cAAe,gBACfC,iBAAkB,gBAClBC,kBAAmB,6BACnBC,iBAAkB,iDAClBC,oBAAqB,8CACrB,wBAAyB,iCACzB,0BAA2B,mCAC3B,8BAA+B,4BAC/B,gCAAiC,8BACjCC,eAAgB,mBAChBC,mBAAoB,yCACpBC,cAAe,uBACfC,YAAa,mBACbC,WAAY,iBACZC,WAAY,iBACZC,gBAAiB,8CACjBC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,iBACjBC,kBAAmB,cACnBC,mBAAoB,aACpBC,QAAS,gBACTC,cAAe,2CACfC,mBAAoB,iCACpBC,mBAAoB,oBACpBC,0BAA2B,8BAC3BC,uBAAwB,4DACxBC,mBAAoB,qDACpBC,mBAAoB,6DAGtB,WAAyB18E,EAAKkgC,GAC5B,OAAQlgC,OACD,mBACHA,EAAO,oBAAkC,IAAfkgC,EAAKjhB,MAAc,MAAQ,WACrD,UAEG,yBACHjf,EAAO,0BAAwC,IAAfkgC,EAAKmT,MAAc,MAAQ,WAI/D,OAAOymC,EAAqB95E,IAAQ,GAGtC,MAAM45E,EAAqB,CACzB+C,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJrqD,GAAI,QACJsqD,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,SAiCNxlF,EAAQwgF,SAhBS,CACTiF,gBAAchqE,cAClB,MAAO,SADWA,GAIdiqE,iBAAejqE,cACnB,MAAO,OADYA,GAIf5W,KAAIoD,EAAKkgC,EAAO,KAAM8O,EAAW6qC,EAAgB75E,EAAKkgC,KAAO1sB,cACjE,OApBJ,WAAyB4jB,EAAM8I,GAC7B,OAAKA,EAIE9I,EAAKl5B,QAAQ,uBAAwB,CAAC2e,EAAK1K,IACzCA,KAAQ+tB,EAAOA,EAAK/tB,GAAQ,KAAOA,EAAO,MAJ1CilB,EAkBAsmD,CAAgB1uC,EAAU9O,IADgC1sB,GAI7D4vB,UAAUgnB,GAAS52C,qBAOpB,CAAC1b,EAAyBC,EAASC,qBAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ4gF,kBAAoB5gF,EAAQ4lF,eAAiB5lF,EAAQ6lF,gBAAa,EAE1E,IAAIC,EAAY7lF,EAAoB,GAEpC,MACM4lF,EAAa,CACjBh4E,KAAM,EACNk4E,KAAM,EACNC,MAAO,EACPC,OAAQ,EACRC,IAAK,GAIP,WAA2BtpB,GACzBx3D,MACAs0D,SACAysB,MACA9sD,WAAU,GACR,IACF,IAAKj0B,GAAsB,iBAARA,EACjB,MAAM,IAAI0U,MAAM,0CAGlB,MAAMssE,GAAkB,EAAGN,EAAUO,sBAAsBjhF,GAEvDi0B,EACFujC,EAAK16C,KAAO06C,EAAK1C,MAAQksB,GAEzBxpB,EAAK16C,KAAO,GACZ06C,EAAK1C,MAAS,aAAYksB,IAE1BxpB,EAAKa,QAAU,KACN,GAIX,IAAI6oB,EAAY,GAEhB,OAAQ5sB,QACDmsB,EAAWh4E,KACd,WAEGg4E,EAAWE,KACdO,EAAY,QACZ,WAEGT,EAAWG,MACdM,EAAY,SACZ,WAEGT,EAAWI,OACdK,EAAY,UACZ,WAEGT,EAAWK,IACdI,EAAY,OAIhB1pB,EAAKlD,OAAS4sB,EACd1pB,EAAKupB,IAAqB,iBAARA,EAAmBA,EAzDd,+BAQzBnmF,EAAQ6lF,WAAaA,EAoDrB,cAGEvrE,aACEujD,WACA0oB,qBAAqB,KACrBC,kBAAkB,KAClBC,yBAAwB,GACtB,IA8CJ1wD,WArDAA,UAAiB,IAAIvK,KAQnBnR,KAAKwjD,SAAWA,EAChBxjD,KAAKksE,mBAAqBA,EAC1BlsE,KAAKmsE,gBAAkBA,EACvBnsE,KAAKqsE,qBAAsB,EAC3BrsE,KAAKssE,uBAAyBF,EAC9BpsE,KAAKhV,QAAU,KACfgV,KAAKusE,YAAc,KACnBvsE,KAAKwsE,UAAY,KACjBxsE,KAAKysE,WAAa,KAGpBC,YAAYH,EAAavhF,EAAU,MACjCgV,KAAKhV,QAAUA,EACfgV,KAAKusE,YAAcA,EACnBtxD,QAAKvZ,GAAe8V,QAGtBm1D,UAAUH,GACRxsE,KAAKwsE,UAAYA,EAGnBI,WAAWH,GACTzsE,KAAKysE,WAAaA,EAGhBI,iBACF,OAAO7sE,KAAKusE,YAAcvsE,KAAKusE,YAAY1+D,SAAW,EAGpDgP,WACF,OAAO7c,KAAKwsE,UAAUM,kBAGpBjwD,SAAK92B,GACPia,KAAKwsE,UAAUM,kBAAoB/mF,EAGjC2rB,eACF,OAAO1R,KAAKwsE,UAAUO,cAGpBr7D,aAAS3rB,GACXia,KAAKwsE,UAAUO,cAAgBhnF,EA+C3Bs9D,gBAAgB7rB,GAAM,sCAC1B,IAAKr2B,EAAKorE,YACR,OAGF,IAAIS,EAAWC,EAEK,iBAATz1C,GACTw1C,EAAYx1C,EACZy1C,QAAqB9rE,EAAKorE,YAAYj+D,eAAekpB,KAErDw1C,EAAY,KACZC,QAAqBz1C,GAGlBz2B,MAAMmpC,QAAQ+iC,GAKnB1sD,OAAKgY,MAAL5f,OAA4B6e,EAAMw1C,EAAWC,GAJ3ClgF,QAAQynB,MAAO,oCAAmCy4D,kDAAkEz1C,QAhB5Fp2B,GAuB5B8rE,SAASv+C,GACP,IAAK3uB,KAAKusE,YACR,OAGF,MAAMr+D,EAA4B,iBAARygB,GAAoB3uB,KAAKwsE,UAAUW,sBAAsBx+C,IAAc,EAANA,EAErF1gC,OAAOC,UAAUggB,IAAeA,EAAa,GAAKA,GAAclO,KAAK6sE,YAKvE7sE,KAAKysE,aACPzsE,KAAKysE,WAAWW,sBAChBptE,KAAKysE,WAAWY,SAASn/D,IAG3BlO,KAAKwsE,UAAUc,mBAAmB,CAChCp/D,gBAVAnhB,QAAQynB,MAAO,6BAA4Bma,2BAc/C6zB,kBAAkBD,EAAMx3D,EAAK03D,GAAY,GACvCD,EAAkBD,EAAM,CACtBx3D,MACAs0D,OAAQoD,EAAY+oB,EAAWG,MAAQ3rE,KAAKksE,mBAC5CJ,IAAK9rE,KAAKmsE,gBACVntD,QAAShf,KAAKqsE,sBAIlBlpB,mBAAmB3rB,GACjB,GAAoB,iBAATA,GACT,GAAIA,EAAKlvC,OAAS,EAChB,OAAO0X,KAAKsjD,aAAa,IAAM/+C,OAAOizB,YAE/Bz2B,MAAMmpC,QAAQ1S,GAAO,CAC9B,MAAM3rC,EAAMojC,KAAKC,UAAUsI,GAE3B,GAAI3rC,EAAIvD,OAAS,EACf,OAAO0X,KAAKsjD,aAAa,IAAM/+C,OAAO1Y,IAI1C,OAAOmU,KAAKsjD,aAAa,IAG3BA,aAAa1gC,GACX,OAAQ5iB,KAAKhV,SAAW,IAAM43B,EAGhC2qD,QAAQ3wD,SACN,IAAK5c,KAAKusE,YACR,OAGF,IAAIr+D,EAAYspB,EAEhB,GAAI5a,EAAK0G,SAAS,KAAM,CACtB,MAAM9b,GAAU,EAAGikE,EAAU+B,kBAAkB5wD,GAc/C,GAZIpV,EAAOsS,IAAI,WACb9Z,KAAKwjD,SAASC,SAAS,kBAAmB,CACxCn8C,OAAQtH,KACR6iB,MAAOrb,EAAOhd,IAAI,UAAUsB,QAAQ,KAAM,IAC1C2hF,aAAuC,SAAzBjmE,EAAOhd,IAAI,YAIzBgd,EAAOsS,IAAI,UACb5L,EAAkC,EAArB1G,EAAOhd,IAAI,SAAe,GAGrCgd,EAAOsS,IAAI,QAAS,CACtB,MAAM4zD,EAAWlmE,EAAOhd,IAAI,QAAQghE,MAAM,KACpCmiB,EAAUD,EAAS,GACnBE,EAAgBC,WAAWF,GAE5BA,EAAQrqD,SAAS,OAKJ,QAAhBu2C,GAAqC,SAAZ8T,EACvBn2C,EAAO,CAAC,KAAM,CACZz3B,KAAM4tE,IAEa,SAAhB9T,GAAsC,UAAZ8T,GAAmC,SAAZA,GAAkC,UAAZA,EAC5En2C,EAAO,CAAC,KAAM,CACZz3B,KAAM4tE,GACLD,EAASplF,OAAS,EAAkB,EAAdolF,EAAS,GAAS,MACtB,SAAhB7T,EACmB,IAAxBz1D,EAAa9b,OACXyE,QAAQynB,MAAM,6DAEdgjB,EAAO,CAAC,KAAM,CACZz3B,KAAM4tE,GACS,EAAdD,EAAS,GAAsB,EAAdA,EAAS,GAAsB,EAAdA,EAAS,GAAsB,EAAdA,EAAS,IAGjE3gF,QAAQynB,MAAO,4BAA2Bm5D,iCArB5Cn2C,EAAO,CAAC,KAAM,CACZz3B,KAAM,OACL2tE,EAASplF,OAAS,EAAkB,EAAdolF,EAAS,GAAS,KAAMA,EAASplF,OAAS,EAAkB,EAAdolF,EAAS,GAAS,KAAME,EAAgBA,EAAgB,IAAMD,GAwBrIn2C,EACFx3B,KAAKwsE,UAAUc,mBAAmB,CAChCp/D,WAAYA,GAAclO,KAAK6c,KAC/BixD,UAAWt2C,EACXu2C,qBAAqB,IAEd7/D,IACTlO,KAAK6c,KAAO3O,GAGV1G,EAAOsS,IAAI,aACb9Z,KAAKwjD,SAASC,SAAS,WAAY,CACjCn8C,OAAQtH,KACRqmC,KAAM7+B,EAAOhd,IAAI,cAIjBgd,EAAOsS,IAAI,cACb9Z,KAAKqjD,gBAAgB77C,EAAOhd,IAAI,kBAE7B,CACLgtC,EAAOloC,SAASstB,GAEhB,IACE4a,EAAOvI,KAAKiuC,MAAM1lC,GAEbz2B,MAAMmpC,QAAQ1S,KACjBA,EAAOA,EAAKprC,mBAIhB,GAAoB,iBAATorC,GAAqB+zC,OAAepkD,MAAfokD,OAA2C/zC,GAEzE,YADAx3B,KAAKqjD,gBAAgB7rB,GAIvBzqC,QAAQynB,MAAO,4BAA2BllB,SAASstB,oCAIvD2mC,mBAAmBlO,GACjB,OAAQA,OACD,SACHr1C,KAAKysE,YAAYuB,OACjB,UAEG,YACHhuE,KAAKysE,YAAYwB,UACjB,UAEG,WACHjuE,KAAKwsE,UAAU0B,WACf,UAEG,WACHluE,KAAKwsE,UAAU2B,eACf,UAEG,WACHnuE,KAAK6c,KAAO7c,KAAK6sE,WACjB,UAEG,YACH7sE,KAAK6c,KAAO,EAOhB7c,KAAKwjD,SAASC,SAAS,cAAe,CACpCn8C,OAAQtH,KACRq1C,WAIJ+4B,aAAaC,EAASC,GACpB,IAAKA,EACH,OAGF,MAAMC,EAAyB,IAAhBD,EAAQvuD,IAAa,GAAEuuD,EAAQxuD,OAAU,GAAEwuD,EAAQxuD,OAAOwuD,EAAQvuD,MACjF9E,QAAKvZ,GAAe1Y,IAAIulF,EAAQF,GAGlCG,kBAAkBF,GAChB,IAAKA,EACH,OAAO,KAGT,MAAMC,EAAyB,IAAhBD,EAAQvuD,IAAa,GAAEuuD,EAAQxuD,OAAU,GAAEwuD,EAAQxuD,OAAOwuD,EAAQvuD,MACjF,OAAO9E,QAAKvZ,GAAelX,IAAI+jF,IAAW,KAG5CE,cAAcvgE,GACZ,OAAOlO,KAAKwsE,UAAUiC,cAAcvgE,GAGtCwgE,aAAaxgE,GACX,OAAOlO,KAAKwsE,UAAUkC,aAAaxgE,KArUvC,QACExM,cAqDA62B,iBAAsB,SAACo2C,EAAS3B,EAAY,KAAMC,GAChD,MAAM2B,EAAU3B,EAAa,GAC7B,IAAI/+D,EAEJ,GAAuB,iBAAZ0gE,GAAoC,OAAZA,GAGjC,GAFA1gE,EAAalO,KAAKwuE,kBAAkBI,IAE/B1gE,EAOH,YANAlO,KAAKusE,YAAYp+D,aAAaygE,GAAS/kE,KAAKsG,IAC1CnQ,KAAKouE,aAAaj+D,EAAY,EAAGy+D,GACjCruD,QAAKgY,MAAL5f,UAA4Bg2D,EAAS3B,EAAWC,KAC/ChiE,MAAM,KACPle,QAAQynB,MAAO,2CAA0Co6D,+CAA0DD,aAErH,KAEO1gF,OAAOC,UAAU0gF,GAI1B,YADA7hF,QAAQynB,MAAO,2CAA0Co6D,sDAAiED,OAF1HzgE,EAAa0gE,EAAU,GAMpB1gE,GAAcA,EAAa,GAAKA,EAAalO,KAAK6sE,WACrD9/E,QAAQynB,MAAO,2CAA0CtG,4CAA0DygE,QAIjH3uE,KAAKysE,aACPzsE,KAAKysE,WAAWW,sBAChBptE,KAAKysE,WAAWviF,KAAK,CACnB8iF,YACAC,eACA/+D,gBAIJlO,KAAKwsE,UAAUc,mBAAmB,CAChCp/D,aACA4/D,UAAWb,EACXb,sBAAuBpsE,KAAKssE,2BA0OzBnlD,iBAA2B,SAACqQ,GACjC,IAAKz2B,MAAMmpC,QAAQ1S,GACjB,OAAO,EAGT,MAAMq3C,EAAar3C,EAAKlvC,OAExB,GAAIumF,EAAa,EACf,OAAO,EAGT,MAAMhyD,EAAO2a,EAAK,GAElB,KAAsB,iBAAT3a,GAAqB5uB,OAAOC,UAAU2uB,EAAKiD,MAAQ7xB,OAAOC,UAAU2uB,EAAKkD,MAAW9xB,OAAOC,UAAU2uB,IAASA,GAAQ,GACjI,OAAO,EAGT,MAAMiyD,EAAOt3C,EAAK,GAElB,GAAsB,iBAATs3C,GAA0C,iBAAdA,EAAK/uE,KAC5C,OAAO,EAGT,IAAIgvE,GAAY,EAEhB,OAAQD,EAAK/uE,UACN,MACH,GAAmB,IAAf8uE,EACF,OAAO,EAGT,UAEG,UACA,OACH,OAAsB,IAAfA,EAAe,IAEnB,WACA,YACA,WACA,QACH,GAAmB,IAAfA,EACF,OAAO,EAGT,UAEG,OACH,GAAmB,IAAfA,EACF,OAAO,EAGTE,GAAY,EACZ,cAGA,OAAO,EAGX,QAAStmF,EAAI,EAAGA,EAAIomF,EAAYpmF,IAAK,CACnC,MAAMumF,EAAQx3C,EAAK/uC,GAEnB,KAAuB,iBAAVumF,GAAsBD,GAAuB,OAAVC,GAC9C,OAAO,EAIX,OAAO,GAnEFtzD,GAxUTrZ,EAwUS8kB,GAwETxhC,EAAQ4lF,eAAiBA,EA0DzB5lF,EAAQ4gF,kBAxDR,QACEtmE,cACED,KAAKqsE,qBAAsB,EAGzBQ,iBACF,OAAO,EAGLhwD,WACF,OAAO,EAGLA,SAAK92B,IAEL2rB,eACF,OAAO,EAGLA,aAAS3rB,IAEPs9D,gBAAgB7rB,GAAM,0BAE5B01C,SAASv+C,IAET6zB,kBAAkBD,EAAMx3D,EAAK03D,GAAY,GACvCD,EAAkBD,EAAM,CACtBx3D,MACAi0B,QAAShf,KAAKqsE,sBAIlBlpB,mBAAmB3rB,GACjB,MAAO,IAGT8rB,aAAa1mC,GACX,MAAO,IAGT2wD,QAAQ3wD,IAER2mC,mBAAmBlO,IAEnB+4B,aAAaC,EAASC,IAEtBG,cAAcvgE,GACZ,OAAO,EAGTwgE,aAAaxgE,GACX,OAAO,KASJ,CAACxoB,EAAyBC,eAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQspF,iBAAmBtpF,EAAQupF,iBAAmBvpF,EAAQwpF,cAAgBxpF,EAAQypF,cAAgBzpF,EAAQ0pF,WAAa1pF,EAAQ2pF,YAAc3pF,EAAQ4pF,WAAa5pF,EAAQ6pF,kBAAoB7pF,EAAQ8pF,gBAAkB9pF,EAAQ+pF,aAAe/pF,EAAQgqF,YAAchqF,EAAQiqF,sBAAwBjqF,EAAQkqF,YAAclqF,EAAQmqF,UAAYnqF,EAAQoqF,UAAYpqF,EAAQqqF,eAAiBrqF,EAAQsqF,oBAAsBtqF,EAAQuqF,oBAAsBvqF,EAAQwqF,cAAgBxqF,EAAQyqF,qBAAkB,EAC9ezqF,EAAQ0qF,2BAgjBR,YAAoCC,IAClC,IAAIC,GAAahB,EAAWiB,SACxBC,GAAapB,EAAW77E,KAE5B,OAAQ88E,QACD,aACHC,GAAahB,EAAWmB,KACxB,UAEG,YACH,UAEG,cACHH,GAAahB,EAAWmB,SAErB,gBACHD,GAAapB,EAAWsB,IACxB,UAEG,eACHJ,GAAahB,EAAWmB,SAErB,iBACHD,GAAapB,EAAWuB,KAI5B,MAAO,CACLL,cACAE,gBA5kBJ9qF,EAAQkrF,yBAglBR,YAAkCxqC,IAChC,OAAQA,QACD,UACH,OAAOipC,EAAY97E,SAEhB,YACH,OAAO87E,EAAYwB,WAEhB,cACH,OAAOxB,EAAYyB,YAEhB,iBACH,OAAOzB,EAAY0B,gBAEhB,QACH,OAAO1B,EAAY2B,OAGvB,OAAO3B,EAAY97E,MAjmBrB7N,EAAQurF,oBAsOR,YAA6B/pD,IAC3B,GAAIr9B,KAAKu5C,MAAMlc,MAAOA,GACpB,MAAO,CAACA,GAAG,GAGb,MAAMgqD,GAAO,EAAIhqD,GAGjB,GAAIgqD,GAFU,EAGZ,MAAO,CAAC,EAHI,GAIP,GAAIrnF,KAAKu5C,MAAM8tC,MAAUA,GAC9B,MAAO,CAAC,EAAGA,IAGb,MAAMC,EAAKjqD,GAAI,EAAIgqD,GAAOhqD,GAC1B,IAsBIquB,GAtBAnzC,EAAI,EACJjB,EAAI,EACJuC,GAAI,EACJ/B,GAAI,EAER,OAAa,CACX,MAAMH,GAAIY,EAAIsB,GACRiuC,GAAIxwC,EAAIQ,GAEd,GAAIgwC,GAlBQ,EAmBV,MAGEw/B,GAAM3vE,GAAImwC,IACZjuC,GAAIlC,GACJG,GAAIgwC,KAEJvvC,EAAIZ,GACJL,EAAIwwC,IAMR,OACE4D,GADE47B,EAAK/uE,EAAIjB,EAAIuC,GAAI/B,GAAIwvE,EACdA,IAAOjqD,GAAI,CAAC9kB,EAAGjB,GAAK,CAACA,EAAGiB,GAExB+uE,IAAOjqD,GAAI,CAACxjB,GAAG/B,IAAK,CAACA,GAAG+B,IAG5B6xC,IAlRT7vD,EAAQ0rF,kCAAoCA,EAC5C1rF,EAAQ2rF,sBAAwBA,GAChC3rF,EAAQ4rF,0BA+hBR,aACE,IAAIC,GAAUtoE,SACVuoE,GAAqBD,GAAQhrB,eAAiBgrB,GAAQjkB,cAAc,UAExE,KAAOkkB,IAAoBC,YACzBF,GAAUC,GAAmBC,WAC7BD,GAAqBD,GAAQhrB,eAAiBgrB,GAAQjkB,cAAc,UAGtE,OAAOkkB,IAviBT9rF,EAAQgsF,kBAuRR,aACEpgE,QACAD,YACAD,YAEA,MAAOlO,EAAIC,EAAIC,EAAIC,IAAMiO,GACnBqgE,GAAoBvgE,GAAS,KAAQ,EACrCmO,IAASnc,EAAKF,GAAM,GAAKmO,GACzBmO,IAAUnc,GAAKF,GAAM,GAAKkO,GAChC,MAAO,CACLkO,MAAOoyD,GAAoBnyD,GAASD,GACpCC,OAAQmyD,GAAoBpyD,GAAQC,KAjSxC95B,EAAQksF,mBA+TR,YACEC,YACAC,SACAC,qBAAmB,EACnBC,cAAa,EACbC,OAAM,IAEN,MAAM1lD,EAAMslD,GAASK,UACfhgB,GAAS3lC,EAAMslD,GAASM,aACxB3lD,GAAOqlD,GAASvrB,WAChB2L,GAAQzlC,GAAOqlD,GAASO,YAexBllC,GAAU,GACVgL,GAAM,IAAIpnC,IACVuhE,GAAWP,GAAMzpF,OACvB,IAAIiqF,GAAyBjB,GAAsBS,GAAOE,EAV1D,YAA4C1gE,IAC1C,MAAMymC,GAAUzmC,GAAK8a,IACfmmD,GAAcx6B,GAAQy6B,WAAaz6B,GAAQ06B,WAEjD,OAAOR,EAAMM,GAActgB,GADNsgB,GAAcx6B,GAAQq6B,YACO5lD,IAVpD,YAAqClb,IACnC,MAAMymC,GAAUzmC,GAAK8a,IAErB,OAAOsmD,GADuBC,UAAY56B,GAAQ66B,UAAY76B,GAAQo6B,aAC/C5lD,IAerB+lD,GAAyB,GAAKA,GAAyBD,KAAaL,IACtEM,GAAyBlB,EAAkCkB,GAAwBR,GAAOvlD,IAG5F,IAAIsmD,EAAWb,EAAa/f,IAAQ,EAEpC,QAASzpE,GAAI8pF,GAAwB9pF,GAAI6pF,GAAU7pF,KAAK,CACtD,MAAM8oB,GAAOwgE,GAAMtpF,IACbuvD,GAAUzmC,GAAK8a,IACf0mD,GAAe/6B,GAAQy6B,WAAaz6B,GAAQ06B,WAC5CM,GAAgBh7B,GAAQ46B,UAAY56B,GAAQ66B,UAC5CI,GAAYj7B,GAAQq6B,YACpBa,GAAal7B,GAAQo6B,aACrBe,GAAYJ,GAAeE,GAC3BG,GAAaJ,GAAgBE,GAEnC,IAAiB,IAAbJ,EACEM,IAAcjhB,KAChB2gB,EAAWM,aAEHnB,EAAac,GAAeC,IAAiBF,EACvD,MAGF,GAAIM,IAAc5mD,GAAOwmD,IAAiB7gB,IAAUghB,IAAa1mD,IAAQsmD,IAAgB7gB,GACvF,SAGF,MAAMmhB,GAAevpF,KAAKqY,IAAI,EAAGqqB,EAAMwmD,IAAiBlpF,KAAKqY,IAAI,EAAGixE,GAAajhB,IAG3EmhB,IAAiBL,IAFHnpF,KAAKqY,IAAI,EAAGsqB,GAAOsmD,IAAgBjpF,KAAKqY,IAAI,EAAGgxE,GAAYjhB,MAE7B+gB,GAElD9lC,GAAQjjD,KAAK,CACXqkB,GAAIgD,GAAKhD,GACT4Y,EAAG4rD,GACH3rD,EAAG4rD,GACHzhE,QACAgiE,SARsBL,GAAaG,IAAgBH,GAEpBI,GAAgB,IAAM,EAOrDE,aAA8B,IAAhBF,GAAsB,IAEtCn7B,GAAIhjC,IAAI5D,GAAKhD,IAGf,MAAMjM,EAAQ6qC,GAAQ,GAChBsmC,GAAOtmC,GAAQA,GAAQ7kD,OAAS,GAEtC,OAAI0pF,IACF7kC,GAAQqlB,KAAK,SAAUnwD,GAAGjB,IACxB,MAAMsyE,GAAKrxE,GAAEkxE,QAAUnyE,GAAEmyE,QAEzB,OAAIzpF,KAAKoa,IAAIwvE,IAAM,MACTA,GAGHrxE,GAAEkM,GAAKnN,GAAEmN,KAIb,CACLjM,QACAmxE,QACA1B,MAAO5kC,GACPgL,SA3ZJxyD,EAAQguF,sBA0cR,WAA+B5jE,IAC7B,OAAOA,GAAKyP,OAASzP,GAAK0P,QA1c5B95B,EAAQiuF,gBA6bR,WAAyB1hD,IACvB,OAAOjkC,OAAOC,UAAUgkC,KAAUA,GAAQ,IAAO,GA7bnDvsC,EAAQkuF,kBAgcR,WAA2BxtC,IACzB,OAAOp4C,OAAOC,UAAUm4C,KAASxgD,OAAOuxB,OAAOm4D,GAAYjsD,SAAS+iB,KAASA,KAASkpC,EAAW14E,SAhcnGlR,EAAQmuF,kBAmcR,WAA2BztC,IACzB,OAAOp4C,OAAOC,UAAUm4C,KAASxgD,OAAOuxB,OAAOi4D,GAAY/rD,SAAS+iB,KAASA,KAASgpC,EAAWx4E,SAncnGlR,EAAQouF,qBA2ZR,WAA8Br2D,IAC5BA,GAAI4pC,kBA3ZN3hE,EAAQquF,yBAyaR,WAAkCt2D,IAChC,IAAIu2D,GAAQC,EAA6Bx2D,IAMzC,OALmC,IAK/BA,GAAIy2D,UACNF,IAASG,IALuB,IAMvB12D,GAAIy2D,YACbF,IAL2B,IAQtBA,IArbTtuF,EAAQuuF,6BAA+BA,EACvCvuF,EAAQ6nF,iBAqKR,WAA0B3qD,IACxB,MAAMrb,GAAS,IAAI2J,IAEnB,UAAYvjB,GAAK7H,KAAU,IAAIsuF,gBAAgBxxD,IAC7Crb,GAAOxe,IAAI4E,GAAI+5B,cAAe5hC,GAGhC,OAAOyhB,IA3KT7hB,EAAQqmF,qBAiLR,WAA8BngF,GAAKyoF,IAAmB,GACpD,MAAmB,iBAARzoF,IACTkB,QAAQynB,MAAO,kCACR3oB,KAGLyoF,KACFzoF,GAAMA,GAAIC,QAAQyoF,GAA2B,MAGxC1oF,GAAIC,QAAQ0oF,EAAsB,MA1L3C7uF,EAAQ8uF,cAuQR,YAAuBttD,GAAGkF,IACxB,MAAMnrB,GAAIimB,GAAIkF,GACd,OAAa,IAANnrB,GAAUimB,GAAIr9B,KAAK0pC,MAAMrM,GAAIjmB,GAAImrB,KAxQ1C1mC,EAAQ+uF,eAuFR,WAAwB18B,GAAS28B,GAAMC,IAAgB,GACrD,IAAI9lB,EAAS9W,GAAQ68B,aAErB,IAAK/lB,EAEH,YADA/hE,QAAQynB,MAAM,4CAIhB,IAAI5C,EAAUomC,GAAQ46B,UAAY56B,GAAQ66B,UACtClhE,EAAUqmC,GAAQy6B,WAAaz6B,GAAQ06B,WAE3C,KAAO5jB,EAAOsjB,eAAiBtjB,EAAOgmB,cAAgBhmB,EAAOujB,cAAgBvjB,EAAOimB,aAAeH,KAAkB9lB,EAAOlH,UAAUotB,SAAS,kBAA0D,WAAtCC,iBAAiBnmB,GAAQomB,WAK1L,GAJAtjE,GAAWk9C,EAAO8jB,UAClBjhE,GAAWm9C,EAAO2jB,WAClB3jB,EAASA,EAAO+lB,cAEX/lB,EACH,OAIA6lB,UACeprF,IAAborF,GAAKnoD,MACP5a,GAAW+iE,GAAKnoD,UAGAjjC,IAAdorF,GAAKloD,OACP9a,GAAWgjE,GAAKloD,KAChBqiC,EAAOvI,WAAa50C,IAIxBm9C,EAAOqjB,UAAYvgE,GAtHrBjsB,EAAQwvF,YAyHR,WAAqBC,GAAiBngE,IACpC,MAAMogE,GAAiB,SAAU33D,GAC3B43D,IAIJA,EAAM3tE,OAAO0a,sBAAsB,WACjCizD,EAAM,KACN,MAAMC,GAAWH,GAAgB7uB,WAC3BivB,GAAQl0C,EAAMk0C,MAEhBD,KAAaC,KACfl0C,EAAM4wB,MAAQqjB,GAAWC,IAG3Bl0C,EAAMk0C,MAAQD,GACd,MAAME,GAAWL,GAAgBjD,UAC3BuD,GAAQp0C,EAAMo0C,MAEhBD,KAAaC,KACfp0C,EAAMq0C,KAAOF,GAAWC,IAG1Bp0C,EAAMo0C,MAAQD,GACdxgE,GAASqsB,OAIPA,EAAQ,CACZ4wB,OAAO,EACPyjB,MAAM,EACNH,MAAOJ,GAAgB7uB,WACvBmvB,MAAON,GAAgBjD,UACvByD,cAAeP,IAEjB,IAAIC,EAAM,KACVF,UAAgBx8D,iBAAiB,SAAUy8D,IAAgB,GACpD/zC,GA5JT37C,EAAQsqF,oBADoB,OAG5BtqF,EAAQwqF,cADc,EAGtBxqF,EAAQuqF,oBADoB,IAG5BvqF,EAAQmqF,UADU,GAGlBnqF,EAAQoqF,UADU,GAGlBpqF,EAAQwpF,cADc,EAGtBxpF,EAAQqqF,eADe,KAGvBrqF,EAAQ6pF,kBADkB,GAG1B7pF,EAAQupF,iBADiB,EAQzBvpF,EAAQ8pF,gBANgB,CACtBoG,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,SAAU,GASZrwF,EAAQiqF,sBANsB,CAC5B/4E,QAAS,EACTo/E,OAAQ,EACRC,SAAU,EACVC,WAAY,GAGd,MAAM7G,EAAc,CAClBz4E,SAAS,EACTrD,KAAM,EACNs9E,OAAQ,EACRC,QAAS,EACTC,YAAa,EACbC,OAAQ,GAEVtrF,EAAQ2pF,YAAcA,EAKtB3pF,EAAQ+pF,aAJa,CACnB0G,OAAQ,SACRC,IAAK,OAQP1wF,EAAQypF,cALc,CACpBr/E,QAAS,EACTC,OAAQ,EACRsmF,eAAgB,GAGlB,MAAM/G,EAAa,CACjB14E,SAAS,EACT25E,SAAU,EACV+F,WAAY,EACZC,QAAS,EACT9F,KAAM,GAER/qF,EAAQ4pF,WAAaA,EACrB,MAAMF,EAAa,CACjBx4E,SAAS,EACTrD,KAAM,EACNm9E,IAAK,EACLC,KAAM,GAERjrF,EAAQ0pF,WAAaA,EAErB1pF,EAAQyqF,gBADgB,eAgBxBzqF,EAAQkqF,YAbR,QACE5vE,cACE,MAAMw2E,GAAa9uE,OAAO8yB,kBAAoB,EAC9Cz6B,KAAK02E,GAAKD,GACVz2E,KAAKyC,GAAKg0E,GAGR72C,aACF,OAAmB,IAAZ5/B,KAAK02E,IAAwB,IAAZ12E,KAAKyC,KA4FjC,MAAM+xE,EAAuB,QACvBD,GAA4B,eAelC,YAA+Bn+D,GAAOugE,GAAW5uD,GAAQ,GACvD,IAAI6uD,EAAW7uD,GACX8uD,EAAWzgE,GAAM9tB,OAAS,EAE9B,GAAIuuF,EAAW,IAAMF,GAAUvgE,GAAMygE,IACnC,OAAOzgE,GAAM9tB,OAGf,GAAIquF,GAAUvgE,GAAMwgE,IAClB,OAAOA,EAGT,KAAOA,EAAWC,GAAU,CAC1B,MAAMC,EAAeF,EAAWC,GAAY,EAGxCF,GAFgBvgE,GAAM0gE,IAGxBD,EAAWC,EAEXF,EAAWE,EAAe,EAI9B,OAAOF,EAuET,WAA2C7zB,GAAOgvB,GAAOvlD,IACvD,GAAIu2B,GAAQ,EACV,OAAOA,GAGT,IAAIg0B,EAAMhF,GAAMhvB,IAAO12B,IACnB2qD,EAAUD,EAAInE,UAAYmE,EAAIlE,UAE9BmE,GAAWxqD,KACbuqD,EAAMhF,GAAMhvB,GAAQ,GAAG12B,IACvB2qD,EAAUD,EAAInE,UAAYmE,EAAIlE,WAGhC,QAASpqF,EAAIs6D,GAAQ,EAAGt6D,GAAK,IAC3BsuF,EAAMhF,GAAMtpF,GAAG4jC,MAEX0qD,EAAInE,UAAYmE,EAAIlE,UAAYkE,EAAI3E,cAAgB4E,MAHxBvuF,EAOhCs6D,GAAQt6D,EAGV,OAAOs6D,GAwGT,WAAsCrlC,IACpC,IAAIu2D,GAAQnqF,KAAKgqC,MAAMpW,GAAIu5D,OAAQv5D,GAAIw5D,QACvC,MAAMhlD,GAAQpoC,KAAK4mE,MAAMhzC,GAAIw5D,OAAQx5D,GAAIu5D,QAEzC,OAAI,IAAQntF,KAAKoM,GAAKg8B,IAASA,GAAQ,IAAOpoC,KAAKoM,KACjD+9E,IAASA,IAGJA,GAmCT,MAAMhF,EAAmB,IAAIvkF,QAAQ,SAAUC,IAC7Cgd,OAAO0a,sBAAsB13B,MAE/BhF,EAAQspF,iBAAmBA,EAkBzB7iC,kBAAU,WACJpsC,KAAKm3E,eACPn3E,KAAKqsB,IAAIu7B,UAAUzyC,IAAI,kBAIzBnV,KAAKqsB,IAAIu7B,UAAU1jC,OAAO,iBAE1BkzD,SADqB/yD,gBACjBX,MAAM2zD,YAAY,wBAA0B,GAAEr3E,KAAKs3E,eA+C3D3xF,EAAQgqF,YAnER,QACE1vE,YAAYsO,IACV,GAUFmN,YAVMlI,UAAUlrB,OAAS,EACrB,MAAM,IAAImX,MAAM,gHAGlBO,KAAKmtC,SAAU,EACfntC,KAAKqsB,IAAMnjB,SAASqkD,cAAch/C,GAAK,cACvCvO,KAAKu3E,IAAMv3E,KAAKqsB,IAAI8nC,WACpBn0D,KAAKuzE,QAAU,EAcbA,cACF,OAAOvzE,KAAKs3E,SAGV/D,YAAQ5kD,IACV3uB,KAAKm3E,eAAiBpvE,MAAM4mB,IAC5B3uB,KAAKs3E,SAjCT,WAAepqF,GAAGnD,GAAKoY,IACrB,OAAOrY,KAAKC,IAAID,KAAKqY,IAAIjV,GAAGnD,IAAMoY,IAgChBq1E,CAAM7oD,GAAK,EAAG,KAC9BpO,QAAK6rB,OAALzzB,WAGF8+D,SAASC,IACP,IAAKA,GACH,OAIF,MAAMC,EAAiB15B,GADEkW,WACQyjB,YAAcF,GAAOE,YAElDD,EAAiB,GAEnBP,SADqB/yD,gBACjBX,MAAM2zD,YAAY,2BAA6B,GAAEM,OAIzDvQ,QACOpnE,KAAKmtC,UAIVntC,KAAKmtC,SAAU,EACfntC,KAAKu3E,IAAI3vB,UAAUzyC,IAAI,WAGzB0iE,OACM73E,KAAKmtC,UAITntC,KAAKmtC,SAAU,EACfntC,KAAKu3E,IAAI3vB,UAAU1jC,OAAO,cA2EvB,CAACx+B,EAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ8gF,4BAAyB,EACjC,MAAMqR,EAAwB,CAC5BC,SAAU,KACVC,iBAAkB,KAClBC,KAAM,QACNC,KAAM,QACNC,IAAK,QACLC,MAAO,OACPC,UAAW,OACX73D,EAAG,KACH8mB,EAAG,UACHgxC,MAAO,KACPC,OAAQ,OACRC,IAAK,QACLC,IAAK,KACLC,KAAM,KACNC,GAAI,KACJC,OAAQ,KACRC,KAAM,OACNC,MAAO,OACPC,KAAM,OACNC,KAAM,KACNC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,QAAS,KACTC,GAAI,KACJ3iF,GAAI,KACJ4iF,EAAG,OACHC,GAAI,WACJC,MAAO,KACPC,MAAO,QACPC,GAAI,MACJC,GAAI,eACJC,GAAI,OACJC,MAAO,eACPC,MAAO,KACPC,MAAO,KACPC,QAAS,KACTC,OAAQ,SACRC,QAAS,KACTC,SAAU,MAENC,EAAkB,WAiExBz0F,EAAQ8gF,uBA/DR,QACExmE,aACEgmE,YAEAjmE,KAAKimE,QAAUA,EAGjBnzD,OAAOunE,GACL,OAAOr6E,KAAKs6E,MAAMD,GAGpBE,eAAeC,EAAeC,QACFlxF,IAAtBixF,EAAch2B,KAChBi2B,EAAYnxD,aAAa,aAAckxD,EAAch2B,UAG9Bj7D,IAArBixF,EAAcjsE,IAChBksE,EAAYnxD,aAAa,YAAakxD,EAAcjsE,SAG3BhlB,IAAvBixF,EAAcE,MAChBD,EAAYnxD,aAAa,OAAQkxD,EAAcE,MAInDJ,MAAM5/B,GACJ,IAAKA,EACH,OAAO,KAGT,MAAM1C,EAAU9uC,SAAS8a,cAAc,QAEvC,GAAI,SAAU02B,EAAM,CAClB,MACEigC,QACEjgC,EACErvD,EAAQsvF,EAAKtvF,MAAM+uF,GAErB/uF,GACF2sD,EAAQ1uB,aAAa,OAAQ,WAC7B0uB,EAAQ1uB,aAAa,aAAcj+B,EAAM,KAChCysF,EAAsB6C,IAC/B3iC,EAAQ1uB,aAAa,OAAQwuD,EAAsB6C,IAMvD,GAFA36E,KAAKu6E,eAAe7/B,EAAM1C,GAEtB0C,EAAK7nC,SACP,GAA6B,IAAzB6nC,EAAK7nC,SAASvqB,QAAgB,OAAQoyD,EAAK7nC,SAAS,GACtD7S,KAAKu6E,eAAe7/B,EAAK7nC,SAAS,GAAImlC,QAEtC,UAAW4iC,KAAOlgC,EAAK7nC,SACrBmlC,EAAQ1zB,YAAYtkB,KAAKs6E,MAAMM,IAKrC,OAAO5iC,KASJ,CAACtyD,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQkhF,sBAAmB,EAE3B,IAAIG,EAAYphF,EAAoB,GAqJpCD,EAAQkhF,iBAjJR,QACE5mE,aACE0mE,eACAnjB,WACArzC,YACA6C,WACA4zD,cAAc,KACdrX,wBAAuB,IAEvBvvD,KAAK2mE,aAAeA,EACpB3mE,KAAKwjD,SAAWA,EAChBxjD,KAAKmW,YAAc,KACnBnW,KAAKsvD,oBAAsB,GAC3BtvD,KAAKqvD,kBAAoB,KACzBrvD,KAAK66E,eAAgB,EACrB76E,KAAKkO,WAAaiC,EAAY,EAC9BnQ,KAAKgT,SAAWA,EAChBhT,KAAK6uD,SAAW,GAChB7uD,KAAK86E,oBAAsB,KAC3B96E,KAAK4mE,YAAcA,EACnB5mE,KAAKuvD,qBAAuBA,EAE5BvvD,KAAK+6E,aAGPC,mBAGE,GAFAh7E,KAAK66E,eAAgB,GAEhB76E,KAAKuvD,qBAAsB,CAC9B,MAAM0rB,EAAe/xE,SAAS8a,cAAc,OAC5Ci3D,EAAa35B,UAAY,eACzBthD,KAAK2mE,aAAariD,YAAY22D,GAGhCj7E,KAAKwjD,SAASC,SAAS,oBAAqB,CAC1Cn8C,OAAQtH,KACRkO,WAAYlO,KAAKkO,WACjBgtE,YAAal7E,KAAK6uD,SAASvmE,SAI/BwqB,OAAO28C,EAAU,GACf,IAAMzvD,KAAKmW,cAAenW,KAAKqvD,mBAAsBrvD,KAAK66E,cACxD,OAGF76E,KAAKuX,SACLvX,KAAK6uD,SAASvmE,OAAS,EACvB0X,KAAK4mE,aAAauU,eAAen7E,KAAK6uD,SAAU7uD,KAAKsvD,qBACrD,MAAM8rB,EAAgBlyE,SAASmyE,yBAC/Br7E,KAAK86E,qBAAuB,EAAG9T,EAAU9X,iBAAiB,CACxD/4C,YAAanW,KAAKmW,YAClBk5C,kBAAmBrvD,KAAKqvD,kBACxBpR,UAAWm9B,EACXpoE,SAAUhT,KAAKgT,SACf67C,SAAU7uD,KAAK6uD,SACfS,oBAAqBtvD,KAAKsvD,oBAC1BG,UACAF,qBAAsBvvD,KAAKuvD,uBAE7BvvD,KAAK86E,oBAAoBrwF,QAAQof,KAAK,KACpC7J,KAAK2mE,aAAariD,YAAY82D,GAE9Bp7E,KAAKg7E,mBAELh7E,KAAK4mE,aAAa0U,UACjB,SAAUzwF,MAGf0sB,SACMvX,KAAK86E,sBACP96E,KAAK86E,oBAAoBvjE,SACzBvX,KAAK86E,oBAAsB,MAG7B96E,KAAK4mE,aAAa2U,UAGpBC,qBAAqBhlE,GACnBxW,KAAKuX,SACLvX,KAAKqvD,kBAAoB74C,EAG3BilE,eAAetlE,GACbnW,KAAKuX,SACLvX,KAAKmW,YAAcA,EAGrB4kE,aACE,MAAM1uD,EAAMrsB,KAAK2mE,aACjB,IAAI+U,EAAkB,KACtBrvD,EAAIzT,iBAAiB,YAAa8E,IAChC,GAAI1d,KAAKuvD,sBAAwBvvD,KAAK86E,oBAQpC,OAPA96E,KAAK86E,oBAAoB1mB,gBAAe,QAEpCsnB,IACF5nE,aAAa4nE,GACbA,EAAkB,OAMtB,MAAMxuE,EAAMmf,EAAIkhC,cAAc,iBAE9B,IAAKrgD,EACH,OAGF,IAAIyuE,EAAYj+D,EAAI2hC,SAAWhzB,EAG/B,GAFAsvD,EAAYA,GAAmF,SAAtEh0E,OAAOstE,iBAAiB/nE,GAAK0uE,iBAAiB,oBAEnED,EAAW,CACb,MAAME,EAAYxvD,EAAIyvD,wBAChB56E,EAAIpX,KAAKqY,IAAI,GAAIub,EAAIq+D,MAAQF,EAAUrvD,KAAOqvD,EAAUp8D,QAC9DvS,EAAIwW,MAAM8I,KAAW,IAAJtrB,GAASy0D,QAAQ,GAAK,IAGzCzoD,EAAI06C,UAAUzyC,IAAI,YAEpBkX,EAAIzT,iBAAiB,UAAW,KAC9B,GAAI5Y,KAAKuvD,sBAAwBvvD,KAAK86E,oBAQpC,YAPAY,EAAkBxjE,WAAW,KACvBlY,KAAK86E,qBACP96E,KAAK86E,oBAAoB1mB,gBAAe,GAG1CsnB,EAAkB,MAjIA,MAsItB,MAAMxuE,EAAMmf,EAAIkhC,cAAc,kBAEzBrgD,IAILA,EAAIwW,MAAM8I,IAAM,GAChBtf,EAAI06C,UAAU1jC,OAAO,gBAUpB,CAACx+B,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQohF,qBAAkB,EAE1B,IAAIC,EAAYphF,EAAoB,GAqFpCD,EAAQohF,gBAnFR,QACE9mE,aACE+lE,UACAC,UACAr4D,oBAAoB,KACpB2vC,cACA0N,UAAU,OAEVjrD,KAAKgmE,QAAUA,EACfhmE,KAAKimE,QAAUA,EACfjmE,KAAK4N,kBAAoBA,EACzB5N,KAAKu9C,YAAcA,EACnBv9C,KAAKirD,QAAUA,EACfjrD,KAAKqsB,IAAM,KACXrsB,KAAKmnE,YAAa,EAGpBr0D,OAAOE,EAAUf,EAAS,WACxB,GAAe,UAAXA,EAAoB,CACtB,MAAMqpC,EAAa,CACjBtoC,SAAUA,EAASiU,MAAM,CACvBpV,UAAU,IAEZwa,IAAKrsB,KAAKqsB,IACV4+B,QAASjrD,KAAKirD,QACdr9C,kBAAmB5N,KAAK4N,kBACxB2vC,YAAav9C,KAAKu9C,YAClBtrC,UAEIoa,EAAMnjB,SAAS8a,cAAc,OACnChkB,KAAKgmE,QAAQ1hD,YAAY+H,GACzBivB,EAAWjvB,IAAMA,EAEjB,MAAMmpB,EAASwxB,EAAUhc,SAASl4C,OAAOwoC,GAEzC,OAAO5wD,QAAQC,QAAQ6qD,GAGzB,OAAOx1C,KAAKimE,QAAQrzD,SAAS/I,KAAKohD,IAChC,GAAIjrD,KAAKmnE,aAAelc,EACtB,MAAO,CACL4D,SAAU,IAId,MAAMvT,EAAa,CACjBtoC,SAAUA,EAASiU,MAAM,CACvBpV,UAAU,IAEZwa,IAAKrsB,KAAKqsB,IACV4+B,UACAr9C,kBAAmB5N,KAAK4N,kBACxB2vC,YAAav9C,KAAKu9C,YAClBtrC,UAGF,OAAIjS,KAAKqsB,IACA26C,EAAUhc,SAASh8B,OAAOssB,IAGnCt7C,KAAKqsB,IAAMnjB,SAAS8a,cAAc,OAClChkB,KAAKgmE,QAAQ1hD,YAAYtkB,KAAKqsB,KAC9BivB,EAAWjvB,IAAMrsB,KAAKqsB,IACf26C,EAAUhc,SAASl4C,OAAOwoC,MAChCrwC,MAAMuJ,IACPznB,QAAQynB,MAAMA,KAIlB+C,SACEvX,KAAKmnE,YAAa,EAGpBC,QACOpnE,KAAKqsB,MAIVrsB,KAAKqsB,IAAImzB,QAAS,MASf,CAAC95D,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQq2F,UAAYr2F,EAAQs2F,yBAAsB,EAElD,IAAIxQ,EAAY7lF,EAAoB,GAEhCs2F,EAAet2F,EAAoB,IAIvCD,EAAQq2F,UAFR,gBAAwBE,EAAaC,aAsBrCx2F,EAAQs2F,oBAlBR,gBAAkCC,EAAaC,WAC7CC,aACEj8E,MAAMi8E,aAENp8E,KAAKq8E,YAAc5Q,EAAU8D,WAAWmB,KACxC1wE,KAAKs8E,YAAc7Q,EAAU4D,WAAW77E,KAGtC+8E,eAAWlqC,IAEfk2C,qBAEI9L,eAAWpqC,IAEfm2C,wBAQK,CAAC92F,EAAyBC,EAASC,oFAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ82F,gBAAkB92F,EAAQ+2F,kBAAoB/2F,EAAQw2F,gBAAa,EAE3E,IAAInV,EAAYphF,EAAoB,GAEhC6lF,EAAY7lF,EAAoB,GAEhC6/E,EAA4B7/E,EAAoB,GAEhD8/E,EAAc9/E,EAAoB,GAElC+2F,EAAiB/2F,EAAoB,IAErCg3F,EAAuBh3F,EAAoB,IAE3C+/E,EAAoB//E,EAAoB,GAExCggF,EAA6BhgF,EAAoB,GAEjDi3F,EAAoBj3F,EAAoB,IAExCigF,EAAsBjgF,EAAoB,GAE1CkgF,EAAqBlgF,EAAoB,GAE7C,MACMk3F,EAA2B,oBAC3BL,EAAkB,CACtBM,uBAAwB,KACxBC,qBAAsB,KACtBC,sBAAuB,KAEzBt3F,EAAQ82F,gBAAkBA,EAE1B,QAIEx8E,YAAY8P,GAmDZ2L,WAtDAA,UAAO,IAAI3K,KACX2K,UAAQ,GAGNyB,QAAKqI,EAAQzV,GAGf7lB,KAAKqnB,GACH,MAAMpiB,EAAM8rB,QAAK7kB,GAEbjH,EAAI2qB,IAAIvI,IACVpiB,EAAIulB,OAAOnD,GAGbpiB,EAAIgmB,IAAI5D,GAEJpiB,EAAI4gB,KAAOkL,QAAKuK,IAClBjF,QAAKnc,MAALuU,WAIJukE,OAAOC,EAASC,EAAY,MAC1BjgE,QAAKqI,EAAQ23D,GACb,MAAMhuF,EAAM8rB,QAAK7kB,GAEjB,GAAIgnF,EAAW,CACb,MAAM9vF,GAAK6B,EAAI4gB,KACf,IAAItnB,GAAI,EAER,UAAW8oB,MAAQpiB,EAMjB,GALIiuF,EAAUtjE,IAAIvI,GAAKhD,MACrBpf,EAAIulB,OAAOnD,IACXpiB,EAAIgmB,IAAI5D,OAGJ9oB,GAAI6E,GACR,MAKN,KAAO6B,EAAI4gB,KAAOkL,QAAKuK,IACrBjF,QAAKnc,MAALuU,WAIJmB,IAAIvI,GACF,OAAO0J,QAAK7kB,GAAK0jB,IAAIvI,IAGtB8rE,OAAOC,YACN,OAAOriE,QAAK7kB,GAAKtI,QAnDnBsI,cACAovB,cAqDAphB,iBAAiB,WACf,MAAMm5E,EAAYtiE,QAAK7kB,GAAKtI,OAAO0vF,OAAOz3F,MAC1Cw3F,GAAW3xE,UACXqP,QAAK7kB,GAAKse,OAAO6oE,IAKrB53F,EAAQ+2F,kBAAoBA,EAE5B,eASEz8E,YAAYhV,GACV,GAmQFywB,WAiBAA,WAgTAA,WAgEAA,WAgCAA,WA+HAA,WA6RMA,WAuBNA,YAkBAA,YAlnCAA,UAAU,MACVA,WAAkBsrD,EAAUp/E,eAAeqI,cAC3CyrB,UAA0B,MAC1BA,YAAqB,GACrBA,WAA2B,GAC3BA,WAAuB,MACvBA,WAAsB,MAGhB1b,KAAKC,cAAgBk8E,GACvB,MAAM,IAAI18E,MAAM,iCAGlB,MAAMg+E,EAAgB,WAEtB,GAAIzW,EAAUnhE,UAAY43E,EACxB,MAAM,IAAIh+E,MAAO,oBAAmBunE,EAAUnhE,+CAA+C43E,OAM/F,GAHAz9E,KAAKi+C,UAAYhzD,EAAQgzD,UACzBj+C,KAAK03E,OAASzsF,EAAQysF,QAAUzsF,EAAQgzD,UAAUy/B,kBAEF,QAA1C19E,KAAKi+C,WAAW0/B,QAAQC,eAAkE,QAAvC59E,KAAK03E,QAAQiG,QAAQC,cAC5E,MAAM,IAAIn+E,MAAM,+CAGlB,GAAIO,KAAKi+C,UAAU42B,cAA8D,aAA9CI,iBAAiBj1E,KAAKi+C,WAAW1xB,SAClE,MAAM,IAAI9sB,MAAM,kDAGlBO,KAAKwjD,SAAWv4D,EAAQu4D,SACxBxjD,KAAKu9C,YAActyD,EAAQsyD,aAAe,IAAIooB,EAAkBY,kBAChEvmE,KAAKw9C,gBAAkBvyD,EAAQuyD,iBAAmB,KAClDx9C,KAAK69E,eAAiB5yF,EAAQ4yF,gBAAkB,KAChD79E,KAAK89E,kBAAoB7yF,EAAQ8yF,kBAAoB,KACrD/9E,KAAKg+E,kBAAoB/yF,EAAQ+yF,oBAAqB,EACtDh+E,KAAKi+E,cAAgBhzF,EAAQgzF,eAAiBxS,EAAU2D,cAAcp/E,OACtEmtB,QAAK+zB,GAAkBjmD,EAAQgoB,gBAAkB+zD,EAAUp/E,eAAeqI,cAC1E+P,KAAKy9C,mBAAqBxyD,EAAQwyD,oBAAsB,GACxDz9C,KAAKk+E,sBAAwBjzF,EAAQizF,wBAAyB,EAC9Dl+E,KAAKm+E,SAAWlzF,EAAQkzF,UAAY1S,EAAUiE,aAAa0G,OAC3Dp2E,KAAKo+E,eAAiBnzF,EAAQmzF,iBAAkB,EAChDp+E,KAAKq+E,gBAAkBpzF,EAAQozF,gBAC/Br+E,KAAKkmE,KAAOj7E,EAAQi7E,MAAQR,EAAYS,SACxChpD,QAAKmhE,GAAqBrzF,EAAQszF,oBAAqB,GACvDv+E,KAAKuT,WAAatoB,EAAQsoB,YAAc,KAEpCtoB,EAAQsoB,cAAgBmS,IAAI84D,SAAS,QAASvzF,EAAQsoB,WAAWH,cAAgBsS,IAAI84D,SAAS,QAASvzF,EAAQsoB,WAAWgpB,gBACxHtxC,EAAQsoB,WAAWH,YAAcnoB,EAAQsoB,WAAWgpB,aACtDxvC,QAAQ8B,KAAK,oFAGfmR,KAAKuT,WAAa,MAGpBvT,KAAKy+E,uBAAyBxzF,EAAQyzF,eAEtC1+E,KAASy+E,uBACPz+E,KAAK0+E,eAAiB,IAAI9B,EAAqB+B,kBAC/C3+E,KAAK0+E,eAAe/R,UAAU3sE,OAE9BA,KAAK0+E,eAAiBzzF,EAAQyzF,eAGhC1+E,KAAK4+E,KAAO11E,SAASmb,gBACrBrkB,KAAK6+E,QAAU,EAAGpT,EAAU0J,aAAan1E,KAAKi+C,UAAWj+C,KAAK8+E,cAAchjE,KAAK9b,OACjFA,KAAK++E,sBAAwBtT,EAAUmE,sBAAsB/4E,QAC7DmJ,KAAKg/E,cAAgBh/E,KAAKi/E,aAAe,KAEzCj/E,KAAKo8E,aAEDp8E,KAAKg+E,mBACPh+E,KAAK03E,OAAO9vB,UAAUzyC,IAAI,qBAG5BnV,KAAKk/E,2BACLx0F,QAAQC,UAAUkf,KAAK,KACrB7J,KAAKwjD,SAASC,SAAS,iBAAkB,CACvCn8C,OAAQtH,SAKV6sE,iBACF,OAAO7sE,KAAKm/E,OAAO72F,OAGrB82F,YAAYr8B,GACV,OAAO/iD,KAAKm/E,OAAOp8B,GAGjBs8B,qBACF,QAAKr/E,KAAKs/E,iBAAiB5+D,SAIpB1gB,KAAKm/E,OAAOI,MAAM,SAAUC,GACjC,OAAOA,GAAUvZ,UAIjBvoB,kBACF,OAAOziC,QAAKi2B,MAAoB81B,EAAUp/E,eAAeqI,aAGvD2tD,sBACF,QAAS59C,KAAK89E,kBAGZhR,wBACF,OAAO9sE,KAAKy/E,mBAGV3S,sBAAkBn+C,GACpB,IAAK1gC,OAAOC,UAAUygC,GACpB,MAAM,IAAIlvB,MAAM,yBAGbO,KAAKusE,aAILvsE,KAAK0/E,sBAAsB/wD,GAAK,IACnC5hC,QAAQynB,MAAO,uBAAsBma,2BAIzC+wD,sBAAsB/wD,EAAKgxD,GAAuB,GAChD,GAAI3/E,KAAKy/E,qBAAuB9wD,EAC9B,OAAIgxD,GACFp/D,QAAKqxB,MAALj5B,YAGK,EAGT,KAAM,EAAIgW,GAAOA,GAAO3uB,KAAK6sE,YAC3B,OAAO,EAGT,MAAM+S,EAAW5/E,KAAKy/E,mBACtB,YAAKA,mBAAqB9wD,EAC1B3uB,KAAKwjD,SAASC,SAAS,eAAgB,CACrCn8C,OAAQtH,KACRkO,WAAYygB,EACZkxD,UAAW7/E,KAAK8/E,cAAcnxD,EAAM,IAAM,KAC1CixD,aAGED,GACFp/D,QAAKqxB,MAALj5B,YAGK,EAGLonE,uBACF,OAAO//E,KAAK8/E,cAAc9/E,KAAKy/E,mBAAqB,IAAM,KAGxDM,qBAAiBpxD,GACnB,IAAK3uB,KAAKusE,YACR,OAGF,IAAI1vD,EAAa,EAAN8R,EAEX,GAAI3uB,KAAK8/E,YAAa,CACpB,MAAMr3F,EAAIuX,KAAK8/E,YAAYhnE,QAAQ6V,GAE/BlmC,GAAK,IACPo0B,EAAOp0B,EAAI,GAIVuX,KAAK0/E,sBAAsB7iE,GAAM,IACpC9vB,QAAQynB,MAAO,sBAAqBma,2BAIpCqxD,mBACF,OAAOhgF,KAAKigF,gBAAkBxU,EAAU0D,cAAgBnvE,KAAKigF,cAAgBxU,EAAU0E,cAGrF6P,iBAAarxD,GACf,GAAI5mB,MAAM4mB,GACR,MAAM,IAAIlvB,MAAM,2BAGbO,KAAKusE,aAIVvsE,KAAKkgF,UAAUvxD,GAAK,GAGlBwxD,wBACF,OAAOngF,KAAKogF,mBAGVD,sBAAkBxxD,IACf3uB,KAAKusE,aAIVvsE,KAAKkgF,UAAUvxD,GAAK,GAGlBo+C,oBACF,OAAO/sE,KAAKqgF,eAGVtT,kBAAcr7D,GAChB,KAAM,EAAG+5D,EAAUmI,iBAAiBliE,GAClC,MAAM,IAAIjS,MAAM,iCAalB,IAVKO,KAAKusE,eAIV76D,GAAY,KAEG,IACbA,GAAY,KAGV1R,KAAKqgF,iBAAmB3uE,GAC1B,OAGF1R,KAAKqgF,eAAiB3uE,EACtB,MAAMxD,EAAalO,KAAKy/E,mBAClBa,EAAa,CACjB5uE,YAGF,UAAW8tE,MAAYx/E,KAAKm/E,OAC1BK,GAASxwD,OAAOsxD,GAGdtgF,KAAKogF,oBACPpgF,KAAKkgF,UAAUlgF,KAAKogF,oBAAoB,GAG1CpgF,KAAKwjD,SAASC,SAAS,mBAAoB,CACzCn8C,OAAQtH,KACR+sE,cAAer7D,EACfxD,eAGElO,KAAKy+E,uBACPz+E,KAAKgvB,SAILuxD,uBACF,OAAOvgF,KAAKusE,YAAcvsE,KAAKwgF,qBAAqB/1F,QAAU,KAG5Dg2F,sBACF,OAAOzgF,KAAKusE,YAAcvsE,KAAK0gF,2BAA2Bj2F,QAAU,KAGlEk2F,mBACF,OAAO3gF,KAAKusE,YAAcvsE,KAAKs/E,iBAAiB70F,QAAU,KAyC5DiiF,YAAYH,GAAa,WAqBvB,GApBIvsE,KAAKusE,cACPvsE,KAAKwjD,SAASC,SAAS,eAAgB,CACrCn8C,OAAQtH,OAGVA,KAAK4gF,mBAEL5gF,KAAKo8E,aAEDp8E,KAAK69E,gBACP79E,KAAK69E,eAAenR,YAAY,MAG9B1sE,KAAK89E,mBACP99E,KAAK89E,kBAAkBpR,YAAY,OAIvC1sE,KAAKusE,YAAcA,GAEdA,EACH,OAGF,MAAMz+D,EAAYy+D,EAAYz+D,UACxB++D,GAAaN,EAAY1+D,SACzB0yE,GAAmBhU,EAAYt+D,QAAQ,GACvCoF,GAA+Bk5D,EAAYr9D,2BAC3C2xE,GAAqB5lE,QAAKqjE,IAAqB/R,EAAYp9D,iBAAmBzkB,QAAQC,UAE5F,GAAIkiF,GAAa4P,EAAgBM,uBAAwB,CACvDhwF,QAAQ8B,KAAK,qFACb,MAAMw3C,GAAOrmC,KAAKq8E,YAAc5Q,EAAU8D,WAAWmB,KACrD1wE,KAAKwjD,SAASC,SAAS,oBAAqB,CAC1Cn8C,OAAQtH,KACRqmC,UAIJrmC,KAAKs/E,iBAAiB70F,QAAQof,KAAK,KACjC7J,KAAKwjD,SAASC,SAAS,cAAe,CACpCn8C,OAAQtH,KACR6sE,iBAED,QAEH7sE,KAAKg/E,cAAgBthE,KACnB,MAAM8hE,GAAWx/E,KAAKm/E,OAAOzhE,GAAIxP,WAAa,IAEzCsxE,IAILvkE,QAAKpG,GAAQ3qB,KAAKs1F,KAGpBx/E,KAAKwjD,SAASs9B,IAAI,aAAc9gF,KAAKg/E,eAErCh/E,KAAKi/E,aAAevhE,KACdA,GAAIqjE,cAAgB/gF,KAAK0gF,2BAA2BhgE,UAIxD1gB,KAAK0gF,2BAA2B/1F,QAAQ,CACtCq2F,UAAWtjE,GAAIsjE,YAGjBhhF,KAAKwjD,SAASy9B,KAAK,eAAgBjhF,KAAKi/E,cAExCj/E,KAAKi/E,aAAe,KAEhBhkE,QAAK0yC,MACPzkD,SAAS2P,oBAAoB,mBAAoBoC,QAAK0yC,KACtDxwC,QAAKwwC,GAAsB,SAI/B3tD,KAAKwjD,SAASs9B,IAAI,eAAgB9gF,KAAKi/E,cAEvCv0F,QAAQ+f,IAAI,CAAC81E,GAAkBM,KAAqBh3E,KAAK,EAAEq3E,GAAcC,OACvE,GAAI5U,IAAgBvsE,KAAKusE,YACvB,OAGFvsE,KAAKwgF,qBAAqB71F,QAAQu2F,IAElClhF,KAAKohF,8BAAgC/tE,GACrCkN,QAAK4sC,MAALx0C,UAA4BwoE,IAC5B,MAAME,GAAgBrhF,KAAKq8E,cAAgB5Q,EAAU8D,WAAWmB,KAAO,KAAO1wE,KAAK03E,OAC7EjmE,GAAQzR,KAAKggF,aACbhtE,GAAWkuE,GAAa1vE,YAAY,CACxCC,MAAOA,GAAQu1D,EAAUxkD,cAAcoD,mBAEnC07D,EAAmBthF,KAAKi+E,gBAAkBxS,EAAU2D,cAAcr/E,SAAY+d,EAAmB,KAAP9N,KAC1FuhF,EAAyBtmE,QAAKi2B,MAAoB81B,EAAUp/E,eAAemI,QAAUiQ,KAAO,KAC5FwhF,GAAkB1zE,EAAY9N,KAAO,KAE3C,QAASquE,GAAU,EAAGA,IAAWxB,KAAcwB,GAAS,CACtD,MAAMmR,GAAW,IAAI7C,EAAe8E,YAAY,CAC9CxjC,UAAWojC,GACX79B,SAAUxjD,KAAKwjD,SACfj1C,GAAI8/D,GACJ58D,SACAiwE,gBAAiB1uE,GAASiU,QAC1B5T,gCACAqrE,eAAgB1+E,KAAK0+E,eACrB4C,mBACArD,cAAej+E,KAAKi+E,cACpBsD,yBACAtuE,eAAgBgI,QAAKi2B,IACrBswC,mBACAG,uBAAwB3hF,KACxB4hF,uBAAwB5hF,KACxBy9C,mBAAoBz9C,KAAKy9C,mBACzB0gC,SAAUn+E,KAAKm+E,SACfC,eAAgBp+E,KAAKo+E,eACrBC,gBAAiBr+E,KAAKq+E,gBACtB9qE,WAAYvT,KAAKuT,WACjB2yD,KAAMlmE,KAAKkmE,OAGblmE,KAAKm/E,OAAOj1F,KAAKs1F,IAGnB,MAAMqC,GAAgB7hF,KAAKm/E,OAAO,GAE9B0C,KACFA,GAAcC,WAAWZ,IACzBlhF,KAAKu9C,YAAY6wB,aAAa,EAAG8S,GAAa9yE,MAGhDpO,KAASq8E,cAAgB5Q,EAAU8D,WAAWmB,KAC5CnwD,QAAK9e,MAALkX,WACS3Y,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,MACnDwM,KAAKw8E,oBAGPj8D,QAAKqR,MAALjZ,WAAoC9O,KAApCzI,EAAyC,YASvC,GARIxL,EAAKioF,gBACPjoF,EAAKioF,eAAenR,YAAYH,GAG9B32E,EAAKkoF,mBACPloF,EAAKkoF,kBAAkBpR,YAAYH,GAGjCA,EAAY18D,cAAcxG,kBAAoBwjE,GAAa4P,EAAgBO,qBAG7E,YAFApnF,EAAK0pF,iBAAiB30F,UAKxB,IAAIo3F,GAAelV,GAAa,EAEhC,GAAIkV,IAAgB,EAClBnsF,EAAK0pF,iBAAiB30F,eAKxB,QAAS0jF,GAAU,EAAGA,IAAWxB,KAAcwB,GAAS,CACtD,MAAM5jF,GAAU8hF,EAAYt+D,QAAQogE,IAASxkE,KAAKo8D,KAChD,MAAMuZ,GAAW5pF,EAAKupF,OAAO9Q,GAAU,GAElCmR,GAASvZ,SACZuZ,GAASsC,WAAW7b,IAGtBrwE,EAAK2nD,YAAY6wB,aAAaC,GAASpI,GAAQ73D,KAExB,KAAjB2zE,IACJnsF,EAAK0pF,iBAAiB30F,WAEvBE,KACDkC,QAAQynB,MAAO,sBAAqB65D,0BAAgCxjF,IAE7C,KAAjBk3F,IACJnsF,EAAK0pF,iBAAiB30F,YAItB0jF,GAAUoO,EAAgBQ,uBAA0B,UAChDxyF,QAIZuV,KAAKwjD,SAASC,SAAS,YAAa,CAClCn8C,OAAQtH,OAEVusE,EAAYn9D,cAAcvF,KAAK,EAC7Bhd,YAEI0/E,IAAgBvsE,KAAKusE,aAIrB1/E,GAAKm1F,WACPhiF,KAAK03E,OAAOgD,KAAO7tF,GAAKm1F,YAIxBhiF,KAAKy+E,uBACPz+E,KAAKgvB,WAEN/jB,MAAMpgB,KACPkC,QAAQynB,MAAM,8BAA+B3pB,IAE7CmV,KAAKs/E,iBAAiB10F,OAAOC,MAIjCo3F,cAAcC,GACZ,GAAKliF,KAAKusE,YAIV,CAAK2V,EAEEnhF,MAAYmpC,QAAQg4C,IAAWliF,KAAKusE,YAAY1+D,WAAaq0E,EAAO55F,OAIzE0X,KAAK8/E,YAAcoC,GAHnBliF,KAAK8/E,YAAc,KACnB/yF,QAAQynB,MAAO,wCAHfxU,KAAK8/E,YAAc,KAQrB,QAASr3F,EAAI,EAAG6E,EAAK0S,KAAKm/E,OAAO72F,OAAQG,EAAI6E,EAAI7E,IAC/CuX,KAAKm/E,OAAO12F,GAAG05F,aAAaniF,KAAK8/E,cAAcr3F,IAAM,OAIzD2zF,aACEp8E,KAAKm/E,OAAS,GACdn/E,KAAKy/E,mBAAqB,EAC1Bz/E,KAAKigF,cAAgBxU,EAAU0D,cAC/BnvE,KAAKogF,mBAAqB,KAC1BpgF,KAAK8/E,YAAc,KACnB3iE,QAAKtI,EAAU,IAAI6nE,EA1mBI,KA2mBvB18E,KAAKoiF,UAAY,KACjBpiF,KAAKqgF,eAAiB,EACtBrgF,KAAKohF,8BAAgC,KACrCphF,KAAKwgF,sBAAwB,EAAGxZ,EAAU58E,2BAC1C4V,KAAK0gF,4BAA8B,EAAG1Z,EAAU58E,2BAChD4V,KAAKs/E,kBAAoB,EAAGtY,EAAU58E,2BACtC4V,KAAKq8E,YAAc5Q,EAAU8D,WAAWiB,SACxCxwE,KAAKqiF,oBAAsB5W,EAAU8D,WAAW14E,QAChDmJ,KAAKs8E,YAAc7Q,EAAU4D,WAAW77E,KACxC2pB,QAAK4L,GAAuB,CAC1Bu5D,mBAAoB,EACpBC,YAAY,EACZC,MAAO,KAGLxiF,KAAKg/E,gBACPh/E,KAAKwjD,SAASy9B,KAAK,aAAcjhF,KAAKg/E,eAEtCh/E,KAAKg/E,cAAgB,MAGnBh/E,KAAKi/E,eACPj/E,KAAKwjD,SAASy9B,KAAK,eAAgBjhF,KAAKi/E,cAExCj/E,KAAKi/E,aAAe,MAGlBhkE,QAAK0yC,MACPzkD,SAAS2P,oBAAoB,mBAAoBoC,QAAK0yC,KACtDxwC,QAAKwwC,GAAsB,OAG7B3tD,KAAK03E,OAAOvhE,YAAc,GAE1BnW,KAAKu8E,oBAELv8E,KAAK03E,OAAO33B,gBAAgB,QAC5B//C,KAAK03E,OAAO9vB,UAAU1jC,OAAO44D,GAEQ,OAAjC7hE,QAAKwnE,KACPtlE,QAAK+zB,GAAkBj2B,QAAKwnE,IAC5BtlE,QAAKslE,EAA0B,OA4DnC3D,gBAC0B,IAApB9+E,KAAK6sE,YAIT7sE,KAAKgvB,SAuCP0zD,qBAAqBC,EAAUC,EAAUC,GAAW,EAAOC,IAAS,GAGlE,GAFA9iF,KAAKogF,mBAAqBwC,EAASx2F,WAE/Bm0B,QAAK3pB,MAAL+hB,UAAkBgqE,GASpB,YARIG,IACF9iF,KAAKwjD,SAASC,SAAS,gBAAiB,CACtCn8C,OAAQtH,KACRyR,MAAOkxE,EACPI,YAAaH,KAOnB5iF,KAAK4+E,KAAKl7D,MAAM2zD,YAAY,gBAAiBsL,GAE7C,MAAMrC,GAAa,CACjB7uE,MAAOkxE,GAGT,UAAWnD,MAAYx/E,KAAKm/E,OAC1BK,GAASxwD,OAAOsxD,IAKlB,GAFAtgF,KAAKigF,cAAgB0C,GAEhBE,EAAU,CACb,IACIrrD,GADA3a,GAAO7c,KAAKy/E,mBAGZz/E,KAAKoiF,aAAepiF,KAAKgjF,sBAAwBhjF,KAAKijF,8BACxDpmE,GAAO7c,KAAKoiF,UAAUl0E,WACtBspB,GAAO,CAAC,KAAM,CACZz3B,KAAM,OACLC,KAAKoiF,UAAU31D,KAAMzsB,KAAKoiF,UAAU51D,IAAK,OAG9CxsB,KAAKstE,mBAAmB,CACtBp/D,WAAY2O,GACZixD,UAAWt2C,GACXu2C,qBAAqB,IAIzB/tE,KAAKwjD,SAASC,SAAS,gBAAiB,CACtCn8C,OAAQtH,KACRyR,MAAOkxE,EACPI,YAAaD,GAASF,OAAWr5F,IAG/ByW,KAAKy+E,uBACPz+E,KAAKgvB,SAGPhvB,KAAKk/E,2BAGHgE,4BACF,OAAIljF,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,MAAQwM,KAAKq8E,cAAgB5Q,EAAU8D,WAAWgH,WACvF,EAGF,EAGT2J,UAAUn6F,EAAO88F,GAAW,GAC1B,IAAIpxE,EAAQo8D,WAAW9nF,GAEvB,GAAI0rB,EAAQ,EACVzR,KAAK0iF,qBAAqBjxE,EAAO1rB,EAAO88F,GAAU,OAC7C,CACL,MAAMM,GAAcnjF,KAAKm/E,OAAOn/E,KAAKy/E,mBAAqB,GAE1D,IAAK0D,GACH,OAGF,IAAIC,GAAW3X,EAAU+D,kBACrB6T,GAAW5X,EAAUyD,iBAErBlvE,KAAKgjF,qBACPI,GAAWC,GAAW,EACjBrjF,KAASg+E,kBACdoF,GAAWC,GAAW,EACbrjF,KAAKq8E,cAAgB5Q,EAAU8D,WAAWgH,cAClD6M,GAAUC,IAAY,CAACA,GAAUD,KAGpC,MAAME,IAAkBtjF,KAAKi+C,UAAUo0B,YAAc+Q,IAAYD,GAAY3jE,MAAQ2jE,GAAY1xE,MAAQzR,KAAKkjF,sBACxGK,IAAmBvjF,KAAKi+C,UAAUm0B,aAAeiR,IAAYF,GAAY1jE,OAAS0jE,GAAY1xE,MAEpG,OAAQ1rB,OACD,cACH0rB,EAAQ,EACR,UAEG,aACHA,EAAQ6xE,GACR,UAEG,cACH7xE,EAAQ8xE,GACR,UAEG,WACH9xE,EAAQ3nB,KAAKC,IAAIu5F,GAAgBC,IACjC,UAEG,OACH,MAAMC,IAAmB,EAAG/X,EAAUkI,uBAAuBwP,IAAeG,GAAiBx5F,KAAKC,IAAIw5F,GAAiBD,IACvH7xE,EAAQ3nB,KAAKC,IAAI0hF,EAAUuE,eAAgBwT,IAC3C,cAIA,YADAz2F,QAAQynB,MAAO,eAAczuB,gCAIjCia,KAAK0iF,qBAAqBjxE,EAAO1rB,EAAO88F,GAAU,IActD1V,sBAAsBsW,GACpB,IAAKzjF,KAAK8/E,YACR,OAAO,KAGT,MAAMr3F,EAAIuX,KAAK8/E,YAAYhnE,QAAQ2qE,GAEnC,OAAIh7F,EAAI,EACC,KAGFA,EAAI,EAGb6kF,oBACEp/D,aACA4/D,YAAY,KACZC,uBAAsB,EACtB3B,0BAAwB,IAExB,IAAKpsE,KAAKusE,YACR,OAGF,MAAMiT,GAAWvxF,OAAOC,UAAUggB,IAAelO,KAAKm/E,OAAOjxE,EAAa,GAE1E,IAAKsxE,GAEH,YADAzyF,QAAQynB,MAAO,wBAAuBtG,2CAIxC,GAAIlO,KAAKgjF,uBAAyBlV,EAGhC,YAFA9tE,KAAK0/E,sBAAsBxxE,GAAY,GAKzC,IAII8wB,GACAC,GALA9X,GAAI,EACJC,GAAI,EACJ5H,GAAQ,EACRC,GAAS,EAGb,MAAMmyD,GAAoB4N,GAAS9tE,SAAW,KAAQ,EAChDgyE,GAAa9R,GAAoB4N,GAAS//D,OAAS+/D,GAAShgE,OAASggE,GAAS/tE,MAAQu1D,EAAUxkD,cAAcoD,iBAC9G+9D,GAAc/R,GAAoB4N,GAAShgE,MAAQggE,GAAS//D,QAAU+/D,GAAS/tE,MAAQu1D,EAAUxkD,cAAcoD,iBACrH,IAAInU,GAAQ,EAEZ,OAAQq8D,EAAU,GAAG/tE,UACd,MACHonB,GAAI2mD,EAAU,GACd1mD,GAAI0mD,EAAU,GACdr8D,GAAQq8D,EAAU,GAClB3mD,GAAU,OAANA,GAAaA,GAAI,EACrBC,GAAU,OAANA,GAAaA,GAAIu8D,EACrB,UAEG,UACA,OACHlyE,GAAQ,WACR,UAEG,WACA,QACH2V,GAAI0mD,EAAU,GACdr8D,GAAQ,aAEE,OAAVmyE,IAAkB5jF,KAAKoiF,WACrBj7D,GAAInnB,KAAKoiF,UAAU31D,KACnBrF,GAAIpnB,KAAKoiF,UAAU51D,MACG,iBAANpF,IAAkBA,GAAI,KACtCA,GAAIu8D,GAGN,UAEG,WACA,QACHx8D,GAAI2mD,EAAU,GACdtuD,GAAQkkE,EACRjkE,GAASkkE,EACTlyE,GAAQ,cACR,UAEG,OACH0V,GAAI2mD,EAAU,GACd1mD,GAAI0mD,EAAU,GACdtuD,GAAQsuD,EAAU,GAAK3mD,GACvB1H,GAASquD,EAAU,GAAK1mD,GAGxB4X,IAAch/B,KAAKi+C,UAAUo0B,aAFZryE,KAAKg+E,kBAAoB,EAAIvS,EAAU+D,oBAEDhwD,GAAQwnD,EAAUxkD,cAAcoD,iBACvFqZ,IAAej/B,KAAKi+C,UAAUm0B,cAFbpyE,KAAKg+E,kBAAoB,EAAIvS,EAAUyD,mBAECzvD,GAASunD,EAAUxkD,cAAcoD,iBAC1FnU,GAAQ3nB,KAAKC,IAAID,KAAKoa,IAAI86B,IAAal1C,KAAKoa,IAAI+6B,KAChD,cAIA,YADAlyC,QAAQynB,MAAO,wBAAuBs5D,EAAU,GAAG/tE,0CAYvD,GARKqsE,KACC36D,IAASA,KAAUzR,KAAKigF,cAC1BjgF,KAAKmgF,kBAAoB1uE,GAChBzR,KAAKigF,gBAAkBxU,EAAU0D,gBAC1CnvE,KAAKmgF,kBAAoB1U,EAAUwE,sBAIzB,aAAVx+D,KAAyBq8D,EAAU,GAErC,YADAvtD,QAAKsjE,MAALlrE,UAAqB6mE,IAIvB,MAAMsE,GAAe,CAACtE,GAASxsE,SAASkU,uBAAuBC,GAAGC,IAAIo4D,GAASxsE,SAASkU,uBAAuBC,GAAI3H,GAAO4H,GAAI3H,KAC9H,IAAIgN,GAAO3iC,KAAKC,IAAI+5F,GAAa,GAAG,GAAIA,GAAa,GAAG,IACpDt3D,GAAM1iC,KAAKC,IAAI+5F,GAAa,GAAG,GAAIA,GAAa,GAAG,IAElD/V,IACHthD,GAAO3iC,KAAKqY,IAAIsqB,GAAM,GACtBD,GAAM1iC,KAAKqY,IAAIqqB,GAAK,IAGtBjM,QAAKsjE,MAALlrE,UAAqB6mE,GAAU,CAC7B/yD,QACAD,SAIJu3D,gBAAgBC,GACd,MAAMhE,EAAehgF,KAAKigF,cACpBE,EAAoBngF,KAAKogF,mBACzB6D,GAAuBpW,WAAWsS,KAAuBH,EAAel2F,KAAK0pC,MAAqB,IAAfwsD,GAAwB,IAAMG,EACjHjyE,GAAa81E,EAAUz1E,GAEvB0vC,GAAYj+C,KAAKi+C,UACjB32B,GAFkBtnB,KAAKm/E,OAAOjxE,GAAa,GAEjBg2E,aAAajmC,GAAUsI,WAAay9B,EAAU78D,EAAG82B,GAAUk0B,UAAY6R,EAAU58D,GAC3G+8D,GAAUr6F,KAAK0pC,MAAMlM,GAAQ,IAC7B88D,GAASt6F,KAAK0pC,MAAMlM,GAAQ,IAClC,IAAI+8D,GAAiB,SAAQn2E,KAExBlO,KAAKgjF,uBACRqB,IAAkB,SAAQJ,MAAwBE,MAAWC,MAG/DpkF,KAAKoiF,UAAY,CACfl0E,cACAuD,MAAOwyE,GACPz3D,IAAK43D,GACL33D,KAAM03D,GACNzyE,SAAU1R,KAAKqgF,eACfgE,kBAIJr1D,SACE,MAAMme,EAAUntC,KAAKskF,mBAEfC,EAAep3C,EAAQ4kC,MACvByS,EAAkBD,EAAaj8F,OAErC,GAAwB,IAApBk8F,EACF,OAGF,MAAMC,GAAe36F,KAAKqY,IAtiCH,GAsiC2B,EAAIqiF,EAAkB,GACxEvpE,QAAKpG,GAAQqoE,OAAOuH,GAAct3C,EAAQgL,KAC1Cn4C,KAAK0+E,eAAegG,sBAAsBv3C,GAC1C,MAAMw3C,GAAiB3kF,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,OAASwM,KAAKq8E,cAAgB5Q,EAAU8D,WAAWmB,MAAQ1wE,KAAKq8E,cAAgB5Q,EAAU8D,WAAWiB,UAChKoU,GAAY5kF,KAAKy/E,mBACvB,IAAIoF,IAAoB,EAExB,UAAWhoE,MAAQ0nE,EAAc,CAC/B,GAAI1nE,GAAK02D,QAAU,IACjB,MAGF,GAAI12D,GAAKtO,KAAOq2E,IAAaD,GAAgB,CAC3CE,IAAoB,EACpB,OAIJ7kF,KAAK0/E,sBAAsBmF,GAAoBD,GAAYL,EAAa,GAAGh2E,IAE3EvO,KAAK+jF,gBAAgB52C,EAAQ7qC,OAE7BtC,KAAKwjD,SAASC,SAAS,iBAAkB,CACvCn8C,OAAQtH,KACR4H,SAAU5H,KAAKoiF,YAInB0C,gBAAgB9sC,GACd,OAAOh4C,KAAKi+C,UAAU+2B,SAASh9B,GAGjC0H,QACE1/C,KAAKi+C,UAAUyB,QAGbqlC,sBACF,MAAsD,QAA/C9P,iBAAiBj1E,KAAKi+C,WAAW+mC,UAGtChC,2BACF,OAAOhjF,KAAK++E,wBAA0BtT,EAAUmE,sBAAsBuG,WAGpE8M,iCACF,OAAOjjF,KAAK++E,wBAA0BtT,EAAUmE,sBAAsBsG,SAGpE+O,mCACF,OAAOjlF,KAAKgjF,sBAA+BhjF,KAAKi+C,UAAU82B,YAAc/0E,KAAKi+C,UAAUo0B,YAGrF6S,iCACF,OAAOllF,KAAKgjF,sBAA+BhjF,KAAKi+C,UAAU62B,aAAe90E,KAAKi+C,UAAUm0B,aAG1FkS,mBACE,MAAMvS,EAAQ/xE,KAAKq8E,cAAgB5Q,EAAU8D,WAAWmB,KAAOz1D,QAAK8N,IAAqBy5D,MAAQxiF,KAAKm/E,OAChGlN,EAAajyE,KAAKq8E,cAAgB5Q,EAAU8D,WAAWgH,WAE7D,OAAQ,EAAG9K,EAAUoG,oBAAoB,CACvCC,SAAU9xE,KAAKi+C,UACf8zB,QACAC,kBAAkB,EAClBC,aACAC,IANUD,GAAcjyE,KAAK+kF,kBAUjCtW,cAAcvgE,GACZ,QAAKlO,KAAKusE,cAIJt+E,OAAOC,UAAUggB,IAAeA,EAAa,GAAKA,GAAclO,KAAK6sE,WAKpE7sE,KAAKskF,mBAAmBnsC,IAAIr+B,IAAI5L,IAJrCnhB,QAAQynB,MAAO,mBAAkBtG,4BAC1B,IAMXwgE,aAAaxgE,GACX,IAAKlO,KAAKusE,YACR,OAAO,EAGT,KAAMt+E,OAAOC,UAAUggB,IAAeA,EAAa,GAAKA,GAAclO,KAAK6sE,YACzE9/E,eAAQynB,MAAO,kBAAiBtG,4BACzB,EAGT,MAAMsxE,EAAWx/E,KAAKm/E,OAAOjxE,EAAa,GAC1C,OAAO+M,QAAKpG,GAAQiF,IAAI0lE,GAG1B/vE,UACE,UAAW+vE,KAAYx/E,KAAKm/E,OACtBK,EAAS2F,iBAAmB1Z,EAAUgE,gBAAgBuG,UACxDwJ,EAASr2D,QAKfy3D,mBACE,UAAWpB,KAAYx/E,KAAKm/E,OAC1BK,EAAS4F,kBA4DbC,eAAeC,GACb,MAAMf,EAAee,GAAyBtlF,KAAKskF,mBAE7CiB,EAAchlE,QAAKilE,OAAL7sE,UAAqB4rE,GAEnC/E,GAAWx/E,KAAK0+E,eAAe+G,mBAAmBlB,EAAcvkF,KAAKm/E,OAAQoG,EAD5DvlF,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,MAAQwM,KAAKq8E,cAAgB5Q,EAAU8D,WAAWgH,YAInH,OAFAh2D,QAAK4kB,OAALxsB,UAA+B4rE,EAAapsC,OAExCqnC,KACFj/D,QAAKpqB,MAALwiB,UAA0B6mE,IAAU31E,KAAK,KACvC7J,KAAK0+E,eAAegH,WAAWlG,OAE1B,GAMX9Y,uBAAuBC,EAAcx2D,EAAW6C,EAAUu8C,IAAuB,EAAO/L,GAAUojB,IAChG,OAAO,IAAIf,EAAoBgB,iBAAiB,CAC9CF,eACAnjB,YACArzC,YACA6C,WACAu8C,sBAAsBvvD,KAAKgjF,sBAA+BzzB,GAC1DqX,iBAIJ+e,sBAAsBx1E,EAAWqzC,GAC/B,OAAO,IAAIq5B,EAAkB+I,gBAAgB,CAC3CpiC,WACArzC,YACA0tE,eAAgB79E,KAAKgjF,qBAAuB,KAAOhjF,KAAK69E,iBAI5D9X,6BAA6BC,EAASC,EAASr4D,EAAoB,KAAM6vC,GAAqB,GAAIC,IAAc,EAAMwoB,GAAOR,EAAYS,SAAUvoB,GAAkB,KAAMwoB,GAAsB,KAAMpoB,GAAa,KAAMqoB,GAAsB,KAAM/yD,GAAsB,MAC1Q,OAAO,IAAImyD,EAA0Ba,uBAAuB,CAC1DN,UACAC,UACAr4D,kBAAmBA,GAAqB5N,KAAKusE,aAAa3+D,kBAC1D6vC,sBACAC,eACAH,YAAav9C,KAAKu9C,YAClBC,gBAAiBx9C,KAAKw9C,gBACtB0oB,QACAtoB,gBAAiBA,IAAmB59C,KAAK49C,gBACzCwoB,oBAAqBA,IAAuBpmE,KAAKusE,aAAat8D,eAC9Do2D,oBAAqBA,IAAuBrmE,KAAKusE,aAAav8D,kBAC9DguC,WAAYA,IAAch+C,KAAK89E,mBAAmB9/B,WAClD1qC,yBAIJwzD,sBAAsBd,EAASC,EAASr4D,EAAoB,MAC1D,OAAO,IAAIk4D,EAAmBiB,gBAAgB,CAC5Cf,UACAC,UACAr4D,kBAAmBA,GAAqB5N,KAAKusE,aAAa3+D,kBAC1D2vC,YAAav9C,KAAKu9C,cAItBipB,6BAA6BP,GAC3B,OAAO,IAAIL,EAA2Ba,uBAAuB,CAC3DR,YAIA4f,wBACF,MAAMhE,EAAgB7hF,KAAKm/E,OAAO,GAElC,QAAS12F,EAAI,EAAG6E,EAAK0S,KAAKm/E,OAAO72F,OAAQG,EAAI6E,IAAM7E,EAAG,CACpD,MAAM+2F,GAAWx/E,KAAKm/E,OAAO12F,GAE7B,GAAI+2F,GAAShgE,QAAUqiE,EAAcriE,OAASggE,GAAS//D,SAAWoiE,EAAcpiE,OAC9E,OAAO,EAIX,OAAO,EAGTqmE,mBACE,OAAO9lF,KAAKm/E,OAAOzxF,IAAI8xF,IACrB,MAAMxsE,EAAWwsE,EAASvZ,QAAQz0D,YAAY,CAC5CC,MAAO,IAGT,OAAKzR,KAAKk+E,wBAA0B,EAAGzS,EAAUkI,uBAAuB3gE,GAC/D,CACLwM,MAAOxM,EAASwM,MAChBC,OAAQzM,EAASyM,OACjB/N,SAAUsB,EAAStB,UAIhB,CACL8N,MAAOxM,EAASyM,OAChBA,OAAQzM,EAASwM,MACjB9N,UAAWsB,EAAStB,SAAW,IAAM,OAKvC2B,mCACF,OAAKrT,KAAKusE,YAILvsE,KAAKohF,8BAIHphF,KAAKohF,8BAHHphF,KAAKusE,YAAYr9D,2BAJjBxkB,QAAQC,QAAQ,MAUvB0oB,iCAA6B5oB,GAC/B,KAAMA,aAAmBC,SACvB,MAAM,IAAI+U,MAAO,yCAAwChV,KAO3D,IAJKuV,KAAKusE,cAILvsE,KAAKohF,8BACR,OAGFphF,KAAKohF,8BAAgC32F,EACrC,MAAM61F,EAAa,CACjBjtE,6BAA8B5oB,GAGhC,UAAW+0F,KAAYx/E,KAAKm/E,OAC1BK,EAASxwD,OAAOsxD,GAGlBtgF,KAAKgvB,SACLhvB,KAAKwjD,SAASC,SAAS,+BAAgC,CACrDn8C,OAAQtH,KACRvV,YAIA8lF,iBACF,OAAOvwE,KAAKq8E,YAGV9L,eAAWlqC,GACb,GAAIrmC,KAAKq8E,cAAgBh2C,EAIzB,MAAM,EAAGolC,EAAUoI,mBAAmBxtC,GACpC,MAAM,IAAI5mC,MAAO,wBAAuB4mC,KAGtCrmC,KAAK6sE,WAAa4P,EAAgBM,yBAItC/8E,KAAKqiF,oBAAsBriF,KAAKq8E,YAChCr8E,KAAKq8E,YAAch2C,EACnBrmC,KAAKwjD,SAASC,SAAS,oBAAqB,CAC1Cn8C,OAAQtH,KACRqmC,SAGFrmC,KAAKu8E,kBAAkBv8E,KAAKy/E,sBAG9BlD,kBAAkBruE,EAAa,MAC7B,MAAMqiE,EAAavwE,KAAKq8E,YAClB3E,EAAS13E,KAAK03E,OACpBA,EAAO9vB,UAAUm+B,OAAO,mBAAoBxV,IAAe9E,EAAU8D,WAAWgH,YAChFmB,EAAO9vB,UAAUm+B,OAAO,gBAAiBxV,IAAe9E,EAAU8D,WAAWiH,SAExEx2E,KAAKusE,aAAgBr+D,IAItBqiE,IAAe9E,EAAU8D,WAAWmB,KACtCnwD,QAAK9e,MAALkX,WACS3Y,KAAKqiF,sBAAwB5W,EAAU8D,WAAWmB,MAC3D1wE,KAAKw8E,oBAGHx8E,KAAKogF,oBAAsBr4E,MAAM/H,KAAKogF,qBACxCpgF,KAAKkgF,UAAUlgF,KAAKogF,oBAAoB,GAG1CpgF,KAAK0/E,sBAAsBxxE,GAAY,GAEvClO,KAAKgvB,UAGHyhD,iBACF,OAAOzwE,KAAKs8E,YAGV7L,eAAWpqC,GACb,GAAIrmC,KAAKs8E,cAAgBj2C,EAIzB,MAAM,EAAGolC,EAAUqI,mBAAmBztC,GACpC,MAAM,IAAI5mC,MAAO,wBAAuB4mC,KAG1CrmC,KAAKs8E,YAAcj2C,EACnBrmC,KAAKwjD,SAASC,SAAS,oBAAqB,CAC1Cn8C,OAAQtH,KACRqmC,SAGFrmC,KAAKw8E,kBAAkBx8E,KAAKy/E,qBAG9BjD,kBAAkBtuE,EAAa,MAC7B,IAAKlO,KAAKusE,YACR,OAGF,MAAMmL,EAAS13E,KAAK03E,OACd8K,EAAQxiF,KAAKm/E,OAEnB,GAAIn/E,KAAKq8E,cAAgB5Q,EAAU8D,WAAWmB,KAC5CnwD,QAAK9e,MAALkX,mBAEA++D,EAAOvhE,YAAc,GAEjBnW,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,KAC5C,UAAWgsF,MAAYx/E,KAAKm/E,OAC1BzH,EAAOpzD,YAAYk7D,GAASnzD,SAEzB,CACL,MAAM25D,GAAShmF,KAAKs8E,YAAc,EAClC,IAAI2J,GAAS,KAEb,QAASx9F,GAAI,EAAG6E,GAAKk1F,EAAMl6F,OAAQG,GAAI6E,KAAM7E,GAC5B,OAAXw9F,IACFA,GAAS/8E,SAAS8a,cAAc,OAChCiiE,GAAO3kC,UAAY,SACnBo2B,EAAOpzD,YAAY2hE,KACVx9F,GAAI,IAAMu9F,KACnBC,GAASA,GAAOhjC,WAAU,GAC1By0B,EAAOpzD,YAAY2hE,KAGrBA,GAAO3hE,YAAYk+D,EAAM/5F,IAAG4jC,MAK7Bne,IAIDlO,KAAKogF,oBAAsBr4E,MAAM/H,KAAKogF,qBACxCpgF,KAAKkgF,UAAUlgF,KAAKogF,oBAAoB,GAG1CpgF,KAAK0/E,sBAAsBxxE,GAAY,GAEvClO,KAAKgvB,UAGPk3D,gBAAgBpZ,EAAmB8S,GAAW,GAC5C,OAAQ5/E,KAAKq8E,kBACN5Q,EAAU8D,WAAWiH,QACxB,CACE,MACEzE,SACE/xE,KAAKskF,mBACH6B,GAAa,IAAIh1E,IAEvB,UACE5C,MACA6Y,KACAmsD,WACAC,mBACGzB,EAAO,CACV,GAAgB,IAAZwB,IAAiBC,GAAe,IAClC,SAGF,IAAI4S,GAASD,GAAW37F,IAAI48B,IAEvBg/D,IACHD,GAAWn9F,IAAIo+B,GAAGg/D,QAAW,KAG/BA,GAAOl8F,KAAKqkB,IAGd,UAAW63E,MAAUD,GAAW/uE,SAAU,CACxC,MAAM0/D,GAAesP,GAAOttE,QAAQg0D,GAEpC,IAAqB,IAAjBgK,GACF,SAGF,MAAMjpE,GAAWu4E,GAAO99F,OAExB,GAAiB,IAAbulB,GACF,MAGF,GAAI+xE,EACF,QAASn3F,GAAIquF,GAAe,EAAGxpF,GAAK,EAAG7E,IAAK6E,GAAI7E,KAAK,CACnD,MACM49F,GAAaD,GAAO39F,GAAI,GAAK,EAEnC,GAHkB29F,GAAO39F,IAGT49F,GACd,OAAOvZ,EAAoBuZ,QAI/B,QAAS59F,GAAIquF,GAAe,EAAGxpF,GAAKugB,GAAUplB,GAAI6E,GAAI7E,KAAK,CACzD,MACM49F,GAAaD,GAAO39F,GAAI,GAAK,EAEnC,GAHkB29F,GAAO39F,IAGT49F,GACd,OAAOA,GAAavZ,EAK1B,GAAI8S,EAAU,CACZ,MAAM0G,GAAUF,GAAO,GAEvB,GAAIE,GAAUxZ,EACZ,OAAOA,EAAoBwZ,GAAU,MAElC,CACL,MAAMC,GAASH,GAAOv4E,GAAW,GAEjC,GAAI04E,GAASzZ,EACX,OAAOyZ,GAASzZ,EAAoB,EAIxC,MAGF,WAGCrB,EAAU8D,WAAWgH,WAEtB,WAGC9K,EAAU8D,WAAWmB,UACrBjF,EAAU8D,WAAWiB,SACxB,CACE,GAAIxwE,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,KAC5C,MAGF,MAAMwyF,EAAShmF,KAAKs8E,YAAc,EAElC,GAAIsD,GAAY9S,EAAoB,IAAMkZ,EACxC,MACK,IAAKpG,GAAY9S,EAAoB,IAAMkZ,EAChD,MAGF,MACEjU,UACE/xE,KAAKskF,mBACH+B,GAAazG,EAAW9S,EAAoB,EAAIA,EAAoB,EAE1E,UACEv+D,MACAglE,WACAC,mBACGzB,GACH,GAAIxjE,KAAO83E,GAIX,IAAI9S,GAAU,GAAsB,MAAjBC,GACjB,OAAO,EAGT,MAGF,OAIN,OAAO,EAGTtF,WACE,MAAMpB,EAAoB9sE,KAAKy/E,mBACzB5S,EAAa7sE,KAAK6sE,WAExB,GAAIC,GAAqBD,EACvB,OAAO,EAGT,MAAM2Z,EAAUxmF,KAAKkmF,gBAAgBpZ,GAAmB,IAAU,EAClE,YAAKA,kBAAoBhjF,KAAKC,IAAI+iF,EAAoB0Z,EAAS3Z,IACxD,EAGTsB,eACE,MAAMrB,EAAoB9sE,KAAKy/E,mBAE/B,GAAI3S,GAAqB,EACvB,OAAO,EAGT,MAAM0Z,EAAUxmF,KAAKkmF,gBAAgBpZ,GAAmB,IAAS,EACjE,YAAKA,kBAAoBhjF,KAAKqY,IAAI2qE,EAAoB0Z,EAAS,IACxD,EAGTC,cAActoD,EAAQ,GACpB,IAAIwkD,EAAW3iF,KAAKigF,cAEpB,GACE0C,GAAYA,EAAWlX,EAAUyE,qBAAqBva,QAAQ,GAC9DgtB,EAAW74F,KAAKy1C,KAAgB,GAAXojD,GAAiB,GACtCA,EAAW74F,KAAKC,IAAI0hF,EAAUsE,UAAW4S,WAChCxkD,EAAQ,GAAKwkD,EAAWlX,EAAUsE,WAE7C/vE,KAAKmgF,kBAAoBwC,EAG3B+D,cAAcvoD,EAAQ,GACpB,IAAIwkD,EAAW3iF,KAAKigF,cAEpB,GACE0C,GAAYA,EAAWlX,EAAUyE,qBAAqBva,QAAQ,GAC9DgtB,EAAW74F,KAAKu5C,MAAiB,GAAXs/C,GAAiB,GACvCA,EAAW74F,KAAKqY,IAAIspE,EAAUqE,UAAW6S,WAChCxkD,EAAQ,GAAKwkD,EAAWlX,EAAUqE,WAE7C9vE,KAAKmgF,kBAAoBwC,EAG3BzD,2BACE,MAAMz/D,EAASzf,KAAKi+C,UAAUm0B,aAE1B3yD,IAAWxE,QAAK6+C,MAClB38C,QAAK28C,GAA2Br6C,GAEhCzf,KAAK4+E,KAAKl7D,MAAM2zD,YAAY,4BAA8B,GAAE53D,UAxkDlE,SACE5K,cACAq8B,eACAuxC,cACAnE,eACAxkB,eACA/wC,eACA4kC,eAsQAR,iBAAsB,SAACg0B,IAChBA,IAIAA,EAAY79D,SAAS0jD,EAAUxgF,eAAe4J,OACjD4P,KAAK03E,OAAO9vB,UAAUzyC,IAAI2nE,IAGvBqE,EAAY79D,SAAS0jD,EAAUxgF,eAAe6J,sBAAwB8wF,EAAY79D,SAAS0jD,EAAUxgF,eAAe8J,yBACnH2qB,QAAKi2B,MAAoB81B,EAAUp/E,eAAeqI,eACpDktB,QAAKslE,EAA0BxnE,QAAKi2B,KACpC/zB,QAAK+zB,GAAkB81B,EAAUp/E,eAAeoI,WAKtD4hC,iBAA4B,WAC1B,GAAiC,WAA7B1oB,SAASy9E,kBAAiC3mF,KAAKi+C,UAAU42B,cAAyD,IAAzC70E,KAAKskF,mBAAmBvS,MAAMzpF,OACzG,OAAOoC,QAAQC,UAGjB,MAAMi8F,EAA0B,IAAIl8F,QAAQC,IAC1CwyB,QAAKwwC,GAAsB,KACQ,WAA7BzkD,SAASy9E,kBAIbh8F,IACAue,SAAS2P,oBAAoB,mBAAoBoC,QAAK0yC,KACtDxwC,QAAKwwC,GAAsB,SAG7BzkD,SAAS0P,iBAAiB,mBAAoBqC,QAAK0yC,OAErD,OAAOjjE,QAAQm8F,KAAK,CAAC7mF,KAAK0gF,2BAA2Bj2F,QAASm8F,KA8RhEnlF,iBAAsB,WACpB,GAAIzB,KAAKq8E,cAAgB5Q,EAAU8D,WAAWmB,KAC5C,MAAM,IAAIjxE,MAAM,qDAGlB,MAAMyO,EAAalO,KAAKy/E,mBAClBn+C,EAAQrmB,QAAK8N,IACb2uD,EAAS13E,KAAK03E,OAIpB,GAHAA,EAAOvhE,YAAc,GACrBmrB,EAAMkhD,MAAMl6F,OAAS,EAEjB0X,KAAKs8E,cAAgB7Q,EAAU4D,WAAW77E,MAASwM,KAAKgjF,qBAIrD,CACL,MAAM8D,GAAe,IAAI/1E,IACnBi1E,GAAShmF,KAAKs8E,YAAc,GAEnB,IAAX0J,GACFc,GAAa3xE,IAAIjH,EAAa,GACzB64E,EAAiB,IAAMf,IAC5Bc,GAAa3xE,IAAIjH,EAAa,GAC9B44E,GAAa3xE,IAAIjH,KAEjB44E,GAAa3xE,IAAIjH,EAAa,GAC9B44E,GAAa3xE,IAAIjH,EAAa,IAGhC,MAAM+3E,GAAS/8E,SAAS8a,cAAc,OAGtC,GAFAiiE,GAAO3kC,UAAY,SAEfthD,KAAKgjF,qBAAsB,CAC7B,MAAMgE,GAAY99E,SAAS8a,cAAc,OACzCgjE,GAAU1lC,UAAY,YACtB2kC,GAAO3hE,YAAY0iE,IAGrB,UAAWv+F,MAAKq+F,GAAc,CAC5B,MAAMtH,GAAWx/E,KAAKm/E,OAAO12F,KAExB+2F,KAILyG,GAAO3hE,YAAYk7D,GAASnzD,KAC5BiV,EAAMkhD,MAAMt4F,KAAKs1F,KAGnB9H,EAAOpzD,YAAY2hE,QAtC6D,CAChF,MAAMzG,GAAWx/E,KAAKm/E,OAAOjxE,EAAa,GAC1CwpE,EAAOpzD,YAAYk7D,GAASnzD,KAC5BiV,EAAMkhD,MAAMt4F,KAAKs1F,IAsCnBl+C,EAAMihD,WAAar0E,GAAcozB,EAAMghD,mBACvChhD,EAAMghD,mBAAqBp0E,GAW7B21E,iBAAe,SAACrE,EAAUyH,EAAW,MACnC,MACE56D,MACA9d,OACEixE,EASJ,GAPIx/E,KAAKq8E,cAAgB5Q,EAAU8D,WAAWmB,OAC5C1wE,KAAK0/E,sBAAsBnxE,IAE3BgS,QAAK9e,MAALkX,WACA3Y,KAAKgvB,WAGFi4D,IAAajnF,KAAKgjF,qBAAsB,CAC3C,MAAMv2D,GAAOJ,EAAIomD,WAAapmD,EAAIqmD,WAC5BxgB,GAAQzlC,GAAOJ,EAAIgmD,aAEvB9rB,cACA8rB,gBACEryE,KAAKi+C,WAELj+C,KAAKq8E,cAAgB5Q,EAAU8D,WAAWgH,YAAc9pD,GAAO85B,IAAc2L,GAAQ3L,GAAa8rB,MACpG4U,EAAW,CACTx6D,KAAM,EACND,IAAK,KAKV,EAAGi/C,EAAUiJ,gBAAgBroD,EAAK46D,IAGrCrwF,iBAAY,SAAC+rF,GACX,OAAOA,IAAa3iF,KAAKigF,eAAiBn2F,KAAKoa,IAAIy+E,EAAW3iF,KAAKigF,eAAiB,OA8HtFruC,iBAAqB,WACnB,MAAM4tC,EAAWx/E,KAAKm/E,OAAOn/E,KAAKy/E,mBAAqB,GAEnDz/E,KAAKgjF,sBACPhjF,KAAKkgF,UAAUlgF,KAAKogF,oBAAoB,GAG1C7/D,QAAKsjE,MAALlrE,UAAqB6mE,IAsRjBrpF,iBAAoB,SAACqpF,GAAU,gCACnC,GAAIA,EAASvZ,QACX,OAAOuZ,EAASvZ,QAGlB,IACE,MAAMA,QAAgBrwE,EAAK22E,YAAYt+D,QAAQuxE,EAASjxE,IAExD,OAAKixE,EAASvZ,SACZuZ,EAASsC,WAAW7b,GAGjBrwE,EAAK2nD,YAAYixB,oBAAoBvI,EAAQ73D,MAChDxY,EAAK2nD,YAAY6wB,aAAaoR,EAASjxE,GAAI03D,EAAQ73D,KAG9C63D,QACAp7E,GACPkC,eAAQynB,MAAM,mCAAoC3pB,GAC3C,OAnB0BuW,IAuBrCokF,kBAAe,SAACr4C,GACd,GAA0B,IAAtBA,EAAQ7qC,OAAOiM,GACjB,OAAO,EACF,GAAI4+B,EAAQsmC,MAAMllE,KAAOvO,KAAK6sE,WACnC,OAAO,EAGT,OAAQ7sE,KAAKq8E,kBACN5Q,EAAU8D,WAAWmB,KACxB,OAAOz1D,QAAK8N,IAAqBw5D,gBAE9B9W,EAAU8D,WAAWgH,WACxB,OAAOv2E,KAAK6+E,OAAO3sB,MAGvB,OAAOlyD,KAAK6+E,OAAOlJ,MAGrBxwC,kBAAyB,SAAC+hD,GACxB,UAAW34E,KAAM24E,EACElnF,KAAKm/E,OAAO5wE,EAAK,IACxB44E,0BAAyB,GAGrC,UAAW3H,KAAYvkE,QAAKpG,GACtBqyE,EAAWptE,IAAI0lE,EAASjxE,KAI5BixE,EAAS2H,0BAAyB,IAgdxCxhG,EAAQw2F,WAAaA,GAId,CAACz2F,EAAyBC,EAASC,WAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ87F,iBAAc,EAEtB,IAAIza,EAAYphF,EAAoB,GAEhC6lF,EAAY7lF,EAAoB,GAEhCwhG,EAAexhG,EAAoB,IAEnC8/E,EAAc9/E,EAAoB,GAEtC,MAAMyhG,EAAoBD,EAAaE,oBAAoBjJ,iBAAmB,SAG5E38E,cAsvBF/b,EAAQ87F,YAvvBR,QAGExhF,YAAYhV,GAFZywB,UAAkBsrD,EAAUp/E,eAAeqI,cAGzC,MAAMguD,EAAYhzD,EAAQgzD,UACpByjC,EAAkBz2F,EAAQy2F,gBAChC1hF,KAAKuO,GAAKtjB,EAAQsjB,GAClBvO,KAAKunF,YAAc,OAASvnF,KAAKuO,GACjCvO,KAAKimE,QAAU,KACfjmE,KAAK6/E,UAAY,KACjB7/E,KAAK0R,SAAW,EAChB1R,KAAKyR,MAAQxmB,EAAQwmB,OAASg6D,EAAU0E,cACxCnwE,KAAKgT,SAAW0uE,EAChB1hF,KAAKwnF,cAAgB9F,EAAgBhwE,SACrC1R,KAAKohF,8BAAgCn2F,EAAQooB,8BAAgC,KAC7ErT,KAAKynF,sBAAuB,EAC5BznF,KAAKi+E,cAAgBhzF,EAAQgzF,eAAiBxS,EAAU2D,cAAcp/E,OACtEmtB,QAAKzb,EAAkBzW,EAAQgoB,gBAAkB+zD,EAAUp/E,eAAeqI,cAC1E+P,KAAKy9C,mBAAqBxyD,EAAQwyD,oBAAsB,GACxDz9C,KAAKo+E,eAAiBnzF,EAAQmzF,iBAAkB,EAChDp+E,KAAKq+E,gBAAkBpzF,EAAQozF,iBAAmBgJ,EAClDrnF,KAAKuT,WAAatoB,EAAQsoB,YAAc,KACxCvT,KAAKwjD,SAAWv4D,EAAQu4D,SACxBxjD,KAAK0+E,eAAiBzzF,EAAQyzF,eAC9B1+E,KAAKshF,iBAAmBr2F,EAAQq2F,iBAChCthF,KAAKuhF,uBAAyBt2F,EAAQs2F,uBACtCvhF,KAAKwhF,gBAAkBv2F,EAAQu2F,gBAC/BxhF,KAAK0nF,gBAAkBz8F,EAAQ02F,wBAAwBgE,sBAAsB3lF,KAAKuO,GAAK,EAAGvO,KAAKwjD,UAC/FxjD,KAAK4hF,uBAAyB32F,EAAQ22F,uBACtC5hF,KAAKm+E,SAAWlzF,EAAQkzF,UAAY1S,EAAUiE,aAAa0G,OAC3Dp2E,KAAKkmE,KAAOj7E,EAAQi7E,MAAQR,EAAYS,SACxCnmE,KAAK2nF,UAAY,KACjB3nF,KAAK4nF,mBAAqB,IAAIpsE,QAC9Bxb,KAAKmlF,eAAiB1Z,EAAUgE,gBAAgBoG,QAChD71E,KAAK6nF,OAAS,KACd7nF,KAAK8nF,aAAe,KACpB9nF,KAAK+nF,eAAiB/nF,KAAK0+E,gBAAgBsJ,YAC3ChoF,KAAKknE,qBAAuB,KAC5BlnE,KAAKioF,gBAAkB,KACvBjoF,KAAKkoF,UAAY,KACjBloF,KAAKmoF,UAAY,KACjBnoF,KAAKooF,SAAW,KAChBpoF,KAAKqoF,gBAAkB,KACvB,MAAMh8D,EAAMnjB,SAAS8a,cAAc,OACnCqI,EAAIi1B,UAAY,OAChBj1B,EAAI3I,MAAMlE,MAAQ11B,KAAKu5C,MAAMrjC,KAAKgT,SAASwM,OAAS,KACpD6M,EAAI3I,MAAMjE,OAAS31B,KAAKu5C,MAAMrjC,KAAKgT,SAASyM,QAAU,KACtD4M,EAAI/C,aAAa,mBAAoBtpB,KAAKuO,IAC1C8d,EAAI/C,aAAa,OAAQ,UACzBtpB,KAAKkmE,KAAK17E,IAAI,gBAAiB,CAC7BqyB,KAAM7c,KAAKuO,KACV1E,KAAK1gB,IACNkjC,EAAI/C,aAAa,aAAcngC,KAEjC6W,KAAKqsB,IAAMA,EACX4xB,GAAW35B,YAAY+H,GAGzBy1D,WAAW7b,GACTjmE,KAAKimE,QAAUA,EACfjmE,KAAKwnF,cAAgBvhB,EAAQ50D,OAE7BrR,KAAKgT,SAAWizD,EAAQz0D,YAAY,CAClCC,MAAOzR,KAAKyR,MAAQu1D,EAAUxkD,cAAcoD,iBAC5ClU,UAHqB1R,KAAK0R,SAAW1R,KAAKwnF,eAAiB,MAK7DxnF,KAAKmpB,QAGPvd,UACE5L,KAAKmpB,QAEDnpB,KAAKimE,SACPjmE,KAAKimE,QAAQx2D,UAIX64E,yBAAyB,gCAC7B,IAAI9zE,EAAQ,KAEZ,UACQle,EAAK2xF,gBAAgBn1E,OAAOxc,EAAK0c,SAAU,iBAC1CpkB,GACP4lB,EAAQ5lB,UAER0H,EAAKktD,SAASC,SAAS,0BAA2B,CAChDn8C,OAAQhR,EACR4X,WAAY5X,EAAKiY,GACjBiG,YAXyBpT,GAgBzBmnF,kBAAkB,gCACtB,IAAI/zE,EAAQ,KAEZ,IACE,MAAMghC,QAAel/C,EAAK8xF,SAASt1E,OAAOxc,EAAK0c,SAAU,WAErD1c,EAAKoxF,iBACPpxF,EAAKkyF,0BAA0BhzC,EAAOqZ,gBAEjCjgE,GACP4lB,EAAQ5lB,UAER0H,EAAKktD,SAASC,SAAS,mBAAoB,CACzCn8C,OAAQhR,EACR4X,WAAY5X,EAAKiY,GACjBiG,YAfkBpT,GAoBlBonF,0BAA0B35B,GAAU,gCACxC,MAAM7pC,QAAamC,EAAK8+C,QAAQ5vD,iBAC1BD,EAAQ,GAEd,UAAWxtB,KAAQo8B,EAAK5O,MACtBA,EAAMlsB,KAAKtB,EAAKiD,KAGlBs7B,EAAKugE,gBAAgBvM,eAAetsB,EAAUz4C,GAC9C+Q,EAAKugE,gBAAgBpM,UATmBl6E,GAY1CqnF,gBAAgBC,GAAgB,GAC9B,IAAK1oF,KAAKmoF,UACR,OAGF,MAAMQ,EAAkB3oF,KAAKmoF,UAAU36B,WACvCxtD,KAAK4nF,mBAAmBlzE,OAAOi0E,GAC/BA,EAAgBnpE,MAAQ,EACxBmpE,EAAgBlpE,OAAS,EAErBipE,GACF1oF,KAAKmoF,UAAUjkE,SAGjBlkB,KAAKmoF,UAAY,KAGnBh/D,OACEy/D,iBAAgB,EAChBC,uBAAsB,EACtBC,gBAAe,GACb,IACF9oF,KAAKolF,gBAAgB,CACnByD,sBACAC,iBAEF9oF,KAAKmlF,eAAiB1Z,EAAUgE,gBAAgBoG,QAChD,MAAMxpD,EAAMrsB,KAAKqsB,IACjBA,EAAI3I,MAAMlE,MAAQ11B,KAAKu5C,MAAMrjC,KAAKgT,SAASwM,OAAS,KACpD6M,EAAI3I,MAAMjE,OAAS31B,KAAKu5C,MAAMrjC,KAAKgT,SAASyM,QAAU,KACtD,MAAM07C,EAAa9uC,EAAI8uC,WACjB4tB,EAAgBH,GAAiB5oF,KAAKmoF,WAAa,KACnDa,EAAsBH,GAAuB7oF,KAAKioF,iBAAiB57D,KAAO,KAC1E48D,EAAeH,GAAgB9oF,KAAKooF,UAAU/7D,KAAO,KAE3D,QAAS5jC,EAAI0yE,EAAW7yE,OAAS,EAAGG,GAAK,EAAGA,IAAK,CAC/C,MAAMiyD,EAAOygB,EAAW1yE,GAExB,OAAQiyD,QACDquC,OACAC,OACAC,EACH,SAGJvuC,EAAKx2B,SAGPmI,EAAI0zB,gBAAgB,eAEhBipC,GACFhpF,KAAKioF,gBAAgB7gB,OAGnB6hB,GACFjpF,KAAKooF,SAAShhB,OAGX2hB,IACC/oF,KAAK0hB,SACP1hB,KAAK4nF,mBAAmBlzE,OAAO1U,KAAK0hB,QACpC1hB,KAAK0hB,OAAOlC,MAAQ,EACpBxf,KAAK0hB,OAAOjC,OAAS,SACdzf,KAAK0hB,QAGd1hB,KAAKyoF,mBAGHzoF,KAAKqpB,MACPrpB,KAAK4nF,mBAAmBlzE,OAAO1U,KAAKqpB,YAC7BrpB,KAAKqpB,KAGdrpB,KAAKkpF,eAAiBhgF,SAAS8a,cAAc,OAC7ChkB,KAAKkpF,eAAe5nC,UAAY,yBAE5BthD,KAAK+nF,eACP/nF,KAAKmnF,0BAAyB,GAGhCnnF,KAAKkpF,eAAe5/D,aAAa,OAAQ,OACzCtpB,KAAKkmE,KAAK17E,IAAI,WAAWqf,KAAK1gB,IAC5B6W,KAAKkpF,gBAAgB5/D,aAAa,aAAcngC,KAElDkjC,EAAI/H,YAAYtkB,KAAKkpF,gBAGvBl6D,QACEvd,QAAQ,EACRC,WAAW,KACX2B,+BAA+B,OAkB/B,GAhBArT,KAAKyR,MAAQA,GAASzR,KAAKyR,MAEH,iBAAbC,IACT1R,KAAK0R,SAAWA,GAGd2B,aAAwC3oB,UAC1CsV,KAAKohF,8BAAgC/tE,GAIvCrT,KAAKgT,SAAWhT,KAAKgT,SAASiU,MAAM,CAClCxV,MAAOzR,KAAKyR,MAAQu1D,EAAUxkD,cAAcoD,iBAC5ClU,UAHqB1R,KAAK0R,SAAW1R,KAAKwnF,eAAiB,MAMzDxnF,KAAK+nF,cAAe,CACtB,MACErkE,SACExa,SAASmb,gBACbX,EAAM2zD,YAAY,gBAAiBr3E,KAAKyR,OAG1C,GAAIzR,KAAKqpB,IAaP,OAZArpB,KAAK+gF,aAAa,CAChB1hC,OAAQr/C,KAAKqpB,IACb8/D,uBAAuB,EACvBC,gBAAgB,SAElBppF,KAAKwjD,SAASC,SAAS,eAAgB,CACrCn8C,OAAQtH,KACRkO,WAAYlO,KAAKuO,GACjBwyE,cAAc,EACdC,UAAWqI,YAAYvhE,MACvBtT,MAAOxU,KAAK8nF,eAKhB,IAAIwB,GAAsB,EAE1B,GAAItpF,KAAK0hB,QAAU1hB,KAAKq+E,gBAAkB,EAAG,CAC3C,MAAMkL,EAAcvpF,KAAKupF,aAEpBz/F,KAAKu5C,MAAMrjC,KAAKgT,SAASwM,OAAS+pE,EAAY7S,GAAK,IAAM5sF,KAAKu5C,MAAMrjC,KAAKgT,SAASyM,QAAU8pE,EAAY9mF,GAAK,GAAKzC,KAAKq+E,kBAC1HiL,GAAsB,GAI1B,GAAItpF,KAAK0hB,OAAQ,CACf,GAAI1hB,KAAKo+E,gBAAkBp+E,KAAKynF,sBAAwB6B,EAatD,OAZAtpF,KAAK+gF,aAAa,CAChB1hC,OAAQr/C,KAAK0hB,OACbynE,uBAAuB,EACvBC,gBAAgB,SAElBppF,KAAKwjD,SAASC,SAAS,eAAgB,CACrCn8C,OAAQtH,KACRkO,WAAYlO,KAAKuO,GACjBwyE,cAAc,EACdC,UAAWqI,YAAYvhE,MACvBtT,MAAOxU,KAAK8nF,gBAKX9nF,KAAKmoF,YAAcnoF,KAAK0hB,OAAO89B,SAClCx/C,KAAKmoF,UAAYnoF,KAAK0hB,OAAOyyC,WAC7Bn0D,KAAKmoF,UAAUzkE,MAAM6I,SAAW,YAIhCvsB,KAAKmoF,WACPnoF,KAAK+gF,aAAa,CAChB1hC,OAAQr/C,KAAKmoF,UAAU36B,aAI3BxtD,KAAKmpB,MAAM,CACTy/D,eAAe,EACfC,qBAAqB,EACrBC,cAAc,IAIlB1D,iBACEyD,uBAAsB,EACtBC,gBAAe,GACb,IACE9oF,KAAK2nF,YACP3nF,KAAK2nF,UAAUpwE,SACfvX,KAAK2nF,UAAY,MAGnB3nF,KAAK6nF,OAAS,KAEV7nF,KAAKkoF,YACPloF,KAAKkoF,UAAU3wE,SACfvX,KAAKkoF,UAAY,MAGfloF,KAAKioF,mBAAqBY,IAAwB7oF,KAAKioF,gBAAgB57D,OACzErsB,KAAKioF,gBAAgB1wE,SACrBvX,KAAKioF,gBAAkB,KACvBjoF,KAAKknE,qBAAuB,MAG1BlnE,KAAKooF,YAAcU,IAAiB9oF,KAAKooF,SAAS/7D,OACpDrsB,KAAKooF,SAAS7wE,SACdvX,KAAKooF,SAAW,KAChBpoF,KAAK0nF,iBAAiBnM,WAGpBv7E,KAAKwpF,uBACPxpF,KAAKwjD,SAASy9B,KAAK,oBAAqBjhF,KAAKwpF,sBAE7CxpF,KAAKwpF,qBAAuB,MAIhCzI,cACE1hC,SACA8pC,yBAAwB,EACxBC,kBAAiB,IAEjB,MAAM5pE,EAAQxf,KAAKgT,SAASwM,MACtBC,EAASzf,KAAKgT,SAASyM,OACvB4M,EAAMrsB,KAAKqsB,IACjBgzB,EAAO37B,MAAMlE,MAAQ6/B,EAAO8U,WAAWzwC,MAAMlE,MAAQ6M,EAAI3I,MAAMlE,MAAQ11B,KAAKu5C,MAAM7jB,GAAS,KAC3F6/B,EAAO37B,MAAMjE,OAAS4/B,EAAO8U,WAAWzwC,MAAMjE,OAAS4M,EAAI3I,MAAMjE,OAAS31B,KAAKu5C,MAAM5jB,GAAU,KAC/F,MAAMgqE,EAAmBzpF,KAAKgT,SAAStB,SAAW1R,KAAK4nF,mBAAmBp9F,IAAI60D,GAAQ3tC,SAChFg4E,EAAc5/F,KAAKoa,IAAIulF,GAC7B,IAAIj/C,EAAS,EACTC,EAAS,EASb,IAPoB,KAAhBi/C,GAAsC,MAAhBA,KACxBl/C,EAAS/qB,EAASD,EAClBirB,EAASjrB,EAAQC,GAGnB4/B,EAAO37B,MAAMzqB,UAAa,UAASwwF,eAA8Bj/C,MAAWC,KAExEzqC,KAAKkoF,UAAW,CAClB,MAAMyB,EAAoB3pF,KAAKkoF,UAAUl1E,SAEnC42E,EAAkB9/F,KAAKoa,IADAlE,KAAKgT,SAAStB,SAAWi4E,EAAkBj4E,UAExE,IAAID,GAAQ+N,EAAQmqE,EAAkBnqE,OAEd,KAApBoqE,GAA8C,MAApBA,KAC5Bn4E,GAAQ+N,EAAQmqE,EAAkBlqE,QAGpC,MAAMknD,EAAe3mE,KAAKkoF,UAAUvhB,aACpC,IAAIkjB,GAAQC,GAEZ,OAAQF,QACD,EACHC,GAASC,GAAS,EAClB,WAEG,GACHD,GAAS,EACTC,GAAS,IAAMnjB,EAAajjD,MAAMjE,OAClC,WAEG,IACHoqE,GAAS,IAAMljB,EAAajjD,MAAMlE,MAClCsqE,GAAS,IAAMnjB,EAAajjD,MAAMjE,OAClC,WAEG,IACHoqE,GAAS,IAAMljB,EAAajjD,MAAMlE,MAClCsqE,GAAS,EACT,cAGA/8F,QAAQynB,MAAM,uBAIlBmyD,EAAajjD,MAAMzqB,UAAa,UAAS2wF,eAAkCn4E,iBAAyBo4E,OAAWC,MAC/GnjB,EAAajjD,MAAM46B,gBAAkB,QAGnC6qC,GAAyBnpF,KAAKioF,iBAChCjoF,KAAKsoF,yBAGHc,GAAkBppF,KAAKooF,UACzBpoF,KAAKuoF,kBAIL/oE,YACF,OAAOxf,KAAKgT,SAASwM,MAGnBC,aACF,OAAOzf,KAAKgT,SAASyM,OAGvBykE,aAAa/8D,EAAGC,GACd,OAAOpnB,KAAKgT,SAASwU,kBAAkBL,EAAGC,GAG5C+/D,yBAAyB4C,GAAc,GACrC/pF,KAAKkpF,gBAAgBthC,UAAUm+B,OAAO,cAAegE,GAGvDC,OAAO,WACDhqF,KAAKmlF,iBAAmB1Z,EAAUgE,gBAAgBoG,UACpD9oF,QAAQynB,MAAM,uCACdxU,KAAKmpB,SAGP,MACEkD,MACA45C,WACEjmE,KAEJ,IAAKimE,EACH,YAAKkf,eAAiB1Z,EAAUgE,gBAAgBuG,SAE5Ch2E,KAAKkpF,iBACPlpF,KAAKkpF,eAAehlE,gBACblkB,KAAKkpF,gBAGPx+F,QAAQE,OAAO,IAAI6U,MAAM,0BAGlCO,KAAKmlF,eAAiB1Z,EAAUgE,gBAAgBqG,QAChD,MAAMmU,EAAgB/gF,SAAS8a,cAAc,OAC7CimE,EAAcvmE,MAAMlE,MAAQ6M,EAAI3I,MAAMlE,MACtCyqE,EAAcvmE,MAAMjE,OAAS4M,EAAI3I,MAAMjE,OACvCwqE,EAAcriC,UAAUzyC,IAAI,iBAE5BnV,KAASioF,iBAAiB57D,IACxBA,EAAIo9B,aAAawgC,EAAejqF,KAAKioF,gBAAgB57D,KAErDA,EAAI/H,YAAY2lE,GAGlB,IAAI/B,EAAY,KAEhB,GAAIloF,KAAKi+E,gBAAkBxS,EAAU2D,cAAcr/E,SAAWiQ,KAAKshF,iBAAkB,CACnF,MAAM3a,EAAez9D,SAAS8a,cAAc,OAC5C2iD,EAAarlB,UAAY,YACzBqlB,EAAajjD,MAAMlE,MAAQyqE,EAAcvmE,MAAMlE,MAC/CmnD,EAAajjD,MAAMjE,OAASwqE,EAAcvmE,MAAMjE,OAEhDzf,KAASioF,iBAAiB57D,IACxBA,EAAIo9B,aAAakd,EAAc3mE,KAAKioF,gBAAgB57D,KAEpDA,EAAI/H,YAAYqiD,GAGlBuhB,EAAYloF,KAAKshF,iBAAiB5a,uBAAuBC,EAAc3mE,KAAKuO,GAAK,EAAGvO,KAAKgT,SAAUhT,KAAKi+E,gBAAkBxS,EAAU2D,cAAckH,eAAgBt2E,KAAKwjD,SAAUxjD,KAAK0nF,iBAGxL1nF,KAAKkoF,UAAYA,EAEbjtE,QAAKvZ,KAAoBslE,EAAUp/E,eAAemI,SAAWiQ,KAAKuhF,yBACpEvhF,KAAKknE,uBAALlnE,KAAKknE,qBAAyB,IAAI/1D,KAClCnR,KAAKioF,kBAALjoF,KAAKioF,gBAAoBjoF,KAAKuhF,uBAAuBxb,6BAA6B15C,EAAK45C,EAAS,KAAMjmE,KAAKy9C,mBAAoBxiC,QAAKvZ,KAAoBslE,EAAUp/E,eAAeqI,aAAc+P,KAAKkmE,KAAM,KAAM,KAAM,KAAM,KAAMlmE,KAAKknE,wBAGrOlnE,KAAKooF,UAAU/7D,KACjBA,EAAI/H,YAAYtkB,KAAKooF,SAAS/7D,KAGhC,IAAI69D,EAAyB,KAEzBlqF,KAAK0+E,iBACPwL,EAAyBC,IACvB,IAAKnqF,KAAK0+E,eAAe0L,kBAAkBpqF,MAQzC,OAPAA,KAAKmlF,eAAiB1Z,EAAUgE,gBAAgBsG,YAEhD/1E,KAAK6nF,OAAS,KACZ7nF,KAAKmlF,eAAiB1Z,EAAUgE,gBAAgBqG,QAChDqU,MAMJA,MAIJ,MAAME,EAAe,mBAAG,UAAO71E,EAAQ,MAKrC,GAJImzE,IAAcrxF,EAAKqxF,YACrBrxF,EAAKqxF,UAAY,MAGfnzE,aAAiBwyD,EAAU/uD,4BAC7B3hB,EAAKwxF,aAAe,UAsBtB,GAlBAxxF,EAAKwxF,aAAetzE,EACpBle,EAAK6uF,eAAiB1Z,EAAUgE,gBAAgBuG,SAE5C1/E,EAAK4yF,iBACP5yF,EAAK4yF,eAAehlE,gBACb5tB,EAAK4yF,gBAGd5yF,EAAKmyF,iBAAgB,GAErBnyF,EAAKktD,SAASC,SAAS,eAAgB,CACrCn8C,OAAQhR,EACR4X,WAAY5X,EAAKiY,GACjBwyE,cAAc,EACdC,UAAWqI,YAAYvhE,MACvBtT,MAAOle,EAAKwxF,eAGVtzE,EACF,MAAMA,IA7BW,qDAiCfmzE,EAAY3nF,KAAKm+E,WAAa1S,EAAUiE,aAAa2G,IAAMr2E,KAAKsqF,WAAWL,GAAiBjqF,KAAKuqF,cAAcN,GACrHtC,EAAU6C,iBAAmBN,EAC7BlqF,KAAK2nF,UAAYA,EACjB,MAAM8C,EAAgB9C,EAAUl9F,QAAQof,KAAK,IACpCwgF,EAAgB,MAAMxgF,KAAK,KAChC,GAAIq+E,EAAW,CACb,MAAM1xE,EAAiByvD,EAAQrwD,kBAAkB,CAC/CE,sBAAsB,IAExBoyE,EAAU1M,qBAAqBhlE,GAC/B0xE,EAAUp1E,SAGR9S,KAAKioF,iBACPjoF,KAAKsoF,2BAGR,SAAUz9F,GACX,OAAOw/F,EAAgBx/F,KAGzB,OAAImV,KAAKwhF,kBACFxhF,KAAKooF,WACRpoF,KAAKooF,SAAWpoF,KAAKwhF,gBAAgB1a,sBAAsBz6C,EAAK45C,EAAS,OAG3EjmE,KAAKuoF,mBAGHvoF,KAAK4hF,wBAA0B5hF,KAAKkoF,WAAaloF,KAAK0hB,SACxD1hB,KAAKwpF,qBAAuB/wE,IACtBA,EAAMvK,aAAelO,KAAKuO,KAI9BvO,KAAKwjD,SAASy9B,KAAK,oBAAqBjhF,KAAKwpF,sBAE7CxpF,KAAKwpF,qBAAuB,KAEvBxpF,KAAK0hB,QAIV1hB,KAAKimE,QAAQjvD,gBAAgBnN,KAAK6gF,IAKhC,IAJKA,IAIA1qF,KAAK0hB,OACR,OAGF,MAAMipE,EAAU3qF,KAAKqoF,gBAAgBv1E,OAAO43E,GAC5CC,EAAQ/iC,UAAUzyC,IAAI,cACtBnV,KAAK0hB,OAAO4C,YAAYqmE,OAI5B3qF,KAAKwjD,SAASs9B,IAAI,oBAAqB9gF,KAAKwpF,sBAE5CxpF,KAAKqoF,gBAAkBroF,KAAK4hF,uBAAuBpb,6BAA6BP,IAGlF55C,EAAI/C,aAAa,eAAe,GAChCtpB,KAAKwjD,SAASC,SAAS,aAAc,CACnCn8C,OAAQtH,KACRkO,WAAYlO,KAAKuO,KAEZk8E,EAGTF,cAAcN,GACZ,MAAMW,GAAoB,EAAG5jB,EAAU58E,2BACjCorD,EAAS,CACb/qD,QAASmgG,EAAiBngG,QAE1B+/F,iBAAiBL,GACfA,KAGF5yE,SACEnC,GAAWmC,WAITvE,EAAWhT,KAAKgT,SAChB0O,EAASxY,SAAS8a,cAAc,UACtCtC,EAAO89B,QAAS,EAChB,IAAIqrC,GAAiB,EAErB,MAAMC,EAAa,WACbD,IACFnpE,EAAO89B,QAAS,EAChBqrC,GAAiB,IAIrBZ,EAAc3lE,YAAY5C,GAC1B1hB,KAAK0hB,OAASA,EACd,MAAMkK,EAAMlK,EAAOwH,WAAW,KAAM,CAClC+Q,OAAO,IAEHsvD,EAAcvpF,KAAKupF,YAAc,IAAI9d,EAAUoE,YAErD,GAAI7vE,KAAKo+E,eAAgB,CACvB,MAAM2M,EAAqB/3E,EAASiU,MAAM,CACxCxV,MAAOu1D,EAAUxkD,cAAcoD,mBAEjC2jE,EAAY7S,IAAMqU,EAAmBvrE,MAAQxM,EAASwM,MACtD+pE,EAAY9mF,IAAMsoF,EAAmBtrE,OAASzM,EAASyM,OAGzD,GAAIzf,KAAKq+E,gBAAkB,EAAG,CAC5B,MACM2M,GAAWlhG,KAAK0Y,KAAKxC,KAAKq+E,iBADPrrE,EAASwM,MAAQxM,EAASyM,SAG/C8pE,EAAY7S,GAAKsU,IAAYzB,EAAY9mF,GAAKuoF,IAChDzB,EAAY7S,GAAKsU,GACjBzB,EAAY9mF,GAAKuoF,GACjBhrF,KAAKynF,sBAAuB,GAE5BznF,KAAKynF,sBAAuB,EAIhC,MAAMwD,GAAO,EAAGxf,EAAUyF,qBAAqBqY,EAAY7S,IACrDwU,GAAO,EAAGzf,EAAUyF,qBAAqBqY,EAAY9mF,IAC3Dif,EAAOlC,OAAS,EAAGisD,EAAUgJ,eAAezhE,EAASwM,MAAQ+pE,EAAY7S,GAAIuU,EAAI,IACjFvpE,EAAOjC,QAAU,EAAGgsD,EAAUgJ,eAAezhE,EAASyM,OAAS8pE,EAAY9mF,GAAIyoF,EAAI,IACnFxpE,EAAOgC,MAAMlE,OAAS,EAAGisD,EAAUgJ,eAAezhE,EAASwM,MAAOyrE,EAAI,IAAM,KAC5EvpE,EAAOgC,MAAMjE,QAAU,EAAGgsD,EAAUgJ,eAAezhE,EAASyM,OAAQyrE,EAAI,IAAM,KAC9ElrF,KAAK4nF,mBAAmB5+F,IAAI04B,EAAQ1O,GACpC,MACMm4E,EAAgB,CACpBp4E,cAAe6Y,EACf3yB,UAHgBswF,EAAY3pD,OAAS,CAAC2pD,EAAY7S,GAAI,EAAG,EAAG6S,EAAY9mF,GAAI,EAAG,GAAK,KAIpFuQ,SAAUhT,KAAKgT,SACfC,eAAgBgI,QAAKvZ,GACrB2R,6BAA8BrT,KAAKohF,8BACnC9tE,oBAAqBtT,KAAKknE,qBAC1B3zD,WAAYvT,KAAKuT,YAEb6B,GAAapV,KAAKimE,QAAQnzD,OAAOq4E,GAEvC/1E,UAAWwL,WAAa,SAAUupE,GAChCW,IAEA5pF,EAAWspF,iBACTh1C,EAAOg1C,iBAAiBL,GAExBA,KAIJ/0E,GAAW3qB,QAAQof,KAAK,WACtBihF,IACAF,EAAiBjgG,WAChB,SAAU6pB,GACXs2E,IACAF,EAAiBhgG,OAAO4pB,KAEnBghC,EAGT80C,WAAWhgC,GACT,IAAIppC,GAAY,EAEhB,MAAMkqE,EAAqB,KACzB,GAAIlqE,EACF,MAAM,IAAI8lD,EAAU/uD,4BAA6B,6BAA4BjY,KAAKuO,KAAM,QAItF03D,EAAUjmE,KAAKimE,QACf8kB,EAAqB/qF,KAAKgT,SAASiU,MAAM,CAC7CxV,MAAOu1D,EAAUxkD,cAAcoD,mBAiBjC,MAAO,CACLn7B,QAhBcw7E,EAAQxwD,gBAAgB,CACtCxC,eAAgBgI,QAAKvZ,KACpBmI,KAAKyrD,IACN81B,IAEOC,IADYrkB,EAAU5R,YAAY6Q,EAAQt1D,WAAYs1D,EAAQr1D,MACvDqoD,OAAO3D,EAAQy1B,GAAoBlhF,KAAKwf,IACpD+hE,IACAprF,KAAKqpB,IAAMA,EACXrpB,KAAK4nF,mBAAmB5+F,IAAIqgC,EAAK0hE,GACjC1hE,EAAI3F,MAAMlE,MAAQ8qC,EAAQ5mC,MAAMlE,MAChC6J,EAAI3F,MAAMjE,OAAS6qC,EAAQ5mC,MAAMjE,OACjCzf,KAAKmlF,eAAiB1Z,EAAUgE,gBAAgBuG,SAChD1rB,EAAQhmC,YAAY+E,OAMtBmhE,iBAAiBL,GACfA,KAGF5yE,SACE2J,GAAY,IAMlBihE,aAAasB,GACXzjF,KAAK6/E,UAA6B,iBAAV4D,EAAqBA,EAAQ,KAE9B,OAAvBzjF,KAAS6/E,UACP7/E,KAAKqsB,IAAI/C,aAAa,kBAAmBtpB,KAAK6/E,WAE9C7/E,KAAKqsB,IAAI0zB,gBAAgB,sBAUxB,CAACr6D,EAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ2hG,oBAAsB3hG,EAAQ2lG,WAAa3lG,EAAQ4lG,gBAAa,EACxE,MAAMjE,EAAsBzhG,OAAOyE,OAAO,MAC1C3E,EAAQ2hG,oBAAsBA,EAC9B,CACE,MAAMj8D,EAAYD,UAAUC,WAAa,GACnC42B,EAAW72B,UAAU62B,UAAY,GACjCupC,EAAiBpgE,UAAUogE,gBAAkB,EAC7CC,EAAY,UAAUj+F,KAAK69B,IACnB,4BAA4B79B,KAAK69B,IAA2B,aAAb42B,GAA2BupC,EAAiB,GAG1FC,KACXnE,EAAoBjJ,gBAAkB,SAI5C,MAAMiN,EAAa,CACjBI,OAAQ,EACRC,IAAK,EACLC,OAAQ,EACRC,WAAY,KAEdlmG,EAAQ2lG,WAAaA,EACrB,MAAMQ,EAAiB,CACrB74E,eAAgB,CACdltB,MAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCE,iBAAkB,CAChBhmG,MAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCG,WAAY,CACVjmG,MAAO,qCACPgyC,KAAMuzD,EAAWI,QAEnBO,iBAAkB,CAChBlmG,MAAO,GACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCK,eAAgB,CACdnmG,OAAO,EACPgyC,KAAMuzD,EAAWI,QAEnBS,kBAAmB,CACjBpmG,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCtN,kBAAmB,CACjBx4F,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvC3N,sBAAuB,CACrBn4F,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCjuC,gBAAiB,CACf73D,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvC1f,gBAAiB,CACfpmF,MAAO,+BACPgyC,KAAMuzD,EAAWI,QAEnBxf,mBAAoB,CAClBnmF,MAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCO,iBAAkB,CAChBrmG,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCzf,sBAAuB,CACrBrmF,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCpuC,mBAAoB,CAClB13D,MAAO,YACPgyC,KAAMuzD,EAAWI,QAEnBrN,gBAAiB,CACft4F,MAAO,SACPsmG,cAAe/E,EAAoBjJ,gBACnCtmD,KAAMuzD,EAAWI,QAEnBY,qBAAsB,CACpBvmG,MAAO,SACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCU,qBAAsB,CACpBxmG,MAAO,aACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCW,cAAe,CACbzmG,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCY,gBAAiB,CACf1mG,MAAO,IACPgyC,KAAMuzD,EAAWI,QAEnBvN,SAAU,CACRp4F,MAAO,SACPgyC,KAAMuzD,EAAWI,QAEnBgB,kBAAmB,CACjB3mG,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCc,iBAAkB,CAChB5mG,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCe,iBAAkB,CAChB7mG,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvC5N,cAAe,CACbl4F,MAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCzN,eAAgB,CACdr4F,OAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCgB,eAAgB,CACd9mG,MAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvCiB,WAAY,CACV/mG,MAAO,EACPgyC,KAAMuzD,EAAWI,OAASJ,EAAWO,YAEvC3vE,WAAY,CACVn2B,OAAO,EACPgyC,KAAMuzD,EAAWK,KAEnBhjF,QAAS,CACP5iB,MAAO,gBACPgyC,KAAMuzD,EAAWK,KAEnBtiF,iBAAkB,CAChBtjB,OAAO,EACPgyC,KAAMuzD,EAAWK,IAAML,EAAWO,YAEpC/iF,gBAAiB,CACf/iB,OAAO,EACPgyC,KAAMuzD,EAAWK,IAAML,EAAWO,YAEpC1iF,aAAc,CACZpjB,OAAO,EACPgyC,KAAMuzD,EAAWK,IAAML,EAAWO,YAEpCziF,cAAe,CACbrjB,OAAO,EACPgyC,KAAMuzD,EAAWK,IAAML,EAAWO,YAEpCrjF,WAAY,CACVziB,MAAO,GACPgyC,KAAMuzD,EAAWK,KAEnBrjF,UAAW,CACTviB,OAAO,EACPgyC,KAAMuzD,EAAWK,IAAML,EAAWO,YAEpCzjF,oBAAqB,CACnBriB,OAAO,EACPgyC,KAAMuzD,EAAWK,KAEnBjrF,gBAAiB,CACf3a,OAAO,EACPgyC,KAAMuzD,EAAWK,KAEnBjjF,aAAc,CACZ3iB,OAAO,EACPgyC,KAAMuzD,EAAWK,KAEnBtjF,OAAQ,CACNtiB,OAAO,EACPgyC,KAAMuzD,EAAWK,KAEnB/iF,oBAAqB,CACnB7iB,MAAO,yBACPgyC,KAAMuzD,EAAWK,KAEnB/+F,UAAW,CACT7G,MAAO,EACPgyC,KAAMuzD,EAAWK,KAEnBliF,WAAY,CACV1jB,MAAO,KACPgyC,KAAMuzD,EAAWM,QAEnBrxE,UAAW,CACTx0B,MAAO,yBACPgyC,KAAMuzD,EAAWM,SAInBE,EAAeiB,mBAAqB,CAClChnG,OAAO,EACPgyC,KAAMuzD,EAAWI,QAEnBI,EAAekB,OAAS,CACtBjnG,MAAOqlC,UAAU6hE,UAAY,QAC7Bl1D,KAAMuzD,EAAWI,QAEnBI,EAAeoB,iBAAmB,CAChCnnG,MAAO,0BACPgyC,KAAMuzD,EAAWI,QAEnBI,EAAe3N,SAASpmD,MAAQuzD,EAAWO,WAE7C,MAAMsB,EAActnG,OAAOyE,OAAO,MA0ElC3E,EAAQ4lG,WAxER,QACEtrF,cACE,MAAM,IAAIR,MAAM,4CAGPM,GACT,MAAMqtF,EAAaD,EAAYptF,GAE/B,QAAmBxW,IAAf6jG,EACF,OAAOA,EAGT,MAAMC,EAAgBvB,EAAe/rF,GAErC,YAAsBxW,IAAlB8jG,EACKA,EAAchB,eAAiBgB,EAActnG,WADtD,EACsDA,cAM1CgyC,EAAO,MACnB,MAAM9sC,EAAUpF,OAAOyE,OAAO,MAE9B,UAAWyV,KAAQ+rF,EAAgB,CACjC,MAAMuB,EAAgBvB,EAAe/rF,GAErC,GAAIg4B,EAAM,CACR,GAAoC,IAA/BA,EAAOs1D,EAAct1D,MACxB,SAGF,GAAIA,IAASuzD,EAAWO,WAAY,CAClC,MAAM9lG,EAAQsnG,EAActnG,MACtBunG,SAAmBvnG,EAEzB,GAAkB,YAAdunG,GAAyC,WAAdA,GAAwC,WAAdA,GAA0Br/F,OAAOC,UAAUnI,GAAQ,CAC1GkF,EAAQ8U,GAAQha,EAChB,SAGF,MAAM,IAAI0Z,MAAO,gCAA+BM,MAIpD,MAAMqtF,EAAaD,EAAYptF,GAC/B9U,EAAQ8U,QAAuBxW,IAAf6jG,EAA2BA,EAAaC,EAAchB,eAAiBgB,EAActnG,MAGvG,OAAOkF,aAGE8U,EAAMha,GACfonG,EAAYptF,GAAQha,gBAGRkF,GACZ,UAAW8U,KAAQ9U,EACjBkiG,EAAYptF,GAAQ9U,EAAQ8U,iBAIlBA,UACLotF,EAAYptF,4BAInB,OAAOla,OAAOiI,KAAKq/F,GAAa7kG,OAAS,KAStC,CAAC5C,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQg5F,uBAAoB,EAE5B,IAAI3X,EAAYphF,EAAoB,GAEhC6lF,EAAY7lF,EAAoB,GAmJpCD,EAAQg5F,kBA/IR,QACE1+E,cACED,KAAKwsE,UAAY,KACjBxsE,KAAKutF,mBAAqB,KAC1BvtF,KAAKwtF,OAAS,KACdxtF,KAAKytF,oBAAsB,KAC3BztF,KAAK0tF,YAAc,KACnB1tF,KAAK2tF,UAAW,EAChB3tF,KAAK4tF,wBAAyB,EAGhCjhB,UAAUH,GACRxsE,KAAKwsE,UAAYA,EAGnBqhB,mBAAmBN,GACjBvtF,KAAKutF,mBAAqBA,EAG5BnD,kBAAkB74E,GAChB,OAAOvR,KAAKytF,sBAAwBl8E,EAAKg2E,YAG3CS,YACE,QAAShoF,KAAKwsE,UAGhBkY,sBAAsBY,GAChBtlF,KAAK0tF,cACP55E,aAAa9T,KAAK0tF,aAClB1tF,KAAK0tF,YAAc,OAGjB1tF,KAAKwsE,UAAU6Y,eAAeC,KAI9BtlF,KAAK4tF,wBAA0B5tF,KAAKutF,oBAAoBlI,kBAIxDrlF,KAAK2tF,UAIL3tF,KAAKwtF,SACPxtF,KAAK0tF,YAAcx1E,WAAWlY,KAAKwtF,OAAO1xE,KAAK9b,MAhD7B,OAoDtBylF,mBAAmBt4C,EAAS4kC,EAAO+b,EAAcC,GAAiB,GAChE,MAAMC,EAAe7gD,EAAQ4kC,MACvBkc,EAAaD,EAAa1lG,OAEhC,GAAmB,IAAf2lG,EACF,OAAO,KAGT,QAASxlG,EAAI,EAAGA,EAAIwlG,EAAYxlG,IAAK,CACnC,MAAM8oB,EAAOy8E,EAAavlG,GAAG8oB,KAE7B,IAAKvR,KAAKkuF,eAAe38E,GACvB,OAAOA,EAIX,MAAM+0E,EAAUn5C,EAAQ7qC,MAAMiM,GACxBg4E,EAASp5C,EAAQsmC,KAAKllE,GAE5B,GAAIg4E,EAASD,EAAU,EAAI2H,EAAY,CACrC,MAAM/G,EAAa/5C,EAAQgL,IAE3B,QAAS1vD,EAAI,EAAG6E,EAAKi5F,EAASD,EAAS79F,EAAI6E,EAAI7E,IAAK,CAClD,MAAM0lG,EAASL,EAAexH,EAAU79F,EAAI89F,EAAS99F,EAErD,GAAIy+F,EAAWptE,IAAIq0E,GACjB,SAGF,MAAMC,EAAWrc,EAAMoc,EAAS,GAEhC,IAAKnuF,KAAKkuF,eAAeE,GACvB,OAAOA,GAKb,IAAIC,EAAiBP,EAAevH,EAASD,EAAU,EACnDgI,EAAgBvc,EAAMsc,GAM1B,OAJIC,IAAkBtuF,KAAKkuF,eAAeI,IAItCP,IACFM,GAAkBP,EAAe,GAAI,EACrCQ,EAAgBvc,EAAMsc,GAElBC,IAAkBtuF,KAAKkuF,eAAeI,IACjCA,EAIJ,KAGTJ,eAAe38E,GACb,OAAOA,EAAK4zE,iBAAmB1Z,EAAUgE,gBAAgBuG,SAG3D0P,WAAWn0E,GACT,OAAQA,EAAK4zE,qBACN1Z,EAAUgE,gBAAgBuG,SAC7B,OAAO,OAEJvK,EAAUgE,gBAAgBsG,OAC7B/1E,KAAKytF,oBAAsBl8E,EAAKg2E,YAChCh2E,EAAKs2E,SACL,WAEGpc,EAAUgE,gBAAgBqG,QAC7B91E,KAAKytF,oBAAsBl8E,EAAKg2E,YAChC,WAEG9b,EAAUgE,gBAAgBoG,QAC7B71E,KAAKytF,oBAAsBl8E,EAAKg2E,YAChCh2E,EAAKy4E,OAAO5qE,QAAQ,KAClBpf,KAAK0kF,0BACJz5E,MAAMpgB,IACHA,aAAkBm8E,EAAU/uD,6BAIhClrB,QAAQynB,MAAO,gBAAe3pB,QAKpC,OAAO,KASJ,CAACnF,EAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQigG,qBAAkB,EAsQ1BjgG,EAAQigG,gBApQR,QACE3lF,aACE49E,iBACAr6B,WACArzC,cAEAnQ,KAAK69E,eAAiBA,EACtB79E,KAAKsoB,QAAU,GACftoB,KAAKwjD,SAAWA,EAChBxjD,KAAKuuF,QAAUp+E,EACfnQ,KAAKwuF,0BAA4B,KACjCxuF,KAAK6uD,SAAW,KAChB7uD,KAAKsvD,oBAAsB,KAC3BtvD,KAAKgf,SAAU,EAGjBm8D,eAAesT,EAAMC,GACnB1uF,KAAK6uD,SAAW4/B,EAChBzuF,KAAKsvD,oBAAsBo/B,EAG7BpT,SACE,IAAKt7E,KAAK6uD,WAAa7uD,KAAKsvD,oBAC1B,MAAM,IAAI7vD,MAAM,4CAGlB,GAAIO,KAAKgf,QACP,MAAM,IAAIvf,MAAM,uCAGlBO,KAAKgf,SAAU,EAEVhf,KAAKwuF,4BACRxuF,KAAKwuF,0BAA4B9wE,KAC3BA,EAAIvN,YAAcnQ,KAAKuuF,UAA6B,IAAlB7wE,EAAIvN,YACxCnQ,KAAK2uF,kBAIT3uF,KAAKwjD,SAASs9B,IAAI,yBAA0B9gF,KAAKwuF,4BAGnDxuF,KAAK2uF,iBAGPpT,WACOv7E,KAAKgf,UAIVhf,KAAKgf,SAAU,EAEXhf,KAAKwuF,4BACPxuF,KAAKwjD,SAASy9B,KAAK,yBAA0BjhF,KAAKwuF,2BAElDxuF,KAAKwuF,0BAA4B,OAIrCI,gBAAgBtmE,EAASumE,GACvB,IAAKvmE,EACH,MAAO,GAGT,MACEgnC,uBACEtvD,KACJ,IAAIvX,EAAI,EACJqmG,EAAS,EACb,MAAM5hF,EAAMoiD,EAAoBhnE,OAAS,EACnCktD,EAAS,GAEf,QAAS9zC,EAAI,EAAGqtF,EAAKzmE,EAAQhgC,OAAQoZ,EAAIqtF,EAAIrtF,IAAK,CAChD,IAAIstF,EAAW1mE,EAAQ5mB,GAEvB,KAAOjZ,IAAMykB,GAAO8hF,GAAYF,EAASx/B,EAAoB7mE,GAAGH,QAC9DwmG,GAAUx/B,EAAoB7mE,GAAGH,OACjCG,IAGEA,IAAM6mE,EAAoBhnE,QAC5ByE,QAAQynB,MAAM,qCAGhB,MAAMnpB,EAAQ,CACZqhB,MAAO,CACLuiF,OAAQxmG,EACRgjC,OAAQujE,EAAWF,IAKvB,IAFAE,GAAYH,EAAcntF,GAEnBjZ,IAAMykB,GAAO8hF,EAAWF,EAASx/B,EAAoB7mE,GAAGH,QAC7DwmG,GAAUx/B,EAAoB7mE,GAAGH,OACjCG,IAGF4C,EAAM6hB,IAAM,CACV+hF,OAAQxmG,EACRgjC,OAAQujE,EAAWF,GAErBt5C,EAAOtrD,KAAKmB,GAGd,OAAOmqD,EAGT05C,eAAe5mE,GACb,GAAuB,IAAnBA,EAAQhgC,OACV,OAGF,MACEu1F,iBACA0Q,WACEvuF,MAEFsvD,sBACAT,YACE7uD,KACEmvF,EAAiBZ,IAAY1Q,EAAe70B,SAASulC,QACrDa,EAAmBvR,EAAe70B,SAASgmC,SAEjD,IAAIK,EAAU,KAMd,WAAmB3iF,EAAO40C,GACxB,MAAM2tC,EAASviF,EAAMuiF,OACrBpgC,SAASogC,GAAQ94E,YAAc,GACxBm5E,EAAgBL,EAAQ,EAAGviF,EAAM+e,OAAQ61B,GAGlD,WAAyB2tC,EAAQM,EAAYC,EAAUluC,GACrD,IAAIj1B,EAAMwiC,EAASogC,GAEnB,GAAI5iE,EAAIojE,WAAaC,KAAKC,UAAW,CACnC,MAAMjjE,EAAOxjB,SAAS8a,cAAc,QACpCqI,EAAI8nC,WAAW1K,aAAa/8B,EAAML,GAClCK,EAAKpI,YAAY+H,GACjBwiC,EAASogC,GAAUviE,EACnBL,EAAMK,EAGR,MAAM+/B,EAAU6C,EAAoB2/B,GAAQnsE,UAAUysE,EAAYC,GAC5D90C,GAAOxxC,SAASuiD,eAAegB,GAErC,GAAInL,EAAW,CACb,MAAM50B,EAAOxjB,SAAS8a,cAAc,QACpC0I,SAAK40B,UAAa,GAAEA,aACpB50B,EAAKpI,YAAYo2B,IACjBruB,EAAI/H,YAAYoI,GACT40B,EAAUh+B,SAAS,YAAcoJ,EAAK+lD,WAAa,EAG5DpmD,SAAI/H,YAAYo2B,IACT,EAGT,IAAIk1C,EAAKR,EACLS,EAAKD,EAAK,EAEd,GA1CqB/R,EAAev8C,MAAMwuD,aA2CxCF,EAAK,EACLC,EAAKvnE,EAAQhgC,gBACH6mG,EACV,OAGF,QAAS1mG,EAAImnG,EAAInnG,EAAIonG,EAAIpnG,IAAK,CAC5B,MAAM4C,EAAQi9B,EAAQ7/B,GAChBikB,EAAQrhB,EAAMqhB,MACdQ,EAAM7hB,EAAM6hB,IACZ6iF,EAAaZ,GAAkB1mG,IAAM2mG,EACrCY,EAAkBD,EAAa,YAAc,GACnD,IAAIE,GAAe,EAYnB,GAVKZ,GAAW3iF,EAAMuiF,SAAWI,EAAQJ,OAOvCK,EAAgBD,EAAQJ,OAAQI,EAAQ5jE,OAAQ/e,EAAM+e,SANtC,OAAZ4jE,GACFC,EAAgBD,EAAQJ,OAAQI,EAAQ5jE,OAvDpCliC,WA0DN6Q,EAAUsS,IAKRA,EAAMuiF,SAAW/hF,EAAI+hF,OACvBgB,GAAeX,EAAgB5iF,EAAMuiF,OAAQviF,EAAM+e,OAAQve,EAAIue,OAAQ,YAAcukE,OAChF,CACLC,GAAeX,EAAgB5iF,EAAMuiF,OAAQviF,EAAM+e,OAlE7CliC,UAkEsE,kBAAoBymG,GAEhG,QAASE,EAAKxjF,EAAMuiF,OAAS,EAAGkB,GAAKjjF,EAAI+hF,OAAQiB,EAAKC,GAAID,IACxDrhC,EAASqhC,GAAI5uC,UAAY,mBAAqB0uC,EAGhD51F,EAAU8S,EAAK,gBAAkB8iF,GAGnCX,EAAUniF,EAEN6iF,GACFlS,EAAeuS,oBAAoB,CACjCp4C,QAAS6W,EAASniD,EAAMuiF,QACxBgB,gBACA9/E,UAAWo+E,EACX8B,WAAYjB,IAKdC,GACFC,EAAgBD,EAAQJ,OAAQI,EAAQ5jE,OAxFhCliC,WA4FZolG,iBACE,IAAK3uF,KAAKgf,QACR,OAGF,MACE6+D,iBACAv1D,UACAimE,WACEvuF,MAEFsvD,sBACAT,YACE7uD,KACJ,IAAIswF,GAAqB,EAEzB,QAAS7nG,EAAI,EAAG6E,EAAKg7B,EAAQhgC,OAAQG,EAAI6E,EAAI7E,IAAK,CAChD,MAAM4C,EAAQi9B,EAAQ7/B,GAGtB,QAASuY,EAFKlX,KAAKqY,IAAImuF,EAAoBjlG,EAAMqhB,MAAMuiF,QAEnC/hF,EAAM7hB,EAAM6hB,IAAI+hF,OAAQjuF,GAAKkM,EAAKlM,IAAK,CACzD,MAAMqrB,EAAMwiC,EAAS7tD,GACrBqrB,EAAIlW,YAAcm5C,EAAoBtuD,GACtCqrB,EAAIi1B,UAAY,GAGlBgvC,EAAqBjlG,EAAM6hB,IAAI+hF,OAAS,EAGrCpR,GAAgB0S,mBAMrBvwF,KAAKsoB,QAAUtoB,KAAK4uF,gBAFA/Q,EAAe2S,YAAYjC,IAAY,KACjC1Q,EAAe4S,kBAAkBlC,IAAY,MAGvEvuF,KAAKkvF,eAAelvF,KAAKsoB,aAStB,CAAC5iC,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ+qG,qBAAkB,EAE1B,IAAI1pB,EAAYphF,EAAoB,GAIpC,WAAkB+qG,EAAS3wE,GACzB,MAAM3d,EAAI6G,SAAS8a,cAAc,KAEjC,IAAK3hB,EAAEuuF,MACL,MAAM,IAAInxF,MAAM,kDAGlB4C,EAAEwF,KAAO8oF,EACTtuF,EAAEg9C,OAAS,UAEP,aAAch9C,IAChBA,EAAEwuF,SAAW7wE,IAGd9W,SAAS0jB,MAAQ1jB,SAASmb,iBAAiBC,YAAYjiB,GACxDA,EAAEuuF,QACFvuF,EAAE6hB,SAgEJv+B,EAAQ+qG,gBA7DR,QACEzwF,cACED,KAAK8wF,cAAgB,IAAIt1E,QAG3Bu1E,YAAYhmG,EAAKi1B,IACT,EAAGgnD,EAAUl8E,wBAAwBC,EAAK,sBAKhD8lG,EAAS9lG,EAAM,yBAA0Bi1B,GAJvCjzB,QAAQynB,MAAO,kCAAiCzpB,KAOpDimG,aAAaroG,EAAMq3B,EAAUk2C,GAI3B26B,EAHgBplG,IAAImuB,gBAAgB,IAAIC,KAAK,CAAClxB,GAAO,CACnDmc,KAAMoxD,KAEUl2C,GAGpB4sC,mBAAmB5U,EAASrvD,EAAMq3B,GAChC,MAAMixE,GAAa,EAAGjqB,EAAUpjD,WAAW5D,GACrCk2C,EAAc+6B,EAAY,kBAAoB,GAEpD,GAAIA,EAAW,CACb,IAUIC,EAVAP,EAAU3wF,KAAK8wF,cAActmG,IAAIwtD,GAEhC24C,IACHA,EAAUllG,IAAImuB,gBAAgB,IAAIC,KAAK,CAAClxB,GAAO,CAC7Cmc,KAAMoxD,KAGRl2D,KAAK8wF,cAAc9nG,IAAIgvD,EAAS24C,IAIlCO,EAAY,SAAW3hG,mBAAmBohG,EAAU,IAAM3wE,GAE1D,IACErY,cAAOwd,KAAK+rE,IACL,QACAtiG,GACP7B,QAAQynB,MAAO,uBAAsB5lB,KACrCnD,IAAI0lG,gBAAgBR,GAEpB3wF,KAAK8wF,cAAcp8E,OAAOsjC,IAI9B,YAAKg5C,aAAaroG,EAAMq3B,EAAUk2C,IAC3B,EAGT26B,SAASO,EAAMrmG,EAAKi1B,EAAUqxE,EAAkB,YAE9CR,EADgBplG,IAAImuB,gBAAgBw3E,GAClBpxE,MASf,CAACt6B,EAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ2rG,WAAa3rG,EAAQ4rG,SAAW5rG,EAAQ6rG,wBAAqB,EACrE7rG,EAAQ8rG,qBAOR,YACEpyC,SACAt/C,OACA2xF,QAAQ,IAER,OAAO,IAAIhnG,QAAQ,SAAUC,EAASC,GACpC,GAAsB,iBAAXy0D,IAAyBt/C,GAAwB,iBAATA,KAAwB9R,OAAOC,UAAUwjG,IAAUA,GAAS,GAC7G,MAAM,IAAIjyF,MAAM,8CAGlB,WAAiBqF,GACXu6C,aAAkBkyC,EACpBlyC,EAAO4hC,KAAKlhF,EAAM4xF,GAElBtyC,EAAOxmC,oBAAoB9Y,EAAM4xF,GAG/BliC,GACF37C,aAAa27C,GAGf9kE,EAAQma,GAGV,MAAM6sF,EAAeh8C,EAAQ75B,KAAK,KAAMw1E,EAAWM,OAE/CvyC,aAAkBkyC,EACpBlyC,EAAOyhC,IAAI/gF,EAAM4xF,GAEjBtyC,EAAOzmC,iBAAiB7Y,EAAM4xF,GAGhC,MAAME,EAAiBl8C,EAAQ75B,KAAK,KAAMw1E,EAAWQ,SAC/CriC,EAAUv3C,WAAW25E,EAAgBH,MAvC/C,MAAMJ,EAAa,CACjBM,MAAO,QACPE,QAAS,WAEXnsG,EAAQ2rG,WAAaA,EAuCrB,QACErxF,cACED,KAAKqY,WAAaxyB,OAAOyE,OAAO,MAGlC8vB,GAAG8qC,EAAW74C,EAAUphB,EAAU,MAChC+U,KAAK8gF,IAAI57B,EAAW74C,EAAU,CAC5B0lF,UAAU,EACVC,KAAM/mG,GAAS+mG,OAInBp6C,IAAIsN,EAAW74C,EAAUphB,EAAU,MACjC+U,KAAKihF,KAAK/7B,EAAW74C,EAAU,CAC7B0lF,UAAU,EACVC,KAAM/mG,GAAS+mG,OAInBvuC,SAASyB,EAAWv8D,GAClB,MAAMspG,EAAiBjyF,KAAKqY,WAAW6sC,GAEvC,IAAK+sC,GAA4C,IAA1BA,EAAe3pG,OACpC,OAGF,IAAI4pG,EAEJ,UACE7lF,WACA0lF,WACAC,UACGC,EAAejwF,MAAM,GACpBgwF,GACFhyF,KAAKihF,KAAK/7B,EAAW74C,GAGnB0lF,GACDG,MAAsB,KAAIhoG,KAAKmiB,GAIlCA,EAAS1jB,GAGX,GAAIupG,EAAmB,CACrB,UAAW7lF,KAAY6lF,EACrB7lF,EAAS1jB,GAGXupG,EAAoB,MAIxBpR,IAAI57B,EAAW74C,EAAUphB,EAAU,cACVqL,OAAK+hB,YAALhW,UAA+B,KACvCnY,KAAK,CAClBmiB,WACA0lF,UAAgC,IAAtB9mG,GAAS8mG,SACnBC,MAAwB,IAAlB/mG,GAAS+mG,OAInB/Q,KAAK/7B,EAAW74C,EAAUphB,EAAU,MAClC,MAAMgnG,EAAiBjyF,KAAKqY,WAAW6sC,GAEvC,GAAK+sC,EAIL,QAASxpG,EAAI,EAAG6E,EAAK2kG,EAAe3pG,OAAQG,EAAI6E,EAAI7E,IAClD,GAAIwpG,EAAexpG,GAAG4jB,WAAaA,EAEjC,YADA4lF,EAAel5E,OAAOtwB,EAAG,IAQjC9C,EAAQ4rG,SAAWA,EASnB5rG,EAAQ6rG,mBAPR,gBAAiCD,EAC/B9tC,SAASyB,EAAWv8D,GAClB,MAAM,IAAI8W,MAAM,mDASb,CAAC/Z,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQwsG,iBAAc,EAEtBvsG,EAAoB,IAEpB,IAAI8/E,EAAc9/E,EAAoB,GAEtC,MAAMwsG,EAAUlpF,SAASkpF,QAkCzBzsG,EAAQwsG,YAhCR,QACElyF,YAAYy6E,GACV16E,KAAKqyF,MAAQ3X,EACb16E,KAAKsyF,OAAS,IAAI5nG,QAAQ,CAACC,EAASC,KAClCwnG,EAAQG,aAAa,EAAG7sB,EAAY4B,eAAeoT,GAAO,KACxD/vF,EAAQynG,OAKRhnB,cAAc,gCAElB,aADmB/oE,EAAKiwF,QACZlnB,eAFMhqE,GAKdiqE,eAAe,gCAEnB,aADmBhpE,EAAKiwF,QACZjnB,gBAFOjqE,GAKf5W,IAAIoD,EAAKkgC,EAAO,KAAM8O,GAAY,EAAG8oC,EAAY+B,iBAAiB75E,EAAKkgC,IAAO,gCAElF,aADmByK,EAAK+5D,QACZ9nG,IAAIoD,EAAKkgC,EAAM8O,IAFuDx7B,GAK9E4vB,UAAUgnB,GAAS,gCAEvB,aADmB3qC,EAAKilF,QACZthE,UAAUgnB,IAFC52C,MAWpB,KAIP8H,SAASkpF,QAAU,SAAUzqF,EAAQuB,EAAU3f,GAC7C,IAAIipG,EAAY,GACZC,EAAY,GACZC,EAAY,cACZC,EAAY,GACZC,EAAU,GACVC,EAAc,UAoClB,WAAqB9nG,EAAK+nG,GAAWC,IACnCD,GAAYA,IAAa,SAAoBnqG,KAE7CoqG,GAAYA,IAAa,aAEzB,IAAIpxB,GAAM,IAAIz8C,eACdy8C,GAAIx8C,KAAK,MAAOp6B,GAzCU,GA2CtB42E,GAAIqxB,kBACNrxB,GAAIqxB,iBAAiB,6BAGvBrxB,GAAIt8C,mBAAqB,WACD,GAAlBs8C,GAAIr8C,aACY,KAAdq8C,GAAIthE,QAAgC,IAAfshE,GAAIthE,OAC3ByyF,GAAUnxB,GAAIl8C,cAEdstE,OAKNpxB,GAAIx9C,QAAU4uE,GACdpxB,GAAIsxB,UAAYF,GAEhB,IACEpxB,GAAI32D,KAAK,YAET+nF,MA+GJ,WAAoBrY,EAAMzlE,IACpBylE,IACFA,EAAOA,EAAK/yD,eAGd1S,GAAWA,IAAY,aAqEzB,aACEu9E,EAAY,GACZC,EAAY,GACZE,EAAY,GAtEZn7E,GACAm7E,EAAYjY,EACZ,IAAIwY,GArLN,aACE,OAAOhqF,EAAS8gD,iBAAiB,iCAoLjBmpC,GACZC,GAAYF,GAAU5qG,OAE1B,GAAkB,IAAd8qG,GAAJ,CA+BA,IAAIC,EACAC,EAAiB,EAErBD,EAAmB,aACjBC,GAEsBF,KACpBn+E,KACA49E,EAAc,aAiBlB,QAASpqG,EAAI,EAAGA,EAAI2qG,GAAW3qG,IACd,IAAI8qG,EAAiBL,GAAUzqG,IACrC+qG,KAAK9Y,EAAM2Y,OA1DtB,CACE,IAAII,GArLR,aACE,IAAI1vE,EAAS7a,EAASqkD,cAAc,mCACpC,OAAOxpC,EAASkL,KAAKiuC,MAAMn5C,EAAO2vE,WAAa,KAmLlCC,GAEX,GAAIF,IAAQA,GAAKG,SAAWH,GAAKI,eAAgB,CAI/C,GAHA9mG,QAAQC,IAAI,sDACZwlG,EAAYiB,GAAKG,QAAQlZ,IAET,CACd,IAAIoZ,EAAgBL,GAAKI,eAAelsE,cAExC,QAASosE,KAAeN,GAAKG,QAG3B,KAFAG,EAAcA,EAAYpsE,iBAEN+yD,EAAM,CACxB8X,EAAYiB,GAAKG,QAAQlZ,GACzB,MACSqZ,IAAgBD,IACzBtB,EAAYiB,GAAKG,QAAQE,KAK/B7+E,UAEAloB,QAAQC,IAAI,sCAGd6lG,EAAc,WAgBhB,WAA0BtwC,GACxB,IAAI16C,EAAO06C,EAAK16C,KAEhB7H,KAAKwzF,KAAO,SAAU9Y,EAAMzlE,IArKhC,WAAuBpN,EAAM6yE,GAAMsZ,GAAiBC,IAClD,IAAIC,GAAUrsF,EAAK/b,QAAQ,UAAW,KAAO,KAE7C,WAAoBk5B,GAClB,OAAIA,EAAKjC,YAAY,MAAQ,EAAUiC,EAChCA,EAAKl5B,QAAQ,QAAS,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,MAAMA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,KAwElOqoG,EAAYtsF,EAAM,SAAU+c,GAC1B6tE,GAAa7tE,EAtEf,WAAyBI,EAAMovE,GAC7B,IAAIC,EAAa,GACbC,EAAU,YACVC,EAAY,cACZC,EAAY,mBACZC,EAAW,iCACXC,EAAU,yBAEd,WAAuBC,EAASC,GAAgBC,IAC9C,IAAIjmE,GAAU+lE,EAAQ7oG,QAAQwoG,EAAS,IAAI9oC,MAAM,WAC7CspC,GAAc,IACdC,GAAcra,GAAKlvB,MAAM,IAAK,GAAG,GACjCwpC,IAAW,EACX3pG,GAAQ,IAEZ,aACE,OAAa,CACX,IAAKujC,GAAQtmC,OAEX,YADAusG,KAIF,IAAIhpC,EAAOj9B,GAAQrD,QACnB,IAAIgpE,EAAU/mG,KAAKq+D,GAEnB,IAAI+oC,GAAgB,CAGlB,GAFAvpG,GAAQmpG,EAAUpxE,KAAKyoC,GAEZ,CACTipC,GAAczpG,GAAM,GAAGs8B,cACvBqtE,GAA2B,MAAhBF,IAAuBA,KAAgBpa,IAAQoa,KAAgBC,GAC1E,YACSC,GACT,SAKF,GAFA3pG,GAAQopG,EAASrxE,KAAKyoC,GAIpB,YADAopC,EAAWf,GAAU7oG,GAAM,GAAI6pG,GAKnC,IAAIllD,EAAM6b,EAAKxgE,MAAMqpG,GAEjB1kD,GAAqB,GAAdA,EAAI1nD,SACb+rG,EAAWrkD,EAAI,IAAMmlD,EAAWnlD,EAAI,OAK1CklD,GAGF,WAAoBnqG,EAAKkqB,IACvBk/E,EAAYppG,EAAK,SAAU0hE,IACzB2oC,EAAc3oC,IAAS,EAAOx3C,KAC7B,WACDloB,QAAQ8B,KAAK9D,EAAM,eACnBkqB,OAIJmgF,EAAcpwE,GAAM,EAAM,WACxBovE,EAAyBC,KAM3BgB,CAAgBzwE,EAAU,SAAUj8B,GAClC,QAASiF,KAAOjF,EAAM,CACpB,IAAI4lB,EACA7O,EACAqjD,EAAQn1D,EAAIm1B,YAAY,KAExBggC,EAAQ,GACVx0C,EAAK3gB,EAAIk1B,UAAU,EAAGigC,GACtBrjD,EAAO9R,EAAIk1B,UAAUigC,EAAQ,KAE7Bx0C,EAAK3gB,EACL8R,EAAOgzF,GAGJF,EAAUjkF,KACbikF,EAAUjkF,GAAM,IAGlBikF,EAAUjkF,GAAI7O,GAAQ/W,EAAKiF,GAGzBomG,IACFA,QAGHC,IA8DCqB,CAAcztF,EAAM6yE,EAAMzlE,EAAU,WAClCloB,QAAQ8B,KAAKgZ,EAAO,eACpB9a,QAAQ8B,KAAK,IAAM6rF,EAAO,wBAC1BiY,EAAY,GACZ19E,QAoXR,WAAqBrnB,EAAKkgC,GAAM8O,IAC9B,IAAIj0C,GAAO6pG,EAAU5kG,GAErB,IAAKjF,GAAM,CAGT,GAFAoE,QAAQ8B,KAAK,IAAMjB,EAAM,mBAEpBgvC,GACH,OAAO,KAGTj0C,GAAOi0C,GAGT,IAAI24D,GAAK,GAET,QAAS71F,KAAQ/W,GAAM,CACrB,IAAIkD,EAAMlD,GAAK+W,GAEf7T,EAAM2pG,EADN3pG,EAAM4pG,EAAa5pG,EAAKiiC,GAAMlgC,EAAK8R,GACTouB,GAAMlgC,GAChC2nG,GAAG71F,GAAQ7T,EAGb,OAAO0pG,GAGT,WAAsB1pG,EAAKiiC,GAAMlgC,GAAK8R,IACpC,IACIg2F,EADU,2CACQtyE,KAAKv3B,GAC3B,IAAK6pG,IAAYA,EAAQptG,OAAQ,OAAOuD,EACxC,IAEImjF,EAFA2mB,EAAYD,EAAQ,GACpBE,EAAYF,EAAQ,GAcxB,OAXApX,IAAYsX,KAAa9nE,GACvBkhD,EAAQlhD,GAAK8nE,GACJA,KAAapD,IACtBxjB,EAAQwjB,EAAUoD,IAGhBD,KAAa/C,IAEf/mG,GAAMgqG,EADMjD,EAAQ+C,IACR9pG,EAAKmjF,EAAOphF,GAAK8R,KAGxB7T,EAGT,WAAwBA,EAAKiiC,GAAMlgC,IAEjC,OAAO/B,EAAIC,QADE,uBACc,SAAUgqG,GAAcC,GACjD,OAAIjoE,IAAQioE,KAAOjoE,GACVA,GAAKioE,GAGVA,KAAOvD,EACFA,EAAUuD,IAGnBhpG,QAAQC,IAAI,cAAgB+oG,EAAM,WAAanoG,GAAM,kBAC9CkoG,MAIX,WAA0B99C,GACxB,IAAIkuB,GAlpBN,WAA2BluB,GACzB,IAAKA,EAAS,MAAO,GACrB,IAAI0M,GAAS1M,EAAQmW,aAAa,gBAC9BxJ,GAAW3M,EAAQmW,aAAa,kBAChCrgC,GAAO,GAEX,GAAI62B,GACF,IACE72B,GAAOmB,KAAKiuC,MAAMvY,UAElB53D,QAAQ8B,KAAK,kCAAoC61D,IAIrD,MAAO,CACLn2C,GAAIm2C,GACJ52B,KAAMA,IAkoBGkoE,CAAkBh+C,GAC7B,GAAKkuB,GAAK33D,GACV,KAAI5lB,GAAOstG,EAAY/vB,GAAK33D,GAAI23D,GAAKp4C,MAErC,IAAKnlC,GAEH,YADAoE,QAAQ8B,KAAK,IAAMq3E,GAAK33D,GAAK,kBAI/B,GAAI5lB,GAAK+pG,GAAY,CACnB,GAAsC,IA+B1C,WAA8B16C,GAC5B,GAAIA,EAAQnlC,SACV,OAAOmlC,EAAQnlC,SAASvqB,OAG1B,UAAW0vD,EAAQk+C,kBAAsB,IACvC,OAAOl+C,EAAQk+C,kBAKjB,QAFIp2D,GAAQ,EAEHr3C,GAAI,EAAGA,GAAIuvD,EAAQmjB,WAAW7yE,OAAQG,KAC7Cq3C,IAA8B,IAArBkY,EAAQy3C,SAAiB,EAAI,EAGxC,OAAO3vD,GA9CDq2D,CAAqBn+C,GACvBA,EAAQ06C,GAAa/pG,GAAK+pG,OACrB,CAIL,QAHI7/E,GAAWmlC,EAAQmjB,WACnB7hB,IAAQ,EAEH7wD,EAAI,EAAGojB,EAAIgH,GAASvqB,OAAQG,EAAIojB,EAAGpjB,IACb,IAAzBoqB,GAASpqB,GAAGgnG,UAAkB,KAAKjiG,KAAKqlB,GAASpqB,GAAG2tG,aAClD98C,GACFzmC,GAASpqB,GAAG2tG,UAAY,IAExBvjF,GAASpqB,GAAG2tG,UAAYztG,GAAK+pG,GAC7Bp5C,IAAQ,IAKd,IAAKA,GAAO,CACV,IAAI+8C,EAAWntF,EAASuiD,eAAe9iE,GAAK+pG,IAC5C16C,EAAQyR,aAAa4sC,EAAUr+C,EAAQwV,oBAIpC7kE,GAAK+pG,GAGd,QAASn6D,KAAK5vC,GACZqvD,EAAQzf,GAAK5vC,GAAK4vC,IAkCtB,OAjKAq6D,EAAQ0D,OAAS,SAAUzqG,EAAKmjF,GAAOphF,GAAK8R,IAC1C,IAAIsB,GAAI6sE,WAAWmB,IAEnB,GADIjnE,MAAM/G,KACNtB,IAAQgzF,EAAW,OAAO7mG,EAEzB+mG,EAAQ2D,eACX3D,EAAQ2D,aA/UZ,WAAwB7b,GA8KtB,YAAc15E,EAAGw1F,GACf,OAA2B,IAApBA,EAAK19E,QAAQ9X,GAGtB,YAAmBA,EAAG+mB,EAAO7a,GAC3B,OAAO6a,GAAS/mB,GAAKA,GAAKkM,EAG5B,IAAIupF,GAAc,CAChB,EAAK,SAAUz1F,GACb,MAAO,SAET,EAAK,SAAUA,GACb,OAAI01F,GAAU11F,EAAI,IAAK,EAAG,IAAY,MAC5B,IAANA,EAAgB,OAChB01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,OAC9B,GAALA,EAAe,MACV,GAALA,EAAe,MACZ,SAET,EAAK,SAAUA,GACb,OAAU,IAANA,GAAWA,EAAI,IAAO,EAAU,OAC3B,GAALA,EAAe,MACV,GAALA,EAAe,MACZ,SAET,EAAK,SAAUA,GACb,OAAS,GAALA,EAAe,MACZ,SAET,EAAK,SAAUA,GACb,OAAI01F,GAAU11F,EAAG,EAAG,GAAW,MACxB,SAET,EAAK,SAAUA,GACb,OAAI01F,GAAU11F,EAAG,EAAG,IAAW,GAALA,EAAe,MAClC,SAET,EAAK,SAAUA,GACb,OAAU,IAANA,EAAgB,OAChBA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAW,MAClC,SAET,EAAK,SAAUA,GACb,OAAS,GAALA,EAAe,MACV,GAALA,EAAe,MACZ,SAET,EAAK,SAAUA,GACb,OAAI01F,GAAU11F,EAAG,EAAG,GAAW,MAC3B01F,GAAU11F,EAAG,EAAG,IAAY,OACvB,GAALA,EAAe,MACV,GAALA,EAAe,MACZ,SAET,EAAK,SAAUA,GACb,OAAU,IAANA,GAAgB,GAALA,GAAU01F,GAAU11F,EAAI,IAAK,EAAG,IAAY,MAClD,GAALA,EAAe,MACZ,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAI,GAAI,EAAG,KAAO01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,MAC/DA,EAAI,IAAM,GAAM01F,GAAU11F,EAAI,IAAK,GAAI,IACpC,QADgD,OAGzD,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAI,GAAI,EAAG,KAAO01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,MAC/DA,EAAI,IAAO,GAAK01F,GAAU11F,EAAI,GAAI,EAAG,IAAM01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,OAC9EA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAW,MAClC,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAG,EAAG,GAAW,MACtB,GAALA,EAAe,MACZ,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAI,GAAI,EAAG,KAAO01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,MAC1D,GAALA,GAAU01F,GAAU11F,EAAI,GAAI,EAAG,IAAM01F,GAAU11F,EAAI,GAAI,EAAG,IAAM01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,OAC9F,GAALA,EAAe,MACZ,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAI,IAAK,EAAG,GAAW,MACjCA,EAAI,KAAO,EAAU,MACrBA,EAAI,KAAO,EAAU,MAClB,SAET,GAAM,SAAUA,GACd,OAAU,IAANA,GAAW01F,GAAU11F,EAAI,IAAK,EAAG,IAAY,MAC7C01F,GAAU11F,EAAI,IAAK,GAAI,IAAY,OAC9B,GAALA,EAAe,MACZ,SAET,GAAM,SAAUA,GACd,OAAIA,EAAI,IAAM,GAAU,IAALA,EAAgB,MAC5B,SAET,GAAM,SAAUA,GACd,OAAS,GAALA,EAAe,MACT,IAANA,EAAgB,OACX,GAALA,EAAe,OACV,GAALA,EAAe,MACV,GAALA,EAAe,MACZ,SAET,GAAM,SAAUA,GACd,OAAU,IAANA,EAAgB,OAChB01F,GAAU11F,EAAG,EAAG,IAAY,IAANA,GAAgB,GAALA,EAAe,MAC7C,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAG,EAAG,IAAY,MAC5B01F,GAAU11F,EAAG,EAAG,GAAW,MACxB,SAET,GAAM,SAAUA,GACd,OAAK01F,GAAU11F,EAAI,GAAI,EAAG,IAAMA,EAAI,IAAM,GAAQ01F,GAAU11F,EAAI,IAAK,GAAI,KAAO01F,GAAU11F,EAAI,IAAK,GAAI,KAAO01F,GAAU11F,EAAI,IAAK,GAAI,IACjIA,EAAI,KAAY,GAAW,IAANA,EAAgB,OACrCA,EAAI,IAAM,GAAM21F,GAAK31F,EAAI,IAAK,CAAC,GAAI,GAAI,KACvCA,EAAI,IAAM,GAAM21F,GAAK31F,EAAI,IAAK,CAAC,GAAI,GAAI,KACpC,QADiD,MADA,MAF0F,OAMpJ,GAAM,SAAUA,GACd,OAAU,IAANA,EAAgB,OACX,GAALA,EAAe,MACZ,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAG,EAAG,IAAM01F,GAAU11F,EAAG,GAAI,IAAY,MAChD,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAI,GAAI,EAAG,IAAMA,EAAI,IAAO,EAAU,MAC7C,SAET,GAAM,SAAUA,GACd,OAAI01F,GAAU11F,EAAG,EAAG,KAAO01F,GAAU11F,EAAG,GAAI,IAAY,MACpD21F,GAAK31F,EAAG,CAAC,EAAG,KAAa,MACzB21F,GAAK31F,EAAG,CAAC,EAAG,KAAa,MACtB,UAGP+hD,EA5TgB,CAClB6zC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNzrF,GAAM,GACN0rF,IAAO,EACPC,IAAO,EACPp6D,GAAM,EACNq6D,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNztD,GAAM,GACN0tD,IAAO,EACPC,GAAM,GACNC,GAAM,EACNC,IAAO,EACPC,IAAO,EACPpmD,GAAM,GACNqmD,GAAM,GACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACN3Z,GAAM,EACNrvB,GAAM,EACNsb,GAAM,EACN2tB,GAAM,EACN1tB,GAAM,EACN2tB,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPluB,GAAM,EACNC,GAAM,EACNkuB,GAAM,GACNC,GAAM,EACNC,IAAO,EACPnuB,GAAM,EACNouB,IAAO,EACPC,GAAM,GACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNvuB,GAAM,EACNwuB,GAAM,GACNC,GAAM,EACN9qF,GAAM,EACN+qF,GAAM,EACNhsG,GAAM,EACNisG,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,IAAO,GACPC,GAAM,EACNC,GAAM,EACNC,IAAO,GACPC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,GACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,GACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNv3F,GAAM,GACNw3F,GAAM,EACNC,IAAO,EACPC,IAAO,EACP/wB,GAAM,EACNgxB,GAAM,EACNr7E,GAAM,EACNs7E,GAAM,EACNhxB,GAAM,EACNixB,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNtxB,GAAM,EACNuxB,IAAO,EACPC,GAAM,GACNjrD,GAAM,EACN05B,GAAM,EACNwxB,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,GACNC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPxuG,GAAM,EACNyuG,IAAO,EACPC,IAAO,EACPC,GAAM,EACNC,GAAM,GACNC,IAAO,GACPC,GAAM,GACNC,GAAM,GACNC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,GACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNhzB,GAAM,EACNizB,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNC,GAAM,EACNxsC,GAAM,EACNysC,IAAO,GACPC,GAAM,GACNj1D,GAAM,EACNk1D,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNC,GAAM,EACNC,IAAO,EACPC,GAAM,EACNv0B,GAAM,EACNw0B,GAAM,GAkJkBjlB,EAAK5uF,QAAQ,OAAQ,KAE/C,OAAMi3D,KAAS0zC,GAORA,GAAY1zC,IANjBh2D,QAAQ8B,KAAK,4BAA8B6rF,EAAO,KAC3C,WACL,MAAO,UAacklB,CAAejN,IAGxC,IAAI5vC,EAAQ,IAAM6vC,EAAQ2D,aAAav1F,IAAK,IAE5C,OAAU,IAANA,IAAWpT,GAAM,WAAY4kG,EAC/B3mG,EAAM2mG,EAAU5kG,GAAM,UAAU8R,IAClB,GAATiuD,IAAc//D,GAAM,UAAW4kG,EACpC3mG,EAAM2mG,EAAU5kG,GAAM,SAAS8R,IACjB,GAATiuD,IAAc//D,GAAM,UAAW4kG,EACpC3mG,EAAM2mG,EAAU5kG,GAAM,SAAS8R,IAC1Bo6D,GAAU/W,KAASyvC,EACxB3mG,EAAM2mG,EAAU5kG,GAAMm1D,GAAOrjD,IACpB9R,GAAM,YAAa4kG,IAC5B3mG,EAAM2mG,EAAU5kG,GAAM,WAAW8R,KAG5B7T,GA0IF,CACLrB,IAAK,SAAUoD,EAAKkgC,GAAM+xE,IACxB,IAQIjjE,EARAmmB,GAAQn1D,EAAIm1B,YAAY,KACxBrjB,GAAOgzF,EAEP3vC,GAAQ,IACVrjD,GAAO9R,EAAIk1B,UAAUigC,GAAQ,GAC7Bn1D,EAAMA,EAAIk1B,UAAU,EAAGigC,KAKrB88C,MACFjjE,EAAW,IACFl9B,IAAQmgG,IAGnB,IAAIl3G,EAAOstG,EAAYroG,EAAKkgC,GAAM8O,GAElC,OAAIj0C,GAAQ+W,MAAQ/W,EACXA,EAAK+W,IAGP,KAAO9R,EAAM,MAEtB0hB,QAAS,WACP,OAAOkjF,GAETsN,QAAS,WACP,OAAOrN,GAETrnB,YAAa,WACX,OAAOunB,GAETJ,YAAa,SAAU7X,EAAMzlE,IAC3B8qF,EAAWrlB,EAAM,WACXzlE,IAAUA,QAGlBo2D,aAAc,WACZ,IACI20B,GAAYrN,EAAUnnC,MAAM,IAAK,GAAG,GACxC,MAFc,CAAC,KAAM,KAAM,KAAM,KAAM,MAExB1yC,QAAQknF,KAAc,EAAI,MAAQ,OAEnDhvE,UAxDF,YAA2BgnB,GAKzB,QAHInlC,GAntBN,WAAiCmlC,GAC/B,OAAOA,EAAUA,EAAQgS,iBAAiB,mBAAqB,GAktBhDi2C,CADfjoD,EAAUA,GAAW9uC,EAASmb,iBAE1B67E,GAAertF,GAASvqB,OAEnBG,GAAI,EAAGA,GAAIy3G,GAAcz3G,KAChC03G,EAAiBttF,GAASpqB,KAG5B03G,EAAiBnoD,IAgDjBooD,cAAe,WACb,OAAOvN,GAET/0E,MAAO,SAAU7I,GACVA,IAEqB,YAAf49E,GAA4C,eAAfA,EACtClrF,EAAOuQ,WAAW,WAChBjD,MAEO/L,EAAS0P,kBAClB1P,EAAS0P,iBAAiB,YAAa,cACrC1P,EAAS2P,oBAAoB,YAAam5E,IAC1C/8E,SAzyBS,CA8yBjBtN,OAAQuB,WAIH,CAACxjB,EAAyBC,EAASC,uHAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ06G,kBAAoB16G,EAAQ26G,eAAY,EAEhD,IAAI70B,EAAY7lF,EAAoB,GAEhCohF,EAAYphF,EAAoB,GAEhC26G,EAAkB36G,EAAoB,IAE1C,MAAM06G,EAAY,CAChBE,MAAO,EACPC,UAAW,EACXjqB,QAAS,EACTkqB,QAAS,GAEX/6G,EAAQ26G,UAAYA,EACpB,MAGMK,EAA0B,CAC9B,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,MACV,OAAU,MACV,OAAU,OAENC,EAAuB,IAAI7vF,IAAI,CAAC,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,OAChY8vF,EAA2B,IAAID,EAAqBxpF,UAAU1pB,IAAIy5B,IAAK19B,OAAOC,aAAay9B,KAAIh9B,KAAK,IACpG22G,EAAqB,WACrBC,EAAwB,uDACxBC,EAAiC,qBACjCC,EAAmC,qBACzC,IAAIC,EAAqB,KAEzB,WAAmBl8E,IACjB,IAAKk8E,EAAoB,CACvB,MAAMp1G,GAAUjG,OAAOiI,KAAK6yG,GAAyBx2G,KAAK,IAC1D+2G,EAAqB,IAAI74E,OAAQ,KAAIv8B,0CAAgD,OAGvF,MAAMq1G,EAAyB,GAC/B,IAAIz/F,EAEJ,KAA+C,QAAvCA,EAAIo/F,EAAmB19E,KAAK4B,MAClCm8E,EAAuBj3G,KAAK,CAACwX,EAAE,GAAGpZ,OAAQoZ,EAAEqhD,QAG9C,IAAIq+C,GAAap8E,GAAKq8E,UAAU,OAChC,MAAM50D,GAAY,CAAC,CAAC,EAAG,IACvB,IAAIlU,GAAI,EACJhN,GAAQ,EACR+1E,GAAc,EACdC,GAAM,EACNC,IAAgB,EACpBJ,UAAaA,GAAWt1G,QAAQo1G,EAAoB,CAAC71G,GAAOwW,GAAIE,GAAIE,GAAIC,GAAIzZ,MAG1E,GAFAA,IAAK64G,GAEDz/F,GAAI,CACN,MAAM4/F,GAAcd,EAAwBt1G,IACtCupE,GAAK6sC,GAAYn5G,OAEvB,QAAS8b,GAAI,EAAGA,GAAIwwD,GAAIxwD,KACtBqoC,GAAUviD,KAAK,CAACzB,GAAI8iC,GAAQnnB,GAAGmnB,GAAQnnB,KAGzCmnB,WAASqpC,GAAK,EACP6sC,GAGT,GAAI1/F,GAAI,CACN,MAAM2/F,GAAqB3/F,GAAG4/F,SAAS,MACjC1tC,GAAMytC,GAAqB3/F,GAAGzZ,OAAS,EAAIyZ,GAAGzZ,OACpDk5G,IAAgB,EAChB,IAAI5sC,GAAKX,GAELxrE,GAAI84G,KAAQJ,EAAuB5oE,MAAK,KAC1Cq8B,IAAMusC,EAAuB5oE,IAAG,KAC9BA,IAGJ,QAASn0B,GAAI,EAAGA,GAAIwwD,GAAK,EAAGxwD,KAC1BqoC,GAAUviD,KAAK,CAACzB,GAAI,EAAI8iC,GAAQnnB,GAAGmnB,GAAQnnB,KAM7C,OAHAmnB,IAASqpC,GACT0sC,IAAe1sC,GAEX8sC,IAEFj1D,GAAUviD,KAAK,EADfzB,IAAKwrE,GAAM,GACS1oC,GAAQ,EAAG,EAAIA,KACnCA,IAAS,EACT+1E,IAAe,EACfC,IAAO,EACAx/F,GAAGC,MAAM,EAAGiyD,KAGdlyD,GAGT,OAAIE,IACFwqC,GAAUviD,KAAK,CAACzB,GAAI8iC,GAAQ,EAAG,EAAIA,KACnCA,IAAS,EACT+1E,IAAe,EACfC,IAAO,EACAt/F,GAAGhT,OAAO,KAGnBw9C,GAAUviD,KAAK,CAACzB,GAAI8iC,GAAQ,EAAGA,GAAQ,IACvCA,IAAS,EACT+1E,IAAe,EACfC,IAAO,EACA,OAET90D,GAAUviD,KAAK,CAACk3G,GAAW94G,OAAQijC,KAC5B,CAAC61E,GAAY30D,GAAW+0D,IAGjC,WAA0BI,GAAOl5G,EAAKurE,GACpC,IAAK2tC,GACH,MAAO,CAACl5G,EAAKurE,GAGf,MAAMlsC,GAAQr/B,EACRwkB,GAAMxkB,EAAMurE,EAClB,IAAIxrE,IAAK,EAAGgjF,EAAU6F,uBAAuBswB,GAAOz6E,IAAKA,GAAE,IAAMY,IAE7D65E,GAAMn5G,IAAG,GAAKs/B,MACdt/B,GAGJ,IAAI2b,IAAK,EAAGqnE,EAAU6F,uBAAuBswB,GAAOz6E,IAAKA,GAAE,IAAMja,GAAKzkB,IAEtE,OAAIm5G,GAAMx9F,IAAG,GAAK8I,MACd9I,GAGG,CAAC2jB,GAAQ65E,GAAMn5G,IAAG,GAAIwrE,EAAM2tC,GAAMx9F,IAAG,GAAKw9F,GAAMn5G,IAAG,IAmD1D2b,iBAAO,SAACk9B,GACN,IAAKA,EACH,OAGF,MAAMirC,EAAcvsE,KAAK6hG,cAEvB/8F,SACEw8B,GAEgB,OAAhBthC,KAAK8hG,QAAmBvhF,QAAKu5C,OAALnhD,UAAuB2oB,MACjDthC,KAAK+hG,aAAc,GAGrB/hG,KAAK8hG,OAASxgE,EAED,uBAATx8B,IACFyb,QAAKyhF,OAALrpF,UAAoB2nF,EAAUI,SAGhC1gG,KAAKwgF,qBAAqB/1F,QAAQof,KAAK,KACrC,IAAK7J,KAAK6hG,cAAgBt1B,GAAevsE,KAAK6hG,eAAiBt1B,EAC7D,OAGFhsD,QAAKomB,MAALhuB,WACA,MAAMspF,IAAiBjiG,KAAKkiG,kBACtBC,KAAmBniG,KAAKoiG,aAE1BpiG,KAAKoiG,eACPtuF,aAAa9T,KAAKoiG,cAClBpiG,KAAKoiG,aAAe,MAGtBjJ,GAKOn5F,KAAS+hG,YACdxhF,QAAK+9E,OAAL3lF,WACkB,UAAbwgF,IACL54E,QAAK+9E,OAAL3lF,WAEIspF,IAAiBjiG,KAAK8hG,OAAOhS,cAC/BvvE,QAAKqmC,MAALjuC,YAEgB,uBAAbwgF,IACDgJ,GACF5hF,QAAK+9E,OAAL3lF,WAEA3Y,KAAKkiG,mBAAoB,EAG3B3hF,QAAKqmC,MAALjuC,YAEA4H,QAAK+9E,OAAL3lF,WArBA3Y,KAAKoiG,aAAelqF,WAAW,KAC7BqI,QAAK+9E,OAAL3lF,WACA3Y,KAAKoiG,aAAe,MAvNT,QAqQnBvtF,iBAAM,WACJ7U,KAAKkiG,mBAAoB,EACzBliG,KAAKqiG,gBAAiB,EACtBriG,KAAK6hG,aAAe,KACpB7hG,KAAKsiG,aAAe,GACpBtiG,KAAKuiG,mBAAqB,GAC1BviG,KAAK8hG,OAAS,KACd9hG,KAAKwiG,UAAY,CACfjU,SAAS,EACTS,UAAU,GAEZhvF,KAAKyiG,QAAU,CACblU,QAAS,KACTS,SAAU,KACV0T,SAAS,GAEX1iG,KAAK2iG,qBAAuB,GAC5B3iG,KAAK4iG,cAAgB,GACrB5iG,KAAK6iG,WAAa,GAClB7iG,KAAK8iG,eAAiB,GACtB9iG,KAAK+iG,mBAAqB,EAC1B/iG,KAAKgjG,eAAiB,KACtBhjG,KAAKijG,oBAAsB,IAAIlyF,IAC/B/Q,KAAKkjG,eAAiB,KACtBljG,KAAK+hG,aAAc,EACnBjuF,aAAa9T,KAAKoiG,cAClBpiG,KAAKoiG,aAAe,KACpBpiG,KAAKwgF,sBAAwB,EAAGxZ,EAAU58E,4BAGxCq4F,iBAAM,WACR,OAAIziF,KAAK8hG,OAAOj/E,QAAU7iB,KAAKmjG,YAC7BnjG,KAAKmjG,UAAYnjG,KAAK8hG,OAAOj/E,OAC5B7iB,KAAKojG,kBAAoB/B,EAAUrhG,KAAK8hG,OAAOj/E,QAG3C7iB,KAAKojG,kBAGdtpC,kBAAiB,SAACx4B,GAChB,GAAIA,EAAMze,QAAU7iB,KAAK8hG,OAAOj/E,MAC9B,OAAO,EAGT,OAAQye,EAAMx8B,UACP,QACH,MAAMoJ,EAAalO,KAAKwiG,UAAUjU,QAAU,EACtChxC,GAAcv9C,KAAKqjG,aAEzB,OAAIn1F,GAAc,GAAKA,GAAcqvC,GAAYsvB,YAAc3+D,IAAeqvC,GAAY1gC,OAAS0gC,GAAYkxB,cAAcvgE,OAM1H,qBACH,OAAO,EAGX,OAAO,GAGTy/C,kBAAa,SAAClB,EAAS62C,EAAUh7G,IAC/B,IAAI+C,GAAQohE,EAAQzqD,MAAM,EAAGshG,GAAUj4G,MAAM21G,GAE7C,GAAI31G,GAAO,CACT,MAAMiX,GAAQmqD,EAAQz9D,WAAWs0G,GAC3BriE,GAAQ51C,GAAM,GAAG2D,WAAW,GAElC,IAAK,EAAGuxG,EAAgBgD,kBAAkBjhG,OAAY,EAAGi+F,EAAgBgD,kBAAkBtiE,IACzF,OAAO,EAMX,GAFA51C,GAAQohE,EAAQzqD,MAAMshG,EAAWh7G,IAAQ+C,MAAM41G,GAE3C51G,GAAO,CACT,MAAMooF,GAAOhnB,EAAQz9D,WAAWs0G,EAAWh7G,GAAS,GAC9C24C,GAAQ51C,GAAM,GAAG2D,WAAW,GAElC,IAAK,EAAGuxG,EAAgBgD,kBAAkB9vB,OAAW,EAAG8sB,EAAgBgD,kBAAkBtiE,IACxF,OAAO,EAIX,OAAO,GAGT2J,iBAAqB,SAAC/nB,EAAO2gF,EAAYrzF,GAAWszF,IAClD,MAAMn7E,GAAU,GACVumE,GAAgB,GAChB+S,GAAQ5hG,KAAK6iG,WAAW1yF,IAC9B,IAAI9kB,GAEJ,KAA6C,QAArCA,GAAQw3B,EAAMO,KAAKqgF,MAAwB,CACjD,GAAID,IAAejjF,QAAKotC,OAALh1C,UAAmB8qF,GAAap4G,GAAM03D,MAAO13D,GAAM,GAAG/C,QACvE,SAGF,MAAOo7G,GAAUC,IAAYC,EAAiBhC,GAAOv2G,GAAM03D,MAAO13D,GAAM,GAAG/C,QAEvEq7G,KACFr7E,GAAQp+B,KAAKw5G,IACb7U,GAAc3kG,KAAKy5G,KAIvB3jG,KAAKsiG,aAAanyF,IAAamY,GAC/BtoB,KAAKuiG,mBAAmBpyF,IAAa0+E,IAGvCpmG,iBAAsB,SAACo6B,EAAO2+E,GAC5B,MACEqC,oBACE7jG,KAAK8hG,OACT,IAAIgC,IAAY,EA+BhB,OA9BAjhF,EAAQA,EAAM/2B,QAAQi1G,EAAuB,CAAC11G,GAAOwW,GAAIE,GAAIE,GAAIC,GAAI6hG,KAC/DliG,GACM,SAAQA,SAGdE,GACM,OAAMA,SAGZE,GACK,OAGL4hG,GACK3hG,IAAM6hG,GAGX7hG,GACK0+F,EAAqB9mF,IAAI5X,GAAGlT,WAAW,IAAMkT,GAAK,GAGvDs/F,GACFsC,IAAY,EACJ,GAAEC,aAGLA,KAICpC,SAFa,UAGrB9+E,EAAQA,EAAM7gB,MAAM,EAAG6gB,EAAMv6B,OAHR,OAGgCA,SAGnDu7G,IACErC,IACFsC,IAAY,EACZjhF,EAAS,GAAEA,QAAYg+E,mBAIpB,CAACiD,GAAWjhF,IAGrBuE,iBAAe,SAACjX,GACd,IAAI0S,EAAQ5H,QAAKwnE,MAEjB,GAAqB,IAAjB5/D,EAAMv6B,OACR,OAGF,MACE07G,iBACAR,cACA/1B,iBACEztE,KAAK8hG,OACH2B,GAAczjG,KAAK4iG,cAAczyF,GACjCqxF,GAAgBxhG,KAAK8iG,eAAe3yF,GAC1C,IAAI2zF,IAAY,EAEhB,GAAIr2B,IACDq2B,GAAWjhF,GAAStC,QAAK93B,MAALkwB,UAA4BkK,EAAO2+E,QACnD,CACL,MAAMn2G,GAAQw3B,EAAMx3B,MAAM,QAEtBA,KACFw3B,EAAQx3B,GAAMmnE,OAAOyxC,UAAUv2G,IAAIkkD,KACjC,MAAOsyD,GAAeC,IAAa5jF,QAAK93B,MAALkwB,UAA4Bi5B,GAAG4vD,IAClEsC,eAAcI,IACN,IAAGC,QACVh6G,KAAK,MAKZ04B,EAAQ,IAAIwF,OAAOxF,EADJ,IAAGihF,GAAY,IAAM,KAAKE,GAAgB,GAAK,OAE9DzjF,QAAKqqB,MAALjyB,UAA2BkK,EAAO2gF,GAAYrzF,EAAWszF,IAErDzjG,KAAK8hG,OAAOhS,cACdvvE,QAAK+mB,MAAL3uB,UAAiBxI,GAGfnQ,KAAKkjG,iBAAmB/yF,IAC1BnQ,KAAKkjG,eAAiB,KACtB3iF,QAAK8wB,OAAL14B,YAGF,MAAMyrF,GAAmBpkG,KAAKsiG,aAAanyF,GAAW7nB,OAElD87G,GAAmB,IACrBpkG,KAAK+iG,oBAAsBqB,GAC3B7jF,QAAK8jF,OAAL1rF,aAIJguB,iBAAY,WACV,GAAI3mC,KAAK2iG,qBAAqBr6G,OAAS,EACrC,OAGF,IAAImC,EAAUC,QAAQC,UAEtB,QAASlC,EAAI,EAAG6E,GAAK0S,KAAKqjG,aAAax2B,WAAYpkF,EAAI6E,GAAI7E,IAAK,CAC9D,MAAM67G,IAAyB,EAAGt9B,EAAU58E,2BAC5C4V,KAAK2iG,qBAAqBl6G,GAAK67G,GAAsB75G,QACrDA,EAAUA,EAAQof,KAAK,IACd7J,KAAK6hG,aAAa5zF,QAAQxlB,EAAI,GAAGohB,KAAKo8D,IACpCA,GAAQ5vD,kBACdxM,KAAKsM,KACN,MAAMvsB,GAAS,GAEf,UAAW26G,MAAYpuF,GAAYC,MACjCxsB,GAAOM,KAAKq6G,GAAS14G,KAEjB04G,GAASr0C,QACXtmE,GAAOM,KAAK,OAIf8V,KAAK4iG,cAAcn6G,GAAIuX,KAAK6iG,WAAWp6G,GAAIuX,KAAK8iG,eAAer6G,IAAM44G,EAAUz3G,GAAOO,KAAK,KAC5Fm6G,GAAsB35G,WACrBE,KACDkC,QAAQynB,MAAO,uCAAsC/rB,EAAI,IAAKoC,IAC9DmV,KAAK4iG,cAAcn6G,GAAK,GACxBuX,KAAK6iG,WAAWp6G,GAAK,KACrBuX,KAAK8iG,eAAer6G,IAAK,EACzB67G,GAAsB35G,eAM9B28C,iBAAW,SAACyb,GACN/iD,KAAKqiG,gBAAkBriG,KAAKwiG,UAAUjU,UAAYxrC,IACpD/iD,KAAKqjG,aAAaxmF,KAAOkmC,EAAQ,GAGnC/iD,KAAKwkG,UAAU/gD,SAAS,yBAA0B,CAChDn8C,OAAQtH,KACRmQ,UAAW4yC,KAIf6D,iBAAe,WACb5mD,KAAKwkG,UAAU/gD,SAAS,yBAA0B,CAChDn8C,OAAQtH,KACRmQ,WAAW,KAIfmuF,kBAAU,WACR,MAAM1e,EAAW5/E,KAAK8hG,OAAO2C,aACvBC,EAAmB1kG,KAAKqjG,aAAaxmF,KAAO,EAC5ChP,GAAW7N,KAAKqjG,aAAax2B,WAGnC,GAFA7sE,KAAKkiG,mBAAoB,EAErBliG,KAAK+hG,YAAa,CACpB/hG,KAAK+hG,aAAc,EACnB/hG,KAAKwiG,UAAUjU,QAAUvuF,KAAKwiG,UAAUxT,UAAW,EACnDhvF,KAAKyiG,QAAQlU,QAAUmW,EACvB1kG,KAAKyiG,QAAQzT,SAAW,KACxBhvF,KAAKyiG,QAAQC,SAAU,EACvB1iG,KAAKkjG,eAAiB,KACtBljG,KAAKsiG,aAAah6G,OAAS,EAC3B0X,KAAKuiG,mBAAmBj6G,OAAS,EACjC0X,KAAK+iG,mBAAqB,EAC1BxiF,QAAKqmC,MAALjuC,WAEA,QAASlwB,GAAI,EAAGA,GAAIolB,GAAUplB,KACxBuX,KAAKijG,oBAAoBnpF,IAAIrxB,MAIjCuX,KAAKijG,oBAAoB9tF,IAAI1sB,IAE7BuX,KAAK2iG,qBAAqBl6G,IAAGohB,KAAK,KAChC7J,KAAKijG,oBAAoBvuF,OAAOjsB,IAEhC83B,QAAK6G,MAALzO,UAAqBlwB,OAK3B,GAAoB,KAAhBwyB,QAAKwnE,MAEP,YADAliE,QAAKyhF,OAALrpF,UAAoB2nF,EAAUE,OAIhC,GAAIxgG,KAAKkjG,eACP,OAGF,MAAMz3E,GAASzrB,KAAKyiG,QAGpB,GAFAziG,KAAKgjG,eAAiBn1F,GAEE,OAApB4d,GAAOujE,SAAmB,CAC5B,MAAM2V,GAAiB3kG,KAAKsiG,aAAa72E,GAAO8iE,SAASjmG,OAEzD,IAAKs3F,GAAYn0D,GAAOujE,SAAW,EAAI2V,IAAkB/kB,GAAYn0D,GAAOujE,SAAW,EAGrF,OAFAvjE,GAAOujE,SAAWpP,EAAWn0D,GAAOujE,SAAW,EAAIvjE,GAAOujE,SAAW,OACrEzuE,QAAK3qB,MAAL+iB,WAAkB,GAIpB4H,QAAKqkF,OAALjsF,UAAwBinE,GAG1Br/D,QAAK8wB,OAAL14B,YAGFyzB,kBAAa,SAAC9jB,GACZ,MAAMmD,EAASzrB,KAAKyiG,QACdoC,GAAav8E,EAAQhgC,OACrBs3F,GAAW5/E,KAAK8hG,OAAO2C,aAE7B,OAAII,IACFp5E,EAAOujE,SAAWpP,GAAWilB,GAAa,EAAI,EAC9CtkF,QAAK3qB,MAAL+iB,WAAkB,IACX,IAGT4H,QAAKqkF,OAALjsF,UAAwBinE,OAEpBn0D,EAAOi3E,UACTj3E,EAAOujE,SAAW,KAEdhvF,KAAKgjG,eAAiB,MACxBziF,QAAK3qB,MAAL+iB,WAAkB,IACX,KAOb04B,kBAAc,WACgB,OAAxBrxC,KAAKkjG,gBACPn2G,QAAQynB,MAAM,uCAGhB,IAAI8T,EAAU,KAEd,EAAG,CACD,MAAMimE,EAAUvuF,KAAKyiG,QAAQlU,QAG7B,GAFAjmE,EAAUtoB,KAAKsiG,aAAa/T,IAEvBjmE,EAAS,CACZtoB,KAAKkjG,eAAiB3U,EACtB,cAEMhuE,QAAK6rB,OAALzzB,UAAmB2P,KAG/Bs8E,kBAAkB,SAAChlB,GACjB,MAAMn0D,EAASzrB,KAAKyiG,QACd50F,GAAW7N,KAAKqjG,aAAax2B,WACnCphD,EAAO8iE,QAAU3O,EAAWn0D,EAAO8iE,QAAU,EAAI9iE,EAAO8iE,QAAU,EAClE9iE,EAAOujE,SAAW,KAClBhvF,KAAKgjG,kBAEDv3E,EAAO8iE,SAAW1gF,IAAY4d,EAAO8iE,QAAU,KACjD9iE,EAAO8iE,QAAU3O,EAAW/xE,GAAW,EAAI,EAC3C4d,EAAOi3E,SAAU,IAIrB9sG,iBAAY,SAAC0jD,GAAQ,GACnB,IAAIhY,EAAQg/D,EAAUG,UACtB,MAAMiC,GAAU1iG,KAAKyiG,QAAQC,QAG7B,GAFA1iG,KAAKyiG,QAAQC,SAAU,EAEnBppD,EAAO,CACT,MAAM60B,GAAenuE,KAAKwiG,UAAUjU,QACpCvuF,KAAKwiG,UAAUjU,QAAUvuF,KAAKyiG,QAAQlU,QACtCvuF,KAAKwiG,UAAUxT,SAAWhvF,KAAKyiG,QAAQzT,SACvC1tD,EAAQohE,GAAUpC,EAAU9pB,QAAU8pB,EAAUE,OAE3B,IAAjBryB,IAAuBA,KAAiBnuE,KAAKwiG,UAAUjU,SACzDhuE,QAAK+mB,MAAL3uB,UAAiBw1D,IAIrB5tD,QAAKyhF,OAALrpF,UAAoB2oB,EAAOthC,KAAK8hG,OAAO2C,eAER,IAA3BzkG,KAAKwiG,UAAUjU,UACjBvuF,KAAKqiG,gBAAiB,EACtB9hF,QAAK+mB,MAAL3uB,UAAiB3Y,KAAKwiG,UAAUjU,WAIpCuW,kBAAe,SAACpnF,GACd,MAAM6uD,EAAcvsE,KAAK6hG,aAEzB7hG,KAAKwgF,qBAAqB/1F,QAAQof,KAAK,MAChC7J,KAAK6hG,cAAgBt1B,GAAevsE,KAAK6hG,eAAiBt1B,IAI3DvsE,KAAKoiG,eACPtuF,aAAa9T,KAAKoiG,cAClBpiG,KAAKoiG,aAAe,MAGlBpiG,KAAKkjG,iBACPljG,KAAKkjG,eAAiB,KACtBljG,KAAK+hG,aAAc,GAGrBxhF,QAAKyhF,OAALrpF,UAAoB2nF,EAAUE,OAC9BxgG,KAAKkiG,mBAAoB,EACzB3hF,QAAKqmC,MAALjuC,eAIJosF,kBAAoB,WAClB,MACExW,UACAS,YACEhvF,KAAKwiG,UACT,IAAI30E,GAAU,EACVhhB,GAAQ7M,KAAK+iG,mBAEjB,IAAiB,IAAb/T,EAAiB,CACnB,QAASvmG,GAAI,EAAGA,GAAI8lG,EAAS9lG,KAC3BolC,IAAW7tB,KAAKsiG,aAAa75G,KAAIH,QAAU,EAG7CulC,IAAWmhE,EAAW,EAGxB,OAAInhE,GAAU,GAAKA,GAAUhhB,MAC3BghB,GAAUhhB,GAAQ,GAGb,CACLghB,WACAhhB,WAIJw3F,kBAAqB,WACnBrkG,KAAKwkG,UAAU/gD,SAAS,yBAA0B,CAChDn8C,OAAQtH,KACRglG,aAAczkF,QAAKwkF,OAALpsF,cAIlBqpF,kBAAc,SAAC1gE,EAAOs+C,GAAW,GAC/B5/E,KAAKwkG,UAAU/gD,SAAS,yBAA0B,CAChDn8C,OAAQtH,KACRshC,QACAs+C,WACAolB,aAAczkF,QAAKwkF,OAALpsF,WACdssF,SAAUjlG,KAAK8hG,QAAQj/E,OAAS,QAMtCl9B,EAAQ06G,kBA9lBR,QACEpgG,aACEs9C,cACAiG,aA6CF9nC,WAmFAA,WA8BIA,WASJA,YAuBAA,YA0BAA,WAuBAA,WAiDAA,WAmDAA,WAqCAA,WAWAA,WAOAA,YA4DAA,YAyBAA,YAkBAA,YAaAA,WAwBAA,YAwBAA,YA0BAA,YAOAA,YA7kBE1b,KAAKqjG,aAAe9lD,EACpBv9C,KAAKwkG,UAAYhhD,EACjBjjC,QAAK1L,MAAL8D,WAEA6qC,EAASs9B,IAAI,OAAQvgE,QAAKnc,MAAQ0X,KAAK9b,OAEvCwjD,EAASs9B,IAAI,eAAgBvgE,QAAKukF,OAAgBhpF,KAAK9b,OAGrDuwF,uBACF,OAAOvwF,KAAKkiG,kBAGV1R,kBACF,OAAOxwF,KAAKsiG,aAGV7R,wBACF,OAAOzwF,KAAKuiG,mBAGVv5C,eACF,OAAOhpD,KAAKwiG,UAGVlhE,YACF,OAAOthC,KAAK8hG,OAGdp1B,YAAYH,GACNvsE,KAAK6hG,cACPthF,QAAK1L,MAAL8D,WAGG4zD,IAILvsE,KAAK6hG,aAAet1B,EAEpBvsE,KAAKwgF,qBAAqB71F,WAgE5BylG,qBACEp4C,UAAU,KACVi4C,eAAe,EACf9/E,cAAY,EACZkgF,eAAa,IAERrwF,KAAKqiG,gBAAmBrqD,IAEH,IAAfq4C,IAAqBA,KAAerwF,KAAKwiG,UAAUxT,WAErC,IAAd7+E,IAAoBA,KAAcnQ,KAAKwiG,UAAUjU,UAI5DvuF,KAAKqiG,gBAAiB,GAKrB,EAAG52B,EAAUiJ,gBAAgB18B,EAJjB,CACXxrB,KA9P0B,GA+P1BC,KAAMwjE,GA9PqB,MAgQgB,OAke1C,CAACvqG,EAAyBC,KAIjCE,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQu/G,mBAAgB,EACxBv/G,EAAQ49G,iBAqDR,WAA0B4B,GACxB,OAzCF,WAA8BA,GAC5B,OAAOA,EAAW,MAwCdC,CAAqBD,GArC3B,WAAiBA,GACf,OAA+B,IAAZ,MAAXA,GAqCF53G,CAAQ43G,GA1BhB,WAAsBA,GACpB,OAAoB,KAAbA,GAAkC,IAAbA,GAAkC,KAAbA,GAAkC,KAAbA,EA0B9DE,CAAaF,GACRD,EAAcI,MApC7B,WAAsBH,GACpB,OAAOA,GAAY,IAAQA,GAAY,KAAQA,GAAY,IAAQA,GAAY,GAoChEI,CAAaJ,IAjC9B,WAAsBA,GACpB,OAAOA,GAAY,IAAQA,GAAY,GAgCEK,CAAaL,IAA0B,KAAbA,EACtDD,EAAcO,aAGhBP,EAAcQ,MAb3B,WAAgBP,GACd,OAA+B,OAAZ,MAAXA,GAaKQ,CAAOR,GACTD,EAAcU,YACC,MAAbT,EACFD,EAAcI,MAGhBJ,EAAcO,aApCzB,WAAeN,GACb,OAAOA,GAAY,OAAUA,GAAY,OAAUA,GAAY,OAAUA,GAAY,MAsCjFU,CAAMV,GACDD,EAAcY,WApCzB,WAAoBX,GAClB,OAAOA,GAAY,OAAUA,GAAY,MAoC9BY,CAAWZ,GACbD,EAAcc,gBAlCzB,WAAoBb,GAClB,OAAOA,GAAY,OAAUA,GAAY,MAkC9Bc,CAAWd,GACbD,EAAcgB,gBAhCzB,WAA6Bf,GAC3B,OAAOA,GAAY,OAAUA,GAAY,MAgC9BgB,CAAoBhB,GACtBD,EAAckB,0BAGhBlB,EAAcO,cAjFvB,MAAMP,EAAgB,CACpBI,MAAO,EACPG,aAAc,EACdC,MAAO,EACPI,WAAY,EACZE,gBAAiB,EACjBE,gBAAiB,EACjBE,0BAA2B,EAC3BR,YAAa,GAEfjgH,EAAQu/G,cAAgBA,GA4EjB,CAACx/G,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ0gH,gBAAa,EACrB1gH,EAAQ2gH,kBAAoBA,EAC5B3gH,EAAQ4gH,kBAAoBA,EAE5B,IAAI96B,EAAY7lF,EAAoB,GAEhC4gH,EAAe5gH,EAAoB,IAMvC,aACE,OAAOsjB,SAAStB,SAASgV,KA6gB3B,WAA2B6pF,EAAUC,GACnC,MAAwB,iBAAbD,GAA6C,iBAAbC,IAIvCD,IAAaC,IAMbC,EAFkBl7B,EAAU+B,kBAAkBi5B,GAAUj8G,IAAI,eAE9Ck8G,GAOpB,WAA2BE,EAAWC,GACpC,WAAsBvkG,EAAOC,GAK3B,UAJWD,UAAiBC,GAIxBxB,MAAMmpC,QAAQ5nC,IAAUvB,MAAMmpC,QAAQ3nC,GACxC,OAAO,EAGT,GAAc,OAAVD,GAAmC,iBAAVA,GAAiC,OAAXC,EAAiB,CAClE,GAAI1c,OAAOiI,KAAKwU,GAAOha,SAAWzC,OAAOiI,KAAKyU,GAAQja,OACpD,OAAO,EAGT,UAAWsF,KAAO0U,EAChB,IAAKwkG,EAAaxkG,EAAM1U,GAAM2U,EAAO3U,IACnC,OAAO,EAIX,OAAO,EAGT,OAAO0U,IAAUC,GAAUtU,OAAO8Z,MAAMzF,IAAUrU,OAAO8Z,MAAMxF,GAOjE,IAJMxB,MAAMmpC,QAAQ08D,KAAc7lG,MAAMmpC,QAAQ28D,IAI5CD,EAAUt+G,SAAWu+G,EAAWv+G,OAClC,OAAO,EAGT,QAASG,EAAI,EAAG6E,EAAKs5G,EAAUt+G,OAAQG,EAAI6E,EAAI7E,IAC7C,IAAKq+G,EAAaF,EAAUn+G,GAAIo+G,EAAWp+G,IACzC,OAAO,EAIX,OAAO,EA7DT9C,EAAQ0gH,WAxgBR,QACEpmG,aACEs9C,cACAiG,aAEAxjD,KAAKu9C,YAAcA,EACnBv9C,KAAKwjD,SAAWA,EAChBxjD,KAAK+mG,cAAe,EACpB/mG,KAAKgnG,aAAe,GACpBhnG,KAAKmpB,QACLnpB,KAAKinG,aAAe,KAEpBjnG,KAAKwjD,SAASs9B,IAAI,YAAa,KAC7B9gF,KAAKknG,gBAAiB,EAEtBlnG,KAAKwjD,SAASs9B,IAAI,cAAepjE,IAC/B1d,KAAKknG,iBAAmBxpF,EAAImvD,YAC3B,CACDmlB,MAAM,MAKZmV,YACEC,cACAC,gBAAe,EACfC,aAAY,IAEZ,IAAKF,GAAsC,iBAAhBA,EAEzB,YADAr6G,QAAQynB,MAAM,wEAIZxU,KAAK+mG,cACP/mG,KAAKmpB,QAGP,MAAMo+E,EAAsC,KAAtBvnG,KAAKgnG,cAAuBhnG,KAAKgnG,eAAiBI,EACxEpnG,KAAKgnG,aAAeI,EACpBpnG,KAAKwnG,YAA2B,IAAdF,EAClBtnG,KAAK+mG,cAAe,EAEpB/mG,KAAKynG,cAEL,MAAMnmE,EAAQ35B,OAAO+/F,QAAQpmE,MAS7B,GARAthC,KAAK2nG,qBAAsB,EAC3B3nG,KAAK4nG,iBAAmB,EACxB5nG,KAAK6nG,aAAeC,IACpB9nG,KAAK+nG,oBAAsB,EAC3B/nG,KAAKgoG,KAAOhoG,KAAKioG,QAAU,EAC3BjoG,KAAKkoG,aAAe,KACpBloG,KAAKmoG,UAAY,MAEZnoG,KAAKooG,cAAc9mE,GAAO,IAAS+lE,EAAc,CACpD,MACEzqF,OACAC,OACAnL,YACE1R,KAAKqoG,mBAAkB,GAE3B,OAAKzrF,GAAQ2qF,GAAiBF,OAC5BrnG,KAAKsoG,oBAAoB,MAAM,QAKjCtoG,KAAKsoG,oBAAoB,CACvB1rF,OACAC,OACAnL,aACC,GAKL,MAAMwxC,EAAc5hB,EAAM4hB,YAE1BljD,KAAKuoG,qBAAqBrlD,EAAa5hB,EAAMknE,KAAK,QAErBj/G,IAAzB25D,EAAYxxC,WACd1R,KAAKyoG,iBAAmBvlD,EAAYxxC,UAGtC8S,EAAgBgT,MACdx3B,KAAK0oG,iBAAmBz5E,KAAKC,UAAUg0B,EAAY1rB,MACnDx3B,KAAKkoG,aAAarrF,KAAO,MACpB2H,EAAgB5H,KACrB5c,KAAK0oG,iBAAmBxlD,EAAYtmC,KAC3BsmC,EAAYrmC,OACrB7c,KAAK0oG,iBAAoB,QAAOxlD,EAAYrmC,QAIhDsM,QACMnpB,KAAK+mG,eACP/mG,KAAK2oG,YAEL3oG,KAAK+mG,cAAe,EAEpB/mG,KAAK4oG,iBAGH5oG,KAAK6oG,yBACP/0F,aAAa9T,KAAK6oG,wBAClB7oG,KAAK6oG,uBAAyB,MAGhC7oG,KAAK0oG,iBAAmB,KACxB1oG,KAAKyoG,iBAAmB,KAG1Bv+G,MACE8iF,YAAY,KACZC,eACA/+D,eAEA,IAAKlO,KAAK+mG,aACR,OAGF,GAAI/5B,GAAkC,iBAAdA,EAEtB,YADAjgF,QAAQynB,MAAM,qBAA0Bw4D,0CACxC,IACUjsE,MAAMmpC,QAAQ+iC,GAExB,YADAlgF,QAAQynB,MAAM,qBAA0By4D,6CAEnC,IAAKjtE,KAAK8oG,aAAa56F,KACT,OAAfA,GAAuBlO,KAAKkoG,cAE9B,YADAn7G,QAAQynB,MAAM,qBAA0BtG,2CAK5C,MAAM0O,EAAOowD,GAAa/9C,KAAKC,UAAU+9C,GAEzC,IAAKrwD,EACH,OAGF,IAAImsF,GAAe,EAEnB,GAAI/oG,KAAKkoG,eAAiB3B,EAAkBvmG,KAAKkoG,aAAatrF,KAAMA,IAAS0pF,EAAkBtmG,KAAKkoG,aAAa1wE,KAAMy1C,IAAgB,CACrI,GAAIjtE,KAAKkoG,aAAarrF,KACpB,OAGFksF,GAAe,EAGb/oG,KAAK2nG,sBAAwBoB,IAIjC/oG,KAAKsoG,oBAAoB,CACvB9wE,KAAMy1C,EACNrwD,OACAC,KAAM3O,EACNwD,SAAU1R,KAAKu9C,YAAY7rC,UAC1Bq3F,GAEE/oG,KAAK2nG,sBACR3nG,KAAK2nG,qBAAsB,EAC3Bj9G,QAAQC,UAAUkf,KAAK,KACrB7J,KAAK2nG,qBAAsB,MAKjCt6B,SAASn/D,GACP,GAAKlO,KAAK+mG,aAIV,KAAK/mG,KAAK8oG,aAAa56F,GAErB,YADAnhB,QAAQynB,MAAO,yBAAwBtG,kCAIrClO,KAAKkoG,cAAcrrF,OAAS3O,IAI5BlO,KAAK2nG,sBAIT3nG,KAAKsoG,oBAAoB,CACvB9wE,KAAM,KACN5a,KAAO,QAAO1O,IACd2O,KAAM3O,EACNwD,SAAU1R,KAAKu9C,YAAY7rC,WAGxB1R,KAAK2nG,sBACR3nG,KAAK2nG,qBAAsB,EAC3Bj9G,QAAQC,UAAUkf,KAAK,KACrB7J,KAAK2nG,qBAAsB,QAKjCv6B,uBACOptE,KAAK+mG,cAAgB/mG,KAAK2nG,qBAI/B3nG,KAAKgpG,0BAGPh7B,OACE,IAAKhuE,KAAK+mG,cAAgB/mG,KAAK2nG,oBAC7B,OAGF,MAAMrmE,EAAQ35B,OAAO+/F,QAAQpmE,MAEzBthC,KAAKooG,cAAc9mE,IAAUA,EAAMknE,IAAM,GAC3C7gG,OAAO+/F,QAAQ15B,OAInBC,UACE,IAAKjuE,KAAK+mG,cAAgB/mG,KAAK2nG,oBAC7B,OAGF,MAAMrmE,EAAQ35B,OAAO+/F,QAAQpmE,MAEzBthC,KAAKooG,cAAc9mE,IAAUA,EAAMknE,IAAMxoG,KAAKioG,SAChDtgG,OAAO+/F,QAAQz5B,UAIfg7B,yBACF,OAAOjpG,KAAK+mG,eAAiB/mG,KAAK2nG,qBAAuB3nG,KAAK4nG,iBAAmB,GAG/EsB,sBACF,OAAOlpG,KAAK+mG,aAAe/mG,KAAK0oG,iBAAmB,KAGjDS,sBACF,OAAOnpG,KAAK+mG,aAAe/mG,KAAKyoG,iBAAmB,KAGrDH,oBAAoBplD,EAAa6lD,GAAe,GAC9C,MAAMK,EAAgBL,IAAiB/oG,KAAKkoG,aACtCmB,EAAW,CACfjC,YAAapnG,KAAKgnG,aAClBwB,IAAKY,EAAgBppG,KAAKgoG,KAAOhoG,KAAKgoG,KAAO,EAC7C9kD,eAKF,IAAIomD,EAEJ,GAJAtpG,KAAKuoG,qBAAqBrlD,EAAammD,EAASb,KAI5CxoG,KAAKwnG,YAActkD,GAAatmC,KAAM,CACxC,MAAM5xB,EAAUke,SAAStB,SAASC,KAAK2jD,MAAM,KAAK,GAE7CxgE,EAAQG,WAAW,aACtBm+G,EAAU,GAAEt+G,KAAWk4D,EAAYtmC,QAInCwsF,EACFzhG,OAAO+/F,QAAQ6B,aAAaF,EAAU,GAAIC,GAE1C3hG,OAAO+/F,QAAQ8B,UAAUH,EAAU,GAAIC,GAI3CN,wBAAwBS,GAAY,GAClC,IAAKzpG,KAAKmoG,UACR,OAGF,IAAI57E,EAAWvsB,KAAKmoG,UAOpB,GALIsB,IACFl9E,EAAW1mC,OAAOixB,OAAOjxB,OAAOyE,OAAO,MAAO0V,KAAKmoG,WACnD57E,EAASk9E,WAAY,IAGlBzpG,KAAKkoG,aAGR,YAFAloG,KAAKsoG,oBAAoB/7E,GAK3B,GAAIvsB,KAAKkoG,aAAauB,UAGpB,YAFAzpG,KAAKsoG,oBAAoB/7E,GAAU,GASrC,GAJIvsB,KAAKkoG,aAAatrF,OAAS2P,EAAS3P,OAInC5c,KAAKkoG,aAAarrF,MAA4C7c,KAAK+nG,qBAnTzC,GAoT7B,OAGF,IAAIgB,GAAe,EAEnB,GAAI/oG,KAAKkoG,aAAarrF,MAAQ0P,EAASjqB,OAAStC,KAAKkoG,aAAarrF,MAAQ0P,EAAS1P,KAAM,CACvF,QAA+BtzB,IAA3ByW,KAAKkoG,aAAa1wE,OAAuBx3B,KAAKkoG,aAAa5lG,MAC7D,OAGFymG,GAAe,EAGjB/oG,KAAKsoG,oBAAoB/7E,EAAUw8E,GAGrCD,aAAan6E,GACX,OAAO1gC,OAAOC,UAAUygC,IAAQA,EAAM,GAAKA,GAAO3uB,KAAKu9C,YAAYsvB,WAGrEu7B,cAAc9mE,EAAOooE,GAAc,GACjC,IAAKpoE,EACH,OAAO,EAGT,GAAIA,EAAM8lE,cAAgBpnG,KAAKgnG,aAC7B,KAAI0C,EAWF,OAAO,EAXQ,CACf,GAAiC,iBAAtBpoE,EAAM8lE,aAA4B9lE,EAAM8lE,YAAY9+G,SAAW0X,KAAKgnG,aAAa1+G,OAC1F,OAAO,EAGT,MAAOqhH,GAAatgB,YAAYugB,iBAAiB,cAEjD,GAAwB,WAApBD,GAAW7kG,KACb,OAAO,GAWb,SAJK7W,OAAOC,UAAUozC,EAAMknE,MAAQlnE,EAAMknE,IAAM,GAItB,OAAtBlnE,EAAM4hB,aAAqD,iBAAtB5hB,EAAM4hB,aAOjDqlD,qBAAqBrlD,EAAaslD,EAAKqB,GAAkB,GACnD7pG,KAAK6oG,yBACP/0F,aAAa9T,KAAK6oG,wBAClB7oG,KAAK6oG,uBAAyB,MAG5BgB,GAAmB3mD,GAAaumD,kBAC3BvmD,EAAYumD,UAGrBzpG,KAAKkoG,aAAehlD,EACpBljD,KAAKgoG,KAAOQ,EACZxoG,KAAKioG,QAAUn+G,KAAKqY,IAAInC,KAAKioG,QAASO,GACtCxoG,KAAK+nG,oBAAsB,EAG7BM,kBAAkByB,GAAiB,GACjC,MAAMltF,EAAOttB,SAASw4G,KAAkBhlF,UAAU,GAC5Ctb,GAAU,EAAGikE,EAAU+B,kBAAkB5wD,GACzC+pF,EAAYn/F,EAAOhd,IAAI,cAAgB,GAC7C,IAAIqyB,EAA4B,EAArBrV,EAAOhd,IAAI,QAEtB,QAAKwV,KAAK8oG,aAAajsF,IAASitF,GAAkBnD,EAAUr+G,OAAS,KACnEu0B,EAAO,MAGF,CACLD,OACAC,OACAnL,SAAU1R,KAAKu9C,YAAY7rC,UAI/Bq4F,iBACEniG,aAEI5H,KAAK6oG,yBACP/0F,aAAa9T,KAAK6oG,wBAClB7oG,KAAK6oG,uBAAyB,MAGhC7oG,KAAKmoG,UAAY,CACfvrF,KAAMhV,EAASy8E,cAAcvhE,UAAU,GACvCjG,KAAM7c,KAAKu9C,YAAY1gC,KACvBva,MAAOsF,EAASsG,WAChBwD,SAAU9J,EAAS8J,WAGjB1R,KAAK2nG,sBAI6B3nG,KAAKknG,gBAAkBlnG,KAAKkoG,eAAiBloG,KAAKkoG,aAAarrF,MACnG7c,KAAK+nG,sBAIL/nG,KAAK6oG,uBAAyB3wF,WAAW,KAClClY,KAAK2nG,qBACR3nG,KAAKgpG,yBAAwB,GAG/BhpG,KAAK6oG,uBAAyB,MAraN,MA0a9BmB,WACE1oE,UAEA,MAAM2oE,EAAUnC,IACVoC,EAAclqG,KAAK6nG,eAAiBoC,EAG1C,GAFAjqG,KAAK6nG,aAAeoC,GAEf3oE,EAAO,CACVthC,KAAKgoG,OAEL,MACEprF,OACAC,OACAnL,YACE1R,KAAKqoG,oBAQT,YANAroG,KAAKsoG,oBAAoB,CACvB1rF,OACAC,OACAnL,aACC,GAKL,IAAK1R,KAAKooG,cAAc9mE,GACtB,OAGFthC,KAAK2nG,qBAAsB,EAEvBuC,IACFlqG,KAAK4nG,oBACJ,EAAGpB,EAAa/U,sBAAsB,CACrCpyC,OAAQ13C,OACR5H,KAAM,aACN2xF,MAhdoB,MAidnB7nF,KAAK,KACN7J,KAAK4nG,sBAIT,MAAM1kD,EAAc5hB,EAAM4hB,YAE1BljD,KAAKuoG,qBAAqBrlD,EAAa5hB,EAAMknE,KAAK,IAE7C,EAAG/8B,EAAUmI,iBAAiB1wB,EAAYxxC,YAC7C1R,KAAKu9C,YAAY7rC,SAAWwxC,EAAYxxC,UAG1C9P,EAAgB41B,KACdx3B,KAAKu9C,YAAY8F,gBAAgBH,EAAY1rB,MACxC51B,EAAgBgb,KACrB5c,KAAKu9C,YAAYgwB,QAAQrqB,EAAYtmC,MAC5BsmC,EAAYrmC,OACrB7c,KAAKu9C,YAAY1gC,KAAOqmC,EAAYrmC,MAGtCnyB,QAAQC,UAAUkf,KAAK,KACrB7J,KAAK2nG,qBAAsB,IAI/BgB,cACO3oG,KAAKkoG,cAAgBloG,KAAKkoG,aAAauB,YAC1CzpG,KAAKgpG,0BAITvB,cACMznG,KAAKinG,eAITjnG,KAAKinG,aAAe,CAClBkD,eAAgBnqG,KAAK+pG,gBAAgBjuF,KAAK9b,MAC1CoqG,SAAUpqG,KAAKgqG,UAAUluF,KAAK9b,MAC9BqqG,SAAUrqG,KAAK2oG,UAAU7sF,KAAK9b,OAGhCA,KAAKwjD,SAASs9B,IAAI,iBAAkB9gF,KAAKinG,aAAakD,gBAEtDxiG,OAAOiR,iBAAiB,WAAY5Y,KAAKinG,aAAamD,UACtDziG,OAAOiR,iBAAiB,WAAY5Y,KAAKinG,aAAaoD,WAGxDzB,iBACO5oG,KAAKinG,eAIVjnG,KAAKwjD,SAASy9B,KAAK,iBAAkBjhF,KAAKinG,aAAakD,gBAEvDxiG,OAAOkR,oBAAoB,WAAY7Y,KAAKinG,aAAamD,UACzDziG,OAAOkR,oBAAoB,WAAY7Y,KAAKinG,aAAaoD,UACzDrqG,KAAKinG,aAAe,SAuEjB,CAACvhH,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQ2kH,yBAAsB,EAE9B,IAAI7+B,EAAY7lF,EAAoB,GAEhCohF,EAAYphF,EAAoB,GAgfpCD,EAAQ2kH,oBA9eR,QACErqG,aACEujD,WACA0pC,mBAAmB,KACnBqd,mBAAmB,KACnBC,sBAAsB,OAEtBxqG,KAAK6hG,aAAe,KACpB7hG,KAAKyqG,WAAa,KAClBzqG,KAAK0qG,iBAAmB,KACxB1qG,KAAK2qG,mBAAqB,KAC1B3qG,KAAK4qG,WAAa,KAClB5qG,KAAK+9C,YAAcl4D,OAAOyE,OAAO,MACjC0V,KAAKsyF,QAAS,EACdtyF,KAAKwkG,UAAYhhD,EACjBxjD,KAAK6qG,kBAAoB3d,EACzBltF,KAAK8qG,kBAAoBP,EACzBvqG,KAAK+qG,qBAAuBP,EAEvBxqG,KAAK8qG,mBACRnjG,OAAOiR,iBAAiB,oBAAqBH,IAC3CzY,KAAKwkG,UAAU/gD,SAAS,oBAAqB,CAC3Cn8C,OAAQK,OACRy3C,OAAQ3mC,EAAM2mC,WAMtButB,UAAUH,GACRxsE,KAAKyqG,WAAaj+B,EAGdE,YAAYH,GAAa,gCAO7B,GANIl/D,EAAKw0F,qBACDx0F,EAAK29F,qBAGb39F,EAAKw0F,aAAet1B,GAEfA,EACH,OAGF,MAAO0+B,EAASC,EAAkBC,SAAoBzgH,QAAQ+f,IAAI,CAAC8hE,EAAYv8D,kBAAmBu8D,EAAYr8D,yBAA0Bq8D,EAAYx9D,iBAEpJ,GAAKk8F,GAAYE,GAKjB,GAAI5+B,IAAgBl/D,EAAKw0F,aAIzB,KACEx0F,EAAKu9F,WAAav9F,EAAK+9F,yBAChB52F,GAGP,OAFAznB,QAAQynB,MAAO,qCAAoCA,GAAO1U,wBACpDuN,EAAK29F,qBAIb39F,EAAKg+F,gBAAgBriH,IAAI,oBAAqByvB,IACxCA,GAAOnR,SAAWK,QAItB0F,EAAKi+F,mBAAmB7yF,EAAM2mC,UAGhC/xC,EAAKg+F,gBAAgBriH,IAAI,yBAA0ByvB,IACjDpL,EAAKu9F,YAAYW,uBAAuB9yF,EAAM2mC,UAGhD/xC,EAAKg+F,gBAAgBriH,IAAI,eAAgB,EACvCklB,aACA0xE,eAEI1xE,IAAe0xE,IAInBvyE,EAAKm+F,mBAAmB5rB,GAExBvyE,EAAKo+F,kBAAkBv9F,MAGzBb,EAAKg+F,gBAAgBriH,IAAI,eAAgB,EACvCklB,kBAEKb,EAAKq+F,iBAAiB5xF,IAAI5L,IAI3BA,IAAeb,EAAKo9F,WAAW39B,mBAInCz/D,EAAKo+F,kBAAkBv9F,KAGzBb,EAAKg+F,gBAAgBriH,IAAI,eAAzB,mBAAyC,UAAMyvB,SACvCpL,EAAKm+F,mBAAmBn+F,EAAKo9F,WAAW39B,yBACxCz/D,EAAKu9F,YAAYW,uBAAuB,CAC5Ch9F,GAAI,MACJxO,KAAM,cAERsN,EAAKq9F,kBAAkB//G,YANzB,uDASA0iB,EAAKs+F,WAAW3iH,IAAI,YAAayvB,IAC/BpL,EAAK0wC,YAAYoJ,QAAS,IAG5B95C,EAAKs+F,WAAW3iH,IAAI,UAAWyvB,IAC7BpL,EAAK0wC,YAAYoJ,QAAS,IAG5B,UAAYpnD,EAAMsM,KAAagB,EAAKg+F,gBAClCh+F,EAAKm3F,UAAU1jB,IAAI/gF,EAAMsM,GAG3B,UAAYtM,EAAMsM,KAAagB,EAAKs+F,WAClChkG,OAAOiR,iBAAiB7Y,EAAMsM,GAAU,GAG1C,IACE,MAAMu/F,QAAsBv+F,EAAKw+F,oBAEjC,GAAIt/B,IAAgBl/D,EAAKw0F,aACvB,aAGIx0F,EAAKu9F,WAAWkB,cAAc,CAClCb,UACAC,mBACAa,QAAS,CACP9pD,SAAU72B,UAAU62B,SACpBgrC,SAAU7hE,UAAU6hE,UAEtB+e,QAAS,IAAKJ,EACZvrD,QAAS8qD,KAIb99F,EAAKm3F,UAAU/gD,SAAS,iBAAkB,CACxCn8C,OAAQ+F,UAEHmH,GAGP,OAFAznB,QAAQynB,MAAO,qCAAoCA,GAAO1U,wBACpDuN,EAAK29F,2BAIP39F,EAAKu9F,YAAYW,uBAAuB,CAC5Ch9F,GAAI,MACJxO,KAAM,eAEFsN,EAAKo+F,kBAAkBp+F,EAAKo9F,WAAW39B,mBAAmB,GAChEpiF,QAAQC,UAAUkf,KAAK,KACjB0iE,IAAgBl/D,EAAKw0F,eACvBx0F,EAAKilF,QAAS,iBAnHVjlF,EAAK29F,qBAdgB5pG,GAsIzB6qG,iBAAiB7sD,GAAQ,gCAC7B,OAAO/xC,EAAKu9F,YAAYW,uBAAuB,CAC7Ch9F,GAAI,MACJxO,KAAM,cAHqBqB,GAOzB8qG,gBAAgB9sD,GAAQ,gCAC5B,OAAO/xC,EAAKu9F,YAAYW,uBAAuB,CAC7Ch9F,GAAI,MACJxO,KAAM,aAHoBqB,GAOxB+qG,kBAAkB/sD,GAAQ,gCAC9B,OAAO/xC,EAAKu9F,YAAYW,uBAAuB,CAC7Ch9F,GAAI,MACJxO,KAAM,eAHsBqB,GAO1BgrG,iBAAiBhtD,GAAQ,gCAC7B,OAAO/xC,EAAKu9F,YAAYW,uBAAuB,CAC7Ch9F,GAAI,MACJxO,KAAM,cAHqBqB,GAO3B48C,iBACF,OAAOh+C,KAAK+9C,YAGVsuD,qBACF,OAAOrsG,KAAK2qG,oBAAoBlgH,SAAW,KAGzCqzB,YACF,OAAO9d,KAAKsyF,OAGV+Y,sBACF,OAAQ,EAAGrkC,EAAU74E,QAAQ6R,KAAM,kBAAmB,IAAImR,KAGxDw6F,iBACF,OAAQ,EAAG3kC,EAAU74E,QAAQ6R,KAAM,aAAc,IAAImR,KAGnDu6F,uBACF,OAAQ,EAAG1kC,EAAU74E,QAAQ6R,KAAM,mBAAoB,IAAI+Q,KAGzDu7F,oBACF,OAAQ,EAAGtlC,EAAU74E,QAAQ6R,KAAM,gBAAiB,IAAImR,KAGpDm6F,mBAAmBlsD,GAAQ,gCAC/B,MAAM4jC,EAAuB31E,EAAKo9F,WAAWznB,sBAAwB31E,EAAKo9F,WAAWxnB,4BAEnF10E,KACAg+F,WACAC,UACAzmH,SACEq5D,EAEJ,IAAK7wC,EAAI,CACP,OAAQi+F,OACD,QACHz/G,QAAQyqB,QACR,UAEG,QACHzqB,QAAQynB,MAAMzuB,GACd,UAEG,SACH,GAAIi9F,EACF,OAGF,MAAMypB,GAAS,EAAGhhC,EAAU4E,4BAA4BtqF,GACxDsnB,EAAKo9F,WAAWh6B,WAAag8B,EAAMh8B,WACnC,UAEG,WACHpjE,EAAKo9F,WAAW39B,kBAAoB/mF,EAAQ,EAC5C,UAEG,cACGsnB,EAAKo9F,WAAW9pB,aAEtBtzE,EAAKm3F,UAAU/gD,SAAS,QAAS,CAC/Bn8C,OAAQ+F,IAGV,UAEG,UACHtgB,QAAQC,IAAIjH,GACZ,UAEG,OACH,GAAIi9F,EACF,OAGF31E,EAAKo9F,WAAWtqB,kBAAoBp6F,EACpC,UAEG,SACHsnB,EAAKm3F,UAAU/gD,SAAS,OAAQ,CAC9Bn8C,OAAQ+F,IAGV,UAEG,YACHA,EAAKo9F,WAAW39B,kBAAoB,EACpC,UAEG,WACHz/D,EAAKo9F,WAAW39B,kBAAoBz/D,EAAKo9F,WAAW59B,WACpD,UAEG,WACHx/D,EAAKo9F,WAAWv8B,WAEhB,UAEG,WACH7gE,EAAKo9F,WAAWt8B,eAEhB,UAEG,aACH,GAAI6U,EACF,OAGF31E,EAAKo9F,WAAWhkB,gBAEhB,UAEG,cACH,GAAIzD,EACF,OAGF31E,EAAKo9F,WAAW/jB,gBAKpB,OAGF,GAAI1D,GACE5jC,EAAOM,MACT,cAIGN,EAAO7wC,UACP6wC,EAAOmtD,SACd,MAAMp0D,EAAMo0D,EAAW,CAACh+F,KAAOg+F,GAAY,CAACh+F,GAE5C,UAAWm+F,KAAav0D,EAAK,CAC3B,MAAMH,EAAU9uC,SAAS64C,eAAe2qD,GAEpC10D,EACFA,EAAQqM,cAAc,IAAIsoD,YAAY,oBAAqB,CACzDvtD,YAGF/xC,EAAKw0F,cAAcj0F,kBAAkB4gB,SAASk+E,EAAWttD,KAtH9Bh+C,GA2H3BqqG,kBAAkBv9F,EAAYi5F,GAAa,GAAO,gCACtD,MAAM56B,EAAc7qE,EAAKmgG,aACnB+K,EAAelrG,EAAK4qG,cAM1B,GAJInF,IACFzlG,EAAKgpG,kBAAoB,EAAG1jC,EAAU58E,6BAGnCsX,EAAKgpG,iBACR,OAGF,MAAMlrB,EAAW99E,EAAK+oG,WAAWrrB,YAAYlxE,EAAa,GAE1D,GAAIsxE,GAAU2F,iBAAmB1Z,EAAUgE,gBAAgBuG,SAGzD,YAFAt0E,EAAKgqG,iBAAiBv2F,IAAIjH,GAK5BxM,EAAKgqG,iBAAiBh3F,OAAOxG,GAE7B,MAAM2+F,EAAiBzrG,EAAC,YACtB,MAAMi/C,QAAiB/pD,EAAcwjB,IAAI5L,GAAiD,KAAnCsxE,EAASvZ,SAASl3D,eAErEw9D,IAAgB7qE,EAAKmgG,qBAInBngG,EAAKkpG,YAAYW,uBAAuB,CAC5Ch9F,GAAI,OACJxO,KAAM,WACNmO,aACAmyC,cAXmBj/C,GAevBwrG,EAAa5jH,IAAIklB,EAAY2+F,IArCyBzrG,GAwClDoqG,mBAAmBt9F,GAAY,gCACnC,MAAMq+D,EAAcl/D,EAAKw0F,aACnB+K,EAAev/F,EAAKi/F,cAM1B,IAJKj/F,EAAKq9F,kBAINr9F,EAAKq+F,iBAAiB5xF,IAAI5L,GAC5B,OAGF,MAAM2+F,EAAiBD,EAAapiH,IAAI0jB,IAEnC2+F,IAILD,EAAa5jH,IAAIklB,EAAY,YACvB2+F,EAEFtgC,IAAgBl/D,EAAKw0F,qBAInBx0F,EAAKu9F,YAAYW,uBAAuB,CAC5Ch9F,GAAI,OACJxO,KAAM,YACNmO,kBA5BiC9M,GAgC/ByqG,oBAAoB,gCACxB,GAAIxpG,EAAK0oG,qBACP,OAAO1oG,EAAK0oG,qBAAqB1oG,EAAKw/F,cAGxC,MACE2I,uBACE5kH,EAAoB,IAExB,OAAO4kH,EAAoBnoG,EAAKw/F,eATRzgG,GAY1BgqG,mBAGE,GAFAprG,KAAK2qG,oBAAsB,EAAG3jC,EAAU58E,2BAEpC4V,KAAK4qG,WACP,MAAM,IAAInrG,MAAM,+CAGlB,GAAIO,KAAK8qG,kBACP,OAAO9qG,KAAK8qG,kBAAkBgC,gBAAgB,CAC5C5f,iBAAkBltF,KAAK6qG,oBAI3B,MACEkC,oBACEnnH,EAAoB,IAExB,OAAO,IAAImnH,EAAiB/sG,KAAK6qG,mBAG7BG,oBAAoB,gCACxB,IAAK3oG,EAAKuoG,WAGR,OAFAvoG,EAAKw/F,aAAe,UACpBx/F,EAAKsoG,oBAAoBhgH,UAIvB0X,EAAKqoG,yBACDhgH,QAAQm8F,KAAK,CAACxkF,EAAKqoG,iBAAiBjgH,QAAS,IAAIC,QAAQC,IAC7DutB,WAAWvtB,EAAS,SACjBsgB,MAAMpgB,OACXwX,EAAKqoG,iBAAmB,MAG1BroG,EAAKw/F,aAAe,KAEpB,UACQx/F,EAAKuoG,WAAWoC,wBAGxB,UAAYjtG,EAAMsM,KAAahK,EAAKgpG,gBAClChpG,EAAKmiG,UAAUvjB,KAAKlhF,EAAMsM,GAG5BhK,EAAKgpG,gBAAgB7zF,QAErB,UAAYzX,EAAMsM,KAAahK,EAAKspG,WAClChkG,OAAOkR,oBAAoB9Y,EAAMsM,GAAU,GAG7ChK,EAAKspG,WAAWn0F,QAEhBnV,EAAKqpG,iBAAiBl0F,QAEtBnV,EAAKiqG,cAAc90F,QAEnBnV,EAAKuoG,WAAa,YACXvoG,EAAK07C,YAAYoJ,OACxB9kD,EAAKiwF,QAAS,EACdjwF,EAAKsoG,oBAAoBhgH,WAvCDyW,MAgDrB,CAAC1b,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETJ,EAAQonH,sBAAmB,EAC3BpnH,EAAQ6kH,oBAR0D,8CAUlE,IAAIxjC,EAAYphF,EAAoB,GAV8B,wBAYlE,UAAmC2mF,GACjC,MACMvhF,EADM,GACQwgE,MAAM,KAAK,GAC/B,IACE3+D,OACAszB,WACA7V,6BACA+T,uBACQkuD,EAAYn9D,cAEtB,IAAKiP,EAAe,CAClB,MACE/1B,gBACQikF,EAAYh9D,kBACtB8O,EAAgB/1B,EAGlB,MAAO,IAAKuE,EACVqnG,QAASlpG,EACTiiH,SAAU5uF,EACV2B,SAAU1V,IAA+B,EAAG08D,EAAUhkD,uBAnB5C,IAoBV7C,SAAUA,GAAUi3B,SACpB81D,QAAS/sF,GAAU31B,IAAI,cACvBqjB,SAAU0+D,EAAY1+D,SACtBpiB,IAvBU,OAboD9B,sBAgElEhE,EAAQonH,iBAxBR,QACE9sG,YAAYitF,GACVltF,KAAKsyF,QAAU,EAAGtrB,EAAUzrD,YAAY2xE,GAAkB,GAAMrjF,KAAK,IAC5DlC,OAAOwlG,aAAaC,kBAIzBtB,cAAcnjH,GAAM,uCACF+Y,EAAK4wF,QACnBhoG,OAAO3B,IAFSyY,GAKpBmqG,uBAAuB9yF,GAAO,gCAClC,MAAM40F,QAAgB3rG,EAAK4wF,OAC3Bp6E,WAAW,IAAMm1F,EAAQhpD,cAAc5rC,GAAQ,IAFbrX,GAK9B4rG,iBAAiB,uCACC3/F,EAAKilF,QACnBgb,eAFalsG,OAaXwjE,EAA2B,GAG/B,WAA6BC,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBt7E,IAAjBu7E,EACH,OAAOA,EAAan/E,QAGrB,IAAIo/E,EAASH,EAAyBC,GAAY,CAGjDl/E,QAAS,IAIVF,SAAoBo/E,GAAUE,EAAQA,EAAOp/E,QAASC,GAG/Cm/E,EAAOp/E,QAIzB,IAAIq/E,GAAsB,GAE1B,MAAC,MACD,IAAIr/E,EAAUq/E,GAGdn/E,OAAOC,eAAeH,EAAS,aAAe,CAC5CI,OAAO,IAETF,OAAOC,eAAeH,EAAS,yBAA2B,CACxDga,YAAY,EACZnV,IAAK,WACH,OAAOi7E,EAA0Ba,0BAGrCzgF,OAAOC,eAAeH,EAAS,gCAAkC,CAC/Dga,YAAY,EACZnV,IAAK,WACH,OAAO+iH,EAAiB/nC,iCAG5B3/E,OAAOC,eAAeH,EAAS,gCAAkC,CAC/Dga,YAAY,EACZnV,IAAK,WACH,OAAO+iH,EAAiBhoC,iCAG5B1/E,OAAOC,eAAeH,EAAS,0BAA4B,CACzDga,YAAY,EACZnV,IAAK,WACH,OAAO+iH,EAAiBjoC,2BAG5Bz/E,OAAOC,eAAeH,EAAS,yBAA2B,CACxDga,YAAY,EACZnV,IAAK,WACH,OAAO+iH,EAAiBloC,0BAG5Bx/E,OAAOC,eAAeH,EAAS,kBAAoB,CACjDga,YAAY,EACZnV,IAAK,WACH,OAAOgjH,EAAkB9c,mBAG7B7qG,OAAOC,eAAeH,EAAS,WAAa,CAC1Cga,YAAY,EACZnV,IAAK,WACH,OAAOg8G,EAAajV,YAGxB1rG,OAAOC,eAAeH,EAAS,cAAgB,CAC7Cga,YAAY,EACZnV,IAAK,WACH,OAAOijH,EAAatb,eAGxBtsG,OAAOC,eAAeH,EAAS,aAAe,CAC5Cga,YAAY,EACZnV,IAAK,WACH,OAAOm7E,EAAkB6F,cAG7B3lF,OAAOC,eAAeH,EAAS,WAAa,CAC1Cga,YAAY,EACZnV,IAAK,WACH,OAAOk7E,EAAYS,YAGvBtgF,OAAOC,eAAeH,EAAS,oBAAsB,CACnDga,YAAY,EACZnV,IAAK,WACH,OAAOkjH,EAAqBrN,qBAGhCx6G,OAAOC,eAAeH,EAAS,aAAe,CAC5Cga,YAAY,EACZnV,IAAK,WACH,OAAOmjH,EAAatH,cAGxBxgH,OAAOC,eAAeH,EAAS,iBAAmB,CAChDga,YAAY,EACZnV,IAAK,WACH,OAAOm7E,EAAkB4F,kBAG7B1lF,OAAOC,eAAeH,EAAS,cAAgB,CAC7Cga,YAAY,EACZnV,IAAK,WACH,OAAOmyF,EAAe8E,eAG1B57F,OAAOC,eAAeH,EAAS,sBAAwB,CACrDga,YAAY,EACZnV,IAAK,WACH,OAAOojH,EAAuBtD,uBAGlCzkH,OAAOC,eAAeH,EAAS,sBAAwB,CACrDga,YAAY,EACZnV,IAAK,WACH,OAAOqjH,EAAY5xB,uBAGvBp2F,OAAOC,eAAeH,EAAS,YAAc,CAC3Cga,YAAY,EACZnV,IAAK,WACH,OAAOqjH,EAAY7xB,aAGvBn2F,OAAOC,eAAeH,EAAS,cAAgB,CAC7Cga,YAAY,EACZnV,IAAK,WACH,OAAOihF,EAAUkE,eAGrB9pF,OAAOC,eAAeH,EAAS,oBAAsB,CACnDga,YAAY,EACZnV,IAAK,WACH,OAAOm7E,EAAkBY,qBAG7B1gF,OAAOC,eAAeH,EAAS,yBAA2B,CACxDga,YAAY,EACZnV,IAAK,WACH,OAAOo7E,EAA2Ba,0BAGtC5gF,OAAOC,eAAeH,EAAS,mBAAqB,CAClDga,YAAY,EACZnV,IAAK,WACH,OAAOq7E,EAAoBgB,oBAG/BhhF,OAAOC,eAAeH,EAAS,kBAAoB,CACjDga,YAAY,EACZnV,IAAK,WACH,OAAOs7E,EAAmBiB,mBAG9BlhF,OAAOC,eAAeH,EAAS,mBAAqB,CAClDga,YAAY,EACZnV,IAAK,WACH,OAAOihF,EAAU+B,oBAIrB,IAAI+/B,EAAmB3nH,EAAoB,GAEvC+/E,EAAoB//E,EAAoB,GAExC6lF,EAAY7lF,EAAoB,GAEhCioH,EAAcjoH,EAAoB,IAElC6/E,EAA4B7/E,EAAoB,GAEhD4nH,EAAoB5nH,EAAoB,IAExC4gH,EAAe5gH,EAAoB,IAEnC6nH,EAAe7nH,EAAoB,IAEnC8/E,EAAc9/E,EAAoB,GAElC8nH,EAAuB9nH,EAAoB,IAE3C+nH,EAAe/nH,EAAoB,IAEnC+2F,EAAiB/2F,EAAoB,IAErCgoH,EAAyBhoH,EAAoB,IAE7CggF,EAA6BhgF,EAAoB,GAEjDigF,EAAsBjgF,EAAoB,GAE1CkgF,EAAqBlgF,EAAoB,IAhL5C,GAsLgBo/E,IA70QA,GARfD,GAAOp/E,QAAUH,kMCnBfoqG,sCACEA,4CACFA,qDAgDYA,qCAAuCA,sBAA+BA,sEAA/BA,sHAMrCA,qCAAmCA,sBAA2BA,gFAA3BA,uGAHrCA,qCACEA,kCACAA,sBACAA,0CACFA,+EAHgHA,wKAApDA,+DAC1DA,2FACOA,6FAJXA,uCACEA,uCAKFA,8DALMA,4FAlDhBA,sCAA4C,UAA5CA,CAA4C,UAA5CA,CAA4C,QAMlCA,sBAAeA,+BAUvBA,uCAAoB,WAApBA,CAAoB,WAApBA,CAAoB,WAApBA,CAAoB,WAK0BA,0DAAwBA,2BAC9DA,qCACAA,yCAA2BA,qDAA0BA,2BACrDA,qCACAA,yCACCA,mFACCA,wCAAQA,uBAAcA,qCAMhCA,uCAAiB,YAAjBA,CAAiB,YAE8BA,8BAAIA,2BAE/CA,+CACFA,6BAEFA,wCAAsB,YAAtBA,CAAsB,WAAtBA,CAAsB,WAAtBA,CAAsB,WAKZA,mCACAA,uBACAA,2CACFA,2BACAA,mDAOFA,iCAINA,wCACEA,mCACFA,2BAEAA,wCAAsB,aAElBA,mCACFA,yEA7DMA,oEAesCA,8FAEXA,uGAG1BA,0LACSA,mEAUGA,mEAQuGA,uLAAxDA,8EAC1DA,0GACOA,kFAE4BA,+EAiBpCA,iFC/DR,IAAMke,EAAb,MAAM,QAKJ7tG,YAAoB8tG,EAAkCC,GAAlChuG,kBAAkCA,mBAJtDA,kBAAc,EAMdiuG,WACE,IAAIC,EAAWC,aACfphH,QAAQC,IAAIkhH,GACS,IAAIjiH,KAAK+T,KAAKyY,MAAM21F,WAAWC,oBACpDruG,KAAKsuG,SAAWH,KAAUD,GAAUK,OAAO,KAE3CvuG,KAAK+tG,WAAWS,iBAAiBxuG,KAAKyY,MAAMlK,GAAGniB,YAAYqiH,UAAW/wF,IACpE1d,KAAK0d,IAAMA,EACX1d,KAAK0uG,aAAc,IAIvB7wF,WACE7d,KAAKguG,YAAYW,wDApBRb,GAA2Ble,0HAA3Bke,EAA2Bc,w/BDXxChf,uCACEA,sCAA2B,UAA3BA,CAA2B,UAEwBA,sCAAaA,6BAE9DA,wCAGAA,0CAsEAA,sCAA0B,UAA1BA,CAA0B,UAA1BA,CAA0B,eAGgCA,iDAAShkE,eAA0BgkE,+BAAKA,mCAKtGA,2CAjF6BA,uEAGAA,gKCGhBke,GAAb,mGCJO,IAAMe,GAAb,MAAM,QAKJ5uG,cAJAD,kBAAc,EAMdiuG,WACEjuG,KAAK0uG,aAAc,gDARVG,sDAA8BD,wLCP3Chf,sCAAiB,WAEbA,kEACFA,oCADOA,qKDKIif,GAAb,GEAaC,EAAb,MAAM,QAIJ7uG,cAHAD,kBAAc,EAKdiuG,WACEjuG,KAAK0uG,aAAc,gDAPVI,sDAA6BF,qKCP1Chf,qCAAwBA,sBAAqBA,2BAC7CA,qCAAwBA,gFAA6FA,kCAD7FA,0EACAA,0ODMXkf,GAAb,gJEPAlf,qEAiBMA,uCACEA,sBACFA,sEADEA,gJAGAA,uCAAkH,cAC3FA,0EAAgDA,2BACrEA,0CAA6BA,+EAAUmf,EAAV,2BAAUA,kBAAVnf,CAA2B,oHACtDA,0CAAyBA,0CAAiBA,2BAC1CA,0CAAyBA,uDAAuSA,2BAChUA,0CAA0BA,4BAAEA,6BAE9BA,wCAA6B,UACtBA,2DAAiCA,4EANiBA,gFAC/CA,gEACAA,8DAAiBA,2UACjBA,wFAiBgBA,qCAA8BA,uDAA0EA,8GAA1EA,0KAAiFA,qCAA+BA,+BAAMA,2FAL9KA,uCACEA,uCAA0C,cACYA,+EAAUof,EAAV,2BAAUA,kBAAVpf,CAA2B,uFAA/EA,2BACAA,yCAA8D,aAEzDA,sBAAiBA,yCAA+GA,yCAA4CA,2BAE/KA,yCAAkCA,sBAAuBA,+BAK7DA,kCACFA,0EAXiHA,kFAAoB,0BAAjDA,6CAC5CA,uFAE/BA,uEAAwBA,kEAA+GA,mEAExGA,gGAZ5CA,uCAAgD,WAAhDA,CAAgD,WAAhDA,CAAgD,YAEfA,gFAAuDA,6BAGpFA,mDAcFA,wEAdkCA,oIAqBhCA,uCACEA,uCAA0C,cACYA,+EAAUqf,EAAV,2BAAUA,kBAAVrf,CAA2B,uFAA/EA,2BACAA,yCAAmE,aAC3CA,uDAAoIA,2BAC1JA,yCAAkCA,sBAA8CA,+BAKpFA,iCACFA,yGATiHA,uFAAyB,+BAAtDA,6CAC5CA,4FACZA,iMACYA,uHAV5CA,uCAAqD,WAArDA,CAAqD,WAArDA,CAAqD,YAEpBA,kFAAyDA,6BAGtFA,oDAYFA,wEAZkCA,mGA6BtBA,wCAA0DA,sBAASA,qDAATA,oFAJ9DA,uCAAoB,WAApBA,CAAoB,YAEUA,sBAAoBA,2BAC9CA,uCAAmEA,sBAA8DA,2BACjIA,0CACAA,iCACFA,uDAJ4BA,gEACyCA,wGAC3BA,kIARlDA,uCAAkE,cAC5CA,sBAAiBA,2BACrCA,kDAAiGA,6JAC/FA,iDAUFA,2BAIAA,uCAA6B,SACtBA,kDAAyBA,oGAjBZA,gEACgHA,4FAA/FA,4CAAuB,qBAAvBA,CAAuB,4DATlEA,uCAAqG,WAArGA,CAAqG,WAArGA,CAAqG,YAEpEA,2CAAkBA,6BAC/CA,uCAAqB,WAAQA,2SAAiRA,6BAC9SA,uCAAqB,WAAQA,qHAA0FA,6BAGvHA,0CAsBFA,wEAtBsCA,0IAyBxCA,uCAA8C,WAA9CA,CAA8C,cAEtBA,oCAAWA,2BAC/BA,yCAAwCA,mIAAxCA,2BACAA,uCAA6B,SACtBA,gDAAuBA,+BAGhCA,uCAA6C,cACvBA,+BAAKA,2BACzBA,2CAA6BA,8HAC3BA,2CAAkBA,sCAAYA,2BAC9BA,2CAAkBA,uCAAaA,2BAC/BA,2CAAkBA,oCAAUA,2BAC5BA,2CAAkBA,oCAAUA,2BAC5BA,2CAAkBA,kCAAQA,2BAC1BA,2CAAkBA,mCAASA,2BAC3BA,2CAAkBA,mCAASA,2BAC3BA,2CAAkBA,qCAAWA,2BAC7BA,2CAAkBA,wCAAcA,2BAChCA,2CAAmBA,sCAAYA,2BAC/BA,2CAAmBA,uCAAaA,2BAChCA,2CAAmBA,uCAAaA,6BAElCA,wCAA6B,UACtBA,2CAAiBA,+BAG1BA,wCAA6C,eACvBA,8BAAIA,2BACxBA,2CAA6BA,8HAC3BA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,6BAE3BA,wCAA6B,UACtBA,0CAAgBA,+BAGzBA,wCAA6C,eACvBA,6BAAGA,2BACvBA,0CAAwCA,4HAAxCA,2BACAA,wCAA6B,UACtBA,yCAAeA,8EAjDkBA,wEAOXA,mEAoBAA,oEAoBWA,4FAO5CA,uCACEA,sBACFA,sEADEA,iJAlKRA,sCAA+C,aAA/CA,CAA+C,UAA/CA,CAA+C,UAGrBA,4CAAmBA,2BAEvCA,yCAAuDA,8EAASsf,EAAT,0BAASA,wBAC9Dtf,uCAAyBA,6BAACA,iCAIhCA,yCAAmC,YAAnCA,CAAmC,YAAnCA,CAAmC,YAGgBA,uBAAuCA,2BACpFA,oCAAIA,yDAAgFA,6BAEtFA,0CAGAA,wCACEA,2CAWFA,2BACAA,0CAqBAA,0CAmBAA,2CAgCAA,4CAyDAA,0CAGAA,wCAAyC,gBACuFA,8EAASuf,EAAT,0BAASA,2BAA0Bvf,yDAAsGA,+EAxJ1NA,6FACzCA,0JAEAA,uEAIEA,yIAYFA,0EAqBAA,+EAmBAA,+HAgCAA,wEAyDAA,uEAI4FA,+EAAiEA,wLCtJlK,IAAMwf,GAAb,MAAM,QAmBJnvG,YAAmB+tG,EAAqC1vC,EAAoC+wC,EAA0CC,GAAoCC,GAAsBC,IAA7KxvG,mBAAqCA,YAAoCA,kBAA0CA,qBAAoCA,aAAsBA,gBAlBhMA,kBAAc,EAKdA,iBAAc,EAediuG,WACElhH,QAAQC,IAAIgT,KAAKyvG,sBAEjBzvG,KAAKqvG,WAAWK,6BAA6B1vG,KAAK2vG,aAAavjH,WAAY4T,KAAKyvG,qBAAqBG,WAAWnB,UAAWoB,IACzH,GAAIA,EAAKC,iBAAkB,CACzB9vG,KAAK+vG,WAAaC,SAAgBH,EAAKI,cACpCC,MAAO/oF,IAAMA,GAAEgpF,qBAAuBhpF,GAAEipF,kBAAoBpwG,KAAKyvG,qBAAqBY,aAAa7mD,UAAWtoD,IAAMA,GAAEovG,eAAiBnpF,GAAE5Y,KAAO,GAChJgiG,QAASppF,IAAMA,GAAEinF,WACjBoC,QAASrpF,IAAMA,GAAEspF,mBACjBP,MAAO/oF,IAAMA,GAAEupF,YAAYpoH,OAAS,GACpCqoH,UACH5jH,QAAQC,IAAIgT,KAAK+vG,WAAW,IAE5B/vG,KAAK4wG,kBAAoB,IAAI7vG,MAAcf,KAAK+vG,WAAWznH,QAE3D,QAASG,EAAI,EAAGA,EAAIuX,KAAK+vG,WAAWznH,OAAQG,IAC1C,QAAS2b,EAAI,EAAGA,EAAIpE,KAAKyvG,qBAAqBY,aAAa/nH,OAAQ8b,IAAK,CACtE,IAAIxb,GAA+DoX,KAAK+vG,WAAWtnH,GAAGioH,YAC5EV,SAAgBpnH,IACvBioH,OAAQ1pF,IAAMA,GAAE5Y,IAChBoiG,UAEK73F,QAAQ9Y,KAAKyvG,qBAAqBY,aAAajsG,GAAGksG,gBAAiB,IACzEtwG,KAAK4wG,kBAAkBnoH,GAAKuX,KAAKyvG,qBAAqBY,aAAajsG,GAAGksG,gBAM9EtwG,KAAK8wG,MAAQ,IAAIC,MACjB,IAAIC,GAAShB,SAAgBH,EAAKoB,QAC9BC,GAAkBlB,SAAgBhwG,KAAKyvG,qBAAqBwB,QAAQJ,OAAQ1pF,IAAMA,GAAEgqF,SAExFnxG,KAAKgxG,OAASA,GAAOd,MAAO/oF,KAAO+pF,GAAgBl8B,SAAS7tD,GAAE5Y,KAAKoiG,UAEnE3wG,KAAKoxG,YAAcpB,SAAgBhwG,KAAKyvG,qBAAqB4B,QAAQD,aAClElB,MAAO/oF,KAAOA,GAAEmqF,kBAChBX,UAEH3wG,KAAK0uG,aAAc,IAIvB6C,yBACE,IAAKvxG,KAAKwxG,QAAQC,MAGhB,OAFAzxG,KAAK0xG,sBACL1xG,KAAK2xG,aAAe,kFAItB3xG,KAAK2xG,aAAe,GAEpB3xG,KAAK8wG,MAAMc,eAAiB5B,SAAgBhwG,KAAKgxG,QAC9Cd,MAAO/oF,GAAMA,EAAE6hC,UACf2nD,UAEH3wG,KAAK8wG,MAAMe,oBAAsB7B,SAAgBhwG,KAAKoxG,aACnDlB,MAAO/oF,GAAMA,EAAE6hC,UACf2nD,UAEH3wG,KAAK8wG,MAAMF,kBAAoB5wG,KAAK4wG,kBAEpC5wG,KAAK8xG,eAAiB,IAAIpnH,QAAQ,CAACqnH,EAAkBnnH,KACnDoV,KAAKgyG,gBAAgBD,KAIzBC,gBAAgBD,GACU,GAApB/xG,KAAKiyG,YAMHtqG,OAAQuqG,OAAOC,KAAKC,YADf,CAAEC,OAAQryG,KAAKsyG,WAAYC,UAAWvyG,KAAKwyG,MAAOC,SAAUzyG,KAAK0yG,MAAOC,IAAK3yG,KAAK4yG,KACjD,CAACvyG,EAAgBukB,MAC5C,MAAXvkB,GACFL,KAAK8wG,MAAM+B,UAAYjuF,GAASrW,GAEhCvO,KAAKuvG,KAAKuD,IAAI,KACZ9yG,KAAKsvG,aAAayD,cAAc/yG,KAAKyvG,qBAAqBG,UAAW5vG,KAAK8wG,OAAOrC,UAC9Ej5D,KACC,IAAKA,GAGH,OAFAu8D,SACA/xG,KAAK2xG,aAAe,iCAItBI,IACA/xG,KAAKguG,YAAYt2F,QAEjB1X,KAAKs+D,KAAK00C,eAAehzG,KAAKyvG,qBAAqBwD,eAAgBjzG,KAAKiyG,aACxEiB,IAAI,QAAS,WAAY,CAAEntH,MAAOia,KAAKiyG,YAAakB,SAAU,QAC9DC,KAAK,QAAS,aAAc,CAC1BC,eAAgB,WAChBC,YAAa,UACbvtH,MAAOia,KAAKiyG,cAEdmB,KAAK,QAAS,aAAc,CAC1BG,QAAS,sCACTxtH,MAAOia,KAAKiyG,YACZkB,SAAU,MACVK,eAAgB,KAElBzmH,QAAQC,IAAI,QACZgT,KAAKwvG,QAAQiE,cAAc,kFAAmF,cAAchF,aAE7Hj6F,KACCu9F,IACA/xG,KAAK2xG,aAAen9F,GAAMA,MAAM,SAKtCu9F,IACA/xG,KAAK2xG,aAAe/sF,GAASpQ,MAAM1U,WA7CrCE,KAAK0zG,oBAAoB3B,GAiD7B2B,oBAAoB3B,GAClB/xG,KAAKsvG,aAAayD,cAAc/yG,KAAKyvG,qBAAqBG,UAAW5vG,KAAK8wG,OAAOrC,UAC9Ej5D,IACC,IAAKA,EAGH,OAFAu8D,SACA/xG,KAAK2xG,aAAe,iCAItBI,IACA/xG,KAAKguG,YAAYt2F,QACjB1X,KAAKs+D,KAAK00C,eAAehzG,KAAKyvG,qBAAqBwD,eAAgBjzG,KAAKiyG,aAExEiB,IAAI,QAAS,WAAY,CAAEntH,MAAOia,KAAKiyG,YAAakB,SAAU,QAC9DC,KAAK,QAAS,aAAc,CAC1BC,eAAgB,WAChBC,YAAa,UACbvtH,MAAOia,KAAKiyG,cAEdmB,KAAK,QAAS,aAAc,CAC1BG,QAAS,sCACTxtH,MAAOia,KAAKiyG,YACZkB,SAAU,MACVK,eAAgB,KAElBzmH,QAAQC,IAAI,QACZgT,KAAKwvG,QAAQiE,cAAc,kFAAmF,cAAchF,aAE7Hj6F,IACCu9F,IACA/xG,KAAK2xG,aAAen9F,EAAMA,MAAM,KAKtCk9F,iBACE7rH,OAAOiI,KAAKkS,KAAKwxG,QAAQmC,UAAUC,QAAS1vD,IAE1C,MAAM2vD,EAAU7zG,KAAKwxG,QAAQqC,QAAQrpH,IAAI05D,GACzCn3D,QAAQC,IAAI6mH,GACZA,EAAQC,cAAc,CAAEC,UAAU,IAClCF,EAAQG,YAAY,CAAED,UAAU,MAIpCE,iBACEj0G,KAAKiyG,YAAc,EAEfjyG,KAAK8wG,MAAMoD,cAAgBl0G,KAAKyvG,qBAAqB0E,aACvDn0G,KAAKiyG,aAAejyG,KAAKyvG,qBAAqB4B,QAAQ+C,UAGpDp0G,KAAK8wG,MAAMoD,eAAiBl0G,KAAKyvG,qBAAqB0E,aACxDn0G,KAAKiyG,aAAejyG,KAAKyvG,qBAAqB4B,QAAQgD,mBAGxD,IAAIC,EAAatE,SAAgBhwG,KAAKgxG,QACnCd,MAAO/oF,GAAMA,EAAE6hC,UACfpd,IAAKzkB,GAAMA,EAAEotF,OAChBv0G,KAAKiyG,aAAeqC,EAEpB,IAAIE,EAAkBxE,SAAgBhwG,KAAKoxG,aACxClB,MAAO/oF,GAAMA,EAAE6hC,UACfpd,IAAKzkB,GAAMA,EAAEotF,OAChBv0G,KAAKiyG,aAAeuC,gDA3MXpF,GAAgCxf,4QAAhCwf,EAAgCR,yxFDhB7Chf,qDACAA,kDADmBA,8CACbA,uNCeOwf,GAAb,wEChBAxf,kEAIMA,sCAAuCA,gDAAuBA,kDAC9DA,sCAAwCA,4CAAmBA,qDAYvDA,wCAA4FA,sBAA2BA,sEAA3BA,iHAC5FA,qCAAgDA,yDAAkCA,sEAAlCA,qIAChDA,wCAAsEA,gCAAOA,qDAIjFA,uCACEA,sBACFA,sEADEA,8GAEFA,uCACEA,sBACFA,sEADEA,0GAIEA,yCAAwCA,sBAA4DA,sEAA5DA,mJACxCA,yCAAyCA,sBAAiDA,sEAAjDA,8KAF3CA,uCACEA,2CACAA,2CACAA,0CAA6BA,+EAAUqf,EAAV,2BAAUA,kBAAVrf,CAA2B,0GACtDA,0CAAyBA,0CAAiBA,2BAC1CA,0CAAyBA,uDAA6DA,2BACtFA,0CAA0BA,yDAAqEA,6BAEjGA,wCAA6B,UACtBA,gEAAsCA,4EARrCA,qEACAA,sEAC0DA,sEACxDA,gEACAA,8DAAiBA,4IACjBA,8DAAkBA,sNAM9BA,uCAAqD,cAC9BA,0DAAgCA,2BACrDA,0CAA6BA,+EAAU6kB,EAAV,2BAAUA,kBAAV7kB,CAA2B,8GACtDA,0CAAyBA,0CAAiBA,2BAC1CA,0CAAyBA,uDAA8HA,2BACvJA,0CAA0BA,4BAAEA,6BAE9BA,wCAA6B,UACtBA,2DAAiCA,4EAN0BA,0EACxDA,gEACAA,8DAAiBA,2MACjBA,yFAiBgBA,qCAA8BA,uDAA2DA,8GAA3DA,4JAAkEA,qCAA+BA,+BAAMA,4FAL/JA,uCACEA,uCAA0C,cACYA,+EAAU8kB,EAAV,2BAAUA,kBAAV9kB,CAA2B,uFAA/EA,2BACAA,yCAA8D,aAEzDA,sBAAiBA,0CAAgGA,0CAA4CA,2BAEhKA,yCAAkCA,sBAAuBA,+BAK7DA,kCACFA,0EAXiHA,kFAAoB,0BAAjDA,6CAC5CA,uFAE/BA,uEAAwBA,kEAAgGA,mEAEzFA,iGAZ5CA,uCAAqD,WAArDA,CAAqD,WAArDA,CAAqD,YAEpBA,4CAAmBA,6BAGhDA,oDAcFA,wEAdkCA,iGAmB+KA,qCAA4BA,6BAAIA,mDAAOA,qCAA6BA,6BAAIA,4FAAvRA,uCAA8DA,8DAAqCA,0CAAsBA,sJAAsFA,0CAAuCA,0CAAyCA,mCAASA,0EAAlFA,wEAAuCA,mGAC7PA,uCAA+FA,sDAAkGA,sEAAlGA,2MAOvFA,wCAA+DA,uDAAmFA,8GAAnFA,iLAC/DA,wCAAiEA,uDAA6EA,8GAA7EA,kNALvEA,uCACEA,uCAA0C,cACYA,+EAAU+kB,EAAV,2BAAUA,kBAAV/kB,CAA2B,uFAA/EA,2BACAA,yCACEA,0CACAA,0CACAA,yCAA6CA,sBAA6BA,2BAC1EA,yCAAkCA,sBAA8CA,+BAKpFA,kCACFA,yGAXiHA,uFAAyB,+BAAtDA,6CAC5CA,4FAC3BA,oFACAA,sFACsCA,4EACXA,wHAR1CA,uCACEA,oDAcFA,+EAdkCA,yGAPtCA,uCAA0D,WAA1DA,CAA0D,WAA1DA,CAA0D,YAEzBA,4CAAmBA,6BAChDA,0CACAA,yCAEAA,kDAgBFA,wEAnBQA,6EACAA,mGAESA,yHAiCLA,wCAA0DA,sBAASA,qDAATA,qFAJ9DA,uCAAoB,WAApBA,CAAoB,YAEUA,sBAAoBA,2BAC9CA,uCAAmEA,sBAA8DA,2BACjIA,2CACAA,iCACFA,uDAJ4BA,gEACyCA,wGAC3BA,mIARlDA,uCAAkE,cAC5CA,sBAAiBA,2BACrCA,kDAAiGA,6JAC/FA,kDAUFA,2BAIAA,uCAA6B,SACtBA,kDAAyBA,oGAjBZA,gEACgHA,4FAA/FA,4CAAuB,qBAAvBA,CAAuB,6DATlEA,uCAAoD,WAApDA,CAAoD,WAApDA,CAAoD,YAEnBA,2CAAkBA,6BAC/CA,uCAAqB,WAAQA,2SAAiRA,6BAC9SA,uCAAqB,WAAQA,qHAA0FA,6BAGvHA,2CAsBFA,wEAtBsCA,0IAyBtCA,uCAA8C,cACxBA,iEAAwCA,2BAE5DA,yCAA4FA,iIAA5FA,2BAEAA,uCAA6B,SACtBA,8CAAqBA,4EAHgEA,uIAM9FA,uCAAqE,cAC/CA,0CAAiBA,2BACrCA,yCAAiGA,iIAAjGA,0EAAiGA,sIAEnGA,uCAA8C,cACxBA,8CAAqBA,2BAEzCA,yCAA2FA,oIAA3FA,2BAEAA,uCAA6B,SACtBA,0DAAiCA,4EAHmDA,kGAM7FA,+EAAiEA,+GAK/DA,yCAAgIA,8IAAhIA,+FAAiKA,mEAAsEA,+DAAvGA,iDAAgC,kDAG9JA,0CAAmEA,sBAAuBA,qDAA7CA,uCAAsBA,sIAFrEA,0CAA6HA,+EAAUglB,EAAV,2BAAUA,kBAAVhlB,CAA2B,yHACtJA,0CAAyBA,0CAAiBA,2BAC1CA,6CACFA,qFAHwNA,qEAA/DA,8CAA2B,4BAC1KA,gEACmBA,gGAN/BA,uCAAgG,cAC1EA,sBAAwBA,2BAE5CA,4CACAA,6CAIAA,uCAA6B,SACtBA,+CAAsBA,wFARTA,uEAEZA,sIACCA,yKAmBPA,uCAAwD,SACjDA,sBAAgBA,wEAAhBA,sIARXA,uCAA6C,cACvBA,mCAAUA,2BAC9BA,uCAA8B,cACsDA,kIAAlFA,2BACAA,uCAAgC,eACYA,8EAASilB,EAAT,2BAASA,mBAAmDjlB,8BAAKA,6BAE7GA,0CAGFA,0EAPoFA,uEAI5EA,sIAOZA,uCAA8C,WAA9CA,CAA8C,cAEtBA,oCAAWA,2BAC/BA,yCAAwCA,mIAAxCA,2BACAA,uCAA6B,SACtBA,gDAAuBA,+BAGhCA,uCAA6C,cACvBA,+BAAKA,2BACzBA,2CAA6BA,8HAC3BA,2CAAkBA,sCAAYA,2BAC9BA,2CAAkBA,uCAAaA,2BAC/BA,2CAAkBA,oCAAUA,2BAC5BA,2CAAkBA,oCAAUA,2BAC5BA,2CAAkBA,kCAAQA,2BAC1BA,2CAAkBA,mCAASA,2BAC3BA,2CAAkBA,mCAASA,2BAC3BA,2CAAkBA,qCAAWA,2BAC7BA,2CAAkBA,wCAAcA,2BAChCA,2CAAmBA,sCAAYA,2BAC/BA,2CAAmBA,uCAAaA,2BAChCA,2CAAmBA,uCAAaA,6BAElCA,wCAA6B,UACtBA,2CAAiBA,+BAG1BA,wCAA6C,eACvBA,8BAAIA,2BACxBA,2CAA6BA,8HAC3BA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,2CAAqBA,8BAAIA,2BACzBA,4CAAqBA,8BAAIA,2BACzBA,4CAAqBA,8BAAIA,2BACzBA,4CAAqBA,8BAAIA,2BACzBA,4CAAqBA,8BAAIA,2BACzBA,4CAAqBA,8BAAIA,2BACzBA,4CAAqBA,8BAAIA,6BAE3BA,wCAA6B,UACtBA,0CAAgBA,+BAGzBA,wCAA6C,eACvBA,6BAAGA,2BACvBA,2CAAwCA,4HAAxCA,2BACAA,wCAA6B,UACtBA,yCAAeA,8EAjDkBA,wEAOXA,mEAoBAA,oEAoBWA,6FAM5CA,wCACEA,sBACFA,sEADEA,iJAjPRA,sCAA+C,aAA/CA,CAA+C,WAGzCA,uCACAA,uCAEAA,yCAAuDA,8EAASklB,EAAT,0BAASA,wBAC9DllB,uCAAyBA,6BAACA,iCAIhCA,yCAAmC,YAAnCA,CAAmC,YAAnCA,CAAmC,YAGgBA,uBAAeA,2BAC5DA,oCACEA,2CACAA,0CACAA,2CACFA,2BACAA,oCAAIA,yDAAwDA,6BAE9DA,0CAGAA,0CAGAA,wCACEA,4CAYAA,2CAWFA,2BACAA,2CAqBAA,2CAwBAA,4CA+BAA,wCACEA,2CASAA,2CAIAA,0CASAA,6CAEAA,2CAYFA,2BACAA,kCAEAA,wCACEA,2CAYFA,2BAEAA,4CAwDAA,2CAGAA,wCAAyC,gBACuFA,8EAASmlB,EAAT,0BAASA,2BAA0BnlB,yDAAgFA,+EAjP9OA,qEACAA,sEAU0CA,oEAEpCA,2FACAA,4FACAA,sEAELA,kIAEAA,2EAGAA,uEAIEA,6EAYAA,4EAYFA,+EAqBAA,oFAwBAA,8EAgCEA,qEASsBA,0FAItBA,qEASGA,sFAEcA,2FAgBAA,uEAcFA,wEAwDjBA,uEAI4FA,+EAAiEA,kKClOlK,IAAMolB,GAAb,MAAM,QAgCJ/0G,YAAmB+tG,EAAqCiH,EAAgD5F,EAA0CC,GAAoCC,GAAsBjxC,GAAqCkxC,IAA9NxvG,mBAAqCA,qBAAgDA,kBAA0CA,qBAAoCA,aAAsBA,aAAqCA,gBA/BjPA,kBAAc,EAwBdA,gBAAoB,GAEpBA,wBAAqBk1G,MACrBl1G,2BAAwBm1G,MAMxBlH,YACqBjuG,KAAKo1G,WAAap1G,KAAKqvG,WAAWK,6BAA6B1vG,KAAKo1G,WAAW7mG,GAAGniB,WAAY4T,KAAK4vG,WAAa5vG,KAAKqvG,WAAWgG,4CAA4Cr1G,KAAKs1G,aAAa/mG,GAAGniB,WAAY4T,KAAK4vG,YAExNnB,UAAWj5D,IACtBx1C,KAAK6vG,KAAOr6D,EACZx1C,KAAK6vG,KAAKoB,OAASjB,SAAgBhwG,KAAK6vG,KAAKoB,QAAQV,QAASppF,GAAMA,EAAEpnB,MAAM4wG,UAExE3wG,KAAK6vG,KAAK0F,wBACZv1G,KAAKw1G,aAGPx1G,KAAKiyG,YAAcjyG,KAAK6vG,KAAK0E,MAC7Bv0G,KAAKy1G,YAAcz1G,KAAKs+D,KAAKo3C,KAAKD,YAE9Bz1G,KAAK6vG,KAAKC,mBACZ9vG,KAAK+vG,WAAaC,SAAgBhwG,KAAK6vG,KAAKI,cACzCC,MAAO/oF,GAAMA,EAAEgpF,qBAAuBhpF,EAAEipF,kBACxCG,QAASppF,GAAMA,EAAEinF,WACjBoC,QAASrpF,GAAMA,EAAEspF,mBACjBP,MAAO/oF,GAAMA,EAAEupF,YAAYpoH,OAAS,GACpCqoH,UACH5jH,QAAQC,IAAIgT,KAAK+vG,WAAW,IAC5B/vG,KAAK4wG,kBAAoB,IAAI7vG,MAAcf,KAAK+vG,WAAWznH,SAG7D0X,KAAK21G,cAAgB,EACrB31G,KAAK41G,SAAW51G,KAAKs+D,KAAKo3C,KAAKG,UAAY,IAAM71G,KAAKs+D,KAAKo3C,KAAKI,SAAW,KAAO91G,KAAKs+D,KAAKo3C,KAAKzxC,YACjGl3E,QAAQC,IAAIgT,KAAKs+D,KAAKo3C,KAAKD,aAC3Bz1G,KAAK0uG,aAAc,IAIvB8G,aACEx1G,KAAKi1G,cAAcc,cAAc/1G,KAAKo1G,WAAWnC,eAAe7mH,WAAY4T,KAAKo1G,WAAW7mG,GAAIvO,KAAK6vG,KAAK0F,wBAAwB9G,UAAWj5D,IAC3Ix1C,KAAKg2G,OAASxgE,EACd,MAAMwgE,EAAS,IAAIC,SAAMhnF,KAAKiuC,MAAM1nB,EAAO0gE,aAE3Cl2G,KAAKm2G,YAAcH,EACnBh2G,KAAKm2G,YAAYC,cAAe,EAChCp2G,KAAKm2G,YAAYE,uBAAwB,EACzCr2G,KAAKm2G,YAAYG,oBAAsB,aACvCt2G,KAAKm2G,YAAY9vE,KAAO,OACxBt5C,QAAQC,IAAIgpH,EAAOO,mBACnBv2G,KAAKw2G,0BACLx2G,KAAK0uG,aAAc,IAIvB8H,0BACkBxG,SAAgBhwG,KAAKm2G,YAAYI,mBACvC3C,QAAS6C,IACoB,gBAAjCA,EAASC,gBAAgB32G,MAC3BC,KAAKm2G,YAAY3nF,SAASioF,EAAS12G,KAAMC,KAAKs+D,KAAKo3C,MAAMG,WAGtB,eAAjCY,EAASC,gBAAgB32G,MAC3BC,KAAKm2G,YAAY3nF,SAASioF,EAAS12G,KAAMC,KAAKs+D,KAAKo3C,MAAMI,UAGtB,YAAjCW,EAASC,gBAAgB32G,MAC3BC,KAAKm2G,YAAY3nF,SAASioF,EAAS12G,KAAMC,KAAKs+D,KAAKo3C,MAAMiB,OAG3D5pH,QAAQC,IAAIypH,EAASC,gBAAgB32G,QAIzCwxG,yBAGE,GAFAxkH,QAAQC,IAAIgT,KAAK4wG,mBAEb5wG,KAAK6vG,KAAK+G,YAAYxqH,YAAc8oH,MAAmBA,kBAA+B9oH,aAAsD,GAAxC4T,KAAKs+D,KAAKo3C,KAAKiB,MAAM79F,QAAQ,QAEnI,YADA9Y,KAAK2xG,aAAe,+EAItB,GAAI3xG,KAAKm2G,aAAaU,cAAgB72G,KAAKwxG,QAAQC,MAGjD,OAFAzxG,KAAK0xG,sBACL1xG,KAAK2xG,aAAe,kFAItB3xG,KAAK2xG,aAAe,GAEpB,IAAIb,EAAQ,IAAIgG,MAChBhG,EAAM+B,UAAY,GAClB/B,EAAMiG,WAAa/2G,KAAK+2G,WACxBjG,EAAMkG,UAAYh3G,KAAKg3G,UACvBlG,EAAM2E,YAAcz1G,KAAKy1G,YACzB3E,EAAM8E,SAAW51G,KAAK41G,SACtB9E,EAAMmG,SAAWj3G,KAAKi3G,SACtBnG,EAAMoG,SAAWl3G,KAAKk3G,SACtBpG,EAAMoD,aAAel0G,KAAKk0G,aAC1BpD,EAAMqG,iBAAmBloF,KAAKC,UAAUlvB,KAAKm2G,aAAaxtH,MAC1DmoH,EAAMc,eAAiB5B,SAAgBhwG,KAAK6vG,KAAKoB,QAC9Cf,MAAO/oF,GAAMA,EAAE6hC,UACf2nD,UACHG,EAAMe,oBAAsB7B,SAAgBhwG,KAAK6vG,KAAKuB,aACnDlB,MAAO/oF,GAAMA,EAAE6hC,UACf2nD,UAEHG,EAAMsG,wBAA0Bp3G,KAAK6vG,KAAKwH,yBAC1CvG,EAAMF,kBAAoB5wG,KAAK4wG,kBAE/B5wG,KAAK8xG,eAAiB,IAAIpnH,QAAQ,CAACqnH,EAAkBnnH,KAC/CoV,KAAKiyG,YAAc,EACrBjyG,KAAKgyG,gBAAgBD,EAAajB,GAElC9wG,KAAKs3G,aAAavF,EAAajB,KAKrCY,iBACE7rH,OAAOiI,KAAKkS,KAAKwxG,QAAQmC,UAAUC,QAAS1vD,IAE1C,MAAM2vD,EAAU7zG,KAAKwxG,QAAQqC,QAAQrpH,IAAI05D,GACzCn3D,QAAQC,IAAI6mH,GACZA,EAAQC,cAAc,CAAEC,UAAU,IAClCF,EAAQG,YAAY,CAAED,UAAU,MAIpCE,iBACMj0G,KAAKi3G,WAAaj3G,KAAK6vG,KAAK0H,eAC9BxqH,QAAQC,IAAI,aACZgT,KAAKiyG,YAAcjyG,KAAK6vG,KAAK0E,OAE7Bv0G,KAAKiyG,YAAcjyG,KAAK6vG,KAAK2H,gBAG/Bx3G,KAASk0G,eAAiBl0G,KAAKi3G,UAAaj3G,KAAK6vG,KAAK0H,cAE3Cv3G,KAAKk0G,eAAiBl0G,KAAKi3G,WACpCj3G,KAAKiyG,aAAejyG,KAAK6vG,KAAKwE,mBAF9Br0G,KAAKiyG,aAAejyG,KAAK6vG,KAAKuE,SAKhCrnH,QAAQC,IAAIgT,KAAKiyG,aAGfjyG,KAAKiyG,YADPjyG,KAAS21G,cAAgB,EACJ31G,KAAKiyG,YAAcjyG,KAAKiyG,aAAejyG,KAAK21G,cAAgB,KAC3E31G,KAASy3G,oBAAsB,EAChBz3G,KAAKiyG,YAAcjyG,KAAKy3G,oBAExBz3G,KAAKiyG,YAI1B,IAAIqC,EAAatE,SAAgBhwG,KAAK6vG,KAAKoB,QACxCf,MAAO/oF,IAAMA,GAAE6hC,UACfpd,IAAKzkB,IAAMA,GAAEotF,OAChBv0G,KAAKiyG,aAAeqC,EAEpB,IAAIE,EAAkBxE,SAAgBhwG,KAAK6vG,KAAKuB,aAC7ClB,MAAO/oF,IAAMA,GAAE6hC,UACfpd,IAAKzkB,IACAA,GAAEowF,eAAiBv3G,KAAKi3G,SAAiB9vF,GAAEuwF,YACxCvwF,GAAEotF,OAGTz0E,EAAQkwE,SAAgBhwG,KAAK6vG,KAAKuB,aACnClB,MAAO/oF,IAAMA,GAAE6hC,UACflpB,QAIH,GAFA/yC,QAAQC,IAAIwnH,GAERx0G,KAAK6vG,KAAK8H,qCAAuC73E,GAAS9/B,KAAK6vG,KAAK8H,oCAAqC,CAC3G,IAAIC,GAAiBpD,EAAkBx0G,KAAK6vG,KAAKgI,yBACjD9qH,QAAQC,IAAI4qH,IACZpD,GAAoCoD,GAGtC53G,KAAKiyG,aAAeuC,EAGtBsD,iBACE,IAAIhH,EAAQ,IAAIiH,MAChBjH,EAAM/qH,MAAQia,KAAKg3G,UACnBh3G,KAAKsvG,aAAa0I,sBAAsBh4G,KAAK6vG,KAAKthG,GAAIuiG,GAAOrC,UAC1Dj5D,IACCx1C,KAAKi4G,WAAa,GAClBj4G,KAAK21G,cAAgBngE,EAAO0iE,mBAC5Bl4G,KAAKy3G,oBAAsBjiE,EAAOoiE,eAClC53G,KAAKi0G,kBAENz/F,IACCxU,KAAKi4G,WAAazjG,EAAMA,MACxBxU,KAAK21G,cAAgB,EACrB31G,KAAKy3G,oBAAsB,EAC3Bz3G,KAAKi0G,mBAKXqD,aAAavF,EAAajB,GACxB9wG,KAAKsvG,aAAa0C,gBAAgBhyG,KAAK6vG,KAAKthG,GAAIuiG,GAAOrC,UACpDj5D,IACC,IAAKA,EAGH,OAFAu8D,SACA/xG,KAAK2xG,aAAe,iCAItBI,IACA/xG,KAAKguG,YAAYt2F,QACjBw7F,IAAI,QAAS,WAAY,CAAEntH,MAAOia,KAAK6vG,KAAK0E,MAAOpB,SAAU,QAC7DC,KAAK,QAAS,aAAc,CAC1BC,eAAgB,WAChBC,YAAa,UACbvtH,MAAOia,KAAK6vG,KAAK0E,QAEnBnB,KAAK,QAAS,aAAc,CAC1BG,QAAS,sCACTxtH,MAAOia,KAAK6vG,KAAK0E,MACjBpB,SAAU,MACVK,eAAgB,KAGlBzmH,QAAQC,IAAI,QACZgT,KAAKwvG,QAAQiE,cAAc,kFAAmF,cAAchF,aAE7Hj6F,IACCu9F,IACA/xG,KAAK2xG,aAAen9F,EAAMA,MAAM,KAKtCw9F,gBAAgBD,EAAajB,GAErBnpG,OAAQuqG,OAAOC,KAAKC,YADf,CAAEC,OAAQryG,KAAKsyG,WAAYC,UAAWvyG,KAAKwyG,MAAOC,SAAUzyG,KAAK0yG,MAAOC,IAAK3yG,KAAK4yG,KACjD,CAACvyG,GAAgBukB,MAC5C,MAAXvkB,IACFywG,EAAM+B,UAAYjuF,GAASrW,GAE3BvO,KAAKuvG,KAAKuD,IAAI,KACZ9yG,KAAKsvG,aAAa0C,gBAAgBhyG,KAAK6vG,KAAKthG,GAAIuiG,GAAOrC,UACpDj5D,KACC,IAAKA,GAGH,OAFAu8D,SACA/xG,KAAK2xG,aAAe,iCAItBI,IACA/xG,KAAKguG,YAAYt2F,QACjBw7F,IAAI,QAAS,WAAY,CAAEntH,MAAOia,KAAK6vG,KAAK0E,MAAOpB,SAAU,QAC7DC,KAAK,QAAS,aAAc,CAC1BC,eAAgB,WAChBC,YAAa,UACbvtH,MAAOia,KAAK6vG,KAAK0E,QAEnBnB,KAAK,QAAS,aAAc,CAC1BG,QAAS,sCACTxtH,MAAOia,KAAK6vG,KAAK0E,MACjBpB,SAAU,MACVK,eAAgB,KAElBzmH,QAAQC,IAAI,QACZgT,KAAKwvG,QAAQiE,cAAc,kFAAmF,cAAchF,aAE7Hj6F,KACCu9F,IACA/xG,KAAK2xG,aAAen9F,GAAMA,MAAM,SAKtCu9F,IACA/xG,KAAK2xG,aAAe/sF,GAASpQ,MAAM1U,yDA7S9Bk1G,GAA6BplB,gTAA7BolB,EAA6BpG,28JDnB1Chf,qDACAA,kDADmBA,8CACbA,gPCkBOolB,GAAb,+GCdoBplB,oCAAuGA,+EAAsDA,iCAAtGA,uIAL3EA,sCAA0E,QACpEA,4CAAmBA,2BACvBA,sCAAkBA,+BAAMA,oCAAsCA,2CAAkBA,2BAAKA,6CAAmBA,2BACxGA,oCAAiFA,4CAAmBA,2BACpGA,mCAAGA,6FAAmEA,2BACtEA,uCAAkBA,wCAAiKA,uEAF1IA,gGAEnBA,2HAObA,qCAAkJA,mEAA0CA,iCAA1FA,iGAH3GA,uCAA+D,WAA/DA,CAA+D,QAEvDA,6CAAoBA,2BACxBA,oCAAKA,wCAAgMA,0EAAjJA,2MAOpDA,sCAAgE,UAC2CA,iGAASmf,EAAT,2BAASA,qBAA0Bnf,sBAAcA,wFAA/HA,iHAAiHA,qFAFhJA,sCACEA,yCAGFA,sEAH2BA,0GAoBbA,wCAAkGA,sBAAwCA,gFAAxCA,oHAEhGA,qCAAsDA,gCAAOA,sDAC7DA,qCAAsDA,yDAAqDA,gFAArDA,mJAFxDA,wCAAyE,OACvEA,6EACAA,6EACAA,kFAFOA,sGACAA,8HAGTA,wCAAyEA,gCAAOA,sDAPhFA,uCACAA,2CACAA,2CAKAA,2CACdA,yFAPqBA,iFACAA,kFAKAA,4FAK0DA,qCAA8EA,uDAA0FA,gFAA1FA,yOA1B3JA,uCAA8F,WAA9FA,CAA8F,UAA9FA,CAA8F,cAA9FA,CAA8F,YAA9FA,CAA8F,YAA9FA,CAA8F,aAOhFA,gCACAA,wCAAyB,aACGA,uBAAkBA,iCAIlDA,yCACEA,mDASFA,2BACAA,yCAAgC,cAE3BA,yDAA8DA,2CAA+KA,6BAGlPA,yCAAkC,WACwEA,6BAAGA,yIA7B9EA,wFAEgEA,6EAAqC,8BAMpGA,+DAKfA,oFAYZA,8HAAqEA,mHAIvDA,iIA/B/BA,uCACEA,4CAqCFA,6FArCQA,+IARVA,uCAEEA,yCAKAA,mDA6CFA,sEAlDOA,qFAK6BA,iGAftCA,uCACEA,yCAOAA,0CAqDFA,8EA5DQA,gGAOAA,iGCFD,IAAMuoB,GAAb,MAAM,QAcJl4G,YAAoBm4G,EAAgC1C,EAA2BrG,EAA0C/wC,GAAqC+5C,IAA1Ir4G,oBAAgCA,YAA2BA,kBAA0CA,aAAqCA,mBAb9JA,kBAAc,EAKdA,oBAAiB,GAUjBiuG,WAEIjuG,KAAKmmB,YAITmyF,qBACE,MAAMC,EAAWv4G,KAAKo4G,aAAajzF,KAAKiqF,GAAkC,CAAEr/F,KAAM,KAAMyoG,eAAgB,oBAAqB10E,SAAU,WACvIy0E,EAASE,kBAAkBhJ,qBAAuBzvG,KAAKyvG,qBACvD8I,EAASE,kBAAkB9I,aAAe3vG,KAAKo1G,WAAW7mG,GAE1DgqG,EAAS/iE,OAAO3rC,KACb2rC,IACCzoD,QAAQC,IAAI,iBAEZgT,KAAKmmB,aAENt7B,OAKLs7B,YACEnmB,KAAKqvG,WAAWqJ,2BAA2B14G,KAAKo1G,WAAW7mG,IAAIkgG,UAAWkK,IACxE34G,KAAK24G,SAAW3I,SAAgB2I,GAC7BzI,MAAO/oF,GAA6B,GAAvBA,EAAEyxF,mBACfjI,UAGH3wG,KAAK64G,kBAAoB74G,KAAK24G,SAC3BvvD,OAAQjiC,IAAOA,EAAEyxF,mBACjBlrH,IAAK+T,GAAMA,EAAEq3G,UACb1vD,OAAO,CAACrjE,EAAOg9D,EAAOtM,KAASA,GAAK39B,QAAQ/yB,KAAWg9D,GAE1D/iD,KAAK+4G,yBAA2B/4G,KAAK24G,SAASp/D,KAAMpyB,IAAmB,IAAbA,EAAE6xF,QAC5DjsH,QAAQC,IAAIgT,KAAK64G,mBACjB74G,KAAKi5G,eAAiBj5G,KAAK64G,kBAAkB,GAC7C74G,KAAK01G,KAAKwD,2BAA2Bl5G,KAAKo1G,WAAW7mG,GAAGniB,YAAYqiH,UAAW0K,IAC7En5G,KAAKyvG,qBAAuB0J,EAC5Bn5G,KAAK0uG,aAAc,MAKzBsD,gBAAgBnC,GACV7vG,KAAKs+D,KAAK86C,aACZp5G,KAAKq5G,kBAAkBxJ,GAEvB7vG,KAAKs5G,eAAezJ,GAIxByJ,eAAezJ,GACI7vG,KAAKo4G,aAAajzF,KAAKo0F,KAA4B,CAAExpG,KAAM,KAAMyoG,eAAgB,oBAAqB10E,SAAU,WACxH0R,OAAO3rC,KACb2rC,IACCx1C,KAAKs+D,KAAKk7C,mBAAmB/K,UAAWj5D,KACtCx1C,KAAKq5G,kBAAkBxJ,MAG1BhlH,OAKL4uH,eAAeX,GACb94G,KAAKi5G,eAAiBH,EAGxBO,kBAAkBxJ,GAChB,MAAM0I,EAAWv4G,KAAKo4G,aAAajzF,KAAK6vF,GAA+B,CAAEjlG,KAAM,KAAMyoG,eAAgB,oBAAqB10E,SAAU,WACpIy0E,EAASE,kBAAkB7I,UAAYC,EAAKthG,GAC5CgqG,EAASE,kBAAkBrD,WAAap1G,KAAKo1G,WAC7CmD,EAAS/iE,OAAO3rC,KACb2rC,IACCzoD,QAAQC,IAAI,iBAEZgT,KAAKmmB,aAENt7B,qDA/FMstH,GAAiCvoB,qOAAjCuoB,EAAiCvJ,utDDd9Chf,0CAQAA,yDARMA,sDAQSA,sLCMFuoB,GAAb,yCCdAvoB,uHAKIA,uCACEA,sCAAwD,UAAxDA,CAAwD,UAAxDA,CAAwD,UAAxDA,CAAwD,WAM9CA,kCACFA,2BAEAA,sCAAoB,UACoCA,sBAAyBA,6BAEjFA,sCAA2IA,yDAAgDA,+BAK/LA,wCAA8B,WAE1BA,oCACAA,wCACFA,iCAIRA,8DAnBqHA,wKAApDA,+DAIlDA,wGAAmDA,mEAEgCA,wGAAmDA,kHAMlFA,mIAtBvEA,sCAAgD,WAG5CA,oDA2BFA,uEA3BuCA,0ECIlC,IAAM8pB,GAAb,MAAM,QAQJz5G,YAAoB05G,EAA8CC,GAA9C55G,yBAA8CA,cAPlEA,kBAAc,EASdiuG,WACE,IAAI91D,EAAqB,GAErBn4C,KAAKg4C,QAAQrvD,OACfwvD,EAAMlpB,KAAKiuC,MAAMl9D,KAAKg4C,QAAQrvD,OAGhCqX,KAASo1G,WACPp1G,KAAK25G,kBAAkBE,4BAA4B75G,KAAKo1G,WAAW7mG,IAAIkgG,UAAWj5D,IAChFx1C,KAAK85G,YAActkE,EAAO4T,OAAO,SAAUxgE,GACzC,OAAgC,IAAzBuvD,EAAIr/B,QAAQlwB,EAAK2lB,MAE1BvO,KAAK0uG,aAAc,IAGrB1uG,KAAK45G,OAAOG,2CAA2C/5G,KAAKs1G,aAAa/mG,GAAGniB,YAAYqiH,UAAWj5D,IACjGx1C,KAAK85G,YAActkE,EAAO4T,OAAO,SAAUxgE,GACzC,OAAgC,IAAzBuvD,EAAIr/B,QAAQlwB,EAAK2lB,MAE1BvO,KAAK0uG,aAAc,kDA7BdgL,GAAiC9pB,0HAAjC8pB,EAAiC9K,qzBDT9Chf,sDAEAA,gDAFmBA,8CAEbA,oJCOO8pB,GAAb,iFCJQ9pB,0CAAwDA,sBAAmBA,qDAA1CA,kDAAuBA,sGAIxDA,0CAA2EA,sBAA0BA,qDAAjDA,iDAAuBA,4GAK3EA,0CAAoEA,sBAAUA,qDAA3BA,oCAAiBA,qFAKpEA,0CAAuDA,sBAAmBA,qDAAvCA,uCAAoBA,oIAnB/DA,uCAA0C,WAA1CA,CAA0C,WAA1CA,CAA0C,eAGGA,wIAA8B,wDAAWoqB,EAAX,0BAAWA,QAAO,KACrFpqB,0CAAyBA,yCAAgBA,2BACzCA,6CACFA,2BAEAA,0CAAuCA,4IAAkC,wDAAWqqB,EAAX,0BAAWA,QAAO,KACzFrqB,8EACFA,2BAEAA,2CAAuCA,gJAAsC,wDAAWof,EAAX,0BAAWA,QAAO,KAC7Fpf,2CAAyBA,mCAASA,2BAClCA,8CACFA,2BAEAA,2CAAkCA,2IAAiC,wDAAWsqB,EAAX,0BAAWA,QAAO,KACnFtqB,2CAAyBA,kCAAQA,2BACjCA,8CACFA,6EAjBuCA,8EAC7BA,gEACgBA,kEAGaA,kFACZA,uGAGYA,sFAC7BA,gEACiBA,0GAGOA,iFACxBA,gEACiBA,2FAkB/BA,uCACEA,yCACFA,iFAHFA,uCACEA,0CAGFA,2CAHwBA,wIAKxBA,uCACEA,uCACEA,6CACFA,2BACFA,4FAFoBA,+FAA+C,mCAInEA,uCAAmH,WAAnHA,CAAmH,QAE3GA,gCAAgCA,2BACpCA,mCAAIA,mCAAUA,2BACdA,kCAAGA,iEAAwCA,4IAG/CA,+CAAiIA,sFAAgBqf,EAAhB,0BAAgBA,cAA8Drf,uEAA9JA,0CAAiB,iCAAjBA,CAAiB,6BAAjBA,CAAiB,yDC5C3D,IAAMuqB,GAAb,MAAM,QAiBJl6G,YAAoBo4G,qBAhBpBr4G,kBAAc,EAKdA,kBAAeo6G,MACfp6G,iBAAcq6G,uBAEdr6G,iBAAc,EACdA,cAAW,GACXA,iBAAc,EACdA,gBAAY,EAOZiuG,WACEjuG,KAAKs6G,aAAe,IAAIC,MACxBv6G,KAAKs6G,aAAaE,kBAAoB,KACtCx6G,KAAKs6G,aAAa/J,QAAU6J,gBAC5Bp6G,KAAKs6G,aAAaG,OAAS,KAC3Bz6G,KAAKs6G,aAAaptE,IAAM,KAExBltC,KAAKq4G,WAAWqC,sBAAsB16G,KAAKo1G,WAAW7mG,GAAGniB,YAAYqiH,UAAWkM,IAC9E36G,KAAKq4G,WAAWuC,qBAAqB56G,KAAKo1G,WAAW7mG,IAAIkgG,UAAWoM,IAMlE,GALA76G,KAAK26G,MAAQA,EACb36G,KAAK66G,KAAOA,EAEZ9tH,QAAQC,IAAIgT,KAAKg4C,QAAQrvD,MAErBqX,KAAKg4C,QAAQrvD,KACf,IACE,IAAIA,EAAOsmC,KAAKiuC,MAAMl9D,KAAKg4C,QAAQrvD,MACnCoE,QAAQC,IAAIrE,GAAMukD,KAClBltC,KAAKs6G,aAAaQ,YAAcnyH,GAAMmyH,YACtC96G,KAAKs6G,aAAaS,aAAepyH,GAAMoyH,aACvC/6G,KAAKs6G,aAAaptE,IAAMvkD,GAAMukD,KAE1BltC,KAAKs6G,aAAaQ,aAAe96G,KAAKs6G,aAAaS,cAAgB/6G,KAAKs6G,aAAaptE,OACvFltC,KAAKg7G,YAAa,SAIpBjuH,QAAQC,IAAI,SACZgT,KAAKs6G,aAAaQ,YAAc,UAGlC96G,KAAKs6G,aAAaQ,YAAc,KAGlC96G,KAAKi7G,QAAO,OAMlBA,OAAOC,GACLl7G,KAAKm7G,WAAY,EACbD,IACFl7G,KAAKmjF,YAAc,GAErBnjF,KAAKo7G,OAAS,GAEdp7G,KAAKq4G,WAAWgD,0BAA0Br7G,KAAKo1G,WAAW7mG,GAAIvO,KAAKmjF,YAAanjF,KAAKs7G,UAAU,EAAMt7G,KAAKs6G,cAAc7L,UAAW8M,IACjIv7G,KAAKmjF,YAAco4B,EAAYp4B,YAC/BnjF,KAAKs7G,SAAWC,EAAYD,SAC5Bt7G,KAAKw7G,YAAcD,EAAYE,SAC/Bz7G,KAAKo7G,OAASG,EAAYt7F,QAE1BjgB,KAAK0uG,aAAc,EACnB1uG,KAAKm7G,WAAY,IAIrBO,SAASjjG,GAKPzY,KAAKmjF,YAAc1qE,EAAMoE,KACzB7c,KAAKs7G,SAAW7iG,EAAMi5B,KACtB1xC,KAAKi7G,QAAO,iDApFHd,GAA+BvqB,sFAA/BuqB,EAA+BvL,swCDX5Chf,2CAwBAA,sCAAiB,UAAjBA,CAAiB,UAAjBA,CAAiB,aAGyFA,uDAAehkE,UAAO,IAAtBgkE,CAA4B,mEAAhIA,2BACAA,sCAAgC,cACuBA,2EAAmC,GAAIhkE,UAAO,KAAOgkE,8BAAKA,2BAC/GA,yCAAwDA,iDAAShkE,UAAO,KAAOgkE,+BAAMA,mCAM7FA,mDAMAA,mDAMAA,2CAOAA,0DAvDMA,6CA2BiIA,qFASxHA,oEAMiBA,oEAMiCA,mGAOnDA,0MC5CDuqB,GAAb,0CCXAvqB,mCAAwBA,6CAAoBA,sDAC5CA,uCACEA,sCACEA,6CACFA,2BACFA,4FAFqBA,+FAA+C,aCK7D,IAAM+rB,GAAb,MAAM,QAOJ17G,YAAoB27G,wBANpB57G,kBAAc,EAQdiuG,WACE,IAAIzmG,EAAS,IAAIq0G,MACjBr0G,EAAOmoG,aAAe3vG,KAAKo1G,WAAW7mG,GACtC/G,EAAOqV,KAAO,EACdrV,EAAO8zG,SAAW,IAElBt7G,KAAK47G,cAAcX,OAAOzzG,GAAQinG,UAAWj5D,IAC3Cx1C,KAAK87G,QAAUtmE,EAAOsmE,QACtB97G,KAAK0uG,aAAc,kDAjBZiN,GAAkC/rB,sFAAlC+rB,EAAkC/M,8NDR/Chf,wCACAA,yDADKA,6CAC4BA,4HCOpB+rB,GAAb,qDCRA/rB,kEAkEEA,mEAIMA,uCAAgE,WAAhEA,CAAgE,QACtBA,mCAAUA,yDAEpDA,sGAAiBA,gDAAuB,6EAG5CA,uCAAmG,eAC3EA,8EAASmsB,EAAT,2BAASA,aAAyEnsB,kCAASA,0EAAtEA,uGAV/CA,uCAAiF,WAAjFA,CAAiF,YAG3EA,0CAGAA,sDACFA,6BAEFA,0CAGFA,sEAToCA,qFAG8BA,mFAG1DA,+NAzEVA,uCAAmD,UAAnDA,CAAmD,UAAnDA,CAAmD,UAAnDA,CAAmD,UAAnDA,CAAmD,UAAnDA,CAAmD,aAQOA,uCAAcA,2BAC5DA,sCAAwC,WAAxCA,CAAwC,cAGlCA,oCACFA,6BAEFA,0CAAwCA,oFAAemf,EAAf,0BAAeA,sBAAqB,IAApCnf,CAA2C,uIAAnFA,iCAMNA,wCAAyB,gBACDA,8EAASosB,EAAT,0BAASA,sBAAqB,KAAuCpsB,gCAAMA,mCAQzGA,uCAA+B,YAA/BA,CAA+B,YAA/BA,CAA+B,YAOSA,2CAAiBA,6BAGrDA,wCAAuB,aAAvBA,CAAuB,WAAvBA,CAAuB,WAAvBA,CAAuB,yBAI+FA,yKAA+D,+DAAkBoqB,EAAlB,0BAAkBA,sBAAqB,KAAQpqB,6BAE9NA,uCAAkC,yBAC+EA,iKAAuD,+DAAkBqqB,EAAlB,0BAAkBA,sBAAqB,KAAQrqB,6BAEvNA,uCAAkC,yBACuEA,4JAAkD,+DAAkBof,EAAlB,0BAAkBA,sBAAqB,KAAQpf,6BAE1MA,uCAAkC,yBAC8EA,oKAA0D,+DAAkBsqB,EAAlB,0BAAkBA,sBAAqB,KAAQtqB,uCAUnOA,uDACAA,2CAcFA,uEA/D8GA,qGA6B/EA,qEAAoB,gCAApBA,CAAoB,oDAApBA,CAAoB,+DAGpBA,qEAAqB,gCAArBA,CAAqB,oDAArBA,CAAqB,uDAGrBA,iEAAiB,4BAAjBA,CAAiB,oDAAjBA,CAAiB,kDAGjBA,gEAAgB,oCAAhBA,CAAgB,oDAAhBA,CAAgB,0DAU1BA,gFACbA,kFC1DD,IAAMqsB,GAAb,MAAM,QAQJh8G,YAAmBi8G,EAAkDC,EAAkCC,GAApFp8G,qBAAkDA,WAAkCA,kBAPvGA,kBAAc,EASdiuG,WACE,IAAIoO,EAAQ,EACRr8G,KAAKo1G,YACLiH,EAAQr8G,KAAKo1G,WAAWnC,eACxBjzG,KAAKs8G,UAAY,gBAAkBt8G,KAAKo1G,WAAWmH,OAErDF,EAAQr8G,KAAKs1G,aAAa/mG,GAC1BvO,KAAKs8G,UAAY,kBAAoBt8G,KAAKs1G,aAAaiH,MAGzDv8G,KAAKm8G,IAAIK,gBAAgBH,EAAMjwH,YAAYqiH,UAAWgO,IACpDz8G,KAAKk8G,cAAc/U,WAAWsV,EAAUluG,IAAI1E,KAAK,KAC/C7J,KAAKo8G,WAAWM,gBAAgBjO,UAAWj5D,IACzCx1C,KAAK28G,WAAannE,EAClBx1C,KAAK0uG,aAAc,QAM3BkO,WACE58G,KAAK68G,aAAc,EACnB78G,KAAKk8G,cAAcU,WAAW/yG,KAAK,KACjC7J,KAAK68G,aAAc,kDAjCZZ,GAAiCrsB,8JAAjCqsB,EAAiCrN,0jDDT9Chf,sDAGAA,mDAHmBA,8CAGZA,uKCMMqsB,GAAb,yBCTArsB,qEAMUA,sFAA+DA,+JAC/DA,sFAAgEA,kNAFlEA,oCACEA,yCACAA,yCACAA,sCAAkB,UACcA,sBAAmBA,2BACjDA,qCACEA,sBACFA,mFAP6CA,+FACzCA,0EACAA,2EAE0BA,gEAE5BA,sGAMJA,sFAA+DA,+JAC/DA,sFAAgEA,sJAFlEA,oCACEA,yCACAA,yCACAA,sCAAkB,UACcA,sBAAmBA,2BACjDA,qCACEA,sBACFA,mFANIA,0EACAA,2EAE0BA,gEAE5BA,uGAnBVA,sCAA0G,WAEtGA,uCAWAA,yCAUFA,uDArBMA,oEAWEA,gGAfdA,oCAA0B,WAEtBA,yCAyBFA,uEAzB2BA,uECMtB,IAAMktB,GAAb,MAAM,QAMJ78G,YAAoB88G,EAA8Cz+C,GAA9Ct+D,uBAA8CA,YALlEA,kBAAc,EAOdiuG,WACEjuG,KAAK+8G,gBAAgBC,yCAAyCh9G,KAAKo1G,WAAW7mG,IAAIkgG,UAAWwO,IAC3Fj9G,KAAKi9G,SAAWA,EAChBj9G,KAAK0uG,aAAc,kDAXZoO,GAAiCltB,yHAAjCktB,EAAiClO,ykBDT9Chf,sDACAA,gDADmBA,8CACbA,kICQOktB,GAAb,yBCTAltB,6HAEEA,sCAAwF,UAAxFA,CAAwF,UAAxFA,CAAwF,UAAxFA,CAAwF,UAI/DA,4FAAmEA,6BAEtFA,uCAAiC,eAC+FA,mCAAUA,8EAAlHA,uJAK9BA,uCAAgG,UAAhGA,CAAgG,UAAhGA,CAAgG,UAAhGA,CAAgG,UAIvEA,gFAAuDA,6DAUtEA,sFAA6FA,+JAC7FA,sFAAkEA,gKAClEA,4DAIIA,wCAAyDA,sBAA8CA,qDAA9CA,8KAP/DA,qCACEA,0CACAA,0CACAA,0CACAA,uCAAkB,WACcA,sBAAkBA,2BAChDA,qCACEA,2CACFA,oFARsGA,8FAClGA,kGACAA,8EACAA,mGAE0BA,gEAEUA,+FAK1CA,sFAA6FA,+JAC7FA,sFAAkEA,gKAClEA,4DAIIA,wCAAyDA,sBAA8CA,qDAA9CA,8GAP/DA,uCACEA,0CACAA,0CACAA,0CACAA,uCAAkB,WACcA,sBAAkBA,2BAChDA,qCACEA,2CACFA,oFAPIA,kGACAA,8EACAA,mGAE0BA,gEAEUA,gGApBhDA,uCAA2F,YAEvFA,wCAWAA,0CAWFA,gHAtBMA,4HAWEA,0JAdZA,uCACEA,0CA0BFA,8DA1BQA,iHAxBZA,oCACEA,yCAYAA,yCASAA,sCACEA,kDA4BFA,uEAlDMA,kFAYAA,2FAU6BA,sECf9B,IAAMstB,GAAb,MAAM,QAMJj9G,YAAoBk9G,EAAqC7+C,GAArCt+D,qBAAqCA,YALzDA,kBAAc,EAOdiuG,WACEjuG,KAAKm9G,cAAcC,wBAAwBp9G,KAAKo1G,WAAW7mG,IAAIkgG,UAAWj5D,IACxEx1C,KAAKq9G,QAAU7nE,EAAO4T,OAAOjiC,GAAGA,EAAEm2F,UAClCt9G,KAAK0uG,aAAc,kDAXZwO,GAAgCttB,yHAAhCstB,EAAgCtO,8sCDT7Chf,sDACAA,gDADmBA,8CACbA,wICQOstB,GAAb,GCFaK,GAAb,MAAM,QAKJt9G,cAJAD,kBAAc,EAMdiuG,WACE,IACIuP,EADUx9G,KAAKg4C,QAAQrvD,KACJ6iE,MAAM,KACzBzI,EAAQ/iD,KAAKy9G,mBAAmB,EAAGD,EAASl1H,QAChD0X,KAAKjV,IAAMyyH,EAASz6D,GACpB/iD,KAAK0uG,aAAc,EAGrB+O,mBAAmB1zH,EAAKoY,GACtB,OAAOrY,KAAKu5C,MAAMv5C,KAAK4zH,UAAYv7G,EAAMpY,GAAOA,iDAhBvCwzH,sDAAgC3O,8MCP7Chf,sCAAmC,QAC7BA,qCAAYA,2BAChBA,iCACFA,kCADyBA,sHDKZ2tB,GAAb,8FEAM3tB,0CAA6FA,8EAAS+tB,EAAT,2BAASA,gBAAe/tB,gCAA4DA,4FAEjLA,0CAAgHA,8EAASguB,EAAT,2BAASA,YAAyBhuB,gCAA6DA,sDARnNA,sCAAyG,UAAzGA,CAAyG,aAEtDA,sBAA0CA,2BACzFA,kCACFA,2BACAA,sCACEA,6CACAA,sCAAiBA,sBAA4CA,2BAC7DA,6CACFA,uEAPiDA,sGAItCA,uEACQA,iGACRA,gIAGbA,uCAA6H,WAA7HA,CAA6H,QAErHA,gCAAgCA,2BACpCA,mCAAIA,kCAASA,2BACbA,kCAAGA,oEAA2CA,sDAGlDA,sEAMQA,mCAA2DA,sBACzDA,uCAAyDA,sBAAmCA,sFAD1FA,iDAAuDA,2EACAA,mHAWrDA,qCAAuEA,sBAAiDA,8DAAjDA,kHADzEA,wCACEA,2CACAA,qCAAMA,sBAAqBA,2BAC3BA,qCAAMA,yDAAsCA,iFAFfA,4EACvBA,sEACAA,sIAGLA,wCAAgFA,sBAAiDA,8DAAjDA,kHADnFA,wCACGA,2CAAwIA,+EAAlGA,uGAEzCA,wCAAgG,aAC/EA,sBAAqBA,2BACpCA,wCAAkBA,yDAAqCA,iFADxCA,sEACGA,qNAdxBA,uCAAwDA,iGAAS6kB,EAAT,2BAASA,sDAC/D7kB,uCAAuE,aACzCA,sBAAeA,2BAE3CA,2CAKAA,2CAGAA,2CAIFA,2BACAA,uCAAiN,YAC7KA,mFAAoGA,+BAAIA,yCAAgEA,2DAA+BA,4FAlB1JA,uDAAuC,uDAAvCA,CAAuC,uCAAvCA,CAAuC,oCAA8IA,+HAExOA,gEAE2CA,kFAKhEA,iFAGAA,iFAM2BA,sMAAwKA,gIAU9MA,wDAFFA,mCAAoC,QAC9BA,sBAAUA,2BACdA,yCACFA,oFAFMA,0DACiBA,8FAxC7BA,uCAAgJ,aAAhJA,CAAgJ,UAAhJA,CAAgJ,OAAhJA,CAAgJ,QAI9GA,6BAAIA,2BAC9BA,yCAGFA,6BAEFA,yCAA6B,YAEzBA,4CAqBFA,2BAKAA,0CAIFA,yEAtCQA,kEAC6CA,mEAO5BA,oEA0BFA,yEC9CtB,IAAMiuB,GAAb,MAAM,QAcJ59G,YAAoB69G,EAAwBC,EAA+BC,EAAsD5F,GAAgC6F,GAAkD7vG,IAA/LpO,cAAwBA,aAA+BA,wBAAsDA,qBAAgCA,4BAAkDA,YAbnNA,kBAAc,EACdA,cAAW,EAEXA,gBAAa,GAObA,cAAWmuG,GAKXF,WACEjuG,KAAK+9G,MAAMG,cAAczP,UAAW0P,IAClCn+G,KAAKo+G,WAAa,EAEdD,EAAY3zH,IAAI,SAClBwV,KAAKo+G,WAAaz6F,SAASw6F,EAAY3zH,IAAI,QAAU,GAGvDwV,KAAKq+G,iBAITC,YAAY5gG,GACV,MAAM66F,EAAWv4G,KAAKo4G,aAAajzF,KAAK2oF,KAA6B,CAAE/9F,KAAM,KAAMwuG,UAAU,EAAO/F,eAAgB,oBAAqBgG,YAAa,SAAUC,cAAe,SAAU36E,SAAU,WACnMy0E,EAASE,kBAAkBhgG,MAAQiF,EACnC66F,EAAS/iE,OAAO3rC,KACb2rC,MAEA3qD,OAKLwzH,eACEr+G,KAAK+pE,SAAU,EACf/pE,KAAKg+G,iBAAiBU,mBAAmB1+G,KAAKo1G,WAAWnC,eAAe7mH,WAAY4T,KAAKo1G,WAAW7mG,GAAIvO,KAAKo+G,YAAY3P,UAAWkQ,IAClI3+G,KAAK2+G,kBAAoBA,EACzB3+G,KAAKo7G,OAASp7G,KAAK2+G,kBAAkBvD,OAErCp7G,KAAKi+G,oBAAoBvD,sBAAsB16G,KAAKo1G,WAAW7mG,GAAGniB,YAAYqiH,UAAWkM,IACvF36G,KAAK26G,MAAQA,EAAMvxD,OAAQjiC,IAAOA,EAAEy3F,eAA2C,GAA1Bz3F,EAAEy3F,cAAct2H,QAAe6+B,EAAEy3F,cAAcC,KAAMz3F,IAAMA,IAAKpnB,KAAK2+G,kBAAkBG,UAAU9+G,KAAKo+G,cAC3Jp+G,KAAK++G,iBAAiBp3G,OAAOq3G,WAAa,IAC1CjyH,QAAQC,IAAI2a,OAAOq3G,YACnBh/G,KAAKi/G,iBAELj/G,KAAKk/G,MAAQ,EACbl/G,KAAKm/G,eACLn/G,KAAK+pE,SAAU,EACf/pE,KAAK0uG,aAAc,MAMzB0Q,SAAS3mG,GACPzY,KAAK++G,iBAAiBtmG,EAAM4mC,OAAO2/D,WAAa,IAChDh/G,KAAKm/G,eAGPJ,iBAAiBM,GACfr/G,KAAKs/G,UAAYD,EAAY,IAAMr/G,KAAK26G,MAAMryH,OAC9CyE,QAAQC,IAAIgT,KAAKs/G,UAGnBC,UACEv/G,KAAKo+G,aACLp+G,KAAKq+G,eAGPmB,cACEx/G,KAAKo+G,aACLp+G,KAAKq+G,eAGPY,iBACEj/G,KAAKy/G,WAAa,GAClB,QAAS/2F,EAAO1oB,KAAK2+G,kBAAkBe,UAAWh3F,EAAO1oB,KAAK2+G,kBAAkBgB,QAASj3F,IACvF1oB,KAAKy/G,WAAWv1H,KAAKikH,GAAO,CAAEzlF,SAAQ6lF,OAAO,WAC7CvuG,KAAKy/G,WAAWv1H,KACdikH,GAAO,CACLzlF,OACAC,OAAQ,KACP4lF,OAAO,WAKhB4Q,eACEn/G,KAAKo7G,OAAOxH,QAASn7F,IACnB,IAAImnG,EAAc5/G,KAAK26G,MAAMnxD,UAAWriC,GAAMA,EAAE5Y,IAAMkK,EAAMonG,KAAKtxG,KAC9C,GAAfqxG,IACFnnG,EAAMqnG,YAAc,GAAKF,EAAc5/G,KAAKs/G,SAC5C7mG,EAAMsnG,YAAuC,EAAzBtnG,EAAMunG,oBAI9BjzH,QAAQC,IAAIgT,KAAKo7G,sDAtGRyC,GAAkCjuB,2RAAlCiuB,EAAkCjP,oIAAlChjF,iBAAgB,q+EDZ7BgkE,yCACEA,0CAWAA,yCAOAA,sDACAA,0CA6CFA,kCAhEQA,sEAWmEA,qGAOtDA,kEACbA,2LCRKiuB,GAAb,yCCZAjuB,mEAoBqHA,qCAAqCA,2BAAEA,mDAGxBA,qCAA0CA,2BAAEA,mDAejFA,qCAA2CA,2BAAEA,mDAG5DA,qCAAiCA,2BAAEA,sDADnGA,uCACEA,wDAAkCA,kCAAGA,sBAAyBA,0CAA0CA,sBAAoBA,2BAC9HA,wFADEA,yGAAqCA,8EAAgCA,sEAAmCA,gHAF5GA,uCACEA,kDAGFA,sGAHiBA,wGALrBA,mCAA0C,YAChCA,sBAAiBA,2BACzBA,oCACEA,wDAA2CA,kCAAGA,sBAAmCA,0CAAoDA,sBAA6BA,2BAClKA,mDAKFA,uDARQA,gEAENA,mHAA8CA,+GAA0CA,uGAA6CA,yGACpGA,gGAlC3CA,sCAAsD,UAAtDA,CAAsD,SAE7CA,mDAAkFA,2BACvFA,oCAAK,OACAA,sBAAmBA,6BAExBA,oCAAKA,sBAA4BA,2BACjCA,qCAAKA,uBAAwBA,2BAC7BA,qCAAKA,2DAA2BA,6BAElCA,qCAAK,SAALA,CAAK,aAEOA,uBAAsCA,6BAEhDA,uCAAqB,eACEA,0DAA4CA,2BAAUA,mCAAGA,uBAA6BA,2CAA+CA,uBAAuBA,6BAEnLA,uCAAqB,eACEA,0DAAsDA,2BAAUA,mCAAGA,uBAAkCA,2CAAoDA,uBAA4BA,+BAG9MA,wCACEA,mCAKFA,2BACAA,qCAAK,YAEDA,0CAWFA,iGAvCKA,4JAEAA,oEAEAA,oFACAA,0FACAA,8FAIKA,sFAGaA,yIAAyDA,uGAAoCA,+FAAwCA,kGAGrIA,wJAAmEA,iHAAyCA,yGAA6CA,4GAIzJA,wEAQCA,iGA6BqFA,qCAAqCA,2BAAEA,mDAS3CA,qCAA2CA,2BAAEA,mDAG5DA,qCAAiCA,2BAAEA,sDADrHA,uCACEA,uCAASA,wDAAiCA,2BAAUA,kCAAGA,sBAAyBA,0CAA0CA,sBAAoBA,2BAChJA,wFADWA,wGAA8CA,8EAAgCA,sEAAmCA,gHAF9HA,uCACEA,kDAGFA,sGAHiBA,wGAPvBA,uCAAuD,YAC9BA,8BAAMA,2BAC7BA,uCAA4B,YAClBA,sBAAiBA,2BACzBA,oCAAK,YACMA,wDAA0CA,2BAAUA,mCAAGA,uBAAmCA,2CAAoDA,uBAA6BA,2BACpLA,mDAKFA,2BACAA,qCAAKA,uBAAuBA,yDATpBA,gEAEGA,kHAAuDA,+GAA0CA,uGAA6CA,yGACtHA,qEAM9BA,iGA/BbA,sCAAiE,UAAjEA,CAAiE,SAExDA,mDAAkFA,2BACvFA,oCAAK,OACAA,sBAAmBA,6BAExBA,oCAAKA,sBAA4BA,2BACjCA,qCAAKA,uBAAwBA,2BAC7BA,qCAAKA,2DAA2BA,6BAElCA,qCAAK,SAALA,CAAK,aAEOA,uBAAsCA,6BAEhDA,uCAAqB,eACEA,0DAA4CA,2BAAUA,mCAAGA,uBAA6BA,2CAA8CA,uBAAuBA,+BAGpLA,qCACEA,4CAkBFA,+FAnCOA,4JAEAA,oEAEAA,oFACAA,0FACAA,8FAIKA,sFAGaA,yIAAyDA,uGAAoCA,+FAAuCA,iGAIxHA,iGAmC0EA,qCAAqCA,2BAAEA,mDAKtCA,qCAA0CA,2BAAEA,mDAEpEA,qCAA6BA,2BAAEA,sDADrHA,uCAAmD,cAC5BA,wDAA6BA,2BAAUA,kCAAGA,sBAAqBA,0CAAsCA,sBAAeA,uDAApHA,gGAA0CA,8EAA4BA,sEAA+BA,mGAtBhIA,sCAAmD,UAAnDA,CAAmD,SAE1CA,mDAAkFA,2BACvFA,oCAAK,OACAA,sBAAmBA,6BAExBA,oCAAKA,sBAA4BA,2BACjCA,qCAAKA,uBAAwBA,2BAC7BA,qCAAKA,2DAA2BA,6BAElCA,qCAAK,SAALA,CAAK,aAEOA,uBAAsCA,6BAEhDA,uCAAqB,eACEA,0DAA4CA,2BAAUA,mCAAGA,uBAA6BA,2CAA8CA,uBAAuBA,+BAGpLA,mCACAA,uCAAqB,eACEA,0DAA0CA,2BAAUA,mCAAGA,uBAAkCA,2CAAmDA,uBAA4BA,2BAC7LA,2CAGFA,+FAtBOA,4JAEAA,oEAEAA,oFACAA,0FACAA,8FAIKA,sFAGaA,yIAAyDA,uGAAoCA,+FAAuCA,iGAGxJA,wEAEkBA,qIAAuDA,iHAAyCA,yGAA4CA,2GAC7IA,mGAoB4FA,qCAA0CA,2BAAEA,mDAEpEA,qCAA6BA,2BAAEA,sDADrHA,wCAAwD,cACjCA,wDAA6BA,2BAAUA,kCAAGA,sBAAqBA,0CAAsCA,sBAAeA,uDAApHA,gGAA0CA,8EAA4BA,sEAA+BA,mGAIhIA,uCAA4D,YACRA,wDAA0CA,kFAArEA,wEAA2BA,uIAOpDA,oCACEA,kCAAsC,QAEtCA,yCAAwBA,kCAASA,2BACjCA,uCAAiB,YACQA,wDAA0CA,oFAJ9DA,wEAIoBA,uIAlC7BA,sCAAgI,UAAhIA,CAAgI,SAEvHA,mDAAkFA,2BACvFA,oCAAK,OACAA,sBAAmBA,6BAExBA,oCAAKA,sBAA4BA,2BACjCA,qCAAKA,uBAAwBA,2BAC7BA,qCAAKA,2DAA2BA,6BAElCA,qCAAK,SAALA,CAAK,aAEOA,uBAAsCA,6BAEhDA,uCAAqB,eACEA,0DAA0CA,2BAAUA,mCAAGA,uBAAkCA,2CAAmDA,uBAA4BA,2BAC7LA,4CAGFA,6BAEFA,2CAQAA,0CASFA,6FApCSA,4JAEAA,oEAEAA,oFACAA,0FACAA,8FAIKA,sFAGaA,qIAAuDA,iHAAyCA,yGAA4CA,2GAC5IA,2EAKnBA,uFAQAA,kHAWRA,sCAAqO,UAArOA,CAAqO,SAE5NA,mDAAkFA,2BACvFA,oCAAK,OACAA,sCAAaA,6BAElBA,oCAAKA,sBAAwBA,6BAE/BA,qCAAK,SAALA,CAAK,aAEOA,uBAAsCA,+BAGlDA,wCAAgCA,0DAA0CA,+FAXnEA,2JAIAA,0FAIKA,sFAGPA,wEAA2BA,yIAnKpCA,uCACEA,2CA4CAA,2CAuCAA,2CA0BAA,2CAwCAA,2CAeFA,8DApKqBA,gFA4CAA,2FAuCAA,6EA0BAA,8IAwCAA,4PAvJvBA,sCACEA,kDAsKFA,qEAtKgCA,qECIzB,IAAMqwB,GAAb,MAAM,QAKJhgH,YAAoBigH,mBAJpBlgH,kBAAc,EAMdiuG,WACEjuG,KAAKkgH,SAASC,iBAAiBngH,KAAKo1G,WAAWnC,eAAe7mH,WAAY4T,KAAKo1G,WAAW7mG,IAAIkgG,UAAWj5D,IACvGx1C,KAAKo7G,OAAS5lE,EACdx1C,KAAK0uG,aAAc,kDAVZuR,GAAgCrwB,sFAAhCqwB,EAAgCrR,4mBDR7Chf,sDAEAA,qCAAsBA,gCAAOA,2BAC7BA,gDAHmBA,8CAGbA,8KCKOqwB,GAAb,6BCHQrwB,0CAAwDA,sBAAmBA,qDAA1CA,kDAAuBA,sGAIxDA,0CAA2EA,sBAA0BA,qDAAjDA,iDAAuBA,kJATnFA,uCAA0C,WAA1CA,CAA0C,WAA1CA,CAA0C,eAGGA,wIAA8B,wDAAWwwB,EAAX,0BAAWA,QAAO,KACrFxwB,0CAAyBA,yCAAgBA,2BACzCA,6CACFA,2BAEAA,0CAAuCA,4IAAkC,wDAAWosB,EAAX,0BAAWA,QAAO,KACzFpsB,8EACFA,6EAPuCA,8EAC7BA,gEACgBA,kEAGaA,kFACZA,8HAmB/BA,uCACEA,yCACFA,iFAHFA,uCACEA,0CAGFA,2CAHwBA,wIAIxBA,uCACEA,uCACEA,6CACFA,2BACFA,4FAFoBA,yEAAuB,mCAG3CA,uCAAmH,WAAnHA,CAAmH,QAE3GA,gCAAgCA,2BACpCA,mCAAIA,mCAAUA,2BACdA,kCAAGA,iEAAwCA,4IAG/CA,+CAAiIA,sFAAgBqqB,EAAhB,0BAAgBA,cAA8DrqB,uEAA9JA,0CAAiB,iCAAjBA,CAAiB,6BAAjBA,CAAiB,yDCnC3D,IAAMywB,GAAb,MAAM,QAiBJpgH,YAAoBo4G,qBAhBpBr4G,kBAAc,EAKdA,kBAAeo6G,MACfp6G,iBAAcq6G,uBAIdr6G,iBAAc,EACdA,cAAW,GACXA,iBAAc,EACdA,gBAAY,EAKZiuG,WACEjuG,KAAKs6G,aAAe,IAAIC,MACxBv6G,KAAKs6G,aAAaE,kBAAoB,KACtCx6G,KAAKs6G,aAAa/J,QAAU6J,gBAC5Bp6G,KAAKs6G,aAAaG,OAAS,KAC3Bz6G,KAAKs6G,aAAaptE,IAAM,KAExB,IAAImvE,EAAQ,EACRr8G,KAAKo1G,YACPiH,EAAQr8G,KAAKo1G,WAAWnC,eACxBjzG,KAAKs8G,UAAY,gBAAkBt8G,KAAKo1G,WAAWmH,OAEnDF,EAAQr8G,KAAKs1G,aAAa/mG,GAC1BvO,KAAKs8G,UAAY,kBAAoBt8G,KAAKs1G,aAAaiH,MAEzDv8G,KAAKq4G,WAAWiI,uBAAuBjE,EAAMjwH,YAAYqiH,UAAWoM,IAGlE,GAFA76G,KAAK66G,KAAOA,EAER76G,KAAKg4C,QAAQrvD,KACf,IACE,IAAIA,EAAOsmC,KAAKiuC,MAAMl9D,KAAKg4C,QAAQrvD,MACnCoE,QAAQC,IAAIrE,GAAMukD,KAClBltC,KAAKs6G,aAAaQ,YAAcnyH,GAAMmyH,YACtC96G,KAAKs6G,aAAaS,aAAepyH,GAAMoyH,aACvC/6G,KAAKs6G,aAAaptE,IAAMvkD,GAAMukD,KAE1BltC,KAAKs6G,aAAaQ,aAAe96G,KAAKs6G,aAAaS,cAAgB/6G,KAAKs6G,aAAaptE,OACvFltC,KAAKg7G,YAAa,SAGpBjuH,QAAQC,IAAI,SACZgT,KAAKs6G,aAAaQ,YAAc,UAGlC96G,KAAKs6G,aAAaQ,YAAc,KAGlC96G,KAAKi7G,QAAO,GAEZj7G,KAAK0uG,aAAc,IAIvBuM,OAAOC,GACLl7G,KAAKm7G,WAAY,EACbD,IACFl7G,KAAKmjF,YAAc,GAErBnjF,KAAKo7G,OAAS,GAEdp7G,KAAKq4G,WAAWkI,4BAA4BvgH,KAAKs1G,aAAa/mG,GAAGniB,WAAY4T,KAAKmjF,YAAanjF,KAAKs7G,UAAU,EAAMt7G,KAAKs6G,cAAc7L,UAAW8M,IAChJv7G,KAAKmjF,YAAco4B,EAAYp4B,YAC/BnjF,KAAKs7G,SAAWC,EAAYD,SAC5Bt7G,KAAKw7G,YAAcD,EAAYE,SAC/Bz7G,KAAKo7G,OAASG,EAAYt7F,QAE1BjgB,KAAK0uG,aAAc,EACnB1uG,KAAKm7G,WAAY,IAIrBO,SAASjjG,GAKPzY,KAAKmjF,YAAc1qE,EAAMoE,KACzB7c,KAAKs7G,SAAW7iG,EAAMi5B,KACtB1xC,KAAKi7G,QAAO,iDAvFHoF,GAAiCzwB,sFAAjCywB,EAAiCzR,msCDT9Chf,0CAgBAA,sCAAiB,UAAjBA,CAAiB,UAAjBA,CAAiB,aAGyFA,uDAAehkE,UAAO,IAAtBgkE,CAA4B,mEAAhIA,2BACAA,sCAAgC,cACuBA,2EAAmC,GAAIhkE,UAAO,KAAOgkE,8BAAKA,2BAC/GA,yCAAwDA,iDAAShkE,UAAO,KAAOgkE,+BAAMA,mCAK7FA,mDAKAA,mDAKAA,2CAOAA,0DA5CMA,6CAmBiIA,qFAQxHA,oEAKiBA,oEAKiCA,mGAOnDA,0MCnCDywB,GAAb,yDCDUzwB,wCAAoFA,sBAAyCA,+EAAzCA,wHACpFA,wCAAqHA,sBAAyCA,+EAAzCA,qHACrHA,wCAAmFA,iCAAQA,6GAiB7FA,uCACEA,qCAAqJA,qCAAYA,2BACnKA,wFADmBA,6HAEnBA,0CAA8IA,iCAAQA,sFA5B5JA,sCAAsH,UAAtHA,CAAsH,WAIhHA,iCACAA,sCACEA,0CACAA,2CACAA,2CACFA,6BAGFA,uCAAsC,WAAtCA,CAAsC,WAAtCA,CAAsC,WAIsBA,uBAAmBA,6BAE3EA,wCAAiC,cACEA,yDAA0DA,iCAKjGA,wCACEA,oDAGAA,8CACFA,wFA1BKA,sGACuBA,yKAAwFA,gGAEzGA,+EACAA,sGACAA,+EAQqBA,sGAA4BA,gEAGrBA,4HAMtBA,8EAGNA,0GA7BjBA,sCACEA,2CAmCFA,qEAnC2BA,iGA0DXA,wCAAoFA,sBAAyCA,+EAAzCA,wHACpFA,wCAAqHA,sBAAyCA,+EAAzCA,qHACrHA,wCAAmFA,iCAAQA,sDAG3FA,uCACEA,qCAAyGA,qCAAYA,2BACvHA,wFADmBA,6HAEnBA,0CAA0GA,iCAAQA,sDA5BhIA,uCACEA,uCAAkB,WAAlBA,CAAkB,UAAlBA,CAAkB,cAAlBA,CAAkB,YAAlBA,CAAkB,YAAlBA,CAAkB,aAOJA,gCACAA,wCAAyB,cACGA,uBAAmBA,iCAKnDA,oCAGAA,yCAAgC,cACIA,yDAA8BA,2BAChEA,2CACAA,4CACAA,4CACFA,2BACAA,yCACEA,oDAGAA,8CAGFA,qCAMZA,wEAnC2CA,wFAEgEA,6EAAqC,8BAMpGA,gEASIA,+FAC3BA,+EACAA,sGACAA,+EAGQA,8EAGNA,0GA7BzBA,uCACEA,qDAwCFA,qEAxCoCA,uEC1B7B,IAAM4wB,GAAb,MAAM,QAQJvgH,YAAoBwgH,EAAwD3C,EAAwB4C,EAAsClR,GAAiCuO,GAA+B3F,IAAtLp4G,8BAAwDA,cAAwBA,YAAsCA,gBAAiCA,cAA+BA,qBAP1MA,kBAAc,EASdiuG,WACE,IACAjuG,KAAK2gH,mBAAqB1xF,KAAKiuC,MAAMl9D,KAAKg4C,QAAQrvD,YAEhDqX,KAAK2gH,mBAAqB,IAAIC,MAGhC5gH,KAAKygH,uBAAuBI,yBAAyB7gH,KAAKo1G,WAAW7mG,GAAGniB,YAAYqiH,UAAWqS,IAC7F,IAAIjG,EAAO7K,SAAgBhwG,KAAK2gH,mBAAmBI,cAGjD/gH,KAAK8gH,SADHjG,EAAKmG,MACSF,EAAS13D,OAAQ3nD,GAAMo5G,EAAKmG,IAAKp9G,IAAMnC,EAAEo5G,KAAKv3F,SAAS1f,MAAQ5D,KAAK2gH,mBAAmBM,eAAkC,GAAjBx/G,EAAEo5G,KAAKvyH,QAE/Gw4H,EAElB9gH,KAAK0uG,aAAc,kDAzBZ8R,GAA8B5wB,2QAA9B4wB,EAA8B5R,grEDb3Chf,yCAsCAA,gDAtCsCA,iHAsCMA,yLCzB/B4wB,GAAb,kBCPO,IAAMU,GAAb,MAAM,QAKJjhH,cAJAD,kBAAc,EAMdiuG,WACEjuG,KAAKmhH,OAASnhH,KAAKg4C,QAAQrvD,KAE3BqX,KAAK0uG,aAAc,gDAVVwS,sDAA4BtS,6NCPzChf,6CAAYA,uCAAc,iBAAdA,CAAc,0DDObsxB,GAAb,yCEPAtxB,sEAGEA,sCACEA,iDACFA,qDADuBA,2FAFzBA,sCACEA,yCAGFA,qEAHwBA,0ECKjB,IAAMwxB,GAAb,MAAM,QAOJnhH,YAAoBo4G,qBANpBr4G,kBAAc,EAQdiuG,WACElhH,QAAQC,IAAI,QACZgT,KAAKq4G,WAAWgJ,wBAAwBrhH,KAAKs1G,aAAa/mG,GAAGniB,YAAYqiH,UAAW6S,IAClFthH,KAAKshH,YAAcA,EAAYl4D,OAAQjiC,GAAMA,EAAEo6F,WAC/CvhH,KAAK0uG,aAAc,kDAbZ0S,GAAuBxxB,sFAAvBwxB,EAAuBxS,2TDRpChf,sDAEAA,gDAFmBA,8CAEbA,iICMOwxB,GAAb,0GCJMxxB,qCAAgE,SAC2CA,iGAAS4xB,EAAT,2BAASA,qBAA0B5xB,sBAAcA,wFAA/HA,iHAAiHA,qFAFhJA,qCACEA,wCAGFA,sEAH2BA,0GAmBbA,wCAAkGA,sBAA8BA,gFAA9BA,6GAClGA,wCACG,OAAGA,yDAAqCA,kFAArCA,iIAENA,wCAAyEA,gCAAOA,sDAIfA,qCAAoCA,uDAA0FA,gFAA1FA,0NAtBjHA,sCAA8F,WAA9FA,CAA8F,UAA9FA,CAA8F,cAA9FA,CAA8F,YAA9FA,CAA8F,YAA9FA,CAA8F,aAOhFA,gCACAA,wCAAyB,aACGA,uBAAkBA,iCAIlDA,yCACEA,4CACAA,4CAGAA,4CACFA,2BACAA,yCAAgC,cAE3BA,yDAA8DA,2CAAqIA,6BAGxMA,yCAAkC,gBAC0BA,4HAASqqB,EAAT,2BAASA,qBAA0BrqB,6BAAGA,2GAzBnEA,wFAEgEA,6EAAqC,8BAMpGA,+DAKvBA,iFACAA,kFAGAA,iEAIJA,8HAAqEA,mGAvBtFA,uCACEA,2CAiCFA,6FAjCQA,+IATZA,uCACEA,sCAEEA,wCAKAA,kDAyCFA,2BACFA,8EA/CSA,qFAK6BA,uECI/B,IAAM6xB,GAAb,MAAM,QAWJxhH,YAAoBm4G,EAAgC1C,EAA2BrG,EAA0C/wC,GAAqC+5C,IAA1Ir4G,oBAAgCA,YAA2BA,kBAA0CA,aAAqCA,mBAV9JA,kBAAc,EAKdA,oBAAiB,GAOjBiuG,WACEjuG,KAAKmmB,YAKPA,YACEnmB,KAAKqvG,WAAWqS,uCAAuC1hH,KAAKs1G,aAAa/mG,GAAGniB,YAAYqiH,UAAWkK,IACjG34G,KAAK24G,SAAWA,EAChB34G,KAAK64G,kBAAoB74G,KAAK24G,SAC3BvvD,OAAQjiC,IAAOA,EAAEyxF,mBACjBlrH,IAAK+T,GAAMA,EAAEq3G,UACb1vD,OAAO,CAACrjE,EAAOg9D,EAAOtM,KAASA,GAAK39B,QAAQ/yB,KAAWg9D,GAC1D/iD,KAAKi5G,eAAiBj5G,KAAK64G,kBAAkB,KAKjD7G,gBAAgBnC,GACV7vG,KAAKs+D,KAAK86C,aACZp5G,KAAKq5G,kBAAkBxJ,GAEvB7vG,KAAKs5G,eAAezJ,GAIxByJ,eAAezJ,GACI7vG,KAAKo4G,aAAajzF,KAAKo0F,KAA4B,CAAExpG,KAAM,KAAMyoG,eAAgB,oBAAqB10E,SAAU,WACxH0R,OAAO3rC,KACb2rC,IACCx1C,KAAKs+D,KAAKk7C,mBAAmB/K,UAAWj5D,KACtCx1C,KAAKq5G,kBAAkBxJ,MAG1BhlH,OAKL4uH,eAAeX,GACb94G,KAAKi5G,eAAiBH,EAGxBO,kBAAkBxJ,GAChB,MAAM0I,EAAWv4G,KAAKo4G,aAAajzF,KAAK6vF,GAA+B,CAAEjlG,KAAM,KAAMyoG,eAAgB,oBAAqB10E,SAAU,WACpIy0E,EAASE,kBAAkB7I,UAAYC,EAAKthG,GAC5CgqG,EAASE,kBAAkBnD,aAAet1G,KAAKs1G,aAC/CiD,EAAS/iE,OAAO3rC,KACb2rC,IACCzoD,QAAQC,IAAI,iBAEZgT,KAAKmmB,aAENt7B,qDAlEM42H,GAA4B7xB,qOAA5B6xB,EAA4B7S,8sCDZzChf,uDAAeA,sJCYF6xB,GAAb,4BCZA7xB,kGAAwHA,4CAAmB,qDAC3IA,iGAA0HA,4CAAmB,qDAC7IA,qGAA8HA,4CAAmB,qDACjJA,qGAA8HA,4CAAmB,0BAAnBA,CAAmB,yDACjJA,mGAA8HA,4CAAmB,qDACjJA,uGAAiIA,4CAAmB,qDACpJA,sGAA+HA,4CAAmB,0BAAnBA,CAAmB,yDAClJA,qGAA8HA,4CAAmB,qDACjJA,oGAA4HA,4CAAmB,qDAC/IA,oGAAwHA,4CAAmB,qDAC3IA,sGAAyHA,4CAAmB,qDAC5IA,oGAA4HA,4CAAmB,qDAC/IA,qGAAwIA,4CAAmB,0BAAnBA,CAAmB,yDAC3JA,kGAA2HA,4CAAmB,qDAC9IA,gGAAqHA,4CAAmB,qDACxIA,0FAAuHA,4CAAmB,0BAAnBA,CAAmB,yDAC1IA,+FAAwHA,4CAAmB,gCCRpI,IAAM+xB,GAAb,MAAM,QASJ1hH,cARAD,kBAAc,EAMdA,qBAAkB4hH,MAIlB3T,WACEjuG,KAAK0uG,aAAc,EAGrBmT,cACE90H,QAAQC,IAAI,mEAhBH20H,sDAAoB/S,sYDRjChf,iEACAA,gEACAA,oEACAA,oEACAA,kEACAA,sEACAA,qEACAA,oEACAA,mEACAA,mEACAA,sEACAA,oEACAA,qEACAA,kEACAA,gEACAA,0DACAA,sEAhB8BA,sHACDA,kJACIA,kJACAA,kJACFA,oJACIA,mJACDA,kJACDA,kJACDA,iJACAA,6IACEA,4IACFA,iJACCA,4JACHA,kJACDA,6IACNA,qJACKA,2OCRf+xB,GAAb,mIC2EO,IAAMG,EAAb,MAAM,sDAAOA,0GA9BF,CACPC,IACAC,KACAC,KACAC,KACAC,IACAC,SAwBSN,GAAb,sRC6DA,WAAgBn0H,EAAK+R,EAAM3Z,GACvB4H,EAAI+R,GAAQ3Z,EAEhB,aACI,cAAc4hB,OAAW,IAMxB06G,KACDvrG,EAAOwrG,gBAAO,YAAaA,wBAE/B,IAAIC,EAAc,MACjB,OAAUA,EAIRA,IAAmBA,EAAiB,KAHpBA,EAAeC,SAAc,GAAK,WACjDD,EAAeA,EAAeE,QAAa,GAAK,UAChDF,EAAeA,EAAeG,SAAc,GAAK,WAJjDH,EACH,IAAUA,GADO,OAMZI,QAAN,QACI1iH,YAAY+3C,EAAS4qE,GAkCjB,GAjCA5iH,KAAKg4C,QAAUA,EACfh4C,KAAK4iH,OAASA,EACd5iH,KAAKotC,WAAY,EACjBptC,KAAK6iH,iBAAmBP,iBAAU,IAC3B,gCAA+BA,mBAChC,KACNtiH,KAAK8iH,2BAA6BR,iBAAU,IACrC,gCAA+BA,wBAChC,KACNtiH,KAAK+iH,aAAc,EACnB/iH,KAAKgjH,gBAAkBT,EAAeE,QACtCziH,KAAKijH,cAAe,EACpBjjH,KAAKkjH,eAAgB,EACrBljH,KAAKmjH,MAAQ,EACbnjH,KAAKojH,MAAQ,EACbpjH,KAAKqjH,WAAa,aAClBrjH,KAAKsjH,UAAY,EACjBtjH,KAAKujH,UAAW,EAChBvjH,KAAKwjH,gBAAiB,EACtBxjH,KAAKyjH,YAAa,EAClBzjH,KAAK0jH,oBAAsB,QAC3B1jH,KAAK2jH,cAAe,EACpB3jH,KAAK4jH,cAAgB,KACrB5jH,KAAK6jH,kBAAoB,KACzB7jH,KAAK8jH,eAAgB,EACrB9jH,KAAK+jH,SAAW,IAAIC,MACpBhkH,KAAKikH,kBAAoB,IAAIC,eAC7BlkH,KAAKmkH,aAAe,IAAID,eACxBlkH,KAAKokH,gBAAkB,IAAIF,eAC3BlkH,KAAKqkH,kBAAoB,IAAIH,eAC7BlkH,KAAKgiE,QAAU,IAAIkiD,eACnBlkH,KAAK0L,WAAa,IAAIw4G,eACtBlkH,KAAKskH,WAAa,IAAIJ,gBAAa,GAC/B7B,IACA,OAEJ,IAAIkC,EAIAA,EAHA58G,OAAOqV,eAAe,iBACS,iBAAxBrV,OAAO48G,cACd58G,OAAO48G,aACQ58G,OAAO48G,aAGN,2CAA0CjC,2CAE9DxrG,EAAOwrG,sBAA2B,YAAaiC,GAE/CC,aAASA,GACTxkH,KAAK6iH,UAAY2B,EAEjB3nG,SAAKsmG,GAEL,MAAMsB,EADNtB,EAAQx/F,SAASw/F,EAAO,KAAO,EAE3BnjH,KAAK0kH,OACLvB,EAAQnjH,KAAK2kH,mBAAmBxB,IAEpCnjH,KAAKmjH,MAAQA,EACTsB,IAAiBtB,GACjBnjH,KAAKskH,WAAWM,KAAKzB,GAGzB0B,eAAWA,GACX7kH,KAAK+iH,YAAc8B,EAEnBC,mBAAeA,GACf9kH,KAAKgjH,gBAAkB8B,EAEvBC,iBAAaA,GACb/kH,KAAKkjH,cAAgB6B,EAErBC,YAAQj/H,GACRia,KAAKujH,SAAWx9H,EAEhBk/H,gBAAYl/H,GACZia,KAAKijH,aAAel9H,EAEpB+oF,SAAK/oF,GACDA,GAAS,IAGbia,KAAKojH,MAAQr9H,GAEb+oF,WACA,OAAO9uE,KAAKojH,MAEZ8B,cAAUn/H,GACVia,KAAKqjH,WAAat9H,EAElBm/H,gBACA,OAAOllH,KAAKqjH,WAEZ3xG,aAAS3rB,GACc,iBAAVA,GAAsBA,EAAQ,IAAO,EAIlDia,KAAKsjH,UAAYv9H,EAHbgH,QAAQ8B,KAAK,iCAKjBq9E,uBAAmBnmF,GACnBia,KAAK0jH,oBAAsB39H,EAE3Bo/H,eAAWp/H,GACXia,KAAKwjH,eAAiB4B,QAAQr/H,GAE9Bs/H,cAAUt/H,GACVia,KAAKyjH,WAAa2B,QAAQr/H,GAE1Bu/H,gBAAYv/H,GACZia,KAAK2jH,aAAeyB,QAAQr/H,wBAEX+e,GACjB,OAAQA,OACC,QACD,OAAOygH,uBACN,OACD,OAAOA,sBACN,OACD,OAAOA,sBACN,SACD,OAAOA,wBACN,MACD,OAAOA,iBAEf,OAAO,KAEXC,qBACI,GAAIxlH,KAAK8jH,cACL,OAEJ,MAAMr4F,EAASzrB,KAAKylH,mBAAmBC,cAAc7wC,cAC9B,IAAnB70E,KAAKotC,WAAgC,MAAV3hB,GAIR,IAAnBzrB,KAAKotC,WAAiC,MAAV3hB,IAC5BzrB,KAAKotC,WAAY,EACjBl1B,WAAW,KACPlY,KAAKmnG,aACLnnG,KAAK2lH,YAAY,CAAEv+G,IAAKpH,KAAKoH,SAPjCpH,KAAKotC,WAAY,EAWzB6gE,WACIjuG,KAAKmnG,aACLnnG,KAAK4lH,sBAET/D,cACI7hH,KAAKwX,QACLxX,KAAK+jH,SAASvmC,OACdx9E,KAAK4P,YAAc,KAEvB+1G,YAAYE,GACR,IAAIxD,KAAYriH,KAAKotC,UAGrB,GAAI,QAASy4E,EACT7lH,KAAK8lH,kBAEA9lH,KAAK0kH,KAAM,CAWhB,GAVA,eAAoBmB,GAChB7lH,KAAKwsE,UAAUyR,cAAgBj+E,KAAK+iH,YAC9B/iH,KAAKgjH,gBACLT,EAAeC,SACrBxiH,KAAK+lH,oBAEA,YAAaF,IAClB7lH,KAAKgmH,cACLhmH,KAAK+lH,oBAEL,SAAUF,EAAS,CACnB,MAAQhpG,QAASgpG,EACjB,GAAIhpG,EAAKopG,eAAiBjmH,KAAKkmH,oBAC3B,OAIJlmH,KAAKwsE,UAAUc,mBAAmB,CAAEp/D,WAAYlO,KAAKmjH,QAEzDnjH,KAAKgvB,UAGbm3F,cACI7tE,OAAKt4C,KAAK0kH,KAAKz2G,QAAQjO,KAAKwsE,UAAUM,oBACjCs5C,MAAKC,OAAUrmH,KAAK+jH,WACpBtV,UAAU,CACXjxB,KAAO3gE,IACH,MAAMnL,EAAW1R,KAAKsjH,WAAazmG,EAAKxL,OAClCi1G,EAAgBzpG,EAAKrL,YAAY,CACnCC,MAAOzR,KAAKojH,MACZ1xG,aACD8N,MAAQmjG,EAAmB4D,UAC9B,IAAI90G,EAAQzR,KAAKojH,MACb6B,GAAc,EAElB,IAAKjlH,KAAKkjH,eACLljH,KAAKyjH,YACF6C,EAAgBtmH,KAAKylH,mBAAmBC,cAAcrzC,YAAc,CACxE,MAAMm0C,EAAW3pG,EAAKrL,YAAY,CAAEC,MAAO,EAAGC,aAC9CD,EAAQzR,KAAKymH,SAASD,EAAShnG,MAAOgnG,EAAS/mG,QAC/CwlG,GAAejlH,KAAKijH,aAExBjjH,KAAKwsE,UAAU0T,UAAUzuE,EAAOwzG,MAI5CztG,QACQxX,KAAK4P,cAAgB5P,KAAK4P,YAAY9F,WACtC9J,KAAK4P,YAAYhE,UAEjB5L,KAAK0kH,OACL1kH,KAAKkmH,oBAAsB,EAC3BlmH,KAAK0kH,KAAK94G,UACV5L,KAAK0kH,KAAO,KACZ1kH,KAAKwsE,UAAUE,YAAY,MAC3B1sE,KAAK0mH,eAAeh6C,YAAY,KAAM,MACtC1sE,KAAK2mH,kBAAkBj6C,YAAY,OAG3Ck6C,0BACI,MAAMC,EAAalE,EAAmBmE,cAAc9mH,KAAK0jH,qBACzD,OAAImD,EACO,CAAE36C,mBAAoB26C,GAE1B,GAEXE,eACI/mH,KAAKwjD,SAhYb,WAAwBwjE,EAAajD,GACjC,MAAMkD,EAAiB,IAAID,EAAYz1B,SACvC21B,OAGJ,WAAmC1jE,EAAUugE,IACzCoD,OAAU3jE,EAAU,gBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,KACX,MAAMh2F,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,gBAAgB,GAAM,EAAM,IAClD1/G,OAAO08C,cAAc5rC,MAEzB0uG,OAAU3jE,EAAU,gBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGvgG,aAAY6yE,eAAcz5E,aACxC,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,gBAAgB,GAAM,EAAM,CAC9Cn5G,aACA6yE,iBAEJz5E,EAAO+kB,IAAIg4B,cAAc5rC,MAE7B0uG,OAAU3jE,EAAU,qBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGvgG,aAAY5G,aAC1B,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,qBAAqB,GAAM,EAAM,CAAEn5G,eACzD5G,EAAOq/D,aAAatiB,cAAc5rC,MAEtC0uG,OAAU3jE,EAAU,gBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGvgG,aAAY5G,aAC1B,MAAMmR,EAAQvP,SAASk+G,YAAY,YACnC3uG,EAAM6uG,UAAU,gBAAgB,GAAM,GAEtC7uG,EAAMvK,WAAgBA,EACtB5G,EAAO22C,UAAUoG,cAAc5rC,MAEnC0uG,OAAU3jE,EAAU,aACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGnnG,aACd,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,aAAa,GAAM,EAAM,MAC/C//G,EAAO22C,UAAUoG,cAAc5rC,MAEnC0uG,OAAU3jE,EAAU,eACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAG5hC,aAAYvlE,aAC1B,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,eAAe,GAAM,EAAM,CAAEx6C,eACnDvlE,EAAO22C,UAAUoG,cAAc5rC,MAEnC0uG,OAAU3jE,EAAU,eACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGh9F,QAAOsxE,cAAaz7E,aAClC,MAAMmR,EAAQvP,SAASk+G,YAAY,YACnC3uG,EAAM6uG,UAAU,eAAe,GAAM,GAErC7uG,EAAMhH,MAAWA,EAEjBgH,EAAMsqE,YAAiBA,EACvBz7E,EAAO22C,UAAUoG,cAAc5rC,MAEnC0uG,OAAU3jE,EAAU,kBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAG7mG,WAAUN,aACxB,MAAMmR,EAAQvP,SAASk+G,YAAY,YACnC3uG,EAAM6uG,UAAU,kBAAkB,GAAM,GACxC7uG,EAAM7Q,SAAcA,EACpBN,EAAO22C,UAAUoG,cAAc5rC,MAEnC0uG,OAAU3jE,EAAU,QACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGnnG,SAAQxC,OAAM+d,QAAO4qD,eAAcu2B,gBAAelU,eAAc2U,mBAC9E,GAAIn9F,IAAWK,OACX,OAEJ,MAAM8Q,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,OAASviH,GAAM,GAAM,EAAM,CAC7C+d,QACA4qD,eACAu2B,gBACAlU,eACA2U,iBAEJ98F,OAAO08C,cAAc5rC,MAEzB0uG,OAAU3jE,EAAU,qBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAG8Y,mBAAkBjgH,aAChC,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,qBAAqB,GAAM,EAAM,CACnDE,qBAEJjgH,EAAO22C,UAAUoG,cAAc5rC,MAEnC0uG,OAAU3jE,EAAU,sBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGl9F,OAAMjK,aACpB,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,sBAAsB,GAAM,EAAM,CAAE91G,SAC1DjK,EAAOkgH,eAAenjE,cAAc5rC,MAExC0uG,OAAU3jE,EAAU,YACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGpoE,OAAM/+B,aACpB,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,YAAY,GAAM,EAAM,CAAEhhF,SAChD/+B,EAAOklE,UAAUvuB,UAAUoG,cAAc5rC,MAE7C0uG,OAAU3jE,EAAU,eACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGp5D,SAAQ/tC,aACtB,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,eAAe,GAAM,EAAM,CAAEhyE,WACnD/tC,EAAOklE,UAAUvuB,UAAUoG,cAAc5rC,MAE7C0uG,OAAU3jE,EAAU,2BACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGgZ,SAAQC,uBACtB,MAAMjvG,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,2BAA2B,GAAM,EAAM,CACzDI,SACAC,qBAEJ//G,OAAO08C,cAAc5rC,MAEzB0uG,OAAU3jE,EAAU,iBACf4iE,MAAKC,OAAUtC,IACftV,UAAU,EAAGkZ,eAAcrgH,aAC5B,MAAMmR,EAAQvP,SAASk+G,YAAY,eACnC3uG,EAAM4uG,gBAAgB,iBAAiB,GAAM,EAAM,CAAEM,iBACrDrgH,EAAO22C,UAAUoG,cAAc5rC,KAnInCyuG,CAA0BD,EAAgBlD,GACnCkD,EA6XaW,CAAerC,gBAAavlH,KAAK+jH,WACjDoD,OAAUnnH,KAAKwjD,SAAU,gBACpB4iE,MAAKC,OAAUrmH,KAAK+jH,WACpBtV,UAAWh2F,IACZzY,KAAKmkH,aAAaS,KAAKnsG,MAE3B0uG,OAAUnnH,KAAKwjD,SAAU,aACpB4iE,MAAKC,OAAUrmH,KAAK+jH,WACpBtV,UAAWh2F,IACZzY,KAAKokH,gBAAgBQ,KAAKnsG,MAE9B0uG,OAAUnnH,KAAKwjD,SAAU,gBACpB4iE,MAAKC,OAAUrmH,KAAK+jH,WACpBtV,UAAU,EAAGvgG,iBACVlO,KAAK6jH,mBACL/vG,aAAa9T,KAAK6jH,mBAEtB7jH,KAAK6jH,kBAAoBl8G,OAAOuQ,WAAW,KACvClY,KAAKkmH,oBAAsBh4G,EAC3BlO,KAAKskH,WAAWM,KAAK12G,IACtB,QAEPi5G,OAAUnnH,KAAKwjD,SAAU,qBACpB4iE,MAAKC,OAAUrmH,KAAK+jH,WACpBtV,UAAWh2F,IACZzY,KAAKqkH,kBAAkBO,KAAKnsG,KAGpCovG,kBACI7nH,KAAK0mH,eAAiB,IAAInB,iBAA2B,CACjD/hE,SAAUxjD,KAAKwjD,YACZxjD,KAAK4mH,4BAEZ5mH,KAAK2mH,kBAAoB,IAAIpB,oBAA8B,CACvD/hE,SAAUxjD,KAAKwjD,SACfjG,YAAav9C,KAAK0mH,iBAG1BoB,gBACI,MAAO,CACHtkE,SAAUxjD,KAAKwjD,SACfvF,UAAWj+C,KAAKg4C,QAAQ0tE,cAAcn4D,cAAc,OACpDywB,mBAAoBh+E,KAAK2jH,aACzBpmE,YAAav9C,KAAK0mH,eAClBzoC,cAAej+E,KAAK+iH,YACd/iH,KAAKgjH,gBACLT,EAAeC,SACrB3kC,eAAgB79E,KAAK2mH,kBACrBxoC,SAAU,SACVjY,UAAM38E,EACNk0D,mBAAoBz9C,KAAK8iH,qBAGjCkD,cACIlvG,EAAOwrG,gBAAO,oBAAqBtiH,KAAK+iH,aACxC/iH,KAAK6nH,kBAED7nH,KAAKwsE,UADTxsE,KAASujH,SACY,IAAIgC,YAAsBvlH,KAAK8nH,iBAG/B,IAAIvC,sBAAgCvlH,KAAK8nH,iBAE9D9nH,KAAK0mH,eAAe/5C,UAAU3sE,KAAKwsE,WACnCxsE,KAAKwsE,UAAUiT,mBAAqBz/E,KAAKmjH,MAE7CwB,mBAAmB9nG,GACf,OAAIA,EAAO,EACA,EAEPA,EAAO7c,KAAK0kH,KAAK72G,SACV7N,KAAK0kH,KAAK72G,SAEdgP,EAEXkrG,oBACI,MAAMC,SAAiBhoH,KAAKoH,IAC5B,IAAKpH,KAAK6iH,UACN,OAAO7iH,KAAKoH,IAEhB,MAAMI,EAAS,CACXmB,QAAS3I,KAAK6iH,UACd3mG,YAAY,EACZ5T,WAAW,GAEf,MAAgB,WAAZ0/G,EACAxgH,EAAOzc,IAAMiV,KAAKoH,IAED,WAAZ4gH,SACuBz+H,IAAxByW,KAAKoH,IAAIre,WACTye,EAAO7e,KAAOqX,KAAKoH,IAGnBvhB,OAAOixB,OAAOtP,EAAQxH,KAAKoH,MAG5BI,EAEXs+G,UACI,IAAK9lH,KAAKoH,IACN,OAEJ,GAAIpH,KAAKioH,aAAejoH,KAAKoH,IAEzB,YADApH,KAAKgvB,SAGThvB,KAAKwX,QACLxX,KAAKgmH,cACLhmH,KAAK4P,YAAc0yG,cAAkBtiH,KAAK+nH,qBAC1C/nH,KAAK4P,YAAYlE,WAAcw8G,IAC3BloH,KAAK0L,WAAWk5G,KAAKsD,IAEzB,MAAM9gH,EAAMpH,KAAKoH,KACjBkxC,OAAKt4C,KAAK4P,YAAYnlB,SACjB27H,MAAKC,OAAUrmH,KAAK+jH,WACpBtV,UAAU,CACXjxB,KAAO2qC,IACHnoH,KAAK0kH,KAAOyD,EACZnoH,KAAKioH,WAAa7gH,EAClBpH,KAAKikH,kBAAkBW,KAAKuD,GAC5BnoH,KAAK+lH,mBACL/lH,KAAKgvB,UAETxa,MAAQA,IACJxU,KAAKioH,WAAa,KAClBjoH,KAAKgiE,QAAQ4iD,KAAKpwG,MAI9Bwa,SACIhvB,KAAK6c,KAAO7c,KAAKmjH,MACjBnjH,KAAK8S,SAETA,SACI9S,KAAKmjH,MAAQnjH,KAAK2kH,mBAAmB3kH,KAAKmjH,QACnB,IAAnBnjH,KAAKsjH,WACLtjH,KAAKwsE,UAAUO,gBAAkB/sE,KAAKsjH,YACtCprG,WAAW,KACPlY,KAAKwsE,UAAUO,cAAgB/sE,KAAKsjH,YAGxCtjH,KAAKijH,cACL/qG,WAAW,KACPlY,KAAKwsE,UAAUM,kBAAoB9sE,KAAKmjH,QAGhDnjH,KAAKmmH,aAETM,SAASH,EAAe8B,GACpB,MAAMC,EAAaroH,KAAK2jH,aAAe,EAAIhB,EAAmB2F,aAAe,EACvEC,EAAoBvoH,KAAKylH,mBAAmBC,cAAcrzC,YAAcg2C,EACxEG,EAAqBxoH,KAAKylH,mBAAmBC,cAActzC,aAAei2C,EAChF,GAA2B,IAAvBG,GACmB,IAAnBJ,GACsB,IAAtBG,GACkB,IAAlBjC,EACA,OAAO,EAEX,IAAIl1D,EAAQ,EACZ,OAAQpxD,KAAKqjH,gBACJ,WACDjyD,EAAQtnE,KAAKC,IAAIy+H,EAAqBJ,EAAgBG,EAAoBjC,GAC1E,UACC,cACDl1D,EAAQo3D,EAAqBJ,EAC7B,MACC,QAEDh3D,EAAQm3D,EAAoBjC,EAGpC,OAAQtmH,KAAKojH,MAAQhyD,EAASuxD,EAAmB4D,UAErDR,mBACI/lH,KAAK0mH,eAAeh6C,YAAY1sE,KAAK0kH,KAAM,MAC3C1kH,KAAK2mH,kBAAkBj6C,YAAY1sE,KAAK0kH,MACxC1kH,KAAKwsE,UAAUE,YAAY1sE,KAAK0kH,MAEpCvd,aACQkb,MAAYriH,KAAKotC,YAGrBptC,KAAK8jH,eAAgB,EACrB9jH,KAAK+mH,eACL/mH,KAAKgmH,eAETJ,sBACQvD,KAGJriH,KAAK4iH,OAAO6F,kBAAkB,MAC1BtB,OAAUx/G,OAAQ,UACby+G,MAAKsC,OAAa,MAAMt/D,OAAO,IAAMppD,KAAKwjH,kBAAoBxjH,KAAK0kH,OAAO2B,OAAUrmH,KAAK+jH,WACzFtV,UAAU,KACXzuG,KAAKmmH,kBAKrBxD,SAAmB4D,UAAY,GAAO,GACtC5D,EAAmB2F,aAAe,EAClC3F,EAAmBgG,UAAnB,0BAA+GhG,GAAV/yB,8BAA8CA,cAA9CA,8BAAwEA,YAC7K+yB,EAAmBiG,UADkFh5B,8BACrG,MAAmG+yB,EAAnG/T,2DADqGhf,wBACrGvvE,gBADqGuvE,2BACrGprE,EADqGorE,6BACrGzuF,6wBADqGyuF,kCACrGi5B,8HADqGj5B,2BAEjG,aAFiGA,sBAG/F,WAH+FA,6BACrGj5E,mhnBA7aMgsG,MAigBAP,QAAN,SAEAA,SAAgBuG,UAAhB,0BAA4GvG,IAC5GA,EAAgB0G,UAxFqFl5B,6BAwFrG,MAA6GwyB,IAC7GA,EAAgB2G,UAzFqFn5B,6BAyFrG,IAJMwyB","names":["factory","__webpack_modules__","__unused_webpack_module","exports","__w_pdfjs_require__","Object","defineProperty","value","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","UNSUPPORTED_FEATURES","TextRenderingMode","StreamType","RenderingIntentFlag","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMode","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","arrayByteLength","arraysToBytes","arr","length","Uint8Array","resultLength","i","pos","data","item","stringToBytes","itemLength","byteLength","set","assert","cond","msg","unreachable","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","Math","min","chunk","subarray","push","join","createPromiseCapability","capability","create","isSettled","get","promise","Promise","resolve","reject","reason","createValidAbsoluteUrl","url","baseUrl","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","protocol","_isValidProtocol","escapeString","str","replace","getModificationDate","date","Date","buffer","getUTCFullYear","toString","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getVerbosityLevel","verbosity","info","INFOS","console","log","isArrayBuffer","v","isArrayEqual","arr1","arr2","ii","isAscii","test","objectFromMap","map","obj","key","objectSize","keys","setVerbosityLevel","level","Number","isInteger","shadow","string32","stringToPDFString","encoding","se","decoder","TextDecoder","fatal","decode","ex","warn","code","PDFStringTranslateTable","charCodeAt","charAt","stringToUTF16BEString","buf","char","utf8StringToString","unescape","encodeURIComponent","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","WC","WS","DS","WP","DP","O","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","NEED_PASSWORD","INCORRECT_PASSWORD","Error","prop","enumerable","configurable","writable","message","name","this","constructor","prototype","super","details","status","isLittleEndian","buffer8","view32","Uint32Array","isEvalSupported","Function","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","Array","n","static","r","g","b","minMax","temp","m1","m2","p","m","yt","d","p1","applyTransform","p2","slice","p3","p4","max","transpose","a","first","second","sqrt","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","c","t","t1","t2","b2ac","sqrtb2ac","Qe","abs","mt","j","jlen","decodeURIComponent","escape","__unused_webpack_exports","isNodeJS","process","versions","nw","electron","type","build","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","getDocument","setPDFNetworkStreamFactory","version","_util","_display_utils","_font_loader","_annotation_storage","_canvas","_worker_options","_is_node","_message_handler","_metadata","_optional_content_config","_transport_stream","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DOMCanvasFactory","DOMCMapReaderFactory","DOMStandardFontDataFactory","createPDFNetworkStream","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","pdfNetworkStreamFactory","src","task","source","range","params","rangeTransport","worker","window","location","href","Buffer","isNaN","CMapReaderFactory","StandardFontDataFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","rangeChunkSize","docBaseUrl","isDataScheme","maxImageSize","cMapUrl","standardFontDataUrl","useWorkerFetch","disableFontFace","useSystemFonts","ownerDocument","globalThis","document","disableRange","disableStream","disableAutoFetch","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","docId","then","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","withCredentials","all","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","catch","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","vt","be","onPassword","onProgress","onUnsupportedFeature","destroy","l","_asyncToGenerator","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","end","abort","pdfInfo","o","_pdfInfo","deprecated","fingerprints","stats","streamTypes","fontTypes","annotationStorage","numPages","isPureXfa","_htmlForXfa","allXfaHtml","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","id","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","saveDocument","size","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","_bitmaps","Set","cleanupAfterRender","pendingCleanup","_intentStates","Map","_annotationPromises","rotate","userUnit","view","getViewport","scale","rotation","offsetX","offsetY","dontFlip","PageViewport","viewBox","getAnnotations","intent","intentArgs","getRenderingIntent","cacheKey","renderingIntent","annotations","annotation","titleObj","contentsObj","_jsActionsPromise","getPageJSActions","getXfa","children","render","canvasContext","viewport","annotationMode","imageLayer","canvasFactory","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","arguments","renderInteractiveForms","includeAnnotationStorage","time","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","complete","error","renderTasks","delete","internalRenderTask","_tryCleanup","Z","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","add","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListTask","opListReadCapability","streamTextContent","disableCombineTextItems","includeMarkedContent","sendWithStream","combineTextItems","highWaterMark","TEXT_CONTENT_CHUNK_SIZE","textContent","items","getTextContent","xfa","XfaText","readableStream","reader","getReader","styles","read","done","assign","pump","getStructTree","_structTreePromise","_destroy","waitOn","values","force","completed","cancel","clear","bitmap","close","resetStats","_startRenderPage","_renderPageChunk","operatorListChunk","serializable","streamReader","RenderingCancelledException","setTimeout","curCacheKey","curIntentState","_listeners","_deferred","postMessage","transfers","event","structuredClone","call","addEventListener","removeEventListener","indexOf","splice","terminate","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","currentScript","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","createObjectURL","Blob","has","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","Worker","_mainThreadWorkerMessageHandler","workerSrc","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","Pe","pdfjsWorker","loader","mainWorkerMessageHandler","_this4","eval","loadScript","WeakMap","getWorkerSrc","Te","fontLoader","FontLoader","_onUnsupportedFeature","bind","styleElement","_params","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","annotationHash","hash","page","e","$","hasOwnProperty","resetModified","terminated","Be","Q","_getFieldObjectsPromise","_hasJSActionsPromise","cancelAllRequests","sink","getFullReader","evt","onPull","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","fontRegistry","FontInspector","enabled","registerFont","fontAdded","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","width","height","freeze","fetch","featureId","cachedPromise","num","gen","filename","results","OptionalContentConfig","metadata","Metadata","S","objId","Ee","P","ne","settled","_internalRenderTask","onContinue","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","canvas","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","WeakSet","PixelsPerInch","PDFDateString","DOMSVGFactory","getFilenameFromUrl","anchor","query","substring","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","reFilename","splitURI","exec","suggestedFilename","includes","getXfaPageViewport","xfaPage","attributes","style","parseInt","isPdfFile","isValidFetchUrl","removeScriptElement","script","createElement","onload","remove","onerror","head","documentElement","appendChild","_base_factory","I","pdfDateStringRegex","asTypedArray","baseURI","response","ok","statusText","arrayBuffer","text","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","N","responseText","CSS","PDF","PDF_TO_CSS_UNITS","BaseCanvasFactory","_document","_createCanvas","BaseCMapReaderFactory","_fetchData","compressionType","fetchData","cMapData","BaseStandardFontDataFactory","BaseSVGFactory","_createSVG","createElementNS","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","x","y","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","applyInverseTransform","trim","toLowerCase","started","times","now","start","outBuf","longest","duration","padEnd","input","RegExp","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","le","UTC","context","getContext","reset","canvasAndContext","svg","setAttribute","BaseFontLoader","nativeFontFaces","addNativeFontFace","nativeFontFace","fonts","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","attached","missingFile","h","isFontLoadingAPISupported","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","_loadTestFont","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","supported","navigator","userAgent","otherRequest","shift","atob","offset","s","insert","ctx","called","spliceString","XXXX_VALUE","checksum","int32","btoa","names","loadedName","div","visibility","position","top","left","span","fontFamily","body","fillText","getImageData","isFontReady","translatedData","compiledGlyphs","cssFontInfo","css","weight","fontWeight","italicAngle","FontFace","mimetype","getPathGenerator","character","cmds","jsBuf","current","args","cmd","_murmurhash","_storage","_modified","onSetModified","onResetModified","getValue","defaultValue","getRawValue","setValue","modified","entry","val","entries","_setModified","getAll","MurmurHash3_64","update","JSON","stringify","hexdigest","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","_pattern_helper","_image_utils","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","_transformStack","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_originalResetTransform","resetTransform","_transformMatrix","desc","getOwnPropertyDescriptor","getPrototypeOf","_setLineWidth","_getLineWidth","f","ad_bc","bc_ad","old","prev","pop","angle","cosValue","cos","sinValue","sin","cache","getCanvas","trackTransform","canvasEntry","addContextCurrentTransform","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tx","ty","rTlX","round","rTlY","rWidth","rHeight","sign","drawImage","hypot","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","scaleMinMax","updateCurvePathMinMax","box","bezierBoundingBox","getPathBoundingBox","pathType","PathType","singularValueDecompose2dScale","xStrokePad","yStrokePad","updateClipFromPath","intersect","isEmptyClip","Infinity","getClippedPathBoundingBox","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","dest","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","k","kEnd","kEndUnrolled","mask","srcByte","hasTransferMaps","applyMaskImageData","sourceCtx","destCtx","properties","property","setLineDash","getLineDash","lineDashOffset","foregroundColor","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","r0","g0","b0","alpha","alpha_","maskData","layerData","transferMap","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","CanvasExtraState","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","markedContentStack","cachedCanvases","CachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","backgroundColor","foreground","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","defaultBackgroundColor","fg","bg","isValidDefaultBg","defaultBg","cB","gB","bB","newComp","lumB","selectColor","lumC","fillRect","transparentCanvas","compositeCtx","resetCtxToDefault","beginLayout","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","steps","fnId","breakIt","depObjId","objsPool","inSMaskMode","HTMLCanvasElement","endLayout","_scaleImage","img","inverseTransform","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","ceil","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","count","mainKey","withoutTranslation","cachedImage","putBinaryImageMask","maskToCanvas","cord1","cord2","normalizeRect","drawnWidth","drawnHeight","fillCanvas","fillCtx","mozCurrentTransformInverse","imageSmoothingEnabled","getImageSmoothingEnabled","drawImageAtIntegerCoords","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","state","checkSMaskState","beginSMaskMode","endSMaskMode","scratchCanvas","copyCtxState","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","compose","dirtyBox","floor","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","composeSMaskLuminosity","composeSMaskAlpha","chunkSize","PIXELS_TO_PROCESS","row","chunkHeight","composeSMaskBackdrop","genericComposeSMask","composeSMask","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","Ae","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","mode","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","w","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","H","pattern","getSinglePixelWidth","glyph","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","charWidth","vmetric","vx","remeasure","measuredWidth","measureText","characterScaleX","isInFont","spacingLength","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","TilingPattern","createCanvasGraphics","_getPattern","makeHexColor","matrix","getShadingPattern","SHADING","inv","bl","br","ul","ur","bbox","isArray","group","currentCtx","isolated","knockout","getAxialAlignedBoundingBox","scaleX","scaleY","cacheId","groupCtx","u","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","viewportScaleFactorStr","savedCtx","compiled","POINT_TYPES","width1","j0","points","lineSize","elem","sum","Int32Array","outlines","coords","Path2D","p0","step","pp","fe","ll","compileType3Glyph","skewX","skewY","positions","trans","images","image","imgToPaint","HTMLElement","putBinaryImageData","getCanvasPosition","appendImage","tag","visible","isVisible","isContentVisible","isEmpty","absDet","normX","normY","getScaleForStroking","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","savedMatrix","savedDashes","savedDashOffset","op","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","region","BaseShadingPattern","_type","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","applyBoundingBox","createPattern","domMatrix","DOMMatrix","c1","c2","c3","colors","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","ae","x1_","x2_","re","figure","ps","cs","verticesPerRow","rows","cols","q","drawTriangle","_coords","_colors","_figures","_bounds","_background","_createMeshCanvas","combinedScale","boundsWidth","boundsHeight","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","drawFigure","matrixScale","temporaryPatternCanvas","canvasGraphicsFactory","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","maxSize","cssColor","inverseDecode","opaque","zeroMapping","oneMapping","A","widthInSource","widthRemainder","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","_processStreamMessage","wrapReason","action","cbSourceName","cbTargetName","result","_createStreamSink","actionName","handler","ah","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","self","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","streamController","_deleteStreamController","allSettled","parsedData","rawData","getRaw","creator","_order","_groups","order","groups","OptionalContentGroup","baseState","off","_evaluateVisibilityExpression","array","operator","element","expression","policy","ids","setVisibility","getOrder","from","getGroups","getGroup","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","some","_begin","_progressiveDataLength","_loaded","firstReader","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","output","walk","node","shouldBuildText","child","require","readFile","Canvas","createCanvas","AnnotationLayer","_scripting_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","layer","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_mouseState","mouseState","container","_createContainer","quadrilaterals","_createQuadrilaterals","getRectDims","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","borderRadius","borderBottomStyle","borderColor","_commonActions","setColor","jsName","styleName","detail","target","ColorConverters","display","hidden","print","focus","preventScroll","userName","title","readonly","removeAttribute","required","bgColor","fgColor","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_setDefaultPropertiesFromJS","storedData","quadPoints","savedRect","quadPoint","_createPopup","trigger","popup","popupElement","PopupElement","modificationDate","richText","hideWrapper","_renderQuadrilaterals","className","quadrilateral","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","getElementById","getElementsByName","platform","isWin","isMac","isTooltipOnly","resetForm","Action","link","addLinkAttributes","newWindow","_bindNamedAction","_bindLink","hasClickAction","_bindJSAction","_bindResetFormAction","index","linkElement","cloneNode","destination","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","eventBus","dispatch","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","dispatchEvent","Event","hasPopup","alt","dataset","l10nId","l10nArgs","alternativeText","_getKeyModifier","ctrlKey","metaKey","_setEventListener","baseName","eventName","valueGetter","shiftKey","modifier","_setEventListeners","getter","_setBackgroundColor","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","formattedValue","elementData","userValue","valueOnFocus","multiLine","disabled","readOnly","tabIndex","defaultFieldValue","blurListener","scrollLeft","activeElement","selRange","setSelectionRange","commitKey","G","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener","isDown","Keystroke","inputType","preventDefault","change","maxLen","maxLength","comb","combWidth","classList","letterSpacing","verticalAlign","_setTextStyle","fontColor","defaultAppearanceData","textAlignment","textAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","fontSizeStyle","selectElement","combo","multiSelect","multiple","option","selected","optionElement","displayValue","isExport","filter","selectedIndex","getItems","multipleSelection","findIndex","insertBefore","indices","editable","changeEx","keyDown","parentType","parentElements","querySelectorAll","parentId","parentRect","popupLeft","popupTop","pinned","wrapper","hideElement","BACKGROUND_ENLIGHT","dir","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","contents","_formatContents","XfaLayer","xfaHtml","html","lastChild","_toggle","_show","_hide","lines","split","createTextNode","pin","zIndex","unpin","line","lineCoordinates","append","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","content","file","_download","openOrDownloadData","sortedAnnotations","popupAnnotations","AnnotationElementFactory","rendered","renderedElement","prepend","R","ownMatrix","elements","ownTransform","querySelector","firstChild","nodeName","replaceChild","ue","makeColorComp","B","components","RGB_HTML","CMYK_RGB","xfaOn","xfaOff","getAttribute","isHTMLAnchorElement","HTMLAnchorElement","dataId","setupStorage","root","rootHtml","setAttributes","stack","rootDiv","textDivs","parent","childHtml","xmlns","el","renderTextLayer","renderParameters","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_render","timeout","DEFAULT_FONT_SIZE","ascentCache","AllWhitespaceRegexp","geom","textDiv","textDivProperties","_enhanceTextSelection","hasText","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_viewport","atan2","fontName","fontHeight","fontAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","getAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","right","bottom","_canceled","textDivsLength","_renderingDone","ts","sort","horizon","boundary","x1New","x2New","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","concat","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_processItems","styleCache","len","appendText","parentNode","expandTextDivs","expandDivs","expanded","boxes","expandBoundsLTR","expandBounds","divProperties","Float64Array","jj","boxScale","findPositiveMin","expand","transformBuf","paddingBuf","divProps","padding","SVGGraphics","opListToTree","opList","opTree","opListElement","fn","pf","toFixed","pm","acos","SVG_DEFAULTS","fontStyle","XML_NS","XLINK_NS","contentType","forceDataSchema","digits","b1","b2","b3","convertImgDataToPng","PNG_HEADER","crcTable","crc","crc32","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","deflateSyncUncompressed","deflateSync","CHUNK_WRAPPER_SIZE","writePngChunk","encode","dependencies","activeClipUrl","clipGroup","maskId","clipCount","maskCount","shadingCount","SVGExtraState","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","svgElement","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","Y","ie","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","_","getAttributeNS","clipId","clipPath","clipElement","lineWidthScale","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","PDFNodeStream","_network_utils","fs","http","https","fileUriRegex","sourceUrl","parsedUrl","parse","host","parseUrl","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","_setReadableStream","headers","auth","hostname","method","BaseFullReader","handleResponse","statusCode","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","createRequestOptions","BaseRangeReader","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","validateResponseStatus","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","contentDispositionStr","iter","quot","part","parts","rfc2231getparam","attributePattern","flags","textdecode","quotindex","extvalue","encodingend","langvalue","charset","hex","PDFNetworkStream","getXhr","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","NetworkManager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","PDFFetchStream","abortController","signal","credentials","redirect","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","createHeaders","createFetchOptions","__webpack_module_cache__","moduleId","cachedModule","module","__webpack_exports__","_annotation_layer","_api","_svg","_text_layer","DefaultXfaLayerFactory","DefaultTextLayerFactory","DefaultStructTreeLayerFactory","DefaultAnnotationLayerFactory","_annotation_layer_builder","_l10n_utils","_pdf_link_service","_struct_tree_layer_builder","_text_layer_builder","_xfa_layer_builder","createAnnotationLayerBuilder","pageDiv","pdfPage","l10n","NullL10n","hasJSActionsPromise","fieldObjectsPromise","AnnotationLayerBuilder","SimpleLinkService","createStructTreeLayerBuilder","StructTreeLayerBuilder","createTextLayerBuilder","textLayerDiv","highlighter","TextLayerBuilder","createXfaLayerBuilder","XfaLayerBuilder","_pdfjsLib","_fieldObjectsPromise","_annotationCanvasMap","_cancelled","hide","pdfjsLib","fixupLangCode","langCode","PARTIAL_LANG_CODES","getL10nFallback","DEFAULT_L10N_STRINGS","of_pages","page_of_pages","document_properties_kb","document_properties_mb","document_properties_date_string","document_properties_page_size_unit_inches","document_properties_page_size_unit_millimeters","document_properties_page_size_orientation_portrait","document_properties_page_size_orientation_landscape","document_properties_page_size_name_a3","document_properties_page_size_name_a4","document_properties_page_size_name_letter","document_properties_page_size_name_legal","document_properties_page_size_dimension_string","document_properties_page_size_dimension_name_string","document_properties_linearized_yes","document_properties_linearized_no","print_progress_percent","additional_layers","page_landmark","thumb_page_title","thumb_page_canvas","find_reached_top","find_reached_bottom","find_not_found","error_version_info","error_message","error_stack","error_file","error_line","rendering_error","page_scale_width","page_scale_fit","page_scale_auto","page_scale_actual","page_scale_percent","loading","loading_error","invalid_file_error","missing_file_error","unexpected_response_error","printing_not_supported","printing_not_ready","web_fonts_disabled","en","es","fy","ga","gu","hi","hy","nb","nn","pa","pt","sv","zh","getLanguage","getDirection","formatL10nValue","PDFLinkService","LinkTarget","_ui_utils","SELF","BLANK","PARENT","TOP","rel","urlNullRemoved","removeNullCharacters","targetStr","externalLinkTarget","externalLinkRel","ignoreDestinationZoom","externalLinkEnabled","_ignoreDestinationZoom","pdfDocument","pdfViewer","pdfHistory","setDocument","setViewer","setHistory","pagesCount","currentPageNumber","pagesRotation","namedDest","explicitDest","goToPage","pageLabelToPageNumber","pushCurrentPosition","pushPage","scrollPageIntoView","setHash","parseQueryString","phraseSearch","zoomArgs","zoomArg","zoomArgNumber","parseFloat","destArray","allowNegativeOffset","back","forward","nextPage","previousPage","cachePageRef","pageNum","pageRef","refStr","_cachedPageNumber","isPageVisible","isPageCached","rawDest","destRef","destLength","zoom","allowNull","param","animationStarted","VERTICAL_PADDING","UNKNOWN_SCALE","TextLayerMode","SpreadMode","SidebarView","ScrollMode","SCROLLBAR_PADDING","RenderingStates","RendererType","ProgressBar","PresentationModeState","OutputScale","MIN_SCALE","MAX_SCALE","MAX_AUTO_SCALE","DEFAULT_SCALE_VALUE","DEFAULT_SCALE_DELTA","DEFAULT_SCALE","AutoPrintRegExp","apiPageLayoutToViewerModes","layout","scrollMode","VERTICAL","spreadMode","PAGE","ODD","EVEN","apiPageModeToSidebarView","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","approximateFraction","xinv","x_","backtrackBeforeAllVisibleElements","binarySearchFirstItem","getActiveOrFocusedElement","curRoot","curActiveOrFocused","shadowRoot","getPageSizeInches","changeOrientation","getVisibleElements","scrollEl","views","sortByVisibility","horizontal","rtl","scrollTop","clientHeight","clientWidth","numViews","firstVisibleElementInd","elementLeft","offsetLeft","clientLeft","elementBottom","offsetTop","clientTop","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","fractionWidth","percent","widthPercent","last","pc","isPortraitOrientation","isValidRotation","isValidScrollMode","isValidSpreadMode","noContextMenuHandler","normalizeWheelEventDelta","delta","normalizeWheelEventDirection","deltaMode","MOUSE_PIXELS_PER_LINE","URLSearchParams","replaceInvisible","InvisibleCharactersRegExp","NullCharactersRegExp","roundToDivide","scrollIntoView","spot","scrollMatches","offsetParent","scrollHeight","scrollWidth","contains","getComputedStyle","overflow","watchScroll","viewAreaElement","debounceScroll","rAF","currentX","lastX","currentY","lastY","down","_eventHandler","INITIAL","RUNNING","PAUSED","FINISHED","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","ENABLE_ENHANCE","HORIZONTAL","WRAPPED","pixelRatio","sx","condition","minIndex","maxIndex","currentIndex","elt","pageTop","deltaX","deltaY","_indeterminate","doc","setProperty","_percent","bar","clamp","setWidth","viewer","scrollbarWidth","offsetWidth","show","PDF_ROLE_TO_HTML_ROLE","Document","DocumentFragment","Part","Sect","Div","Aside","NonStruct","Title","FENote","Sub","Lbl","Span","Em","Strong","Link","Annot","Form","Ruby","RB","RT","RP","Warichu","WT","L","LI","LBody","Table","TR","TH","TD","THead","TBody","TFoot","Caption","Figure","Formula","Artifact","HEADING_PATTERN","structTree","_walk","_setAttributes","structElement","htmlElement","lang","role","kid","renderingDone","textLayerRenderTask","_bindMouse","_finishRendering","endOfContent","numTextDivs","setTextMapping","textLayerFrag","createDocumentFragment","enable","disable","setTextContentStream","setTextContent","expandDivsTimer","adjustTop","getPropertyValue","divBounds","getBoundingClientRect","pageY","PDFViewer","PDFSinglePageViewer","_base_viewer","BaseViewer","_resetView","_scrollMode","_spreadMode","_updateScrollMode","_updateSpreadMode","PagesCountLimit","PDFPageViewBuffer","_pdf_page_view","_pdf_rendering_queue","_text_highlighter","ENABLE_PERMISSIONS_CLASS","FORCE_SCROLL_MODE_PAGE","FORCE_LAZY_PAGE_INIT","PAUSE_EAGER_PAGE_INIT","resize","newSize","idsToKeep","Symbol","iterator","firstView","next","viewerVersion","firstElementChild","tagName","toUpperCase","findController","_scriptingManager","scriptingManager","removePageBorders","textLayerMode","enablePrintAutoRotate","renderer","useOnlyCssZoom","maxCanvasPixels","ee","enablePermissions","supports","defaultRenderingQueue","renderingQueue","PDFRenderingQueue","_doc","scroll","_scrollUpdate","presentationModeState","_onBeforeDraw","_onAfterDraw","updateContainerHeightCss","_pages","getPageView","pageViewsReady","_pagesCapability","every","pageView","_currentPageNumber","_setCurrentPageNumber","resetCurrentPageView","previous","pageLabel","_pageLabels","currentPageLabel","currentScale","_currentScale","_setScale","currentScaleValue","_currentScaleValue","_pagesRotation","updateArgs","firstPagePromise","_firstPageCapability","onePageRendered","_onePageRenderedCapability","pagesPromise","_cancelRendering","permissionsPromise","_on","cssTransform","timestamp","_off","firstPdfPage","permissions","_optionalContentConfigPromise","viewerElement","textLayerFactory","annotationLayerFactory","xfaLayerFactory","PDFPageView","defaultViewport","textHighlighterFactory","structTreeLayerFactory","firstPageView","setPdfPage","getPagesLeft","Language","setPageLabels","labels","setPageLabel","_location","_previousScrollMode","previousPageNumber","scrollDown","pages","W","_setScaleUpdatePages","newScale","newValue","noScroll","preset","presetValue","isInPresentationMode","isChangingPresentationMode","_pageWidthScaleFactor","currentPage","hPadding","vPadding","pageWidthScale","pageHeightScale","horizontalScale","label","pageWidth","pageHeight","Se","M","boundingRect","_updateLocation","firstPage","normalizedScaleValue","getPagePoint","intLeft","intTop","pdfOpenParams","_getVisiblePages","visiblePages","numVisiblePages","newCacheSize","renderHighestPriority","isSimpleLayout","currentId","stillFullyVisible","containsElement","_isContainerRtl","direction","isHorizontalScrollbarEnabled","isVerticalScrollbarEnabled","renderingState","cancelRendering","forceRendering","currentlyVisiblePages","scrollAhead","oe","getHighestPriority","renderView","createTextHighlighter","TextHighlighter","hasEqualPageSizes","getPagesOverview","toggle","parity","spread","_getPageAdvance","pageLayout","yArray","expectedId","firstId","lastId","advance","increaseScale","decreaseScale","visibilityState","visibilityChangePromise","race","pageIndexSet","T","dummyPage","pageSpot","visibleIds","toggleLoadingIconSpinner","_app_options","MAX_CANVAS_PIXELS","compatibilityParams","renderingId","pdfPageRotate","hasRestrictedScaling","textHighlighter","paintTask","paintedViewportMap","resume","_renderError","_isStandalone","hasViewer","annotationLayer","textLayer","zoomLayer","xfaLayer","structTreeLayer","_renderAnnotationLayer","_renderXfaLayer","_buildXfaTextContentItems","_resetZoomLayer","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotationLayer","keepXfaLayer","zoomLayerNode","annotationLayerNode","xfaLayerNode","loadingIconDiv","redrawAnnotationLayer","redrawXfaLayer","performance","isScalingRestricted","outputScale","_onTextLayerRendered","relativeRotation","absRotation","textLayerViewport","textAbsRotation","transX","transY","viewVisible","draw","canvasWrapper","renderContinueCallback","cont","isHighestPriority","finishPaintTask","paintOnSvg","paintOnCanvas","onRenderContinue","resultPromise","tree","treeDom","renderCapability","isCanvasHidden","showCanvas","actualSizeViewport","maxScale","sfx","sfy","renderContext","ensureNotCancelled","svgGfx","OptionKind","AppOptions","maxTouchPoints","isAndroid","VIEWER","API","WORKER","PREFERENCE","defaultOptions","cursorToolOnLoad","defaultUrl","defaultZoomValue","disableHistory","disablePageLabels","historyUpdateUrl","compatibility","pageColorsBackground","pageColorsForeground","pdfBugEnabled","printResolution","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","viewerCssTheme","viewOnLoad","disablePreferences","locale","language","sandboxBundleSrc","userOptions","userOption","defaultOption","valueType","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","setThumbnailViewer","scrolledDown","preRenderExtra","visibleViews","numVisible","isViewFinished","holeId","holeView","preRenderIndex","preRenderView","pageIdx","_onUpdateTextLayerMatches","divs","texts","_updateMatches","_convertMatches","matchesLength","iIndex","mm","matchIdx","divIdx","_renderMatches","isSelectedPage","selectedMatchIdx","prevEnd","appendTextToDiv","fromOffset","toOffset","nodeType","Node","TEXT_NODE","i0","i1","highlightAll","isSelected","highlightSuffix","selectedLeft","n0","n1","scrollMatchIntoView","matchIndex","clearedUntilDivIdx","highlightMatches","pageMatches","pageMatchesLength","DownloadManager","blobUrl","click","download","_openBlobUrls","downloadUrl","downloadData","isPdfData","viewerUrl","revokeObjectURL","blob","sourceEventType","WaitOnType","EventBus","AutomationEventBus","waitOnEventOrTimeout","delay","eventHandler","EVENT","timeoutHandler","TIMEOUT","external","once","eventListeners","externalListeners","GenericL10n","webL10n","_lang","_ready","setLanguage","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","onSuccess","onFailure","overrideMimeType","ontimeout","langLinks","getL10nResourceLinks","langCount","onResourceLoaded","gResourceCount","L10nResourceLink","load","dict","innerHTML","getL10nDictionary","locales","default_locale","defaultLocale","anyCaseLang","successCallback","failureCallback","baseURL","xhrLoadText","parsedPropertiesCallback","dictionary","reBlank","reComment","reSection","reImport","reSplit","rawText","extendedSyntax","parsedRawLinesCallback","currentLang","genericLang","skipLang","loadImport","nextEntry","evalString","parseRawLines","parseProperties","parseResource","rv","substArguments","substIndexes","reMatch","macroName","paramName","macro","matched_text","arg","getL10nAttributes","getL10nData","childElementCount","getChildElementCount","nodeValue","textNode","plural","_pluralRules","list","pluralRules","isBetween","isIn","af","ak","am","ar","asa","az","bem","bez","bh","bm","bn","bo","brx","bs","ca","cgg","chr","cy","da","de","dv","dz","eo","et","eu","fa","ff","fi","fil","fo","fr","fur","gd","gl","gsw","guw","gv","ha","haw","he","hr","hu","ig","is","it","iu","ja","jmc","jv","ka","kab","kaj","kcg","kde","kea","kk","kl","km","kn","ko","ksb","ksh","ku","kw","lag","lb","lg","ln","lo","lt","lv","mas","mg","mk","ml","mn","mo","mr","ms","my","nah","naq","nd","nl","no","nr","nso","ny","nyn","om","or","pap","pl","rm","ro","rof","ru","rwk","sah","saq","seh","ses","sg","sh","shi","sk","sl","sma","smi","smj","smn","sms","sn","so","sq","sr","ss","ssy","st","sw","syr","ta","te","teo","th","ti","tig","tk","tl","tn","to","tr","tzm","uk","ve","vi","vun","wa","wae","wo","xh","xog","yo","zu","getPluralRules","fallbackString","getText","loadLocale","shortCode","getTranslatableChildren","elementCount","translateElement","getReadyState","PDFFindController","FindState","_pdf_find_utils","FOUND","NOT_FOUND","PENDING","CHARACTERS_TO_NORMALIZE","DIACRITICS_EXCEPTION","DIACRITICS_EXCEPTION_STR","DIACRITICS_REG_EXP","SPECIAL_CHARS_REG_EXP","NOT_DIACRITIC_FROM_END_REG_EXP","NOT_DIACRITIC_FROM_START_REG_EXP","normalizationRegex","rawDiacriticsPositions","normalized","normalize","shiftOrigin","eol","hasDiacritics","replacement","hasTrailingDashEOL","endsWith","diffs","_pdfDocument","_state","_dirtyMatch","Ie","findbarClosed","_highlightMatches","pendingTimeout","_findTimeout","_scrollMatches","_pageMatches","_pageMatchesLength","_selected","_offset","wrapped","_extractTextPromises","_pageContents","_pageDiffs","_hasDiacritics","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","_rawQuery","_normalizedQuery","_linkService","startIdx","getCharacterType","entireWord","pageContent","matchPos","matchLen","getOriginalIndex","matchDiacritics","isUnicode","p5","caseSensitive","reverse","isUnicodePart","queryPart","pageMatchesCount","Ce","extractTextCapability","textItem","_eventBus","findPrevious","currentPageIndex","numPageMatches","ce","numMatches","ye","me","matchesCount","rawQuery","CharacterType","charCode","isAlphabeticalScript","isAsciiSpace","SPACE","isAsciiAlpha","isAsciiDigit","ALPHA_LETTER","PUNCT","isThai","THAI_LETTER","isHan","HAN_LETTER","isKatakana","KATAKANA_LETTER","isHiragana","HIRAGANA_LETTER","isHalfwidthKatakana","HALFWIDTH_KATAKANA_LETTER","PDFHistory","isDestArraysEqual","isDestHashesEqual","_event_utils","destHash","pushHash","nameddest","firstDest","secondDest","isEntryEqual","_initialized","_fingerprint","_boundEvents","_isPagesLoaded","initialize","fingerprint","resetHistory","updateUrl","reInitialized","_updateUrl","_bindEvents","history","_popStateInProgress","_blockHashChange","_currentHash","getCurrentHash","_numPositionUpdates","_uid","_maxUid","_destination","_position","_isValidState","_parseCurrentHash","_pushOrReplaceState","_updateInternalState","uid","_initialRotation","_initialBookmark","_pageHide","_unbindEvents","_updateViewareaTimeout","_isValidPage","forceReplace","_tryPushCurrentPosition","popStateInProgress","initialBookmark","initialRotation","shouldReplace","newState","newUrl","replaceState","pushState","temporary","checkReload","perfEntry","getEntriesByType","removeTemporary","checkNameddest","_updateViewarea","_popState","newHash","hashChanged","updateViewarea","popState","pageHide","PDFScriptingManager","scriptingFactory","docPropertiesLookup","_pdfViewer","_closeCapability","_destroyCapability","_scripting","_sandboxBundleSrc","_scriptingFactory","_docPropertiesLookup","_destroyScripting","objects","calculationOrder","docActions","_createScripting","_internalEvents","_updateFromSandbox","dispatchEventInSandbox","_dispatchPageClose","_dispatchPageOpen","_pageOpenPending","_domEvents","docProperties","_getDocProperties","createSandbox","appInfo","docInfo","dispatchWillSave","dispatchDidSave","dispatchWillPrint","dispatchDidPrint","destroyPromise","_visitedPages","siblings","command","modes","elementId","CustomEvent","visitedPages","actionsPromise","createScripting","GenericScripting","destroySandbox","filesize","authors","pdfjsSandbox","QuickJSSandbox","sandbox","nukeSandbox","_default_factory","_download_manager","_genericl10n","_pdf_find_controller","_pdf_history","_pdf_scripting_manager","_pdf_viewer","EventDetailsFlyoutComponent","evtService","activeModal","ngOnInit","timeZone","moment","startTime","getTimezoneOffset","timezone","format","getSpecificEvent","subscribe","initialized","dismiss","selectors","ConferenceHtmlContentComponent","ConferenceDateHeaderComponent","ctx_r10","ctx_r19","ctx_r25","ctx_r42","ctx_r44","ModifyRegistrationModalComponent","cmsService","eventService","zone","toaster","existingRegistration","getSingleRegistrationPackage","conferenceId","packageId","pckg","reserveBreakouts","startTimes","Enumerable","courseEvents","where","currentBreakoutCount","breakoutCapacity","reservations","courseEventId","orderBy","groupBy","formattedFullTime","getSource","toArray","reservedBreakouts","select","model","ModifyRegistrationViewModel","addons","addOns","purchasedAddons","addOnId","eventAddons","package","userHasPurchased","purchasePackageClicked","userFrm","valid","markAllTouched","errorMessage","selectedAddOns","selectedEventAddons","submitComplete","resetButton","purchasePackage","actualPrice","Stripe","card","createToken","number","cardNumber","exp_month","expMo","exp_year","expYr","cvc","cvv","cardToken","run","updatePackage","logAttribution","organizationId","fbq","currency","gtag","event_category","event_label","send_to","transaction_id","messageDialog","purchasePackageFree","controls","forEach","control","markAsTouched","onlySelf","markAsDirty","calculatePrice","purchaseCEUs","memberRate","ceuPrice","ceuNonMemberPrice","addonPrice","price","eventAddonPrice","ctx_r28","ctx_r37","ctx_r54","ctx_r82","ctx_r90","ctx_r96","ctx_r98","PackagePurchaseModalComponent","surveyService","PackageRequirement","RegistrationFieldType","conference","getSingleRegistrationPackageForOrganization","organization","customQuestionSurveyId","loadSurvey","affiliation","user","promoDiscount","fullName","firstName","lastName","getSurveyById","survey","Model","schemaJSON","surveyModel","isSinglePage","showNavigationButtons","questionsOnPageMode","getAllQuestions","updateQuestionsFromAuth","question","customQuestion","email","requirement","hasErrors","PurchasePackageViewModel","tShirtSize","promoCode","isMember","pronouns","customSurveyJSON","customQuestionResponses","customRegistrationFields","completeFree","memberPricing","nonMemberPrice","promoDiscountAmount","memberPrice","eventAddonDiscountQuantityThreshold","discountAmount","eventAddonDiscountAmount","applyPromoCode","StringViewModel","checkPackagePromoCode","promoError","discountPercentage","ConferencePackageListingComponent","modalService","orgService","modifyRegistration","modalRef","ariaLabelledBy","componentInstance","getPackagesForRegistration","packages","onlyShowForGroups","packageCategories","category","atLeastOnePackageHasCEUs","noCEUs","activeCategory","hasRegisteredForConference","registration","isLoggedIn","showPurchaseModal","showLoginModal","RegistrationModalComponent","fetchUserProfile","changeCategory","ConferenceSpeakerListingComponent","instructorService","orgCMS","getInstructorsForConference","instructors","getInstructorsForNonConferenceCourseEvents","ctx_r15","ctx_r17","ctx_r21","ConferenceEventListingComponent","EventOrderBy","Enums","searchParams","OrganizationEventSearchParams","courseEventStatus","roomId","getRoomsForConference","rooms","getTagsForConference","tags","selectedDay","selectedTime","hideFilter","search","resetPaging","searching","events","searchEventsForConference","pageSize","pagedResult","resultCount","rowCount","paginate","ConferenceOnDemandListingComponent","courseService","CourseSearchParameters","courses","ctx_r8","ctx_r13","ConferenceOnDemandSearchComponent","searchService","org","courseData","orgId","rootRoute","slug","getOrganization","orgResult","getFilterData","filterData","loadMore","loadingMore","ConferenceExhibitListingComponent","exhibitsService","getLandingPagesForAllSponsorsAndExhibits","exhibits","ConferencePosterListingComponent","posterService","getPostersForConference","posters","approved","ConferenceBannerRotatorComponent","urlArray","getRandomArbitrary","random","ctx_r7","ctx_r9","ConferenceScheduleElementComponent","router","route","schedulerService","organizationService","queryParamMap","queryParams","currentDay","reloadEvents","showDetails","keyboard","windowClass","backdropClass","getScheduledEvents","schedulerSettings","specificDates","find","dayLabels","calculateColumns","innerWidth","calculateTimes","tempy","updateEvents","onResize","totalWith","colWidth","nextDay","previousDay","timeBlocks","startHour","endHour","columnIndex","room","xCoordinate","yCoordinate","timeIn5MinBlocks","ConferenceProgramExportComponent","schedule","getProgramEvents","ctx_r11","OrganizationEventListingComponent","getTagsForOrganization","searchEventsForOrganization","SponsorProductListingComponent","callForSponsorsService","cart","productListingData","ProductListingData","getProductsForConference","products","selectedTags","any","includeNoTags","ConferencePdfViewerComponent","pdfUrl","ConferenceListComponent","getAllConferencesForOrg","conferences","published","ctx_r5","OrganizationBundlesComponent","getOrganizationPackagesForRegistration","PageElementComponent","PageElementType","ngOnDestroy","SharedCMSModule","ApplicationPipesModule","DragDropModule","RouterModule","SkeletonModule","PaginatorModule","PdfViewerModule","isSSR","PDFJS","RenderTextMode","DISABLED","ENABLED","ENHANCED","PdfViewerComponent","ngZone","_cMapsUrl","_imageResourcesPath","_renderText","_renderTextMode","_stickToPage","_originalSize","_page","_zoom","_zoomScale","_rotation","_showAll","_canAutoResize","_fitToPage","_externalLinkTarget","_showBorders","resizeTimeout","pageScrollTimeout","isInitialized","destroy$","Subject","afterLoadComplete","EventEmitter","pageRendered","pageInitialized","textLayerRendered","pageChange","pdfWorkerSrc","cMapsUrl","originalPage","_pdf","getValidPageNumber","emit","renderText","renderTextMode","originalSize","showAll","stickToPage","zoomScale","autoresize","Boolean","fitToPage","showBorders","PDFJSViewer","ngAfterViewChecked","pdfViewerContainer","nativeElement","ngOnChanges","setupResizeListener","changes","loadPDF","resetPdfDocument","setupViewer","currentValue","_latestScrolledPage","updateSize","pipe","takeUntil","viewportWidth","CSS_UNITS","viewPort","getScale","pdfLinkService","pdfFindController","getPDFLinkServiceConfig","linkTarget","getLinkTarget","initEventBus","pdfJsViewer","globalEventBus","attachDOMEventsToEventBus","fromEvent","createEvent","initCustomEvent","initEvent","attachmentsCount","outerContainer","active","switchInProgress","outlineCount","createEventBus","initPDFServices","getPDFOptions","getDocumentParams","srcType","lastLoaded","progressData","pdf","viewportHeight","borderSize","BORDER_WIDTH","pdfContainerWidth","pdfContainerHeight","runOutsideAngular","debounceTime","ɵfac","ɵcmp","decls","ɵmod","ɵinj"],"sourceRoot":"webpack:///","sources":["./node_modules/pdfjs-dist/build/pdf.js","./node_modules/pdfjs-dist/web/pdf_viewer.js","./src/app/conferences/page/elements/conference-schedule/event-details-flyout.component.html","./src/app/conferences/page/elements/conference-schedule/event-details-flyout.component.ts","./src/app/conferences/page/elements/conference-html-content/conference-html-content.component.ts","./src/app/conferences/page/elements/conference-html-content/conference-html-content.component.html","./src/app/conferences/page/elements/conference-date-header/conference-date-header.component.ts","./src/app/conferences/page/elements/conference-date-header/conference-date-header.component.html","./src/app/conferences/registration/modify-registration-modal.component.html","./src/app/conferences/registration/modify-registration-modal.component.ts","./src/app/conferences/registration/package-purchase-modal.component.html","./src/app/conferences/registration/package-purchase-modal.component.ts","./src/app/conferences/page/elements/conference-package-listing/conference-package-listing.component.html","./src/app/conferences/page/elements/conference-package-listing/conference-package-listing.component.ts","./src/app/conferences/page/elements/conference-speaker-listing/conference-speaker-listing.component.html","./src/app/conferences/page/elements/conference-speaker-listing/conference-speaker-listing.component.ts","./src/app/conferences/page/elements/conference-event-listing/conference-event-listing.component.html","./src/app/conferences/page/elements/conference-event-listing/conference-event-listing.component.ts","./src/app/conferences/page/elements/conference-on-demand-listing/conference-on-demand-listing.component.html","./src/app/conferences/page/elements/conference-on-demand-listing/conference-on-demand-listing.component.ts","./src/app/conferences/page/elements/conference-on-demand-search/conference-on-demand-search.component.html","./src/app/conferences/page/elements/conference-on-demand-search/conference-on-demand-search.component.ts","./src/app/conferences/page/elements/conference-exhibits/conference-exhibit-listing.component.html","./src/app/conferences/page/elements/conference-exhibits/conference-exhibit-listing.component.ts","./src/app/conferences/page/elements/conference-poster-listing/conference-poster-listing.component.html","./src/app/conferences/page/elements/conference-poster-listing/conference-poster-listing.component.ts","./src/app/conferences/page/elements/conference-banner-rotater/conference-banner-rotator.component.ts","./src/app/conferences/page/elements/conference-banner-rotater/conference-banner-rotator.component.html","./src/app/conferences/page/elements/conference-schedule/conference-schedule-element.component.html","./src/app/conferences/page/elements/conference-schedule/conference-schedule-element.component.ts","./src/app/conferences/page/elements/program-export/conference-program-export.component.html","./src/app/conferences/page/elements/program-export/conference-program-export.component.ts","./src/app/conferences/page/elements/organization-event-listing/organization-event-listing.component.html","./src/app/conferences/page/elements/organization-event-listing/organization-event-listing.component.ts","./src/app/conferences/page/elements/sponsor-product-listing/sponsor-product-listing.component.html","./src/app/conferences/page/elements/sponsor-product-listing/sponsor-product-listing.component.ts","./src/app/conferences/page/elements/conference-pdf-viewer/conference-pdf-viewer.component.ts","./src/app/conferences/page/elements/conference-pdf-viewer/conference-pdf-viewer.component.html","./src/app/conferences/page/elements/conference-list/conference-list.component.html","./src/app/conferences/page/elements/conference-list/conference-list.component.ts","./src/app/conferences/page/elements/organization-bundles/organization-bundles.component.html","./src/app/conferences/page/elements/organization-bundles/organization-bundles.component.ts","./src/app/conferences/page/elements/page-element.component.html","./src/app/conferences/page/elements/page-element.component.ts","./src/app/shared-cms-module.ts","./node_modules/ng2-pdf-viewer/fesm2020/ng2-pdf-viewer.mjs"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(2);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n\n const length = str.length;\n const bytes = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n\n for (const [key, value] of map) {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n\n}\n\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n static scaleMinMax(transform, minMax) {\n let temp;\n\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n if (xLow > xHigh) {\n return null;\n }\n\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n\n const strBuf = [];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n }\n\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\n\nvar _is_node = __w_pdfjs_require__(3);\n\n;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nvar _font_loader = __w_pdfjs_require__(7);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _canvas = __w_pdfjs_require__(10);\n\nvar _worker_options = __w_pdfjs_require__(13);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _message_handler = __w_pdfjs_require__(14);\n\nvar _metadata = __w_pdfjs_require__(15);\n\nvar _optional_content_config = __w_pdfjs_require__(16);\n\nvar _transport_stream = __w_pdfjs_require__(17);\n\nvar _xfa_text = __w_pdfjs_require__(18);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet DefaultCanvasFactory = _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nlet DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\n\nif (_is_node.isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory\n } = __w_pdfjs_require__(19);\n\n exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory;\n exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory;\n exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\" || src instanceof URL) {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, Uint8Array, or parameter object.\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n (0, _util.warn)(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString();\n continue;\n }\n\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n\n case \"range\":\n rangeTransport = value;\n continue;\n\n case \"worker\":\n worker = value;\n continue;\n\n case \"data\":\n if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && value instanceof Buffer) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break;\n } else if (typeof value === \"string\") {\n params[key] = (0, _util.stringToBytes)(value);\n } else if (typeof value === \"object\" && value !== null && !isNaN(value.length)) {\n params[key] = new Uint8Array(value);\n } else if ((0, _util.isArrayBuffer)(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string, or array-like object is expected in the data property.\");\n }\n\n continue;\n }\n\n params[key] = value;\n }\n\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\n\n if (typeof params.docBaseUrl !== \"string\" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) {\n params.docBaseUrl = null;\n }\n\n if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _is_node.isNodeJS;\n }\n\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace;\n }\n\n if (typeof params.ownerDocument !== \"object\" || params.ownerDocument === null) {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename;\n }\n\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.14.305',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null\n });\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n}\n\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n }\n\n}\n\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"fingerprint\", {\n get() {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.fingerprint`, \" + \"please use `PDFDocumentProxy.fingerprints` instead.\");\n return this.fingerprints[0];\n }\n\n });\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getStats`, \" + \"please use the `PDFDocumentProxy.stats`-getter instead.\");\n return this.stats || {\n streamTypes: {},\n fontTypes: {}\n };\n }\n });\n }\n\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n get stats() {\n return this._transport.stats;\n }\n\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n saveDocument() {\n if (this._transport.annotationStorage.size <= 0) {\n (0, _display_utils.deprecated)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n\n return this._transport.saveDocument();\n }\n\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._bitmaps = new Set();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n\n if (!promise) {\n promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n (0, _display_utils.deprecated)(\"`title`-property on annotation, please use `titleObj` instead.\");\n return annotation.titleObj.str;\n }\n\n });\n }\n\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n (0, _display_utils.deprecated)(\"`contents`-property on annotation, please use `contentsObj` instead.\");\n return annotation.contentsObj.str;\n }\n\n });\n }\n }\n\n return annotations;\n });\n }\n\n return promise;\n }\n\n getJSActions() {\n return this._jsActionsPromise ||= this._transport.getPageJSActions(this._pageIndex);\n }\n\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null\n }) {\n if (arguments[0]?.renderInteractiveForms !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `renderInteractiveForms`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_FORMS;\n }\n }\n\n if (arguments[0]?.includeAnnotationStorage !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `includeAnnotationStorage`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_STORAGE;\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode);\n\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, true);\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n getStructTree() {\n return this._structTreePromise ||= this._transport.getStructTree(this._pageIndex);\n }\n\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intentState.opListReadCapability) {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n\n this.objs.clear();\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList({\n renderingIntent,\n cacheKey\n }) {\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: renderingIntent & _util.RenderingIntentFlag.ANNOTATIONS_STORAGE ? this._transport.annotationStorage.serializable : null\n });\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n\n break;\n }\n }\n\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers)\n };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_is_node.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker.#workerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let workerSrc = PDFWorker.workerSrc;\n\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n PDFWorker.#workerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n\n}\n\nexports.PDFWorker = PDFWorker;\n{\n PDFWorker.getWorkerSrc = function () {\n (0, _display_utils.deprecated)(\"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\");\n return this.workerSrc;\n };\n}\n\nclass WorkerTransport {\n #docStats = null;\n #pageCache = new Map();\n #pagePromises = new Map();\n #metadataPromise = null;\n\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl\n });\n }\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n\n get stats() {\n return this.#docStats;\n }\n\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationHash = \"\";\n\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n\n case \"display\":\n break;\n\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n\n case _util.AnnotationMode.ENABLE:\n break;\n\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n annotationHash = this.annotationStorage.hash;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${annotationHash}`\n };\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\n\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n\n this.#pageCache.clear();\n this.#pagePromises.clear();\n\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this._passwordCapability.reject(password);\n } else {\n this._passwordCapability.resolve({\n password\n });\n }\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.#pageCache.get(data.pageIndex);\n\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector?.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n\n const pageProxy = this.#pageCache.get(pageIndex);\n\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData) {\n let length;\n\n if (imageData.bitmap) {\n const {\n bitmap,\n width,\n height\n } = imageData;\n length = width * height * 4;\n\n pageProxy._bitmaps.add(bitmap);\n } else {\n length = imageData.data?.length || 0;\n }\n\n if (length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n }\n\n break;\n\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"DocStats\", data => {\n if (this.destroyed) {\n return;\n }\n\n this.#docStats = Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes)\n });\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.CMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.CMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.StandardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.StandardFontDataFactory.fetch(data);\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n this.loadingTask.onUnsupportedFeature?.(featureId);\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n\n if (cachedPromise) {\n return cachedPromise;\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n saveDocument() {\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: this._fullReader?.filename ?? null\n }).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n\n getFieldObjects() {\n return this._getFieldObjectsPromise ||= this.messageHandler.sendWithPromise(\"GetFieldObjects\", null);\n }\n\n hasJSActions() {\n return this._hasJSActionsPromise ||= this.messageHandler.sendWithPromise(\"HasJSActions\", null);\n }\n\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.#metadataPromise ||= this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n }\n\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n\n async startCleanup(keepLoadedFonts = false) {\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return;\n }\n\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n\n this.commonObjs.clear();\n\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n enableXfa: params.enableXfa\n });\n }\n\n}\n\nclass PDFObjects {\n #objs = Object.create(null);\n\n #ensureObj(objId) {\n const obj = this.#objs[objId];\n\n if (obj) {\n return obj;\n }\n\n return this.#objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n\n const obj = this.#objs[objId];\n\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n\n clear() {\n this.#objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n}\n\nexports.RenderTask = RenderTask;\n\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n}\n\nconst version = '2.14.305';\nexports.version = version;\nconst build = 'eaaa8b4ad';\nexports.build = build;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.deprecated = deprecated;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\n\nvar _base_factory = __w_pdfjs_require__(6);\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\n\nexports.PixelsPerInch = PixelsPerInch;\n\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let data;\n\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (data) {\n resolve(data);\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n}\n\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n\n}\n\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\n\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n\n if (rotation < 0) {\n rotation += 360;\n }\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg, \"RenderingCancelledException\");\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\n\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n\n resolve(evt);\n };\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._createCanvas(width, height);\n\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n\n this.baseUrl = baseUrl;\n }\n\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\n\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n\n const svg = this._createSVG(\"svg:svg\");\n\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n\n return this._createSVG(type);\n }\n\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n\n}\n\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m?.[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n let i, ii;\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (const font of fonts) {\n names.push(font.loadedName);\n }\n\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (const name of names) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.appendChild(span);\n }\n\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n let nativeFontFace;\n\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationStorage = void 0;\n\nvar _murmurhash = __w_pdfjs_require__(9);\n\nvar _util = __w_pdfjs_require__(1);\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n getValue(key, defaultValue) {\n const value = this._storage.get(key);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n\n getRawValue(key) {\n return this._storage.get(key);\n }\n\n setValue(key, value) {\n const obj = this._storage.get(key);\n\n let modified = false;\n\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n\n this._storage.set(key, value);\n }\n\n if (modified) {\n this._setModified();\n }\n }\n\n getAll() {\n return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null;\n }\n\n get size() {\n return this._storage.size;\n }\n\n _setModified() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n get serializable() {\n return this._storage.size > 0 ? this._storage : null;\n }\n\n get hash() {\n const hash = new _murmurhash.MurmurHash3_64();\n\n for (const [key, value] of this._storage) {\n hash.update(`${key}:${JSON.stringify(value)}`);\n }\n\n return hash.hexdigest();\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(11);\n\nvar _image_utils = __w_pdfjs_require__(12);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nconst LINEWIDTH_SCALE_FACTOR = 1.000001;\n\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n\n this.__originalBeginPath();\n };\n}\n\nfunction addContextCurrentTransform(ctx) {\n if (ctx._transformStack) {\n ctx._transformStack = [];\n }\n\n if (ctx.mozCurrentTransform) {\n return;\n }\n\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._originalResetTransform = ctx.resetTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n try {\n const desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), \"lineWidth\");\n ctx._setLineWidth = desc.set;\n ctx._getLineWidth = desc.get;\n Object.defineProperty(ctx, \"lineWidth\", {\n set: function setLineWidth(width) {\n this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n },\n get: function getLineWidth() {\n return this._getLineWidth();\n }\n });\n } catch (_) {}\n\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n const [a, b, c, d, e, f] = this._transformMatrix;\n const ad_bc = a * d - b * c;\n const bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n const old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n if (this._transformStack.length === 0) {\n (0, _util.warn)(\"Tried to restore a ctx when the stack was already empty.\");\n }\n\n const prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n const m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n const m = this._transformMatrix;\n m[0] *= x;\n m[1] *= x;\n m[2] *= y;\n m[3] *= y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n const m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n ctx._originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n const cosValue = Math.cos(angle);\n const sinValue = Math.sin(angle);\n const m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n}\n\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n getCanvas(id, width, height, trackTransform) {\n let canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n }\n\n delete(id) {\n delete this.cache[id];\n }\n\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n}\n\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = ctx.mozCurrentTransform;\n\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n\n if (!COMPILE_TYPE3_GLYPHS || width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n\n for (const elem of imgData.data) {\n let mask = 128;\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n let count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n let path, outlines, coords;\n\n if (!_is_node.isNodeJS) {\n path = new Path2D();\n } else {\n outlines = [];\n }\n\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n if (path) {\n path.moveTo(p % width1, i);\n } else {\n coords = [p % width1, i];\n }\n\n const p0 = p;\n let type = points[p];\n\n do {\n const step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n const pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n if (path) {\n path.lineTo(p % width1, p / width1 | 0);\n } else {\n coords.push(p % width1, p / width1 | 0);\n }\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n if (!path) {\n outlines.push(coords);\n }\n\n --i;\n }\n\n data = null;\n points = null;\n\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n\n if (path) {\n c.fill(path);\n } else {\n c.beginPath();\n\n for (const o of outlines) {\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n }\n\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n\n this.updateRectMinMax(transform, box);\n }\n\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n\n return box;\n }\n\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n\n isEmptyClip() {\n return this.minX === Infinity;\n }\n\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n\n}\n\nfunction putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n let white = 0xffffffff;\n let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.applyMaskImageData)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (let i = 0, ii = properties.length; i < ii; i++) {\n const property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\n\nfunction resetCtxToDefault(ctx, foregroundColor) {\n ctx.strokeStyle = ctx.fillStyle = foregroundColor || \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\n\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n let composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n\n return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.backgroundColor = pageColors?.background || null;\n this.foregroundColor = pageColors?.foreground || null;\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n\n return fallback;\n }\n\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const defaultBackgroundColor = background || \"#ffffff\";\n this.ctx.save();\n\n if (this.foregroundColor && this.backgroundColor) {\n this.ctx.fillStyle = this.foregroundColor;\n const fg = this.foregroundColor = this.ctx.fillStyle;\n this.ctx.fillStyle = this.backgroundColor;\n const bg = this.backgroundColor = this.ctx.fillStyle;\n let isValidDefaultBg = true;\n let defaultBg = defaultBackgroundColor;\n this.ctx.fillStyle = defaultBackgroundColor;\n defaultBg = this.ctx.fillStyle;\n isValidDefaultBg = typeof defaultBg === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg);\n\n if (fg === \"#000000\" && bg === \"#ffffff\" || fg === bg || !isValidDefaultBg) {\n this.foregroundColor = this.backgroundColor = null;\n } else {\n const cB = parseInt(defaultBg.slice(1), 16);\n const rB = (cB && 0xff0000) >> 16;\n const gB = (cB && 0x00ff00) >> 8;\n const bB = cB && 0x0000ff;\n\n const newComp = x => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n };\n\n const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB));\n\n this.selectColor = (r, g, b) => {\n const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b);\n return Math.round(lumC) === lumB ? bg : fg;\n };\n }\n }\n\n this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor;\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n }\n\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n }\n\n endDrawing() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n\n cache.clear();\n }\n\n this._cachedBitmapsMap.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight, false);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = ctx.mozCurrentTransform;\n let cache, cacheKey, scaled, maskCanvas;\n\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n const withoutTranslation = currentTransform.slice(0, 4);\n cacheKey = JSON.stringify(isPatternFill ? withoutTranslation : [withoutTranslation, fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n\n if (!cache) {\n cache = new Map();\n\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n\n const cachedImage = cache.get(cacheKey);\n\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n\n scaled = cachedImage;\n }\n\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height, false);\n putBinaryImageMask(maskCanvas.context, img);\n }\n\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight, true);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform.apply(fillCtx, maskToCanvas);\n\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, fillCtx.mozCurrentTransformInverse);\n scaled = scaled.img;\n\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(fillCtx.mozCurrentTransform, img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n\n const inverse = _util.Util.transform(fillCtx.mozCurrentTransformInverse, [1, 0, 0, 1, -offsetX, -offsetY]);\n\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking = null;\n }\n\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (let i = 0, ii = states.length; i < ii; i++) {\n const state = states[i];\n const key = state[0];\n const value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform);\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n\n this.ctx._removeMirroring();\n\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = ctx.mozCurrentTransform;\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n\n current.setCurrentPoint(x, y);\n }\n\n closePath() {\n this.ctx.closePath();\n }\n\n stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n\n const intersect = this.current.getClippedPathBoundingBox();\n\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n\n endPath() {\n this.consumePath();\n }\n\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n const name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10, false);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n let x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n this.compose();\n return undefined;\n }\n\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n }\n\n setCharWidth(xWidth, yWidth) {}\n\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n\n getColorN_Pattern(IR) {\n let pattern;\n\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n\n return pattern;\n }\n\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n\n setStrokeRGBColor(r, g, b) {\n const color = this.selectColor?.(r, g, b) || _util.Util.makeHexColor(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n\n setFillRGBColor(r, g, b) {\n const color = this.selectColor?.(r, g, b) || _util.Util.makeHexColor(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n\n _getPattern(objId, matrix = null) {\n let pattern;\n\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n\n if (matrix) {\n pattern.matrix = matrix;\n }\n\n return pattern;\n }\n\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n this.save();\n\n const pattern = this._getPattern(objId);\n\n ctx.fillStyle = pattern.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.SHADING);\n const inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax(this.ctx.mozCurrentTransform, bbox);\n this.clip();\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n\n const currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n const currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = this.ctx.mozCurrentTransform;\n this.restore();\n this.ctx.save();\n this.ctx.setTransform.apply(this.ctx, currentMtx);\n\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n\n beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n }\n\n endAnnotations() {\n this.restore();\n }\n\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.save();\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale(this.ctx.mozCurrentTransform);\n\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n const viewportScaleFactorStr = `var(--zoom-factor) * ${_display_utils.PixelsPerInch.PDF_TO_CSS_UNITS}`;\n canvas.style.width = `calc(${width}px * ${viewportScaleFactorStr})`;\n canvas.style.height = `calc(${height}px * ${viewportScaleFactorStr})`;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n addContextCurrentTransform(this.ctx);\n resetCtxToDefault(this.ctx, this.foregroundColor);\n } else {\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n }\n\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n\n this.restore();\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n\n const mask = this._createMaskCanvas(img);\n\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = ctx.mozCurrentTransform;\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n\n const mask = this._createMaskCanvas(img);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n\n ctx.drawImage(mask.canvas, x, y);\n }\n\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n\n for (let i = 0, ii = images.length; i < ii; i++) {\n const image = images[i];\n const width = image.width,\n height = image.height;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height, false);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height, false);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse);\n\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(ctx.mozCurrentTransform, imgData.interpolate);\n const [rWidth, rHeight] = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: rWidth,\n height: rHeight\n });\n }\n\n this.compose();\n this.restore();\n }\n\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h, false);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (let i = 0, ii = map.length; i < ii; i++) {\n const entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n\n markPoint(tag) {}\n\n markPointProps(tag, properties) {}\n\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n }\n\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n\n beginCompat() {}\n\n endCompat() {}\n\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n\n const ctx = this.ctx;\n\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n\n this.pendingClip = null;\n }\n\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = this.ctx.mozCurrentTransform;\n\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n\n getScaleForStroking() {\n if (!this._cachedScaleForStroking) {\n const {\n lineWidth\n } = this.current;\n const m = this.ctx.mozCurrentTransform;\n let scaleX, scaleY;\n\n if (m[1] === 0 && m[2] === 0) {\n const normX = Math.abs(m[0]);\n const normY = Math.abs(m[3]);\n\n if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[1]);\n const normY = Math.hypot(m[2], m[3]);\n\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n\n this._cachedScaleForStroking = [scaleX, scaleY];\n }\n\n return this._cachedScaleForStroking;\n }\n\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n\n let savedMatrix, savedDashes, savedDashOffset;\n\n if (saveRestore) {\n savedMatrix = ctx.mozCurrentTransform.slice();\n savedDashes = ctx.getLineDash().slice();\n savedDashOffset = ctx.lineDashOffset;\n }\n\n ctx.scale(scaleX, scaleY);\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n ctx.lineDashOffset /= scale;\n ctx.stroke();\n\n if (saveRestore) {\n ctx.setTransform(...savedMatrix);\n ctx.setLineDash(savedDashes);\n ctx.lineDashOffset = savedDashOffset;\n }\n }\n\n getCanvasPosition(x, y) {\n const transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.CanvasGraphics = CanvasGraphics;\n\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || _is_node.isNodeJS) {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n\n _createGradient(ctx) {\n let grad;\n\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n\n return grad;\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, ctx.mozCurrentTransform) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform.apply(tmpCtx, owner.baseTransform);\n\n if (this.matrix) {\n tmpCtx.transform.apply(tmpCtx, this.matrix);\n }\n\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`RadialAxialShadingPattern.getPattern: \"${ex?.message}\".`);\n }\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n\n return pattern;\n }\n\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n const bytes = data.data;\n\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (this.matrix) {\n ctx.transform.apply(ctx, this.matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n\n}\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\n\nclass TilingPattern {\n static get MAX_PATTERN_SIZE() {\n return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n }\n\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax(graphics.ctx.mozCurrentTransform, [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`TilingPattern.getPattern: \"${ex?.message}\".`);\n }\n\n return pattern;\n }\n\n}\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false\n}) {\n const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n\n if (widthRemainder === 0) {\n continue;\n }\n\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n\n return {\n srcPos,\n destPos\n };\n}\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.isClosed = true;\n streamController.controller.close();\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass Metadata {\n #metadataMap;\n #data;\n\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n\n getRaw() {\n return this.#data;\n }\n\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n\n has(name) {\n return this.#metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n\n for (const group of data.groups) {\n this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n _evaluateVisibilityExpression(array) {\n const length = array.length;\n\n if (length < 2) {\n return true;\n }\n\n const operator = array[0];\n\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n\n if (Array.isArray(element)) {\n state = this._evaluateVisibilityExpression(element);\n } else if (this._groups.has(element)) {\n state = this._groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n\n break;\n\n case \"Or\":\n if (state) {\n return true;\n }\n\n break;\n\n case \"Not\":\n return !state;\n\n default:\n return true;\n }\n }\n\n return operator === \"And\";\n }\n\n isVisible(group) {\n if (this._groups.size === 0) {\n return true;\n }\n\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this._evaluateVisibilityExpression(group.expression);\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n\n if (this._order) {\n return this._order.slice();\n }\n\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n return this._groups.size > 0 ? (0, _util.objectFromMap)(this._groups) : null;\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename = params.contentDispositionFilename || null;\n const initialData = params.initialData;\n\n if (initialData?.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader?.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader?.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\n\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n\n function walk(node) {\n if (!node) {\n return;\n }\n\n let str = null;\n const name = node.name;\n\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n\n if (str !== null) {\n items.push({\n str\n });\n }\n\n if (!node.children) {\n return;\n }\n\n for (const child of node.children) {\n walk(child);\n }\n }\n\n walk(xfa);\n return output;\n }\n\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n\n}\n\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\n\nvar _base_factory = __w_pdfjs_require__(6);\n\n;\n\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve(new Uint8Array(data));\n });\n });\n};\n\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n\n return Canvas.createCanvas(width, height);\n }\n\n}\n\nexports.NodeCanvasFactory = NodeCanvasFactory;\n\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n\n}\n\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayer = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _scripting_utils = __w_pdfjs_require__(21);\n\nvar _xfa_layer = __w_pdfjs_require__(22);\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let {\n width,\n height\n } = getRectDims(data.rect);\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n if (data.hasOwnCanvas) {\n const transform = viewport.transform.slice();\n\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale(transform);\n\n width = Math.ceil(width * scaleX);\n height = Math.ceil(height * scaleY);\n rect[0] *= scaleX;\n rect[1] *= scaleY;\n\n for (let i = 0; i < 4; i++) {\n transform[i] = Math.sign(transform[i]);\n }\n\n container.style.transform = `matrix(${transform.join(\",\")})`;\n } else {\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n }\n\n container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width -= 2 * data.borderStyle.width;\n height -= 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n const borderColor = data.borderColor || data.color || null;\n\n if (borderColor) {\n container.style.borderColor = _util.Util.makeHexColor(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n\n if (data.hasOwnCanvas) {\n container.style.width = container.style.height = \"auto\";\n } else {\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n }\n\n return container;\n }\n\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));\n };\n\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n event.target.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print\n });\n },\n hidden: event => {\n event.target.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n if (event.detail.required) {\n event.target.setAttribute(\"required\", \"\");\n } else {\n event.target.removeAttribute(\"required\");\n }\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n }\n });\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n\n if (action) {\n action(jsEvent);\n }\n }\n }\n\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n\n if (!storedData) {\n return;\n }\n\n const commonActions = this._commonActions;\n\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n\n if (action) {\n action({\n detail,\n target: element\n });\n delete storedData[actionName];\n }\n }\n }\n\n _createQuadrilaterals(ignoreBorder = false) {\n if (!this.data.quadPoints) {\n return null;\n }\n\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n\n _createPopup(trigger, data) {\n let container = this.container;\n\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n\n _renderQuadrilaterals(className) {\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n\n return this.quadrilaterals;\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n _getElementsByName(name, skipId = null) {\n const fields = [];\n\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n\n if (id === skipId) {\n continue;\n }\n\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.getElementById(id);\n\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n\n return fields;\n }\n\n for (const domElement of document.getElementsByName(name)) {\n const {\n id,\n exportValue\n } = domElement;\n\n if (id === skipId) {\n continue;\n }\n\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n\n return fields;\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action || parameters.data.isTooltipOnly || parameters.data.resetForm || parameters.data.actions && (parameters.data.actions.Action || parameters.data.actions[\"Mouse Up\"] || parameters.data.actions[\"Mouse Down\"]));\n super(parameters, {\n isRenderable,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n }\n\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n } else {\n let hasClickAction = false;\n\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n hasClickAction = true;\n\n this._bindJSAction(link, data);\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n } else if (!hasClickAction) {\n this._bindLink(link, \"\");\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.appendChild(linkElement);\n return quadrilateral;\n });\n }\n\n this.container.className = \"linkAnnotation\";\n this.container.appendChild(link);\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n\n return false;\n };\n\n if (destination || destination === \"\") {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n\n if (!jsName) {\n continue;\n }\n\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n\n if (!link.onclick) {\n link.onclick = () => false;\n }\n\n link.className = \"internalLink\";\n }\n\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n\n return;\n }\n\n link.onclick = () => {\n if (otherClickAction) {\n otherClickAction();\n }\n\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n\n const storage = this.annotationStorage;\n const allIds = [];\n\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n default:\n continue;\n }\n\n const domElement = document.getElementById(id);\n\n if (!domElement || !GetElementsByNameSet.has(domElement)) {\n continue;\n }\n\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n\n return false;\n };\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = AnnotationElement.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const textContent = storedData.formattedValue || storedData.value || \"\";\n const elementData = {\n userValue: null,\n formattedValue: null,\n valueOnFocus: \"\"\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n\n GetElementsByNameSet.add(element);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n elementData.userValue = textContent;\n element.setAttribute(\"id\", id);\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n\n event.target.scrollLeft = 0;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n\n elementData.valueOnFocus = event.target.value;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n\n storage.setValue(id, {\n formattedValue\n });\n },\n\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n let commitKey = -1;\n\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n\n if (commitKey === -1) {\n return;\n }\n\n const {\n value\n } = event.target;\n\n if (elementData.valueOnFocus === value) {\n return;\n }\n\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n const {\n value\n } = event.target;\n elementData.userValue = value;\n\n if (this._mouseState.isDown && elementData.valueOnFocus !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n\n _blurListener(event);\n });\n\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n\n if (match) {\n selStart -= match[0].length;\n }\n\n break;\n }\n\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n\n if (match) {\n selEnd += match[0].length;\n }\n\n break;\n }\n\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n\n break;\n\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n\n break;\n }\n\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n\n this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontSize,\n fontColor\n } = this.data.defaultAppearanceData;\n const style = element.style;\n\n if (fontSize) {\n style.fontSize = `${fontSize}px`;\n }\n\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"id\", id);\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"id\", id);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n this._setDefaultPropertiesFromJS(container);\n\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let {\n fontSize\n } = this.data.defaultAppearanceData;\n\n if (!fontSize) {\n fontSize = 9;\n }\n\n const fontSizeStyle = `calc(${fontSize}px * var(--zoom-factor))`;\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n selectElement.setAttribute(\"id\", id);\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n selectElement.style.fontSize = `${fontSize}px`;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.combo) {\n optionElement.style.fontSize = fontSizeStyle;\n }\n\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n const getValue = (event, isExport) => {\n const name = isExport ? \"value\" : \"textContent\";\n const options = event.target.options;\n\n if (!event.target.multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n\n if (i === -1) {\n options[0].selected = true;\n }\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n storage.setValue(id, {\n value: null,\n items: []\n });\n },\n\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.insertBefore(optionElement, selectElement.children[index]);\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n items(event) {\n const {\n items\n } = event.detail;\n\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.appendChild(optionElement);\n }\n\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n indices(event) {\n const indices = new Set(event.detail.indices);\n\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(event, true);\n const value = getValue(event, false);\n storage.setValue(id, {\n value: exportValue\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n\n this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"]], event => event.target.checked);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(event, true)\n });\n });\n }\n\n this._setBackgroundColor(selectElement);\n\n this._setDefaultPropertiesFromJS(selectElement);\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElements = this.layer.querySelectorAll(selector);\n\n if (parentElements.length === 0) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText\n });\n const page = this.page;\n\n const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n\n const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`;\n this.container.style.left = `${popupLeft}px`;\n this.container.style.top = `${popupTop}px`;\n this.container.appendChild(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.appendChild(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n if (this.richText?.str && (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup\n });\n\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n\n popup.appendChild(contents);\n }\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex -= 1;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n this._createPopup(polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.titleObj?.str || this.data.contentsObj?.str || this.data.richText)) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n _download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n\n const {\n width,\n height\n } = getRectDims(data.rect);\n\n if (width <= 0 || height <= 0) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n sortedAnnotations.push(data);\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n const div = parameters.div;\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\n mouseState: parameters.mouseState || {\n isDown: false\n }\n });\n\n if (element.isRenderable) {\n const rendered = element.render();\n\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n div.appendChild(renderedElement);\n }\n } else {\n if (element instanceof PopupAnnotationElement) {\n div.prepend(rendered);\n } else {\n div.appendChild(rendered);\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, parameters.annotationCanvasMap);\n }\n\n static update(parameters) {\n const {\n page,\n viewport,\n annotations,\n annotationCanvasMap,\n div\n } = parameters;\n const transform = viewport.transform;\n const matrix = `matrix(${transform.join(\",\")})`;\n let scale, ownMatrix;\n\n for (const data of annotations) {\n const elements = div.querySelectorAll(`[data-annotation-id=\"${data.id}\"]`);\n\n if (elements) {\n for (const element of elements) {\n if (data.hasOwnCanvas) {\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n if (!ownMatrix) {\n scale = Math.abs(transform[0] || transform[1]);\n const ownTransform = transform.slice();\n\n for (let i = 0; i < 4; i++) {\n ownTransform[i] = Math.sign(ownTransform[i]);\n }\n\n ownMatrix = `matrix(${ownTransform.join(\",\")})`;\n }\n\n const left = rect[0] * scale;\n const top = rect[1] * scale;\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n element.style.transformOrigin = `${-left}px ${-top}px`;\n element.style.transform = ownMatrix;\n } else {\n element.style.transform = matrix;\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n div.hidden = false;\n }\n\n static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n\n if (!element) {\n continue;\n }\n\n const {\n firstChild\n } = element;\n\n if (firstChild.nodeName === \"CANVAS\") {\n element.replaceChild(canvas, firstChild);\n } else {\n element.insertBefore(canvas, firstChild);\n }\n }\n\n annotationCanvasMap.clear();\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\n\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n\n static RGB_HTML([r, g, b]) {\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n\n static T_HTML() {\n return \"#00000000\";\n }\n\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n\n static CMYK_HTML(components) {\n return this.RGB_HTML(this.CMYK_RGB(components));\n }\n\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n\n}\n\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\n\nvar _xfa_text = __w_pdfjs_require__(18);\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n\n break;\n\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined || key === \"dataId\") {\n continue;\n }\n\n if (key !== \"style\") {\n if (key === \"textContent\") {\n html.textContent = value;\n } else if (key === \"class\") {\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n } else {\n if (isHTMLAnchorElement && (key === \"href\" || key === \"newWindow\")) {\n continue;\n }\n\n html.setAttribute(key, value);\n }\n } else {\n Object.assign(html.style, value);\n }\n }\n\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.appendChild(rootHtml);\n\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n const textDivs = [];\n\n while (stack.length > 0) {\n const [parent, i, html] = stack[stack.length - 1];\n\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack[stack.length - 1][1]];\n\n if (child === null) {\n continue;\n }\n\n const {\n name\n } = child;\n\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.appendChild(node);\n continue;\n }\n\n let childHtml;\n\n if (child?.attributes?.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.appendChild(childHtml);\n\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n\n childHtml.appendChild(node);\n }\n }\n\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n\n return {\n textDivs\n };\n }\n\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n\n}\n\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n const cachedAscent = ascentCache.get(fontFamily);\n\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n\n if (ascent) {\n ctx.restore();\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = task._enhanceTextSelection ? {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n } : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL\n };\n\n task._textDivs.push(textDiv);\n\n const tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\n if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n let angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n const divHeight = fontHeight;\n let m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (let i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n}\n\nfunction expand(task) {\n const bounds = task._bounds;\n const viewport = task._viewport;\n const expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (let i = 0; i < expanded.length; i++) {\n const div = bounds[i].div;\n\n const divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n const e = expanded[i],\n b = bounds[i];\n const m = b.m,\n c = m[0],\n s = m[1];\n const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n const ts = new Float64Array(64);\n\n for (let j = 0, jj = points.length; j < jj; j++) {\n const t = _util.Util.applyTransform(points[j], m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n\n const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n const bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n const expanded = new Array(boxes.length);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n }\n\n boxes.map(function (box, i) {\n const e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n }\n\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n const fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n const horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n\n for (const boundary of bounds) {\n let i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n let j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n let horizonPart, affectedBoundary;\n let q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n let xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n const changedHorizon = [];\n let lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n let used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n }\n\n for (const horizonPart of horizon) {\n const affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nclass TextLayerRenderTask {\n constructor({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise.finally(() => {\n if (!this._enhanceTextSelection) {\n this._textDivProperties = null;\n }\n\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (items[i].type === \"beginMarkedContentProps\" || items[i].type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n\n this._container.classList.add(\"markedContent\");\n\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", `${items[i].id}`);\n }\n\n parent.appendChild(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n\n continue;\n }\n\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n const {\n fontSize,\n fontFamily\n } = textDiv.style;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n const scale = textDivProperties.canvasWidth / width;\n\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n\n transform = `scaleX(${scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.appendChild(textDiv);\n }\n\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n\n this._container.appendChild(br);\n }\n }\n\n _render(timeout = 0) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\" parameters specified.');\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n\n expandTextDivs(expandDivs = false) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n\n}\n\nfunction renderTextLayer(renderParameters) {\n const task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nlet SVGGraphics = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n }\n\n};\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(26);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(27);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {}\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(26);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n pendingRequest.onProgress?.(evt);\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n this._headersReceivedCapability.reject(this._storedError);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n this.onClosed?.(this);\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._close();\n }\n\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(26);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController?.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(4);\n\nvar _display_utils = __w_pdfjs_require__(5);\n\nvar _annotation_layer = __w_pdfjs_require__(20);\n\nvar _worker_options = __w_pdfjs_require__(13);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _text_layer = __w_pdfjs_require__(23);\n\nvar _svg = __w_pdfjs_require__(24);\n\nvar _xfa_layer = __w_pdfjs_require__(22);\n\nconst pdfjsVersion = '2.14.305';\nconst pdfjsBuild = 'eaaa8b4ad';\n{\n if (_is_node.isNodeJS) {\n const {\n PDFNodeStream\n } = __w_pdfjs_require__(25);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const {\n PDFNetworkStream\n } = __w_pdfjs_require__(28);\n\n const {\n PDFFetchStream\n } = __w_pdfjs_require__(29);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if ((0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/web/pdf_viewer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DefaultXfaLayerFactory = exports.DefaultTextLayerFactory = exports.DefaultStructTreeLayerFactory = exports.DefaultAnnotationLayerFactory = void 0;\n\nvar _annotation_layer_builder = __w_pdfjs_require__(2);\n\nvar _l10n_utils = __w_pdfjs_require__(4);\n\nvar _pdf_link_service = __w_pdfjs_require__(5);\n\nvar _struct_tree_layer_builder = __w_pdfjs_require__(7);\n\nvar _text_layer_builder = __w_pdfjs_require__(8);\n\nvar _xfa_layer_builder = __w_pdfjs_require__(9);\n\nclass DefaultAnnotationLayerFactory {\n createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = \"\", renderForms = true, l10n = _l10n_utils.NullL10n, enableScripting = false, hasJSActionsPromise = null, mouseState = null, fieldObjectsPromise = null, annotationCanvasMap = null) {\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderForms,\n linkService: new _pdf_link_service.SimpleLinkService(),\n l10n,\n annotationStorage,\n enableScripting,\n hasJSActionsPromise,\n fieldObjectsPromise,\n mouseState,\n annotationCanvasMap\n });\n }\n\n}\n\nexports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;\n\nclass DefaultStructTreeLayerFactory {\n createStructTreeLayerBuilder(pdfPage) {\n return new _struct_tree_layer_builder.StructTreeLayerBuilder({\n pdfPage\n });\n }\n\n}\n\nexports.DefaultStructTreeLayerFactory = DefaultStructTreeLayerFactory;\n\nclass DefaultTextLayerFactory {\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus, highlighter) {\n return new _text_layer_builder.TextLayerBuilder({\n textLayerDiv,\n pageIndex,\n viewport,\n enhanceTextSelection,\n eventBus,\n highlighter\n });\n }\n\n}\n\nexports.DefaultTextLayerFactory = DefaultTextLayerFactory;\n\nclass DefaultXfaLayerFactory {\n createXfaLayerBuilder(pageDiv, pdfPage, annotationStorage = null, xfaHtml = null) {\n return new _xfa_layer_builder.XfaLayerBuilder({\n pageDiv,\n pdfPage,\n annotationStorage,\n linkService: new _pdf_link_service.SimpleLinkService(),\n xfaHtml\n });\n }\n\n}\n\nexports.DefaultXfaLayerFactory = DefaultXfaLayerFactory;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nvar _l10n_utils = __w_pdfjs_require__(4);\n\nclass AnnotationLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderForms = true,\n l10n = _l10n_utils.NullL10n,\n enableScripting = false,\n hasJSActionsPromise = null,\n fieldObjectsPromise = null,\n mouseState = null,\n annotationCanvasMap = null\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderForms = renderForms;\n this.l10n = l10n;\n this.annotationStorage = annotationStorage;\n this.enableScripting = enableScripting;\n this._hasJSActionsPromise = hasJSActionsPromise;\n this._fieldObjectsPromise = fieldObjectsPromise;\n this._mouseState = mouseState;\n this._annotationCanvasMap = annotationCanvasMap;\n this.div = null;\n this._cancelled = false;\n }\n\n async render(viewport, intent = \"display\") {\n const [annotations, hasJSActions = false, fieldObjects = null] = await Promise.all([this.pdfPage.getAnnotations({\n intent\n }), this._hasJSActionsPromise, this._fieldObjectsPromise]);\n\n if (this._cancelled || annotations.length === 0) {\n return;\n }\n\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n annotations,\n page: this.pdfPage,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.renderForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n annotationStorage: this.annotationStorage,\n enableScripting: this.enableScripting,\n hasJSActions,\n fieldObjects,\n mouseState: this._mouseState,\n annotationCanvasMap: this._annotationCanvasMap\n };\n\n if (this.div) {\n _pdfjsLib.AnnotationLayer.update(parameters);\n } else {\n this.div = document.createElement(\"div\");\n this.div.className = \"annotationLayer\";\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n\n _pdfjsLib.AnnotationLayer.render(parameters);\n\n this.l10n.translate(this.div);\n }\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n\n this.div.hidden = true;\n }\n\n}\n\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\n/***/ }),\n/* 3 */\n/***/ ((module) => {\n\n\n\nlet pdfjsLib;\n\nif (typeof window !== \"undefined\" && window[\"pdfjs-dist/build/pdf\"]) {\n pdfjsLib = window[\"pdfjs-dist/build/pdf\"];\n} else {\n pdfjsLib = require(\"../build/pdf.js\");\n}\n\nmodule.exports = pdfjsLib;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.fixupLangCode = fixupLangCode;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n print_progress_percent: \"{{progress}}%\",\n \"toggle_sidebar.title\": \"Toggle Sidebar\",\n \"toggle_sidebar_notification2.title\": \"Toggle Sidebar (document contains outline/attachments/layers)\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n error_version_info: \"PDF.js v{{version}} (build: {{build}})\",\n error_message: \"Message: {{message}}\",\n error_stack: \"Stack: {{stack}}\",\n error_file: \"File: {{file}}\",\n error_line: \"Line: {{line}}\",\n rendering_error: \"An error occurred while rendering the page.\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading: \"Loading…\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\"\n};\n\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\n\nconst PARTIAL_LANG_CODES = {\n en: \"en-US\",\n es: \"es-ES\",\n fy: \"fy-NL\",\n ga: \"ga-IE\",\n gu: \"gu-IN\",\n hi: \"hi-IN\",\n hy: \"hy-AM\",\n nb: \"nb-NO\",\n ne: \"ne-NP\",\n nn: \"nn-NO\",\n pa: \"pa-IN\",\n pt: \"pt-PT\",\n sv: \"sv-SE\",\n zh: \"zh-CN\"\n};\n\nfunction fixupLangCode(langCode) {\n return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode;\n}\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n\n async getDirection() {\n return \"ltr\";\n },\n\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n\n async translate(element) {}\n\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n if (!url || typeof url !== \"string\") {\n throw new Error('A valid \"url\" parameter must provided.');\n }\n\n const urlNullRemoved = (0, _ui_utils.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nclass PDFLinkService {\n #pagesRefCache = new Map();\n\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this.#pagesRefCache.clear();\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n\n #goToDestinationHelper(rawDest, namedDest = null, explicitDest) {\n const destRef = explicitDest[0];\n let pageNumber;\n\n if (typeof destRef === \"object\" && destRef !== null) {\n pageNumber = this._cachedPageNumber(destRef);\n\n if (!pageNumber) {\n this.pdfDocument.getPageIndex(destRef).then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n this.#goToDestinationHelper(rawDest, namedDest, explicitDest);\n }).catch(() => {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` + `a valid page reference, for dest=\"${rawDest}\".`);\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` + `a valid destination reference, for dest=\"${rawDest}\".`);\n return;\n }\n\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${pageNumber}\" is not ` + `a valid page number, for dest=\"${rawDest}\".`);\n return;\n }\n\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({\n namedDest,\n explicitDest,\n pageNumber\n });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom\n });\n }\n\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n\n let namedDest, explicitDest;\n\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n\n if (!Array.isArray(explicitDest)) {\n console.error(`PDFLinkService.goToDestination: \"${explicitDest}\" is not ` + `a valid destination array, for dest=\"${dest}\".`);\n return;\n }\n\n this.#goToDestinationHelper(dest, namedDest, explicitDest);\n }\n\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n const pageNumber = typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0;\n\n if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber\n });\n }\n\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel: this.externalLinkRel,\n enabled: this.externalLinkEnabled\n });\n }\n\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n\n return this.getAnchorUrl(\"\");\n }\n\n getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n\n let pageNumber, dest;\n\n if (hash.includes(\"=\")) {\n const params = (0, _ui_utils.parseQueryString)(hash);\n\n if (params.has(\"search\")) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params.get(\"search\").replace(/\"/g, \"\"),\n phraseSearch: params.get(\"phrase\") === \"true\"\n });\n }\n\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n\n if (params.has(\"zoom\")) {\n const zoomArgs = params.get(\"zoom\").split(\",\");\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`);\n }\n }\n }\n\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\")\n });\n }\n\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n } else {\n dest = unescape(hash);\n\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === \"string\" || PDFLinkService.#isValidExplicitDestination(dest)) {\n this.goToDestination(dest);\n return;\n }\n\n console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not a valid destination.`);\n }\n }\n\n executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break;\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action\n });\n }\n\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this.#pagesRefCache.set(refStr, pageNum);\n }\n\n _cachedPageNumber(pageRef) {\n if (!pageRef) {\n return null;\n }\n\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this.#pagesRefCache.get(refStr) || null;\n }\n\n isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n\n isPageCached(pageNumber) {\n return this.pdfViewer.isPageCached(pageNumber);\n }\n\n static #isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n\n const destLength = dest.length;\n\n if (destLength < 2) {\n return false;\n }\n\n const page = dest[0];\n\n if (!(typeof page === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n\n const zoom = dest[1];\n\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n\n let allowNull = true;\n\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n\n break;\n\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n\n break;\n\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n\n allowNull = false;\n break;\n\n default:\n return false;\n }\n\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.PDFLinkService = PDFLinkService;\n\nclass SimpleLinkService {\n constructor() {\n this.externalLinkEnabled = true;\n }\n\n get pagesCount() {\n return 0;\n }\n\n get page() {\n return 0;\n }\n\n set page(value) {}\n\n get rotation() {\n return 0;\n }\n\n set rotation(value) {}\n\n async goToDestination(dest) {}\n\n goToPage(val) {}\n\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n enabled: this.externalLinkEnabled\n });\n }\n\n getDestinationHash(dest) {\n return \"#\";\n }\n\n getAnchorUrl(hash) {\n return \"#\";\n }\n\n setHash(hash) {}\n\n executeNamedAction(action) {}\n\n cachePageRef(pageNum, pageRef) {}\n\n isPageVisible(pageNumber) {\n return true;\n }\n\n isPageCached(pageNumber) {\n return true;\n }\n\n}\n\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.AutoPrintRegExp = void 0;\nexports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes;\nexports.apiPageModeToSidebarView = apiPageModeToSidebarView;\nexports.approximateFraction = approximateFraction;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.getActiveOrFocusedElement = getActiveOrFocusedElement;\nexports.getPageSizeInches = getPageSizeInches;\nexports.getVisibleElements = getVisibleElements;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.normalizeWheelEventDirection = normalizeWheelEventDirection;\nexports.parseQueryString = parseQueryString;\nexports.removeNullCharacters = removeNullCharacters;\nexports.roundToDivide = roundToDivide;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst DEFAULT_SCALE_DELTA = 1.1;\nexports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1,\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4\n};\nexports.SidebarView = SidebarView;\nconst RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\"\n};\nexports.RendererType = RendererType;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\n\nclass OutputScale {\n constructor() {\n const pixelRatio = window.devicePixelRatio || 1;\n this.sx = pixelRatio;\n this.sy = pixelRatio;\n }\n\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n\n}\n\nexports.OutputScale = OutputScale;\n\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n let parent = element.offsetParent;\n\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains(\"markedContent\") || getComputedStyle(parent).overflow === \"hidden\")) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n const params = new Map();\n\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n\n return params;\n}\n\nconst NullCharactersRegExp = /\\x00/g;\nconst InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\n\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (typeof str !== \"string\") {\n console.error(`The argument must be a string.`);\n return str;\n }\n\n if (replaceInvisible) {\n str = str.replace(InvisibleCharactersRegExp, \" \");\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n const xinv = 1 / x;\n const limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n const p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n let result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = fractionHeight * fractionWidth * 100 | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent,\n widthPercent: fractionWidth * 100 | 0\n });\n ids.add(view.id);\n }\n\n const first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first,\n last,\n views: visible,\n ids\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n return delta;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = normalizeWheelEventDirection(evt);\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n constructor(id) {\n if (arguments.length > 1) {\n throw new Error(\"ProgressBar no longer accepts any additional options, \" + \"please use CSS rules to modify its appearance instead.\");\n }\n\n this.visible = true;\n this.div = document.querySelector(id + \" .progress\");\n this.bar = this.div.parentNode;\n this.percent = 0;\n }\n\n #updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n const doc = document.documentElement;\n doc.style.setProperty(\"--progressBar-percent\", `${this._percent}%`);\n }\n\n get percent() {\n return this._percent;\n }\n\n set percent(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n this.#updateBar();\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n const doc = document.documentElement;\n doc.style.setProperty(\"--progressBar-end-offset\", `${scrollbarWidth}px`);\n }\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n }\n\n show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n this.bar.classList.remove(\"hidden\");\n }\n\n}\n\nexports.ProgressBar = ProgressBar;\n\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n\n return curActiveOrFocused;\n}\n\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n\n case \"OneColumn\":\n break;\n\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n\n return {\n scrollMode,\n spreadMode\n };\n}\n\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n\n return SidebarView.NONE;\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StructTreeLayerBuilder = void 0;\nconst PDF_ROLE_TO_HTML_ROLE = {\n Document: null,\n DocumentFragment: null,\n Part: \"group\",\n Sect: \"group\",\n Div: \"group\",\n Aside: \"note\",\n NonStruct: \"none\",\n P: null,\n H: \"heading\",\n Title: null,\n FENote: \"note\",\n Sub: \"group\",\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: \"link\",\n Annot: \"note\",\n Form: \"form\",\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n L: \"list\",\n LI: \"listitem\",\n LBody: null,\n Table: \"table\",\n TR: \"row\",\n TH: \"columnheader\",\n TD: \"cell\",\n THead: \"columnheader\",\n TBody: null,\n TFoot: null,\n Caption: null,\n Figure: \"figure\",\n Formula: null,\n Artifact: null\n};\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\nclass StructTreeLayerBuilder {\n constructor({\n pdfPage\n }) {\n this.pdfPage = pdfPage;\n }\n\n render(structTree) {\n return this._walk(structTree);\n }\n\n _setAttributes(structElement, htmlElement) {\n if (structElement.alt !== undefined) {\n htmlElement.setAttribute(\"aria-label\", structElement.alt);\n }\n\n if (structElement.id !== undefined) {\n htmlElement.setAttribute(\"aria-owns\", structElement.id);\n }\n\n if (structElement.lang !== undefined) {\n htmlElement.setAttribute(\"lang\", structElement.lang);\n }\n }\n\n _walk(node) {\n if (!node) {\n return null;\n }\n\n const element = document.createElement(\"span\");\n\n if (\"role\" in node) {\n const {\n role\n } = node;\n const match = role.match(HEADING_PATTERN);\n\n if (match) {\n element.setAttribute(\"role\", \"heading\");\n element.setAttribute(\"aria-level\", match[1]);\n } else if (PDF_ROLE_TO_HTML_ROLE[role]) {\n element.setAttribute(\"role\", PDF_ROLE_TO_HTML_ROLE[role]);\n }\n }\n\n this._setAttributes(node, element);\n\n if (node.children) {\n if (node.children.length === 1 && \"id\" in node.children[0]) {\n this._setAttributes(node.children[0], element);\n } else {\n for (const kid of node.children) {\n element.appendChild(this._walk(kid));\n }\n }\n }\n\n return element;\n }\n\n}\n\nexports.StructTreeLayerBuilder = StructTreeLayerBuilder;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nconst EXPAND_DIVS_TIMEOUT = 300;\n\nclass TextLayerBuilder {\n constructor({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n highlighter = null,\n enhanceTextSelection = false\n }) {\n this.textLayerDiv = textLayerDiv;\n this.eventBus = eventBus;\n this.textContent = null;\n this.textContentItemsStr = [];\n this.textContentStream = null;\n this.renderingDone = false;\n this.pageNumber = pageIndex + 1;\n this.viewport = viewport;\n this.textDivs = [];\n this.textLayerRenderTask = null;\n this.highlighter = highlighter;\n this.enhanceTextSelection = enhanceTextSelection;\n\n this._bindMouse();\n }\n\n _finishRendering() {\n this.renderingDone = true;\n\n if (!this.enhanceTextSelection) {\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.textLayerDiv.appendChild(endOfContent);\n }\n\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.pageNumber,\n numTextDivs: this.textDivs.length\n });\n }\n\n render(timeout = 0) {\n if (!(this.textContent || this.textContentStream) || this.renderingDone) {\n return;\n }\n\n this.cancel();\n this.textDivs.length = 0;\n this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr);\n const textLayerFrag = document.createDocumentFragment();\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContent: this.textContent,\n textContentStream: this.textContentStream,\n container: textLayerFrag,\n viewport: this.viewport,\n textDivs: this.textDivs,\n textContentItemsStr: this.textContentItemsStr,\n timeout,\n enhanceTextSelection: this.enhanceTextSelection\n });\n this.textLayerRenderTask.promise.then(() => {\n this.textLayerDiv.appendChild(textLayerFrag);\n\n this._finishRendering();\n\n this.highlighter?.enable();\n }, function (reason) {});\n }\n\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n\n this.highlighter?.disable();\n }\n\n setTextContentStream(readableStream) {\n this.cancel();\n this.textContentStream = readableStream;\n }\n\n setTextContent(textContent) {\n this.cancel();\n this.textContent = textContent;\n }\n\n _bindMouse() {\n const div = this.textLayerDiv;\n let expandDivsTimer = null;\n div.addEventListener(\"mousedown\", evt => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(true);\n\n if (expandDivsTimer) {\n clearTimeout(expandDivsTimer);\n expandDivsTimer = null;\n }\n\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n let adjustTop = evt.target !== div;\n adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue(\"-moz-user-select\") !== \"none\";\n\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n\n end.classList.add(\"active\");\n });\n div.addEventListener(\"mouseup\", () => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n expandDivsTimer = setTimeout(() => {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(false);\n }\n\n expandDivsTimer = null;\n }, EXPAND_DIVS_TIMEOUT);\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n end.style.top = \"\";\n end.classList.remove(\"active\");\n });\n }\n\n}\n\nexports.TextLayerBuilder = TextLayerBuilder;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nclass XfaLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n annotationStorage = null,\n linkService,\n xfaHtml = null\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.annotationStorage = annotationStorage;\n this.linkService = linkService;\n this.xfaHtml = xfaHtml;\n this.div = null;\n this._cancelled = false;\n }\n\n render(viewport, intent = \"display\") {\n if (intent === \"print\") {\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n xfaHtml: this.xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent\n };\n const div = document.createElement(\"div\");\n this.pageDiv.appendChild(div);\n parameters.div = div;\n\n const result = _pdfjsLib.XfaLayer.render(parameters);\n\n return Promise.resolve(result);\n }\n\n return this.pdfPage.getXfa().then(xfaHtml => {\n if (this._cancelled || !xfaHtml) {\n return {\n textDivs: []\n };\n }\n\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent\n };\n\n if (this.div) {\n return _pdfjsLib.XfaLayer.update(parameters);\n }\n\n this.div = document.createElement(\"div\");\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n return _pdfjsLib.XfaLayer.render(parameters);\n }).catch(error => {\n console.error(error);\n });\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n\n this.div.hidden = true;\n }\n\n}\n\nexports.XfaLayerBuilder = XfaLayerBuilder;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFViewer = exports.PDFSinglePageViewer = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _base_viewer = __w_pdfjs_require__(11);\n\nclass PDFViewer extends _base_viewer.BaseViewer {}\n\nexports.PDFViewer = PDFViewer;\n\nclass PDFSinglePageViewer extends _base_viewer.BaseViewer {\n _resetView() {\n super._resetView();\n\n this._scrollMode = _ui_utils.ScrollMode.PAGE;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n }\n\n set scrollMode(mode) {}\n\n _updateScrollMode() {}\n\n set spreadMode(mode) {}\n\n _updateSpreadMode() {}\n\n}\n\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PagesCountLimit = exports.PDFPageViewBuffer = exports.BaseViewer = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _annotation_layer_builder = __w_pdfjs_require__(2);\n\nvar _l10n_utils = __w_pdfjs_require__(4);\n\nvar _pdf_page_view = __w_pdfjs_require__(12);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _pdf_link_service = __w_pdfjs_require__(5);\n\nvar _struct_tree_layer_builder = __w_pdfjs_require__(7);\n\nvar _text_highlighter = __w_pdfjs_require__(15);\n\nvar _text_layer_builder = __w_pdfjs_require__(8);\n\nvar _xfa_layer_builder = __w_pdfjs_require__(9);\n\nconst DEFAULT_CACHE_SIZE = 10;\nconst ENABLE_PERMISSIONS_CLASS = \"enablePermissions\";\nconst PagesCountLimit = {\n FORCE_SCROLL_MODE_PAGE: 15000,\n FORCE_LAZY_PAGE_INIT: 7500,\n PAUSE_EAGER_PAGE_INIT: 250\n};\nexports.PagesCountLimit = PagesCountLimit;\n\nclass PDFPageViewBuffer {\n #buf = new Set();\n #size = 0;\n\n constructor(size) {\n this.#size = size;\n }\n\n push(view) {\n const buf = this.#buf;\n\n if (buf.has(view)) {\n buf.delete(view);\n }\n\n buf.add(view);\n\n if (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n\n resize(newSize, idsToKeep = null) {\n this.#size = newSize;\n const buf = this.#buf;\n\n if (idsToKeep) {\n const ii = buf.size;\n let i = 1;\n\n for (const view of buf) {\n if (idsToKeep.has(view.id)) {\n buf.delete(view);\n buf.add(view);\n }\n\n if (++i > ii) {\n break;\n }\n }\n }\n\n while (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n\n has(view) {\n return this.#buf.has(view);\n }\n\n [Symbol.iterator]() {\n return this.#buf.keys();\n }\n\n #destroyFirstView() {\n const firstView = this.#buf.keys().next().value;\n firstView?.destroy();\n this.#buf.delete(firstView);\n }\n\n}\n\nexports.PDFPageViewBuffer = PDFPageViewBuffer;\n\nclass BaseViewer {\n #buffer = null;\n #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n #previousAnnotationMode = null;\n #enablePermissions = false;\n #previousContainerHeight = 0;\n #scrollModePageState = null;\n #onVisibilityChange = null;\n\n constructor(options) {\n if (this.constructor === BaseViewer) {\n throw new Error(\"Cannot initialize BaseViewer.\");\n }\n\n const viewerVersion = '2.14.305';\n\n if (_pdfjsLib.version !== viewerVersion) {\n throw new Error(`The API version \"${_pdfjsLib.version}\" does not match the Viewer version \"${viewerVersion}\".`);\n }\n\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n\n if (!(this.container?.tagName.toUpperCase() === \"DIV\" && this.viewer?.tagName.toUpperCase() === \"DIV\")) {\n throw new Error(\"Invalid `container` and/or `viewer` option.\");\n }\n\n if (this.container.offsetParent && getComputedStyle(this.container).position !== \"absolute\") {\n throw new Error(\"The `container` must be absolutely positioned.\");\n }\n\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this._scriptingManager = options.scriptingManager || null;\n this.removePageBorders = options.removePageBorders || false;\n this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE;\n this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.#enablePermissions = options.enablePermissions || false;\n this.pageColors = options.pageColors || null;\n\n if (options.pageColors && (!CSS.supports(\"color\", options.pageColors.background) || !CSS.supports(\"color\", options.pageColors.foreground))) {\n if (options.pageColors.background || options.pageColors.foreground) {\n console.warn(\"Ignoring `pageColors`-option, since the browser doesn't support the values used.\");\n }\n\n this.pageColors = null;\n }\n\n this.defaultRenderingQueue = !options.renderingQueue;\n\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n\n this._doc = document.documentElement;\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n\n this._resetView();\n\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n\n this.updateContainerHeightCss();\n Promise.resolve().then(() => {\n this.eventBus.dispatch(\"baseviewerinit\", {\n source: this\n });\n });\n }\n\n get pagesCount() {\n return this._pages.length;\n }\n\n getPageView(index) {\n return this._pages[index];\n }\n\n get pageViewsReady() {\n if (!this._pagesCapability.settled) {\n return false;\n }\n\n return this._pages.every(function (pageView) {\n return pageView?.pdfPage;\n });\n }\n\n get renderForms() {\n return this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n }\n\n get enableScripting() {\n return !!this._scriptingManager;\n }\n\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(`currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this.#resetCurrentPageView();\n }\n\n return true;\n }\n\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n\n const previous = this._currentPageNumber;\n this._currentPageNumber = val;\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels?.[val - 1] ?? null,\n previous\n });\n\n if (resetCurrentPageView) {\n this.#resetCurrentPageView();\n }\n\n return true;\n }\n\n get currentPageLabel() {\n return this._pageLabels?.[this._currentPageNumber - 1] ?? null;\n }\n\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n let page = val | 0;\n\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n\n if (i >= 0) {\n page = i + 1;\n }\n }\n\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(`currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n\n get currentScale() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n }\n\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get pagesRotation() {\n return this._pagesRotation;\n }\n\n set pagesRotation(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n rotation %= 360;\n\n if (rotation < 0) {\n rotation += 360;\n }\n\n if (this._pagesRotation === rotation) {\n return;\n }\n\n this._pagesRotation = rotation;\n const pageNumber = this._currentPageNumber;\n const updateArgs = {\n rotation\n };\n\n for (const pageView of this._pages) {\n pageView.update(updateArgs);\n }\n\n if (this._currentScaleValue) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n\n #initializePermissions(permissions) {\n if (!permissions) {\n return;\n }\n\n if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) {\n this.viewer.classList.add(ENABLE_PERMISSIONS_CLASS);\n }\n\n if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS)) {\n if (this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS) {\n this.#previousAnnotationMode = this.#annotationMode;\n this.#annotationMode = _pdfjsLib.AnnotationMode.ENABLE;\n }\n }\n }\n\n #onePageRenderedOrForceFetch() {\n if (document.visibilityState === \"hidden\" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n return Promise.resolve();\n }\n\n const visibilityChangePromise = new Promise(resolve => {\n this.#onVisibilityChange = () => {\n if (document.visibilityState !== \"hidden\") {\n return;\n }\n\n resolve();\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n };\n\n document.addEventListener(\"visibilitychange\", this.#onVisibilityChange);\n });\n return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]);\n }\n\n setDocument(pdfDocument) {\n if (this.pdfDocument) {\n this.eventBus.dispatch(\"pagesdestroy\", {\n source: this\n });\n\n this._cancelRendering();\n\n this._resetView();\n\n if (this.findController) {\n this.findController.setDocument(null);\n }\n\n if (this._scriptingManager) {\n this._scriptingManager.setDocument(null);\n }\n }\n\n this.pdfDocument = pdfDocument;\n\n if (!pdfDocument) {\n return;\n }\n\n const isPureXfa = pdfDocument.isPureXfa;\n const pagesCount = pdfDocument.numPages;\n const firstPagePromise = pdfDocument.getPage(1);\n const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();\n const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve();\n\n if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n console.warn(\"Forcing PAGE-scrolling for performance reasons, given the length of the document.\");\n const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n }\n\n this._pagesCapability.promise.then(() => {\n this.eventBus.dispatch(\"pagesloaded\", {\n source: this,\n pagesCount\n });\n }, () => {});\n\n this._onBeforeDraw = evt => {\n const pageView = this._pages[evt.pageNumber - 1];\n\n if (!pageView) {\n return;\n }\n\n this.#buffer.push(pageView);\n };\n\n this.eventBus._on(\"pagerender\", this._onBeforeDraw);\n\n this._onAfterDraw = evt => {\n if (evt.cssTransform || this._onePageRenderedCapability.settled) {\n return;\n }\n\n this._onePageRenderedCapability.resolve({\n timestamp: evt.timestamp\n });\n\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n\n if (this.#onVisibilityChange) {\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n }\n };\n\n this.eventBus._on(\"pagerendered\", this._onAfterDraw);\n\n Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => {\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n\n this._firstPageCapability.resolve(firstPdfPage);\n\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n this.#initializePermissions(permissions);\n const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer;\n const scale = this.currentScale;\n const viewport = firstPdfPage.getViewport({\n scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS\n });\n const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !isPureXfa ? this : null;\n const annotationLayerFactory = this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE ? this : null;\n const xfaLayerFactory = isPureXfa ? this : null;\n\n for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n const pageView = new _pdf_page_view.PDFPageView({\n container: viewerElement,\n eventBus: this.eventBus,\n id: pageNum,\n scale,\n defaultViewport: viewport.clone(),\n optionalContentConfigPromise,\n renderingQueue: this.renderingQueue,\n textLayerFactory,\n textLayerMode: this.textLayerMode,\n annotationLayerFactory,\n annotationMode: this.#annotationMode,\n xfaLayerFactory,\n textHighlighterFactory: this,\n structTreeLayerFactory: this,\n imageResourcesPath: this.imageResourcesPath,\n renderer: this.renderer,\n useOnlyCssZoom: this.useOnlyCssZoom,\n maxCanvasPixels: this.maxCanvasPixels,\n pageColors: this.pageColors,\n l10n: this.l10n\n });\n\n this._pages.push(pageView);\n }\n\n const firstPageView = this._pages[0];\n\n if (firstPageView) {\n firstPageView.setPdfPage(firstPdfPage);\n this.linkService.cachePageRef(1, firstPdfPage.ref);\n }\n\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n this._updateSpreadMode();\n }\n\n this.#onePageRenderedOrForceFetch().then(async () => {\n if (this.findController) {\n this.findController.setDocument(pdfDocument);\n }\n\n if (this._scriptingManager) {\n this._scriptingManager.setDocument(pdfDocument);\n }\n\n if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n let getPagesLeft = pagesCount - 1;\n\n if (getPagesLeft <= 0) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n const promise = pdfDocument.getPage(pageNum).then(pdfPage => {\n const pageView = this._pages[pageNum - 1];\n\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this.linkService.cachePageRef(pageNum, pdfPage.ref);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n }, reason => {\n console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n });\n\n if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) {\n await promise;\n }\n }\n });\n this.eventBus.dispatch(\"pagesinit\", {\n source: this\n });\n pdfDocument.getMetadata().then(({\n info\n }) => {\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n\n if (info.Language) {\n this.viewer.lang = info.Language;\n }\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }).catch(reason => {\n console.error(\"Unable to initialize viewer\", reason);\n\n this._pagesCapability.reject(reason);\n });\n }\n\n setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(`setPageLabels: Invalid page labels.`);\n } else {\n this._pageLabels = labels;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null);\n }\n }\n\n _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._optionalContentConfigPromise = null;\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n this.#scrollModePageState = {\n previousPageNumber: 1,\n scrollDown: true,\n pages: []\n };\n\n if (this._onBeforeDraw) {\n this.eventBus._off(\"pagerender\", this._onBeforeDraw);\n\n this._onBeforeDraw = null;\n }\n\n if (this._onAfterDraw) {\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n }\n\n if (this.#onVisibilityChange) {\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n }\n\n this.viewer.textContent = \"\";\n\n this._updateScrollMode();\n\n this.viewer.removeAttribute(\"lang\");\n this.viewer.classList.remove(ENABLE_PERMISSIONS_CLASS);\n\n if (this.#previousAnnotationMode !== null) {\n this.#annotationMode = this.#previousAnnotationMode;\n this.#previousAnnotationMode = null;\n }\n }\n\n #ensurePageViewVisible() {\n if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) {\n throw new Error(\"#ensurePageViewVisible: Invalid scrollMode value.\");\n }\n\n const pageNumber = this._currentPageNumber,\n state = this.#scrollModePageState,\n viewer = this.viewer;\n viewer.textContent = \"\";\n state.pages.length = 0;\n\n if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) {\n const pageView = this._pages[pageNumber - 1];\n viewer.appendChild(pageView.div);\n state.pages.push(pageView);\n } else {\n const pageIndexSet = new Set(),\n parity = this._spreadMode - 1;\n\n if (parity === -1) {\n pageIndexSet.add(pageNumber - 1);\n } else if (pageNumber % 2 !== parity) {\n pageIndexSet.add(pageNumber - 1);\n pageIndexSet.add(pageNumber);\n } else {\n pageIndexSet.add(pageNumber - 2);\n pageIndexSet.add(pageNumber - 1);\n }\n\n const spread = document.createElement(\"div\");\n spread.className = \"spread\";\n\n if (this.isInPresentationMode) {\n const dummyPage = document.createElement(\"div\");\n dummyPage.className = \"dummyPage\";\n spread.appendChild(dummyPage);\n }\n\n for (const i of pageIndexSet) {\n const pageView = this._pages[i];\n\n if (!pageView) {\n continue;\n }\n\n spread.appendChild(pageView.div);\n state.pages.push(pageView);\n }\n\n viewer.appendChild(spread);\n }\n\n state.scrollDown = pageNumber >= state.previousPageNumber;\n state.previousPageNumber = pageNumber;\n }\n\n _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n\n this.update();\n }\n\n #scrollIntoView(pageView, pageSpot = null) {\n const {\n div,\n id\n } = pageView;\n\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this._setCurrentPageNumber(id);\n\n this.#ensurePageViewVisible();\n this.update();\n }\n\n if (!pageSpot && !this.isInPresentationMode) {\n const left = div.offsetLeft + div.clientLeft,\n right = left + div.clientWidth;\n const {\n scrollLeft,\n clientWidth\n } = this.container;\n\n if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n\n (0, _ui_utils.scrollIntoView)(div, pageSpot);\n }\n\n #isSameScale(newScale) {\n return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15;\n }\n\n _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) {\n this._currentScaleValue = newValue.toString();\n\n if (this.#isSameScale(newScale)) {\n if (preset) {\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n\n return;\n }\n\n this._doc.style.setProperty(\"--zoom-factor\", newScale);\n\n const updateArgs = {\n scale: newScale\n };\n\n for (const pageView of this._pages) {\n pageView.update(updateArgs);\n }\n\n this._currentScale = newScale;\n\n if (!noScroll) {\n let page = this._currentPageNumber,\n dest;\n\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: \"XYZ\"\n }, this._location.left, this._location.top, null];\n }\n\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n\n this.updateContainerHeightCss();\n }\n\n get _pageWidthScaleFactor() {\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL) {\n return 2;\n }\n\n return 1;\n }\n\n _setScale(value, noScroll = false) {\n let scale = parseFloat(value);\n\n if (scale > 0) {\n this._setScaleUpdatePages(scale, value, noScroll, false);\n } else {\n const currentPage = this._pages[this._currentPageNumber - 1];\n\n if (!currentPage) {\n return;\n }\n\n let hPadding = _ui_utils.SCROLLBAR_PADDING,\n vPadding = _ui_utils.VERTICAL_PADDING;\n\n if (this.isInPresentationMode) {\n hPadding = vPadding = 4;\n } else if (this.removePageBorders) {\n hPadding = vPadding = 0;\n } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) {\n [hPadding, vPadding] = [vPadding, hPadding];\n }\n\n const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor;\n const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n\n switch (value) {\n case \"page-actual\":\n scale = 1;\n break;\n\n case \"page-width\":\n scale = pageWidthScale;\n break;\n\n case \"page-height\":\n scale = pageHeightScale;\n break;\n\n case \"page-fit\":\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n\n case \"auto\":\n const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n\n default:\n console.error(`_setScale: \"${value}\" is an unknown zoom value.`);\n return;\n }\n\n this._setScaleUpdatePages(scale, value, noScroll, true);\n }\n }\n\n #resetCurrentPageView() {\n const pageView = this._pages[this._currentPageNumber - 1];\n\n if (this.isInPresentationMode) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.#scrollIntoView(pageView);\n }\n\n pageLabelToPageNumber(label) {\n if (!this._pageLabels) {\n return null;\n }\n\n const i = this._pageLabels.indexOf(label);\n\n if (i < 0) {\n return null;\n }\n\n return i + 1;\n }\n\n scrollPageIntoView({\n pageNumber,\n destArray = null,\n allowNegativeOffset = false,\n ignoreDestinationZoom = false\n }) {\n if (!this.pdfDocument) {\n return;\n }\n\n const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n\n if (!pageView) {\n console.error(`scrollPageIntoView: \"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n\n return;\n }\n\n let x = 0,\n y = 0;\n let width = 0,\n height = 0,\n widthScale,\n heightScale;\n const changeOrientation = pageView.rotation % 180 !== 0;\n const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n let scale = 0;\n\n switch (destArray[1].name) {\n case \"XYZ\":\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n\n case \"Fit\":\n case \"FitB\":\n scale = \"page-fit\";\n break;\n\n case \"FitH\":\n case \"FitBH\":\n y = destArray[2];\n scale = \"page-width\";\n\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n } else if (typeof y !== \"number\" || y < 0) {\n y = pageHeight;\n }\n\n break;\n\n case \"FitV\":\n case \"FitBV\":\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = \"page-height\";\n break;\n\n case \"FitR\":\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;\n const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;\n widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n\n default:\n console.error(`scrollPageIntoView: \"${destArray[1].name}\" is not a valid destination type.`);\n return;\n }\n\n if (!ignoreDestinationZoom) {\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n }\n\n if (scale === \"page-fit\" && !destArray[4]) {\n this.#scrollIntoView(pageView);\n return;\n }\n\n const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n\n this.#scrollIntoView(pageView, {\n left,\n top\n });\n }\n\n _updateLocation(firstPage) {\n const currentScale = this._currentScale;\n const currentScaleValue = this._currentScaleValue;\n const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n const pageNumber = firstPage.id;\n const currentPageView = this._pages[pageNumber - 1];\n const container = this.container;\n const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n const intLeft = Math.round(topLeft[0]);\n const intTop = Math.round(topLeft[1]);\n let pdfOpenParams = `#page=${pageNumber}`;\n\n if (!this.isInPresentationMode) {\n pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`;\n }\n\n this._location = {\n pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams\n };\n }\n\n update() {\n const visible = this._getVisiblePages();\n\n const visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n\n if (numVisiblePages === 0) {\n return;\n }\n\n const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n this.#buffer.resize(newCacheSize, visible.ids);\n this.renderingQueue.renderHighestPriority(visible);\n const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL);\n const currentId = this._currentPageNumber;\n let stillFullyVisible = false;\n\n for (const page of visiblePages) {\n if (page.percent < 100) {\n break;\n }\n\n if (page.id === currentId && isSimpleLayout) {\n stillFullyVisible = true;\n break;\n }\n }\n\n this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id);\n\n this._updateLocation(visible.first);\n\n this.eventBus.dispatch(\"updateviewarea\", {\n source: this,\n location: this._location\n });\n }\n\n containsElement(element) {\n return this.container.contains(element);\n }\n\n focus() {\n this.container.focus();\n }\n\n get _isContainerRtl() {\n return getComputedStyle(this.container).direction === \"rtl\";\n }\n\n get isInPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n\n get isChangingPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n\n get isHorizontalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n\n get isVerticalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n\n _getVisiblePages() {\n const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages,\n horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL,\n rtl = horizontal && this._isContainerRtl;\n return (0, _ui_utils.getVisibleElements)({\n scrollEl: this.container,\n views,\n sortByVisibility: true,\n horizontal,\n rtl\n });\n }\n\n isPageVisible(pageNumber) {\n if (!this.pdfDocument) {\n return false;\n }\n\n if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {\n console.error(`isPageVisible: \"${pageNumber}\" is not a valid page.`);\n return false;\n }\n\n return this._getVisiblePages().ids.has(pageNumber);\n }\n\n isPageCached(pageNumber) {\n if (!this.pdfDocument) {\n return false;\n }\n\n if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {\n console.error(`isPageCached: \"${pageNumber}\" is not a valid page.`);\n return false;\n }\n\n const pageView = this._pages[pageNumber - 1];\n return this.#buffer.has(pageView);\n }\n\n cleanup() {\n for (const pageView of this._pages) {\n if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n pageView.reset();\n }\n }\n }\n\n _cancelRendering() {\n for (const pageView of this._pages) {\n pageView.cancelRendering();\n }\n }\n\n async #ensurePdfPageLoaded(pageView) {\n if (pageView.pdfPage) {\n return pageView.pdfPage;\n }\n\n try {\n const pdfPage = await this.pdfDocument.getPage(pageView.id);\n\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n if (!this.linkService._cachedPageNumber?.(pdfPage.ref)) {\n this.linkService.cachePageRef(pageView.id, pdfPage.ref);\n }\n\n return pdfPage;\n } catch (reason) {\n console.error(\"Unable to get page for page view\", reason);\n return null;\n }\n }\n\n #getScrollAhead(visible) {\n if (visible.first?.id === 1) {\n return true;\n } else if (visible.last?.id === this.pagesCount) {\n return false;\n }\n\n switch (this._scrollMode) {\n case _ui_utils.ScrollMode.PAGE:\n return this.#scrollModePageState.scrollDown;\n\n case _ui_utils.ScrollMode.HORIZONTAL:\n return this.scroll.right;\n }\n\n return this.scroll.down;\n }\n\n #toggleLoadingIconSpinner(visibleIds) {\n for (const id of visibleIds) {\n const pageView = this._pages[id - 1];\n pageView?.toggleLoadingIconSpinner(true);\n }\n\n for (const pageView of this.#buffer) {\n if (visibleIds.has(pageView.id)) {\n continue;\n }\n\n pageView.toggleLoadingIconSpinner(false);\n }\n }\n\n forceRendering(currentlyVisiblePages) {\n const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n\n const scrollAhead = this.#getScrollAhead(visiblePages);\n const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL;\n const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra);\n this.#toggleLoadingIconSpinner(visiblePages.ids);\n\n if (pageView) {\n this.#ensurePdfPageLoaded(pageView).then(() => {\n this.renderingQueue.renderView(pageView);\n });\n return true;\n }\n\n return false;\n }\n\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus, highlighter) {\n return new _text_layer_builder.TextLayerBuilder({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection,\n highlighter\n });\n }\n\n createTextHighlighter(pageIndex, eventBus) {\n return new _text_highlighter.TextHighlighter({\n eventBus,\n pageIndex,\n findController: this.isInPresentationMode ? null : this.findController\n });\n }\n\n createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = \"\", renderForms = true, l10n = _l10n_utils.NullL10n, enableScripting = null, hasJSActionsPromise = null, mouseState = null, fieldObjectsPromise = null, annotationCanvasMap = null) {\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n annotationStorage: annotationStorage || this.pdfDocument?.annotationStorage,\n imageResourcesPath,\n renderForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n l10n,\n enableScripting: enableScripting ?? this.enableScripting,\n hasJSActionsPromise: hasJSActionsPromise || this.pdfDocument?.hasJSActions(),\n fieldObjectsPromise: fieldObjectsPromise || this.pdfDocument?.getFieldObjects(),\n mouseState: mouseState || this._scriptingManager?.mouseState,\n annotationCanvasMap\n });\n }\n\n createXfaLayerBuilder(pageDiv, pdfPage, annotationStorage = null) {\n return new _xfa_layer_builder.XfaLayerBuilder({\n pageDiv,\n pdfPage,\n annotationStorage: annotationStorage || this.pdfDocument?.annotationStorage,\n linkService: this.linkService\n });\n }\n\n createStructTreeLayerBuilder(pdfPage) {\n return new _struct_tree_layer_builder.StructTreeLayerBuilder({\n pdfPage\n });\n }\n\n get hasEqualPageSizes() {\n const firstPageView = this._pages[0];\n\n for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n const pageView = this._pages[i];\n\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n\n return true;\n }\n\n getPagesOverview() {\n return this._pages.map(pageView => {\n const viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n\n if (!this.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) {\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n }\n\n return {\n width: viewport.height,\n height: viewport.width,\n rotation: (viewport.rotation - 90) % 360\n };\n });\n }\n\n get optionalContentConfigPromise() {\n if (!this.pdfDocument) {\n return Promise.resolve(null);\n }\n\n if (!this._optionalContentConfigPromise) {\n return this.pdfDocument.getOptionalContentConfig();\n }\n\n return this._optionalContentConfigPromise;\n }\n\n set optionalContentConfigPromise(promise) {\n if (!(promise instanceof Promise)) {\n throw new Error(`Invalid optionalContentConfigPromise: ${promise}`);\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._optionalContentConfigPromise) {\n return;\n }\n\n this._optionalContentConfigPromise = promise;\n const updateArgs = {\n optionalContentConfigPromise: promise\n };\n\n for (const pageView of this._pages) {\n pageView.update(updateArgs);\n }\n\n this.update();\n this.eventBus.dispatch(\"optionalcontentconfigchanged\", {\n source: this,\n promise\n });\n }\n\n get scrollMode() {\n return this._scrollMode;\n }\n\n set scrollMode(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(`Invalid scroll mode: ${mode}`);\n }\n\n if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n return;\n }\n\n this._previousScrollMode = this._scrollMode;\n this._scrollMode = mode;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n\n this._updateScrollMode(this._currentPageNumber);\n }\n\n _updateScrollMode(pageNumber = null) {\n const scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle(\"scrollHorizontal\", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle(\"scrollWrapped\", scrollMode === _ui_utils.ScrollMode.WRAPPED);\n\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n\n if (scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) {\n this._updateSpreadMode();\n }\n\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n get spreadMode() {\n return this._spreadMode;\n }\n\n set spreadMode(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(`Invalid spread mode: ${mode}`);\n }\n\n this._spreadMode = mode;\n this.eventBus.dispatch(\"spreadmodechanged\", {\n source: this,\n mode\n });\n\n this._updateSpreadMode(this._currentPageNumber);\n }\n\n _updateSpreadMode(pageNumber = null) {\n if (!this.pdfDocument) {\n return;\n }\n\n const viewer = this.viewer,\n pages = this._pages;\n\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else {\n viewer.textContent = \"\";\n\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (const pageView of this._pages) {\n viewer.appendChild(pageView.div);\n }\n } else {\n const parity = this._spreadMode - 1;\n let spread = null;\n\n for (let i = 0, ii = pages.length; i < ii; ++i) {\n if (spread === null) {\n spread = document.createElement(\"div\");\n spread.className = \"spread\";\n viewer.appendChild(spread);\n } else if (i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.appendChild(spread);\n }\n\n spread.appendChild(pages[i].div);\n }\n }\n }\n\n if (!pageNumber) {\n return;\n }\n\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n _getPageAdvance(currentPageNumber, previous = false) {\n switch (this._scrollMode) {\n case _ui_utils.ScrollMode.WRAPPED:\n {\n const {\n views\n } = this._getVisiblePages(),\n pageLayout = new Map();\n\n for (const {\n id,\n y,\n percent,\n widthPercent\n } of views) {\n if (percent === 0 || widthPercent < 100) {\n continue;\n }\n\n let yArray = pageLayout.get(y);\n\n if (!yArray) {\n pageLayout.set(y, yArray ||= []);\n }\n\n yArray.push(id);\n }\n\n for (const yArray of pageLayout.values()) {\n const currentIndex = yArray.indexOf(currentPageNumber);\n\n if (currentIndex === -1) {\n continue;\n }\n\n const numPages = yArray.length;\n\n if (numPages === 1) {\n break;\n }\n\n if (previous) {\n for (let i = currentIndex - 1, ii = 0; i >= ii; i--) {\n const currentId = yArray[i],\n expectedId = yArray[i + 1] - 1;\n\n if (currentId < expectedId) {\n return currentPageNumber - expectedId;\n }\n }\n } else {\n for (let i = currentIndex + 1, ii = numPages; i < ii; i++) {\n const currentId = yArray[i],\n expectedId = yArray[i - 1] + 1;\n\n if (currentId > expectedId) {\n return expectedId - currentPageNumber;\n }\n }\n }\n\n if (previous) {\n const firstId = yArray[0];\n\n if (firstId < currentPageNumber) {\n return currentPageNumber - firstId + 1;\n }\n } else {\n const lastId = yArray[numPages - 1];\n\n if (lastId > currentPageNumber) {\n return lastId - currentPageNumber + 1;\n }\n }\n\n break;\n }\n\n break;\n }\n\n case _ui_utils.ScrollMode.HORIZONTAL:\n {\n break;\n }\n\n case _ui_utils.ScrollMode.PAGE:\n case _ui_utils.ScrollMode.VERTICAL:\n {\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n break;\n }\n\n const parity = this._spreadMode - 1;\n\n if (previous && currentPageNumber % 2 !== parity) {\n break;\n } else if (!previous && currentPageNumber % 2 === parity) {\n break;\n }\n\n const {\n views\n } = this._getVisiblePages(),\n expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1;\n\n for (const {\n id,\n percent,\n widthPercent\n } of views) {\n if (id !== expectedId) {\n continue;\n }\n\n if (percent > 0 && widthPercent === 100) {\n return 2;\n }\n\n break;\n }\n\n break;\n }\n }\n\n return 1;\n }\n\n nextPage() {\n const currentPageNumber = this._currentPageNumber,\n pagesCount = this.pagesCount;\n\n if (currentPageNumber >= pagesCount) {\n return false;\n }\n\n const advance = this._getPageAdvance(currentPageNumber, false) || 1;\n this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount);\n return true;\n }\n\n previousPage() {\n const currentPageNumber = this._currentPageNumber;\n\n if (currentPageNumber <= 1) {\n return false;\n }\n\n const advance = this._getPageAdvance(currentPageNumber, true) || 1;\n this.currentPageNumber = Math.max(currentPageNumber - advance, 1);\n return true;\n }\n\n increaseScale(steps = 1) {\n let newScale = this._currentScale;\n\n do {\n newScale = (newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2);\n newScale = Math.ceil(newScale * 10) / 10;\n newScale = Math.min(_ui_utils.MAX_SCALE, newScale);\n } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE);\n\n this.currentScaleValue = newScale;\n }\n\n decreaseScale(steps = 1) {\n let newScale = this._currentScale;\n\n do {\n newScale = (newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2);\n newScale = Math.floor(newScale * 10) / 10;\n newScale = Math.max(_ui_utils.MIN_SCALE, newScale);\n } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE);\n\n this.currentScaleValue = newScale;\n }\n\n updateContainerHeightCss() {\n const height = this.container.clientHeight;\n\n if (height !== this.#previousContainerHeight) {\n this.#previousContainerHeight = height;\n\n this._doc.style.setProperty(\"--viewer-container-height\", `${height}px`);\n }\n }\n\n}\n\nexports.BaseViewer = BaseViewer;\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFPageView = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _app_options = __w_pdfjs_require__(13);\n\nvar _l10n_utils = __w_pdfjs_require__(4);\n\nconst MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216;\n\nclass PDFPageView {\n #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n\n constructor(options) {\n const container = options.container;\n const defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = \"page\" + this.id;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;\n this.hasRestrictedScaling = false;\n this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE;\n this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;\n this.pageColors = options.pageColors || null;\n this.eventBus = options.eventBus;\n this.renderingQueue = options.renderingQueue;\n this.textLayerFactory = options.textLayerFactory;\n this.annotationLayerFactory = options.annotationLayerFactory;\n this.xfaLayerFactory = options.xfaLayerFactory;\n this.textHighlighter = options.textHighlighterFactory?.createTextHighlighter(this.id - 1, this.eventBus);\n this.structTreeLayerFactory = options.structTreeLayerFactory;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.paintTask = null;\n this.paintedViewportMap = new WeakMap();\n this.renderingState = _ui_utils.RenderingStates.INITIAL;\n this.resume = null;\n this._renderError = null;\n this._isStandalone = !this.renderingQueue?.hasViewer();\n this._annotationCanvasMap = null;\n this.annotationLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n this.xfaLayer = null;\n this.structTreeLayer = null;\n const div = document.createElement(\"div\");\n div.className = \"page\";\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n div.setAttribute(\"data-page-number\", this.id);\n div.setAttribute(\"role\", \"region\");\n this.l10n.get(\"page_landmark\", {\n page: this.id\n }).then(msg => {\n div.setAttribute(\"aria-label\", msg);\n });\n this.div = div;\n container?.appendChild(div);\n }\n\n setPdfPage(pdfPage) {\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: totalRotation\n });\n this.reset();\n }\n\n destroy() {\n this.reset();\n\n if (this.pdfPage) {\n this.pdfPage.cleanup();\n }\n }\n\n async _renderAnnotationLayer() {\n let error = null;\n\n try {\n await this.annotationLayer.render(this.viewport, \"display\");\n } catch (ex) {\n error = ex;\n } finally {\n this.eventBus.dispatch(\"annotationlayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n\n async _renderXfaLayer() {\n let error = null;\n\n try {\n const result = await this.xfaLayer.render(this.viewport, \"display\");\n\n if (this.textHighlighter) {\n this._buildXfaTextContentItems(result.textDivs);\n }\n } catch (ex) {\n error = ex;\n } finally {\n this.eventBus.dispatch(\"xfalayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n\n async _buildXfaTextContentItems(textDivs) {\n const text = await this.pdfPage.getTextContent();\n const items = [];\n\n for (const item of text.items) {\n items.push(item.str);\n }\n\n this.textHighlighter.setTextMapping(textDivs, items);\n this.textHighlighter.enable();\n }\n\n _resetZoomLayer(removeFromDOM = false) {\n if (!this.zoomLayer) {\n return;\n }\n\n const zoomLayerCanvas = this.zoomLayer.firstChild;\n this.paintedViewportMap.delete(zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n\n this.zoomLayer = null;\n }\n\n reset({\n keepZoomLayer = false,\n keepAnnotationLayer = false,\n keepXfaLayer = false\n } = {}) {\n this.cancelRendering({\n keepAnnotationLayer,\n keepXfaLayer\n });\n this.renderingState = _ui_utils.RenderingStates.INITIAL;\n const div = this.div;\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n const childNodes = div.childNodes,\n zoomLayerNode = keepZoomLayer && this.zoomLayer || null,\n annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null,\n xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null;\n\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const node = childNodes[i];\n\n switch (node) {\n case zoomLayerNode:\n case annotationLayerNode:\n case xfaLayerNode:\n continue;\n }\n\n node.remove();\n }\n\n div.removeAttribute(\"data-loaded\");\n\n if (annotationLayerNode) {\n this.annotationLayer.hide();\n }\n\n if (xfaLayerNode) {\n this.xfaLayer.hide();\n }\n\n if (!zoomLayerNode) {\n if (this.canvas) {\n this.paintedViewportMap.delete(this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n\n this._resetZoomLayer();\n }\n\n if (this.svg) {\n this.paintedViewportMap.delete(this.svg);\n delete this.svg;\n }\n\n this.loadingIconDiv = document.createElement(\"div\");\n this.loadingIconDiv.className = \"loadingIcon notVisible\";\n\n if (this._isStandalone) {\n this.toggleLoadingIconSpinner(true);\n }\n\n this.loadingIconDiv.setAttribute(\"role\", \"img\");\n this.l10n.get(\"loading\").then(msg => {\n this.loadingIconDiv?.setAttribute(\"aria-label\", msg);\n });\n div.appendChild(this.loadingIconDiv);\n }\n\n update({\n scale = 0,\n rotation = null,\n optionalContentConfigPromise = null\n }) {\n this.scale = scale || this.scale;\n\n if (typeof rotation === \"number\") {\n this.rotation = rotation;\n }\n\n if (optionalContentConfigPromise instanceof Promise) {\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n }\n\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: totalRotation\n });\n\n if (this._isStandalone) {\n const {\n style\n } = document.documentElement;\n style.setProperty(\"--zoom-factor\", this.scale);\n }\n\n if (this.svg) {\n this.cssTransform({\n target: this.svg,\n redrawAnnotationLayer: true,\n redrawXfaLayer: true\n });\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now(),\n error: this._renderError\n });\n return;\n }\n\n let isScalingRestricted = false;\n\n if (this.canvas && this.maxCanvasPixels > 0) {\n const outputScale = this.outputScale;\n\n if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {\n isScalingRestricted = true;\n }\n }\n\n if (this.canvas) {\n if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {\n this.cssTransform({\n target: this.canvas,\n redrawAnnotationLayer: true,\n redrawXfaLayer: true\n });\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now(),\n error: this._renderError\n });\n return;\n }\n\n if (!this.zoomLayer && !this.canvas.hidden) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = \"absolute\";\n }\n }\n\n if (this.zoomLayer) {\n this.cssTransform({\n target: this.zoomLayer.firstChild\n });\n }\n\n this.reset({\n keepZoomLayer: true,\n keepAnnotationLayer: true,\n keepXfaLayer: true\n });\n }\n\n cancelRendering({\n keepAnnotationLayer = false,\n keepXfaLayer = false\n } = {}) {\n if (this.paintTask) {\n this.paintTask.cancel();\n this.paintTask = null;\n }\n\n this.resume = null;\n\n if (this.textLayer) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n\n if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n this._annotationCanvasMap = null;\n }\n\n if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) {\n this.xfaLayer.cancel();\n this.xfaLayer = null;\n this.textHighlighter?.disable();\n }\n\n if (this._onTextLayerRendered) {\n this.eventBus._off(\"textlayerrendered\", this._onTextLayerRendered);\n\n this._onTextLayerRendered = null;\n }\n }\n\n cssTransform({\n target,\n redrawAnnotationLayer = false,\n redrawXfaLayer = false\n }) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const div = this.div;\n target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + \"px\";\n target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + \"px\";\n const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;\n const absRotation = Math.abs(relativeRotation);\n let scaleX = 1,\n scaleY = 1;\n\n if (absRotation === 90 || absRotation === 270) {\n scaleX = height / width;\n scaleY = width / height;\n }\n\n target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`;\n\n if (this.textLayer) {\n const textLayerViewport = this.textLayer.viewport;\n const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;\n const textAbsRotation = Math.abs(textRelativeRotation);\n let scale = width / textLayerViewport.width;\n\n if (textAbsRotation === 90 || textAbsRotation === 270) {\n scale = width / textLayerViewport.height;\n }\n\n const textLayerDiv = this.textLayer.textLayerDiv;\n let transX, transY;\n\n switch (textAbsRotation) {\n case 0:\n transX = transY = 0;\n break;\n\n case 90:\n transX = 0;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 180:\n transX = \"-\" + textLayerDiv.style.width;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 270:\n transX = \"-\" + textLayerDiv.style.width;\n transY = 0;\n break;\n\n default:\n console.error(\"Bad rotation value.\");\n break;\n }\n\n textLayerDiv.style.transform = `rotate(${textAbsRotation}deg) ` + `scale(${scale}) ` + `translate(${transX}, ${transY})`;\n textLayerDiv.style.transformOrigin = \"0% 0%\";\n }\n\n if (redrawAnnotationLayer && this.annotationLayer) {\n this._renderAnnotationLayer();\n }\n\n if (redrawXfaLayer && this.xfaLayer) {\n this._renderXfaLayer();\n }\n }\n\n get width() {\n return this.viewport.width;\n }\n\n get height() {\n return this.viewport.height;\n }\n\n getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n\n toggleLoadingIconSpinner(viewVisible = false) {\n this.loadingIconDiv?.classList.toggle(\"notVisible\", !viewVisible);\n }\n\n draw() {\n if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) {\n console.error(\"Must be in new state before drawing\");\n this.reset();\n }\n\n const {\n div,\n pdfPage\n } = this;\n\n if (!pdfPage) {\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n this.loadingIconDiv.remove();\n delete this.loadingIconDiv;\n }\n\n return Promise.reject(new Error(\"pdfPage is not loaded\"));\n }\n\n this.renderingState = _ui_utils.RenderingStates.RUNNING;\n const canvasWrapper = document.createElement(\"div\");\n canvasWrapper.style.width = div.style.width;\n canvasWrapper.style.height = div.style.height;\n canvasWrapper.classList.add(\"canvasWrapper\");\n\n if (this.annotationLayer?.div) {\n div.insertBefore(canvasWrapper, this.annotationLayer.div);\n } else {\n div.appendChild(canvasWrapper);\n }\n\n let textLayer = null;\n\n if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {\n const textLayerDiv = document.createElement(\"div\");\n textLayerDiv.className = \"textLayer\";\n textLayerDiv.style.width = canvasWrapper.style.width;\n textLayerDiv.style.height = canvasWrapper.style.height;\n\n if (this.annotationLayer?.div) {\n div.insertBefore(textLayerDiv, this.annotationLayer.div);\n } else {\n div.appendChild(textLayerDiv);\n }\n\n textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus, this.textHighlighter);\n }\n\n this.textLayer = textLayer;\n\n if (this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE && this.annotationLayerFactory) {\n this._annotationCanvasMap ||= new Map();\n this.annotationLayer ||= this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, null, this.imageResourcesPath, this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS, this.l10n, null, null, null, null, this._annotationCanvasMap);\n }\n\n if (this.xfaLayer?.div) {\n div.appendChild(this.xfaLayer.div);\n }\n\n let renderContinueCallback = null;\n\n if (this.renderingQueue) {\n renderContinueCallback = cont => {\n if (!this.renderingQueue.isHighestPriority(this)) {\n this.renderingState = _ui_utils.RenderingStates.PAUSED;\n\n this.resume = () => {\n this.renderingState = _ui_utils.RenderingStates.RUNNING;\n cont();\n };\n\n return;\n }\n\n cont();\n };\n }\n\n const finishPaintTask = async (error = null) => {\n if (paintTask === this.paintTask) {\n this.paintTask = null;\n }\n\n if (error instanceof _pdfjsLib.RenderingCancelledException) {\n this._renderError = null;\n return;\n }\n\n this._renderError = error;\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n this.loadingIconDiv.remove();\n delete this.loadingIconDiv;\n }\n\n this._resetZoomLayer(true);\n\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: false,\n timestamp: performance.now(),\n error: this._renderError\n });\n\n if (error) {\n throw error;\n }\n };\n\n const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);\n paintTask.onRenderContinue = renderContinueCallback;\n this.paintTask = paintTask;\n const resultPromise = paintTask.promise.then(() => {\n return finishPaintTask(null).then(() => {\n if (textLayer) {\n const readableStream = pdfPage.streamTextContent({\n includeMarkedContent: true\n });\n textLayer.setTextContentStream(readableStream);\n textLayer.render();\n }\n\n if (this.annotationLayer) {\n this._renderAnnotationLayer();\n }\n });\n }, function (reason) {\n return finishPaintTask(reason);\n });\n\n if (this.xfaLayerFactory) {\n if (!this.xfaLayer) {\n this.xfaLayer = this.xfaLayerFactory.createXfaLayerBuilder(div, pdfPage, null);\n }\n\n this._renderXfaLayer();\n }\n\n if (this.structTreeLayerFactory && this.textLayer && this.canvas) {\n this._onTextLayerRendered = event => {\n if (event.pageNumber !== this.id) {\n return;\n }\n\n this.eventBus._off(\"textlayerrendered\", this._onTextLayerRendered);\n\n this._onTextLayerRendered = null;\n\n if (!this.canvas) {\n return;\n }\n\n this.pdfPage.getStructTree().then(tree => {\n if (!tree) {\n return;\n }\n\n if (!this.canvas) {\n return;\n }\n\n const treeDom = this.structTreeLayer.render(tree);\n treeDom.classList.add(\"structTree\");\n this.canvas.appendChild(treeDom);\n });\n };\n\n this.eventBus._on(\"textlayerrendered\", this._onTextLayerRendered);\n\n this.structTreeLayer = this.structTreeLayerFactory.createStructTreeLayerBuilder(pdfPage);\n }\n\n div.setAttribute(\"data-loaded\", true);\n this.eventBus.dispatch(\"pagerender\", {\n source: this,\n pageNumber: this.id\n });\n return resultPromise;\n }\n\n paintOnCanvas(canvasWrapper) {\n const renderCapability = (0, _pdfjsLib.createPromiseCapability)();\n const result = {\n promise: renderCapability.promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n renderTask.cancel();\n }\n\n };\n const viewport = this.viewport;\n const canvas = document.createElement(\"canvas\");\n canvas.hidden = true;\n let isCanvasHidden = true;\n\n const showCanvas = function () {\n if (isCanvasHidden) {\n canvas.hidden = false;\n isCanvasHidden = false;\n }\n };\n\n canvasWrapper.appendChild(canvas);\n this.canvas = canvas;\n const ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const outputScale = this.outputScale = new _ui_utils.OutputScale();\n\n if (this.useOnlyCssZoom) {\n const actualSizeViewport = viewport.clone({\n scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS\n });\n outputScale.sx *= actualSizeViewport.width / viewport.width;\n outputScale.sy *= actualSizeViewport.height / viewport.height;\n }\n\n if (this.maxCanvasPixels > 0) {\n const pixelsInViewport = viewport.width * viewport.height;\n const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n this.hasRestrictedScaling = true;\n } else {\n this.hasRestrictedScaling = false;\n }\n }\n\n const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);\n canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + \"px\";\n canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + \"px\";\n this.paintedViewportMap.set(canvas, viewport);\n const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;\n const renderContext = {\n canvasContext: ctx,\n transform,\n viewport: this.viewport,\n annotationMode: this.#annotationMode,\n optionalContentConfigPromise: this._optionalContentConfigPromise,\n annotationCanvasMap: this._annotationCanvasMap,\n pageColors: this.pageColors\n };\n const renderTask = this.pdfPage.render(renderContext);\n\n renderTask.onContinue = function (cont) {\n showCanvas();\n\n if (result.onRenderContinue) {\n result.onRenderContinue(cont);\n } else {\n cont();\n }\n };\n\n renderTask.promise.then(function () {\n showCanvas();\n renderCapability.resolve();\n }, function (error) {\n showCanvas();\n renderCapability.reject(error);\n });\n return result;\n }\n\n paintOnSvg(wrapper) {\n let cancelled = false;\n\n const ensureNotCancelled = () => {\n if (cancelled) {\n throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, \"svg\");\n }\n };\n\n const pdfPage = this.pdfPage;\n const actualSizeViewport = this.viewport.clone({\n scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS\n });\n const promise = pdfPage.getOperatorList({\n annotationMode: this.#annotationMode\n }).then(opList => {\n ensureNotCancelled();\n const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs);\n return svgGfx.getSVG(opList, actualSizeViewport).then(svg => {\n ensureNotCancelled();\n this.svg = svg;\n this.paintedViewportMap.set(svg, actualSizeViewport);\n svg.style.width = wrapper.style.width;\n svg.style.height = wrapper.style.height;\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n wrapper.appendChild(svg);\n });\n });\n return {\n promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n cancelled = true;\n }\n\n };\n }\n\n setPageLabel(label) {\n this.pageLabel = typeof label === \"string\" ? label : null;\n\n if (this.pageLabel !== null) {\n this.div.setAttribute(\"data-page-label\", this.pageLabel);\n } else {\n this.div.removeAttribute(\"data-page-label\");\n }\n }\n\n}\n\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0;\nconst compatibilityParams = Object.create(null);\nexports.compatibilityParams = compatibilityParams;\n{\n const userAgent = navigator.userAgent || \"\";\n const platform = navigator.platform || \"\";\n const maxTouchPoints = navigator.maxTouchPoints || 1;\n const isAndroid = /Android/.test(userAgent);\n const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nconst OptionKind = {\n VIEWER: 0x02,\n API: 0x04,\n WORKER: 0x08,\n PREFERENCE: 0x80\n};\nexports.OptionKind = OptionKind;\nconst defaultOptions = {\n annotationMode: {\n value: 2,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n cursorToolOnLoad: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n defaultUrl: {\n value: \"compressed.tracemonkey-pldi-09.pdf\",\n kind: OptionKind.VIEWER\n },\n defaultZoomValue: {\n value: \"\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n disableHistory: {\n value: false,\n kind: OptionKind.VIEWER\n },\n disablePageLabels: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enablePermissions: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enablePrintAutoRotate: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enableScripting: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n externalLinkRel: {\n value: \"noopener noreferrer nofollow\",\n kind: OptionKind.VIEWER\n },\n externalLinkTarget: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n historyUpdateUrl: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n ignoreDestinationZoom: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n imageResourcesPath: {\n value: \"./images/\",\n kind: OptionKind.VIEWER\n },\n maxCanvasPixels: {\n value: 16777216,\n compatibility: compatibilityParams.maxCanvasPixels,\n kind: OptionKind.VIEWER\n },\n pageColorsBackground: {\n value: \"Canvas\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pageColorsForeground: {\n value: \"CanvasText\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pdfBugEnabled: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n printResolution: {\n value: 150,\n kind: OptionKind.VIEWER\n },\n renderer: {\n value: \"canvas\",\n kind: OptionKind.VIEWER\n },\n sidebarViewOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n scrollModeOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n spreadModeOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n textLayerMode: {\n value: 1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n useOnlyCssZoom: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n viewerCssTheme: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n viewOnLoad: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n cMapPacked: {\n value: true,\n kind: OptionKind.API\n },\n cMapUrl: {\n value: \"../web/cmaps/\",\n kind: OptionKind.API\n },\n disableAutoFetch: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableFontFace: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableRange: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableStream: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n docBaseUrl: {\n value: \"\",\n kind: OptionKind.API\n },\n enableXfa: {\n value: true,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n fontExtraProperties: {\n value: false,\n kind: OptionKind.API\n },\n isEvalSupported: {\n value: true,\n kind: OptionKind.API\n },\n maxImageSize: {\n value: -1,\n kind: OptionKind.API\n },\n pdfBug: {\n value: false,\n kind: OptionKind.API\n },\n standardFontDataUrl: {\n value: \"../web/standard_fonts/\",\n kind: OptionKind.API\n },\n verbosity: {\n value: 1,\n kind: OptionKind.API\n },\n workerPort: {\n value: null,\n kind: OptionKind.WORKER\n },\n workerSrc: {\n value: \"../build/pdf.worker.js\",\n kind: OptionKind.WORKER\n }\n};\n{\n defaultOptions.disablePreferences = {\n value: false,\n kind: OptionKind.VIEWER\n };\n defaultOptions.locale = {\n value: navigator.language || \"en-US\",\n kind: OptionKind.VIEWER\n };\n defaultOptions.sandboxBundleSrc = {\n value: \"../build/pdf.sandbox.js\",\n kind: OptionKind.VIEWER\n };\n defaultOptions.renderer.kind += OptionKind.PREFERENCE;\n}\nconst userOptions = Object.create(null);\n\nclass AppOptions {\n constructor() {\n throw new Error(\"Cannot initialize AppOptions.\");\n }\n\n static get(name) {\n const userOption = userOptions[name];\n\n if (userOption !== undefined) {\n return userOption;\n }\n\n const defaultOption = defaultOptions[name];\n\n if (defaultOption !== undefined) {\n return defaultOption.compatibility ?? defaultOption.value;\n }\n\n return undefined;\n }\n\n static getAll(kind = null) {\n const options = Object.create(null);\n\n for (const name in defaultOptions) {\n const defaultOption = defaultOptions[name];\n\n if (kind) {\n if ((kind & defaultOption.kind) === 0) {\n continue;\n }\n\n if (kind === OptionKind.PREFERENCE) {\n const value = defaultOption.value,\n valueType = typeof value;\n\n if (valueType === \"boolean\" || valueType === \"string\" || valueType === \"number\" && Number.isInteger(value)) {\n options[name] = value;\n continue;\n }\n\n throw new Error(`Invalid type for preference: ${name}`);\n }\n }\n\n const userOption = userOptions[name];\n options[name] = userOption !== undefined ? userOption : defaultOption.compatibility ?? defaultOption.value;\n }\n\n return options;\n }\n\n static set(name, value) {\n userOptions[name] = value;\n }\n\n static setAll(options) {\n for (const name in options) {\n userOptions[name] = options[name];\n }\n }\n\n static remove(name) {\n delete userOptions[name];\n }\n\n static _hasUserOptions() {\n return Object.keys(userOptions).length > 0;\n }\n\n}\n\nexports.AppOptions = AppOptions;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFRenderingQueue = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nconst CLEANUP_TIMEOUT = 30000;\n\nclass PDFRenderingQueue {\n constructor() {\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n\n isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n\n hasViewer() {\n return !!this.pdfViewer;\n }\n\n renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n\n if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) {\n return;\n }\n\n if (this.printing) {\n return;\n }\n\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n\n getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) {\n const visibleViews = visible.views,\n numVisible = visibleViews.length;\n\n if (numVisible === 0) {\n return null;\n }\n\n for (let i = 0; i < numVisible; i++) {\n const view = visibleViews[i].view;\n\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n\n const firstId = visible.first.id,\n lastId = visible.last.id;\n\n if (lastId - firstId + 1 > numVisible) {\n const visibleIds = visible.ids;\n\n for (let i = 1, ii = lastId - firstId; i < ii; i++) {\n const holeId = scrolledDown ? firstId + i : lastId - i;\n\n if (visibleIds.has(holeId)) {\n continue;\n }\n\n const holeView = views[holeId - 1];\n\n if (!this.isViewFinished(holeView)) {\n return holeView;\n }\n }\n }\n\n let preRenderIndex = scrolledDown ? lastId : firstId - 2;\n let preRenderView = views[preRenderIndex];\n\n if (preRenderView && !this.isViewFinished(preRenderView)) {\n return preRenderView;\n }\n\n if (preRenderExtra) {\n preRenderIndex += scrolledDown ? 1 : -1;\n preRenderView = views[preRenderIndex];\n\n if (preRenderView && !this.isViewFinished(preRenderView)) {\n return preRenderView;\n }\n }\n\n return null;\n }\n\n isViewFinished(view) {\n return view.renderingState === _ui_utils.RenderingStates.FINISHED;\n }\n\n renderView(view) {\n switch (view.renderingState) {\n case _ui_utils.RenderingStates.FINISHED:\n return false;\n\n case _ui_utils.RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n\n case _ui_utils.RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n\n case _ui_utils.RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw().finally(() => {\n this.renderHighestPriority();\n }).catch(reason => {\n if (reason instanceof _pdfjsLib.RenderingCancelledException) {\n return;\n }\n\n console.error(`renderView: \"${reason}\"`);\n });\n break;\n }\n\n return true;\n }\n\n}\n\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextHighlighter = void 0;\n\nclass TextHighlighter {\n constructor({\n findController,\n eventBus,\n pageIndex\n }) {\n this.findController = findController;\n this.matches = [];\n this.eventBus = eventBus;\n this.pageIdx = pageIndex;\n this._onUpdateTextLayerMatches = null;\n this.textDivs = null;\n this.textContentItemsStr = null;\n this.enabled = false;\n }\n\n setTextMapping(divs, texts) {\n this.textDivs = divs;\n this.textContentItemsStr = texts;\n }\n\n enable() {\n if (!this.textDivs || !this.textContentItemsStr) {\n throw new Error(\"Text divs and strings have not been set.\");\n }\n\n if (this.enabled) {\n throw new Error(\"TextHighlighter is already enabled.\");\n }\n\n this.enabled = true;\n\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = evt => {\n if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n this._updateMatches();\n }\n };\n\n this.eventBus._on(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n }\n\n this._updateMatches();\n }\n\n disable() {\n if (!this.enabled) {\n return;\n }\n\n this.enabled = false;\n\n if (this._onUpdateTextLayerMatches) {\n this.eventBus._off(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n\n this._onUpdateTextLayerMatches = null;\n }\n }\n\n _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n\n const {\n textContentItemsStr\n } = this;\n let i = 0,\n iIndex = 0;\n const end = textContentItemsStr.length - 1;\n const result = [];\n\n for (let m = 0, mm = matches.length; m < mm; m++) {\n let matchIdx = matches[m];\n\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n if (i === textContentItemsStr.length) {\n console.error(\"Could not find a matching mapping\");\n }\n\n const match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n matchIdx += matchesLength[m];\n\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n\n return result;\n }\n\n _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n\n const {\n findController,\n pageIdx\n } = this;\n const {\n textContentItemsStr,\n textDivs\n } = this;\n const isSelectedPage = pageIdx === findController.selected.pageIdx;\n const selectedMatchIdx = findController.selected.matchIdx;\n const highlightAll = findController.state.highlightAll;\n let prevEnd = null;\n const infinity = {\n divIdx: -1,\n offset: undefined\n };\n\n function beginText(begin, className) {\n const divIdx = begin.divIdx;\n textDivs[divIdx].textContent = \"\";\n return appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n let div = textDivs[divIdx];\n\n if (div.nodeType === Node.TEXT_NODE) {\n const span = document.createElement(\"span\");\n div.parentNode.insertBefore(span, div);\n span.appendChild(div);\n textDivs[divIdx] = span;\n div = span;\n }\n\n const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n const node = document.createTextNode(content);\n\n if (className) {\n const span = document.createElement(\"span\");\n span.className = `${className} appended`;\n span.appendChild(node);\n div.appendChild(span);\n return className.includes(\"selected\") ? span.offsetLeft : 0;\n }\n\n div.appendChild(node);\n return 0;\n }\n\n let i0 = selectedMatchIdx,\n i1 = i0 + 1;\n\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n\n for (let i = i0; i < i1; i++) {\n const match = matches[i];\n const begin = match.begin;\n const end = match.end;\n const isSelected = isSelectedPage && i === selectedMatchIdx;\n const highlightSuffix = isSelected ? \" selected\" : \"\";\n let selectedLeft = 0;\n\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n\n if (begin.divIdx === end.divIdx) {\n selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n } else {\n selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n\n for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n }\n\n beginText(end, \"highlight end\" + highlightSuffix);\n }\n\n prevEnd = end;\n\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n selectedLeft,\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n }\n\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n\n _updateMatches() {\n if (!this.enabled) {\n return;\n }\n\n const {\n findController,\n matches,\n pageIdx\n } = this;\n const {\n textContentItemsStr,\n textDivs\n } = this;\n let clearedUntilDivIdx = -1;\n\n for (let i = 0, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n\n for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n const div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = \"\";\n }\n\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n\n if (!findController?.highlightMatches) {\n return;\n }\n\n const pageMatches = findController.pageMatches[pageIdx] || null;\n const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n\n this._renderMatches(this.matches);\n }\n\n}\n\nexports.TextHighlighter = TextHighlighter;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DownloadManager = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\n;\n\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n\n a.href = blobUrl;\n a.target = \"_parent\";\n\n if (\"download\" in a) {\n a.download = filename;\n }\n\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.remove();\n}\n\nclass DownloadManager {\n constructor() {\n this._openBlobUrls = new WeakMap();\n }\n\n downloadUrl(url, filename) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, \"http://example.com\")) {\n console.error(`downloadUrl - not a valid URL: ${url}`);\n return;\n }\n\n download(url + \"#pdfjs.action=download\", filename);\n }\n\n downloadData(data, filename, contentType) {\n const blobUrl = URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n download(blobUrl, filename);\n }\n\n openOrDownloadData(element, data, filename) {\n const isPdfData = (0, _pdfjsLib.isPdfFile)(filename);\n const contentType = isPdfData ? \"application/pdf\" : \"\";\n\n if (isPdfData) {\n let blobUrl = this._openBlobUrls.get(element);\n\n if (!blobUrl) {\n blobUrl = URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n\n this._openBlobUrls.set(element, blobUrl);\n }\n\n let viewerUrl;\n viewerUrl = \"?file=\" + encodeURIComponent(blobUrl + \"#\" + filename);\n\n try {\n window.open(viewerUrl);\n return true;\n } catch (ex) {\n console.error(`openOrDownloadData: ${ex}`);\n URL.revokeObjectURL(blobUrl);\n\n this._openBlobUrls.delete(element);\n }\n }\n\n this.downloadData(data, filename, contentType);\n return false;\n }\n\n download(blob, url, filename, sourceEventType = \"download\") {\n const blobUrl = URL.createObjectURL(blob);\n download(blobUrl, filename);\n }\n\n}\n\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nclass EventBus {\n constructor() {\n this._listeners = Object.create(null);\n }\n\n on(eventName, listener, options = null) {\n this._on(eventName, listener, {\n external: true,\n once: options?.once\n });\n }\n\n off(eventName, listener, options = null) {\n this._off(eventName, listener, {\n external: true,\n once: options?.once\n });\n }\n\n dispatch(eventName, data) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n\n let externalListeners;\n\n for (const {\n listener,\n external,\n once\n } of eventListeners.slice(0)) {\n if (once) {\n this._off(eventName, listener);\n }\n\n if (external) {\n (externalListeners ||= []).push(listener);\n continue;\n }\n\n listener(data);\n }\n\n if (externalListeners) {\n for (const listener of externalListeners) {\n listener(data);\n }\n\n externalListeners = null;\n }\n }\n\n _on(eventName, listener, options = null) {\n const eventListeners = this._listeners[eventName] ||= [];\n eventListeners.push({\n listener,\n external: options?.external === true,\n once: options?.once === true\n });\n }\n\n _off(eventName, listener, options = null) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n return;\n }\n\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n\n}\n\nexports.EventBus = EventBus;\n\nclass AutomationEventBus extends EventBus {\n dispatch(eventName, data) {\n throw new Error(\"Not implemented: AutomationEventBus.dispatch\");\n }\n\n}\n\nexports.AutomationEventBus = AutomationEventBus;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GenericL10n = void 0;\n\n__w_pdfjs_require__(19);\n\nvar _l10n_utils = __w_pdfjs_require__(4);\n\nconst webL10n = document.webL10n;\n\nclass GenericL10n {\n constructor(lang) {\n this._lang = lang;\n this._ready = new Promise((resolve, reject) => {\n webL10n.setLanguage((0, _l10n_utils.fixupLangCode)(lang), () => {\n resolve(webL10n);\n });\n });\n }\n\n async getLanguage() {\n const l10n = await this._ready;\n return l10n.getLanguage();\n }\n\n async getDirection() {\n const l10n = await this._ready;\n return l10n.getDirection();\n }\n\n async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) {\n const l10n = await this._ready;\n return l10n.get(key, args, fallback);\n }\n\n async translate(element) {\n const l10n = await this._ready;\n return l10n.translate(element);\n }\n\n}\n\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 19 */\n/***/ (() => {\n\n\n\ndocument.webL10n = function (window, document, undefined) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n\n return {\n id: l10nId,\n args: args\n };\n }\n\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n\n onFailure = onFailure || function _onFailure() {};\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n\n var line = entries.shift();\n if (reComment.test(line)) continue;\n\n if (extendedSyntax) {\n match = reSection.exec(line);\n\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n\n match = reImport.exec(line);\n\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n\n var tmp = line.match(reSplit);\n\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n\n nextEntry();\n }\n\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n\n gL10nData[id][prop] = data[key];\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n\n callback = callback || function _callback() {};\n\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n\n if (langCount === 0) {\n var dict = getL10nDictionary();\n\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n\n gReadyState = 'complete';\n return;\n }\n\n var onResourceLoaded = null;\n var gResourceCount = 0;\n\n onResourceLoaded = function () {\n gResourceCount++;\n\n if (gResourceCount >= langCount) {\n callback();\n gReadyState = 'complete';\n }\n };\n\n function L10nResourceLink(link) {\n var href = link.href;\n\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n\n var pluralRules = {\n '0': function (n) {\n return 'other';\n },\n '1': function (n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function (n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function (n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function (n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function (n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function (n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function (n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function (n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function (n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function (n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function (n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function (n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function (n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function (n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function (n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function (n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function (n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function (n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function (n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function (n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function (n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function (n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n\n return pluralRules[index];\n }\n\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n\n var index = '[' + gMacros._pluralRules(n) + ']';\n\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n\n return str;\n };\n\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n\n if (!fallback) {\n return null;\n }\n\n data = fallback;\n }\n\n var rv = {};\n\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n\n return rv;\n }\n\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n\n return str;\n }\n\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.insertBefore(textNode, element.firstChild);\n }\n }\n\n delete data[gTextProp];\n }\n\n for (var k in data) {\n element[k] = data[k];\n }\n }\n\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n\n var count = 0;\n\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n\n return count;\n }\n\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n\n translateElement(element);\n }\n\n return {\n get: function (key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n\n var fallback;\n\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n\n var data = getL10nData(key, args, fallback);\n\n if (data && prop in data) {\n return data[prop];\n }\n\n return '{{' + key + '}}';\n },\n getData: function () {\n return gL10nData;\n },\n getText: function () {\n return gTextData;\n },\n getLanguage: function () {\n return gLanguage;\n },\n setLanguage: function (lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function () {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function () {\n return gReadyState;\n },\n ready: function (callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFindController = exports.FindState = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nvar _pdf_find_utils = __w_pdfjs_require__(21);\n\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -50;\nconst MATCH_SCROLL_OFFSET_LEFT = -400;\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2010\": \"-\",\n \"\\u2018\": \"'\",\n \"\\u2019\": \"'\",\n \"\\u201A\": \"'\",\n \"\\u201B\": \"'\",\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\u00BC\": \"1/4\",\n \"\\u00BD\": \"1/2\",\n \"\\u00BE\": \"3/4\"\n};\nconst DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]);\nconst DIACRITICS_EXCEPTION_STR = [...DIACRITICS_EXCEPTION.values()].map(x => String.fromCharCode(x)).join(\"\");\nconst DIACRITICS_REG_EXP = /\\p{M}+/gu;\nconst SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\\]\\\\])|(\\p{P})|(\\s+)|(\\p{M})|(\\p{L})/gu;\nconst NOT_DIACRITIC_FROM_END_REG_EXP = /([^\\p{M}])\\p{M}*$/u;\nconst NOT_DIACRITIC_FROM_START_REG_EXP = /^\\p{M}*([^\\p{M}])/u;\nlet normalizationRegex = null;\n\nfunction normalize(text) {\n if (!normalizationRegex) {\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n normalizationRegex = new RegExp(`([${replace}])|(\\\\p{M}+(?:-\\\\n)?)|(\\\\S-\\\\n)|(\\\\n)`, \"gum\");\n }\n\n const rawDiacriticsPositions = [];\n let m;\n\n while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) {\n rawDiacriticsPositions.push([m[0].length, m.index]);\n }\n\n let normalized = text.normalize(\"NFD\");\n const positions = [[0, 0]];\n let k = 0;\n let shift = 0;\n let shiftOrigin = 0;\n let eol = 0;\n let hasDiacritics = false;\n normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, i) => {\n i -= shiftOrigin;\n\n if (p1) {\n const replacement = CHARACTERS_TO_NORMALIZE[match];\n const jj = replacement.length;\n\n for (let j = 1; j < jj; j++) {\n positions.push([i - shift + j, shift - j]);\n }\n\n shift -= jj - 1;\n return replacement;\n }\n\n if (p2) {\n const hasTrailingDashEOL = p2.endsWith(\"\\n\");\n const len = hasTrailingDashEOL ? p2.length - 2 : p2.length;\n hasDiacritics = true;\n let jj = len;\n\n if (i + eol === rawDiacriticsPositions[k]?.[1]) {\n jj -= rawDiacriticsPositions[k][0];\n ++k;\n }\n\n for (let j = 1; j < jj + 1; j++) {\n positions.push([i - 1 - shift + j, shift - j]);\n }\n\n shift -= jj;\n shiftOrigin += jj;\n\n if (hasTrailingDashEOL) {\n i += len - 1;\n positions.push([i - shift + 1, 1 + shift]);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p2.slice(0, len);\n }\n\n return p2;\n }\n\n if (p3) {\n positions.push([i - shift + 1, 1 + shift]);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p3.charAt(0);\n }\n\n positions.push([i - shift + 1, shift - 1]);\n shift -= 1;\n shiftOrigin += 1;\n eol += 1;\n return \" \";\n });\n positions.push([normalized.length, shift]);\n return [normalized, positions, hasDiacritics];\n}\n\nfunction getOriginalIndex(diffs, pos, len) {\n if (!diffs) {\n return [pos, len];\n }\n\n const start = pos;\n const end = pos + len;\n let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start);\n\n if (diffs[i][0] > start) {\n --i;\n }\n\n let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i);\n\n if (diffs[j][0] > end) {\n --j;\n }\n\n return [start + diffs[i][1], len + diffs[j][1] - diffs[i][1]];\n}\n\nclass PDFFindController {\n constructor({\n linkService,\n eventBus\n }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n this.#reset();\n\n eventBus._on(\"find\", this.#onFind.bind(this));\n\n eventBus._on(\"findbarclose\", this.#onFindBarClose.bind(this));\n }\n\n get highlightMatches() {\n return this._highlightMatches;\n }\n\n get pageMatches() {\n return this._pageMatches;\n }\n\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n\n get selected() {\n return this._selected;\n }\n\n get state() {\n return this._state;\n }\n\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this.#reset();\n }\n\n if (!pdfDocument) {\n return;\n }\n\n this._pdfDocument = pdfDocument;\n\n this._firstPageCapability.resolve();\n }\n\n #onFind(state) {\n if (!state) {\n return;\n }\n\n const pdfDocument = this._pdfDocument;\n const {\n type\n } = state;\n\n if (this._state === null || this.#shouldDirtyMatch(state)) {\n this._dirtyMatch = true;\n }\n\n this._state = state;\n\n if (type !== \"highlightallchange\") {\n this.#updateUIState(FindState.PENDING);\n }\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n this.#extractText();\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (!type) {\n this._findTimeout = setTimeout(() => {\n this.#nextMatch();\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n this.#nextMatch();\n } else if (type === \"again\") {\n this.#nextMatch();\n\n if (findbarClosed && this._state.highlightAll) {\n this.#updateAllPages();\n }\n } else if (type === \"highlightallchange\") {\n if (pendingTimeout) {\n this.#nextMatch();\n } else {\n this._highlightMatches = true;\n }\n\n this.#updateAllPages();\n } else {\n this.#nextMatch();\n }\n });\n }\n\n scrollMatchIntoView({\n element = null,\n selectedLeft = 0,\n pageIndex = -1,\n matchIndex = -1\n }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n\n this._scrollMatches = false;\n const spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n\n #reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this._state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._pageDiffs = [];\n this._hasDiacritics = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = new Set();\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n }\n\n get #query() {\n if (this._state.query !== this._rawQuery) {\n this._rawQuery = this._state.query;\n [this._normalizedQuery] = normalize(this._state.query);\n }\n\n return this._normalizedQuery;\n }\n\n #shouldDirtyMatch(state) {\n if (state.query !== this._state.query) {\n return true;\n }\n\n switch (state.type) {\n case \"again\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n\n if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) {\n return true;\n }\n\n return false;\n\n case \"highlightallchange\":\n return false;\n }\n\n return true;\n }\n\n #isEntireWord(content, startIdx, length) {\n let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP);\n\n if (match) {\n const first = content.charCodeAt(startIdx);\n const limit = match[1].charCodeAt(0);\n\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP);\n\n if (match) {\n const last = content.charCodeAt(startIdx + length - 1);\n const limit = match[1].charCodeAt(0);\n\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n return true;\n }\n\n #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) {\n const matches = [],\n matchesLength = [];\n const diffs = this._pageDiffs[pageIndex];\n let match;\n\n while ((match = query.exec(pageContent)) !== null) {\n if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) {\n continue;\n }\n\n const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length);\n\n if (matchLen) {\n matches.push(matchPos);\n matchesLength.push(matchLen);\n }\n }\n\n this._pageMatches[pageIndex] = matches;\n this._pageMatchesLength[pageIndex] = matchesLength;\n }\n\n #convertToRegExpString(query, hasDiacritics) {\n const {\n matchDiacritics\n } = this._state;\n let isUnicode = false;\n query = query.replace(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => {\n if (p1) {\n return `[ ]*\\\\${p1}[ ]*`;\n }\n\n if (p2) {\n return `[ ]*${p2}[ ]*`;\n }\n\n if (p3) {\n return \"[ ]+\";\n }\n\n if (matchDiacritics) {\n return p4 || p5;\n }\n\n if (p4) {\n return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : \"\";\n }\n\n if (hasDiacritics) {\n isUnicode = true;\n return `${p5}\\\\p{M}*`;\n }\n\n return p5;\n });\n const trailingSpaces = \"[ ]*\";\n\n if (query.endsWith(trailingSpaces)) {\n query = query.slice(0, query.length - trailingSpaces.length);\n }\n\n if (matchDiacritics) {\n if (hasDiacritics) {\n isUnicode = true;\n query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\\\p{M}]|$)`;\n }\n }\n\n return [isUnicode, query];\n }\n\n #calculateMatch(pageIndex) {\n let query = this.#query;\n\n if (query.length === 0) {\n return;\n }\n\n const {\n caseSensitive,\n entireWord,\n phraseSearch\n } = this._state;\n const pageContent = this._pageContents[pageIndex];\n const hasDiacritics = this._hasDiacritics[pageIndex];\n let isUnicode = false;\n\n if (phraseSearch) {\n [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics);\n } else {\n const match = query.match(/\\S+/g);\n\n if (match) {\n query = match.sort().reverse().map(q => {\n const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics);\n isUnicode ||= isUnicodePart;\n return `(${queryPart})`;\n }).join(\"|\");\n }\n }\n\n const flags = `g${isUnicode ? \"u\" : \"\"}${caseSensitive ? \"\" : \"i\"}`;\n query = new RegExp(query, flags);\n this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent);\n\n if (this._state.highlightAll) {\n this.#updatePage(pageIndex);\n }\n\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n this.#nextPageMatch();\n }\n\n const pageMatchesCount = this._pageMatches[pageIndex].length;\n\n if (pageMatchesCount > 0) {\n this._matchesCountTotal += pageMatchesCount;\n this.#updateUIResultsCount();\n }\n }\n\n #extractText() {\n if (this._extractTextPromises.length > 0) {\n return;\n }\n\n let promise = Promise.resolve();\n\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(() => {\n return this._pdfDocument.getPage(i + 1).then(pdfPage => {\n return pdfPage.getTextContent();\n }).then(textContent => {\n const strBuf = [];\n\n for (const textItem of textContent.items) {\n strBuf.push(textItem.str);\n\n if (textItem.hasEOL) {\n strBuf.push(\"\\n\");\n }\n }\n\n [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join(\"\"));\n extractTextCapability.resolve();\n }, reason => {\n console.error(`Unable to get text content for page ${i + 1}`, reason);\n this._pageContents[i] = \"\";\n this._pageDiffs[i] = null;\n this._hasDiacritics[i] = false;\n extractTextCapability.resolve();\n });\n });\n }\n }\n\n #updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index\n });\n }\n\n #updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1\n });\n }\n\n #nextMatch() {\n const previous = this._state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this._matchesCountTotal = 0;\n this.#updateAllPages();\n\n for (let i = 0; i < numPages; i++) {\n if (this._pendingFindMatches.has(i)) {\n continue;\n }\n\n this._pendingFindMatches.add(i);\n\n this._extractTextPromises[i].then(() => {\n this._pendingFindMatches.delete(i);\n\n this.#calculateMatch(i);\n });\n }\n }\n\n if (this.#query === \"\") {\n this.#updateUIState(FindState.FOUND);\n return;\n }\n\n if (this._resumePageIdx) {\n return;\n }\n\n const offset = this._offset;\n this._pagesToSearch = numPages;\n\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n this.#updateMatch(true);\n return;\n }\n\n this.#advanceOffsetPage(previous);\n }\n\n this.#nextPageMatch();\n }\n\n #matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this._state.findPrevious;\n\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n this.#updateMatch(true);\n return true;\n }\n\n this.#advanceOffsetPage(previous);\n\n if (offset.wrapped) {\n offset.matchIdx = null;\n\n if (this._pagesToSearch < 0) {\n this.#updateMatch(false);\n return true;\n }\n }\n\n return false;\n }\n\n #nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n\n let matches = null;\n\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this.#matchesReady(matches));\n }\n\n #advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n\n #updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this.#updatePage(previousPage);\n }\n }\n\n this.#updateUIState(state, this._state.findPrevious);\n\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n this.#updatePage(this._selected.pageIdx);\n }\n }\n\n #onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n\n this.#updateUIState(FindState.FOUND);\n this._highlightMatches = false;\n this.#updateAllPages();\n });\n }\n\n #requestMatchesCount() {\n const {\n pageIdx,\n matchIdx\n } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i]?.length || 0;\n }\n\n current += matchIdx + 1;\n }\n\n if (current < 1 || current > total) {\n current = total = 0;\n }\n\n return {\n current,\n total\n };\n }\n\n #updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this.#requestMatchesCount()\n });\n }\n\n #updateUIState(state, previous = false) {\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n matchesCount: this.#requestMatchesCount(),\n rawQuery: this._state?.query ?? null\n });\n }\n\n}\n\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CharacterType = void 0;\nexports.getCharacterType = getCharacterType;\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\n\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\n\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\n\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\n\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\n\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\n\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\n\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\n\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\n\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\n\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\n\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n return CharacterType.ALPHA_LETTER;\n }\n\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xa0) {\n return CharacterType.SPACE;\n }\n\n return CharacterType.ALPHA_LETTER;\n }\n\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n\n return CharacterType.ALPHA_LETTER;\n}\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFHistory = void 0;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.isDestHashesEqual = isDestHashesEqual;\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _event_utils = __w_pdfjs_require__(17);\n\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\n\nfunction getCurrentHash() {\n return document.location.hash;\n}\n\nclass PDFHistory {\n constructor({\n linkService,\n eventBus\n }) {\n this.linkService = linkService;\n this.eventBus = eventBus;\n this._initialized = false;\n this._fingerprint = \"\";\n this.reset();\n this._boundEvents = null;\n\n this.eventBus._on(\"pagesinit\", () => {\n this._isPagesLoaded = false;\n\n this.eventBus._on(\"pagesloaded\", evt => {\n this._isPagesLoaded = !!evt.pagesCount;\n }, {\n once: true\n });\n });\n }\n\n initialize({\n fingerprint,\n resetHistory = false,\n updateUrl = false\n }) {\n if (!fingerprint || typeof fingerprint !== \"string\") {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n\n if (this._initialized) {\n this.reset();\n }\n\n const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n this._fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n this._initialized = true;\n\n this._bindEvents();\n\n const state = window.history.state;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n\n if (!this._isValidState(state, true) || resetHistory) {\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash(true);\n\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n\n return;\n }\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (destination.rotation !== undefined) {\n this._initialRotation = destination.rotation;\n }\n\n if (destination.dest) {\n this._initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this._initialBookmark = destination.hash;\n } else if (destination.page) {\n this._initialBookmark = `page=${destination.page}`;\n }\n }\n\n reset() {\n if (this._initialized) {\n this._pageHide();\n\n this._initialized = false;\n\n this._unbindEvents();\n }\n\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._initialBookmark = null;\n this._initialRotation = null;\n }\n\n push({\n namedDest = null,\n explicitDest,\n pageNumber\n }) {\n if (!this._initialized) {\n return;\n }\n\n if (namedDest && typeof namedDest !== \"string\") {\n console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n return;\n } else if (!this._isValidPage(pageNumber)) {\n if (pageNumber !== null || this._destination) {\n console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n }\n\n const hash = namedDest || JSON.stringify(explicitDest);\n\n if (!hash) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n\n forceReplace = true;\n }\n\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n\n this._pushOrReplaceState({\n dest: explicitDest,\n hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n\n pushPage(pageNumber) {\n if (!this._initialized) {\n return;\n }\n\n if (!this._isValidPage(pageNumber)) {\n console.error(`PDFHistory.pushPage: \"${pageNumber}\" is not a valid page number.`);\n return;\n }\n\n if (this._destination?.page === pageNumber) {\n return;\n }\n\n if (this._popStateInProgress) {\n return;\n }\n\n this._pushOrReplaceState({\n dest: null,\n hash: `page=${pageNumber}`,\n page: pageNumber,\n rotation: this.linkService.rotation\n });\n\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n\n pushCurrentPosition() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n this._tryPushCurrentPosition();\n }\n\n back() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n\n forward() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n\n get popStateInProgress() {\n return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n\n get initialBookmark() {\n return this._initialized ? this._initialBookmark : null;\n }\n\n get initialRotation() {\n return this._initialized ? this._initialRotation : null;\n }\n\n _pushOrReplaceState(destination, forceReplace = false) {\n const shouldReplace = forceReplace || !this._destination;\n const newState = {\n fingerprint: this._fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination\n };\n\n this._updateInternalState(destination, newState.uid);\n\n let newUrl;\n\n if (this._updateUrl && destination?.hash) {\n const baseUrl = document.location.href.split(\"#\")[0];\n\n if (!baseUrl.startsWith(\"file://\")) {\n newUrl = `${baseUrl}#${destination.hash}`;\n }\n }\n\n if (shouldReplace) {\n window.history.replaceState(newState, \"\", newUrl);\n } else {\n window.history.pushState(newState, \"\", newUrl);\n }\n }\n\n _tryPushCurrentPosition(temporary = false) {\n if (!this._position) {\n return;\n }\n\n let position = this._position;\n\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n\n if (!this._destination) {\n this._pushOrReplaceState(position);\n\n return;\n }\n\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n\n return;\n }\n\n if (this._destination.hash === position.hash) {\n return;\n }\n\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest !== undefined || !this._destination.first) {\n return;\n }\n\n forceReplace = true;\n }\n\n this._pushOrReplaceState(position, forceReplace);\n }\n\n _isValidPage(val) {\n return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount;\n }\n\n _isValidState(state, checkReload = false) {\n if (!state) {\n return false;\n }\n\n if (state.fingerprint !== this._fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n return false;\n }\n\n const [perfEntry] = performance.getEntriesByType(\"navigation\");\n\n if (perfEntry?.type !== \"reload\") {\n return false;\n }\n } else {\n return false;\n }\n }\n\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n\n if (state.destination === null || typeof state.destination !== \"object\") {\n return false;\n }\n\n return true;\n }\n\n _updateInternalState(destination, uid, removeTemporary = false) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n if (removeTemporary && destination?.temporary) {\n delete destination.temporary;\n }\n\n this._destination = destination;\n this._uid = uid;\n this._maxUid = Math.max(this._maxUid, uid);\n this._numPositionUpdates = 0;\n }\n\n _parseCurrentHash(checkNameddest = false) {\n const hash = unescape(getCurrentHash()).substring(1);\n const params = (0, _ui_utils.parseQueryString)(hash);\n const nameddest = params.get(\"nameddest\") || \"\";\n let page = params.get(\"page\") | 0;\n\n if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) {\n page = null;\n }\n\n return {\n hash,\n page,\n rotation: this.linkService.rotation\n };\n }\n\n _updateViewarea({\n location\n }) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._position = {\n hash: location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n\n if (this._popStateInProgress) {\n return;\n }\n\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(() => {\n if (!this._popStateInProgress) {\n this._tryPushCurrentPosition(true);\n }\n\n this._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n\n _popState({\n state\n }) {\n const newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n\n if (!state) {\n this._uid++;\n\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash();\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n if (!this._isValidState(state)) {\n return;\n }\n\n this._popStateInProgress = true;\n\n if (hashChanged) {\n this._blockHashChange++;\n (0, _event_utils.waitOnEventOrTimeout)({\n target: window,\n name: \"hashchange\",\n delay: HASH_CHANGE_TIMEOUT\n }).then(() => {\n this._blockHashChange--;\n });\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n\n if (destination.dest) {\n this.linkService.goToDestination(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n\n _pageHide() {\n if (!this._destination || this._destination.temporary) {\n this._tryPushCurrentPosition();\n }\n }\n\n _bindEvents() {\n if (this._boundEvents) {\n return;\n }\n\n this._boundEvents = {\n updateViewarea: this._updateViewarea.bind(this),\n popState: this._popState.bind(this),\n pageHide: this._pageHide.bind(this)\n };\n\n this.eventBus._on(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.addEventListener(\"popstate\", this._boundEvents.popState);\n window.addEventListener(\"pagehide\", this._boundEvents.pageHide);\n }\n\n _unbindEvents() {\n if (!this._boundEvents) {\n return;\n }\n\n this.eventBus._off(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.removeEventListener(\"popstate\", this._boundEvents.popState);\n window.removeEventListener(\"pagehide\", this._boundEvents.pageHide);\n this._boundEvents = null;\n }\n\n}\n\nexports.PDFHistory = PDFHistory;\n\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n return false;\n }\n\n if (destHash === pushHash) {\n return true;\n }\n\n const nameddest = (0, _ui_utils.parseQueryString)(destHash).get(\"nameddest\");\n\n if (nameddest === pushHash) {\n return true;\n }\n\n return false;\n}\n\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (typeof first !== typeof second) {\n return false;\n }\n\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n\n if (first !== null && typeof first === \"object\" && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (const key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n\n for (let i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFScriptingManager = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nclass PDFScriptingManager {\n constructor({\n eventBus,\n sandboxBundleSrc = null,\n scriptingFactory = null,\n docPropertiesLookup = null\n }) {\n this._pdfDocument = null;\n this._pdfViewer = null;\n this._closeCapability = null;\n this._destroyCapability = null;\n this._scripting = null;\n this._mouseState = Object.create(null);\n this._ready = false;\n this._eventBus = eventBus;\n this._sandboxBundleSrc = sandboxBundleSrc;\n this._scriptingFactory = scriptingFactory;\n this._docPropertiesLookup = docPropertiesLookup;\n\n if (!this._scriptingFactory) {\n window.addEventListener(\"updatefromsandbox\", event => {\n this._eventBus.dispatch(\"updatefromsandbox\", {\n source: window,\n detail: event.detail\n });\n });\n }\n }\n\n setViewer(pdfViewer) {\n this._pdfViewer = pdfViewer;\n }\n\n async setDocument(pdfDocument) {\n if (this._pdfDocument) {\n await this._destroyScripting();\n }\n\n this._pdfDocument = pdfDocument;\n\n if (!pdfDocument) {\n return;\n }\n\n const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]);\n\n if (!objects && !docActions) {\n await this._destroyScripting();\n return;\n }\n\n if (pdfDocument !== this._pdfDocument) {\n return;\n }\n\n try {\n this._scripting = this._createScripting();\n } catch (error) {\n console.error(`PDFScriptingManager.setDocument: \"${error?.message}\".`);\n await this._destroyScripting();\n return;\n }\n\n this._internalEvents.set(\"updatefromsandbox\", event => {\n if (event?.source !== window) {\n return;\n }\n\n this._updateFromSandbox(event.detail);\n });\n\n this._internalEvents.set(\"dispatcheventinsandbox\", event => {\n this._scripting?.dispatchEventInSandbox(event.detail);\n });\n\n this._internalEvents.set(\"pagechanging\", ({\n pageNumber,\n previous\n }) => {\n if (pageNumber === previous) {\n return;\n }\n\n this._dispatchPageClose(previous);\n\n this._dispatchPageOpen(pageNumber);\n });\n\n this._internalEvents.set(\"pagerendered\", ({\n pageNumber\n }) => {\n if (!this._pageOpenPending.has(pageNumber)) {\n return;\n }\n\n if (pageNumber !== this._pdfViewer.currentPageNumber) {\n return;\n }\n\n this._dispatchPageOpen(pageNumber);\n });\n\n this._internalEvents.set(\"pagesdestroy\", async event => {\n await this._dispatchPageClose(this._pdfViewer.currentPageNumber);\n await this._scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillClose\"\n });\n this._closeCapability?.resolve();\n });\n\n this._domEvents.set(\"mousedown\", event => {\n this._mouseState.isDown = true;\n });\n\n this._domEvents.set(\"mouseup\", event => {\n this._mouseState.isDown = false;\n });\n\n for (const [name, listener] of this._internalEvents) {\n this._eventBus._on(name, listener);\n }\n\n for (const [name, listener] of this._domEvents) {\n window.addEventListener(name, listener, true);\n }\n\n try {\n const docProperties = await this._getDocProperties();\n\n if (pdfDocument !== this._pdfDocument) {\n return;\n }\n\n await this._scripting.createSandbox({\n objects,\n calculationOrder,\n appInfo: {\n platform: navigator.platform,\n language: navigator.language\n },\n docInfo: { ...docProperties,\n actions: docActions\n }\n });\n\n this._eventBus.dispatch(\"sandboxcreated\", {\n source: this\n });\n } catch (error) {\n console.error(`PDFScriptingManager.setDocument: \"${error?.message}\".`);\n await this._destroyScripting();\n return;\n }\n\n await this._scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"Open\"\n });\n await this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true);\n Promise.resolve().then(() => {\n if (pdfDocument === this._pdfDocument) {\n this._ready = true;\n }\n });\n }\n\n async dispatchWillSave(detail) {\n return this._scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillSave\"\n });\n }\n\n async dispatchDidSave(detail) {\n return this._scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"DidSave\"\n });\n }\n\n async dispatchWillPrint(detail) {\n return this._scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillPrint\"\n });\n }\n\n async dispatchDidPrint(detail) {\n return this._scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"DidPrint\"\n });\n }\n\n get mouseState() {\n return this._mouseState;\n }\n\n get destroyPromise() {\n return this._destroyCapability?.promise || null;\n }\n\n get ready() {\n return this._ready;\n }\n\n get _internalEvents() {\n return (0, _pdfjsLib.shadow)(this, \"_internalEvents\", new Map());\n }\n\n get _domEvents() {\n return (0, _pdfjsLib.shadow)(this, \"_domEvents\", new Map());\n }\n\n get _pageOpenPending() {\n return (0, _pdfjsLib.shadow)(this, \"_pageOpenPending\", new Set());\n }\n\n get _visitedPages() {\n return (0, _pdfjsLib.shadow)(this, \"_visitedPages\", new Map());\n }\n\n async _updateFromSandbox(detail) {\n const isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode;\n const {\n id,\n siblings,\n command,\n value\n } = detail;\n\n if (!id) {\n switch (command) {\n case \"clear\":\n console.clear();\n break;\n\n case \"error\":\n console.error(value);\n break;\n\n case \"layout\":\n if (isInPresentationMode) {\n return;\n }\n\n const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value);\n this._pdfViewer.spreadMode = modes.spreadMode;\n break;\n\n case \"page-num\":\n this._pdfViewer.currentPageNumber = value + 1;\n break;\n\n case \"print\":\n await this._pdfViewer.pagesPromise;\n\n this._eventBus.dispatch(\"print\", {\n source: this\n });\n\n break;\n\n case \"println\":\n console.log(value);\n break;\n\n case \"zoom\":\n if (isInPresentationMode) {\n return;\n }\n\n this._pdfViewer.currentScaleValue = value;\n break;\n\n case \"SaveAs\":\n this._eventBus.dispatch(\"save\", {\n source: this\n });\n\n break;\n\n case \"FirstPage\":\n this._pdfViewer.currentPageNumber = 1;\n break;\n\n case \"LastPage\":\n this._pdfViewer.currentPageNumber = this._pdfViewer.pagesCount;\n break;\n\n case \"NextPage\":\n this._pdfViewer.nextPage();\n\n break;\n\n case \"PrevPage\":\n this._pdfViewer.previousPage();\n\n break;\n\n case \"ZoomViewIn\":\n if (isInPresentationMode) {\n return;\n }\n\n this._pdfViewer.increaseScale();\n\n break;\n\n case \"ZoomViewOut\":\n if (isInPresentationMode) {\n return;\n }\n\n this._pdfViewer.decreaseScale();\n\n break;\n }\n\n return;\n }\n\n if (isInPresentationMode) {\n if (detail.focus) {\n return;\n }\n }\n\n delete detail.id;\n delete detail.siblings;\n const ids = siblings ? [id, ...siblings] : [id];\n\n for (const elementId of ids) {\n const element = document.getElementById(elementId);\n\n if (element) {\n element.dispatchEvent(new CustomEvent(\"updatefromsandbox\", {\n detail\n }));\n } else {\n this._pdfDocument?.annotationStorage.setValue(elementId, detail);\n }\n }\n }\n\n async _dispatchPageOpen(pageNumber, initialize = false) {\n const pdfDocument = this._pdfDocument,\n visitedPages = this._visitedPages;\n\n if (initialize) {\n this._closeCapability = (0, _pdfjsLib.createPromiseCapability)();\n }\n\n if (!this._closeCapability) {\n return;\n }\n\n const pageView = this._pdfViewer.getPageView(pageNumber - 1);\n\n if (pageView?.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n this._pageOpenPending.add(pageNumber);\n\n return;\n }\n\n this._pageOpenPending.delete(pageNumber);\n\n const actionsPromise = (async () => {\n const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null);\n\n if (pdfDocument !== this._pdfDocument) {\n return;\n }\n\n await this._scripting?.dispatchEventInSandbox({\n id: \"page\",\n name: \"PageOpen\",\n pageNumber,\n actions\n });\n })();\n\n visitedPages.set(pageNumber, actionsPromise);\n }\n\n async _dispatchPageClose(pageNumber) {\n const pdfDocument = this._pdfDocument,\n visitedPages = this._visitedPages;\n\n if (!this._closeCapability) {\n return;\n }\n\n if (this._pageOpenPending.has(pageNumber)) {\n return;\n }\n\n const actionsPromise = visitedPages.get(pageNumber);\n\n if (!actionsPromise) {\n return;\n }\n\n visitedPages.set(pageNumber, null);\n await actionsPromise;\n\n if (pdfDocument !== this._pdfDocument) {\n return;\n }\n\n await this._scripting?.dispatchEventInSandbox({\n id: \"page\",\n name: \"PageClose\",\n pageNumber\n });\n }\n\n async _getDocProperties() {\n if (this._docPropertiesLookup) {\n return this._docPropertiesLookup(this._pdfDocument);\n }\n\n const {\n docPropertiesLookup\n } = __w_pdfjs_require__(24);\n\n return docPropertiesLookup(this._pdfDocument);\n }\n\n _createScripting() {\n this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)();\n\n if (this._scripting) {\n throw new Error(\"_createScripting: Scripting already exists.\");\n }\n\n if (this._scriptingFactory) {\n return this._scriptingFactory.createScripting({\n sandboxBundleSrc: this._sandboxBundleSrc\n });\n }\n\n const {\n GenericScripting\n } = __w_pdfjs_require__(24);\n\n return new GenericScripting(this._sandboxBundleSrc);\n }\n\n async _destroyScripting() {\n if (!this._scripting) {\n this._pdfDocument = null;\n this._destroyCapability?.resolve();\n return;\n }\n\n if (this._closeCapability) {\n await Promise.race([this._closeCapability.promise, new Promise(resolve => {\n setTimeout(resolve, 1000);\n })]).catch(reason => {});\n this._closeCapability = null;\n }\n\n this._pdfDocument = null;\n\n try {\n await this._scripting.destroySandbox();\n } catch (ex) {}\n\n for (const [name, listener] of this._internalEvents) {\n this._eventBus._off(name, listener);\n }\n\n this._internalEvents.clear();\n\n for (const [name, listener] of this._domEvents) {\n window.removeEventListener(name, listener, true);\n }\n\n this._domEvents.clear();\n\n this._pageOpenPending.clear();\n\n this._visitedPages.clear();\n\n this._scripting = null;\n delete this._mouseState.isDown;\n this._ready = false;\n this._destroyCapability?.resolve();\n }\n\n}\n\nexports.PDFScriptingManager = PDFScriptingManager;\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GenericScripting = void 0;\nexports.docPropertiesLookup = docPropertiesLookup;\n\nvar _pdfjsLib = __w_pdfjs_require__(3);\n\nasync function docPropertiesLookup(pdfDocument) {\n const url = \"\",\n baseUrl = url.split(\"#\")[0];\n let {\n info,\n metadata,\n contentDispositionFilename,\n contentLength\n } = await pdfDocument.getMetadata();\n\n if (!contentLength) {\n const {\n length\n } = await pdfDocument.getDownloadInfo();\n contentLength = length;\n }\n\n return { ...info,\n baseURL: baseUrl,\n filesize: contentLength,\n filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url),\n metadata: metadata?.getRaw(),\n authors: metadata?.get(\"dc:creator\"),\n numPages: pdfDocument.numPages,\n URL: url\n };\n}\n\nclass GenericScripting {\n constructor(sandboxBundleSrc) {\n this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => {\n return window.pdfjsSandbox.QuickJSSandbox();\n });\n }\n\n async createSandbox(data) {\n const sandbox = await this._ready;\n sandbox.create(data);\n }\n\n async dispatchEventInSandbox(event) {\n const sandbox = await this._ready;\n setTimeout(() => sandbox.dispatchEvent(event), 0);\n }\n\n async destroySandbox() {\n const sandbox = await this._ready;\n sandbox.nukeSandbox();\n }\n\n}\n\nexports.GenericScripting = GenericScripting;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"DefaultAnnotationLayerFactory\", ({\n enumerable: true,\n get: function () {\n return _default_factory.DefaultAnnotationLayerFactory;\n }\n}));\nObject.defineProperty(exports, \"DefaultStructTreeLayerFactory\", ({\n enumerable: true,\n get: function () {\n return _default_factory.DefaultStructTreeLayerFactory;\n }\n}));\nObject.defineProperty(exports, \"DefaultTextLayerFactory\", ({\n enumerable: true,\n get: function () {\n return _default_factory.DefaultTextLayerFactory;\n }\n}));\nObject.defineProperty(exports, \"DefaultXfaLayerFactory\", ({\n enumerable: true,\n get: function () {\n return _default_factory.DefaultXfaLayerFactory;\n }\n}));\nObject.defineProperty(exports, \"DownloadManager\", ({\n enumerable: true,\n get: function () {\n return _download_manager.DownloadManager;\n }\n}));\nObject.defineProperty(exports, \"EventBus\", ({\n enumerable: true,\n get: function () {\n return _event_utils.EventBus;\n }\n}));\nObject.defineProperty(exports, \"GenericL10n\", ({\n enumerable: true,\n get: function () {\n return _genericl10n.GenericL10n;\n }\n}));\nObject.defineProperty(exports, \"LinkTarget\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.LinkTarget;\n }\n}));\nObject.defineProperty(exports, \"NullL10n\", ({\n enumerable: true,\n get: function () {\n return _l10n_utils.NullL10n;\n }\n}));\nObject.defineProperty(exports, \"PDFFindController\", ({\n enumerable: true,\n get: function () {\n return _pdf_find_controller.PDFFindController;\n }\n}));\nObject.defineProperty(exports, \"PDFHistory\", ({\n enumerable: true,\n get: function () {\n return _pdf_history.PDFHistory;\n }\n}));\nObject.defineProperty(exports, \"PDFLinkService\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.PDFLinkService;\n }\n}));\nObject.defineProperty(exports, \"PDFPageView\", ({\n enumerable: true,\n get: function () {\n return _pdf_page_view.PDFPageView;\n }\n}));\nObject.defineProperty(exports, \"PDFScriptingManager\", ({\n enumerable: true,\n get: function () {\n return _pdf_scripting_manager.PDFScriptingManager;\n }\n}));\nObject.defineProperty(exports, \"PDFSinglePageViewer\", ({\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFSinglePageViewer;\n }\n}));\nObject.defineProperty(exports, \"PDFViewer\", ({\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFViewer;\n }\n}));\nObject.defineProperty(exports, \"ProgressBar\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.ProgressBar;\n }\n}));\nObject.defineProperty(exports, \"SimpleLinkService\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.SimpleLinkService;\n }\n}));\nObject.defineProperty(exports, \"StructTreeLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _struct_tree_layer_builder.StructTreeLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"TextLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _text_layer_builder.TextLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"XfaLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer_builder.XfaLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"parseQueryString\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.parseQueryString;\n }\n}));\n\nvar _default_factory = __w_pdfjs_require__(1);\n\nvar _pdf_link_service = __w_pdfjs_require__(5);\n\nvar _ui_utils = __w_pdfjs_require__(6);\n\nvar _pdf_viewer = __w_pdfjs_require__(10);\n\nvar _annotation_layer_builder = __w_pdfjs_require__(2);\n\nvar _download_manager = __w_pdfjs_require__(16);\n\nvar _event_utils = __w_pdfjs_require__(17);\n\nvar _genericl10n = __w_pdfjs_require__(18);\n\nvar _l10n_utils = __w_pdfjs_require__(4);\n\nvar _pdf_find_controller = __w_pdfjs_require__(20);\n\nvar _pdf_history = __w_pdfjs_require__(22);\n\nvar _pdf_page_view = __w_pdfjs_require__(12);\n\nvar _pdf_scripting_manager = __w_pdfjs_require__(23);\n\nvar _struct_tree_layer_builder = __w_pdfjs_require__(7);\n\nvar _text_layer_builder = __w_pdfjs_require__(8);\n\nvar _xfa_layer_builder = __w_pdfjs_require__(9);\n\nconst pdfjsVersion = '2.14.305';\nconst pdfjsBuild = 'eaaa8b4ad';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n","\r\n
\r\n
\r\n
Event Details
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{ evt.title }}

\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

{{ 'date' | translate }}

\r\n \r\n {{ evt.startTime | date }}\r\n \r\n {{ evt.startTime | date: 'shortTime' }} - {{ evt.endTime | date: 'shortTime' }}\r\n {{ timezone }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

CEUs

\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventDisplayViewModel, ScheduledEventViewModel } from 'src/app/_models/generatedModels';\r\nimport { EventService } from 'src/app/_services/generatedServices';\r\nimport * as moment from 'moment';\r\nimport 'moment-timezone';\r\n\r\n@Component({\r\n selector: 'bxl-event-details-flyout',\r\n templateUrl: 'event-details-flyout.component.html',\r\n})\r\nexport class EventDetailsFlyoutComponent implements OnInit {\r\n initialized = false;\r\n @Input() event: ScheduledEventViewModel;\r\n evt: EventDisplayViewModel;\r\n timezone: string;\r\n constructor(private evtService: EventService, private activeModal: NgbActiveModal) {}\r\n\r\n ngOnInit(): void {\r\n let timeZone = moment.tz.guess();\r\n console.log(timeZone);\r\n let timeZoneOffset = new Date(this.event.startTime).getTimezoneOffset();\r\n this.timezone = moment.tz(timeZone).format('z');\r\n\r\n this.evtService.getSpecificEvent(this.event.id.toString()).subscribe((evt) => {\r\n this.evt = evt;\r\n this.initialized = true;\r\n });\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails } from 'src/app/_models/generatedModels';\r\n\r\n@Component({\r\n selector: 'bxl-conference-html-content',\r\n templateUrl: 'conference-html-content.component.html',\r\n})\r\nexport class ConferenceHtmlContentComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.initialized = true;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel } from 'src/app/_models/generatedModels';\r\n\r\n@Component({\r\n selector: 'bxl-conference-date-header',\r\n templateUrl: 'conference-date-header.component.html',\r\n})\r\nexport class ConferenceDateHeaderComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.initialized = true;\r\n }\r\n}\r\n","

{{ conference.name }}

\r\n
{{ conference.startDate | date: 'shortDate' }} - {{ conference.endDate | date: 'shortDate' }}
\r\n","\r\n
\r\n
\r\n
\r\n

Modify Registration

\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ existingRegistration.package.name }}
\r\n

{{ actualPrice | currency: existingRegistration.package.currencyCode:'symbol' }}

\r\n
\r\n
\r\n {{ errorMessage }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Please indicate if you want CEUs.
\r\n
\r\n
\r\n
\r\n
0\" class=\"form-row\">\r\n
\r\n
Would you like to add any add-ons to your registration?
\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
0\" class=\"form-row\">\r\n
\r\n
Would you like to add any workshops to your registration?
\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
0\" class=\"form-row\">\r\n
\r\n
Reserve Breakouts:
\r\n
Please select one breakout session at each time slot below for a total of six selections. Please note, there is a scroll on each session for a total of (14) choices at each time. All other conference sessions (with the exception of workshops) are pre-selected and included.
\r\n
Breakouts are targeted to all experience levels unless otherwise noted in the description.
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{ dataItem.title }}
\r\n
{{ dataItem.instructorName }} + ({{ dataItem.totalCEUs }} CEU)
\r\n {{ tag }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
This breakout is required
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
0\" class=\"form-row\">\r\n
\r\n \r\n \r\n
\r\n
Card Number is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Month is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Year is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
CVV is required
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {{ errorMessage }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, NgZone, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Enumerable from 'linq';\r\nimport { BasicEventViewModel, CourseEventViewModel, ModifyRegistrationViewModel, PackageAddonViewModel, RegistrationPackageViewModel, UserPackagePurchaseViewModel } from 'src/app/_models/generatedModels';\r\nimport { ConferenceCMSService, EventService } from 'src/app/_services/generatedServices';\r\nimport { ToasterService } from 'src/app/_services/toaster.service';\r\nimport { AuthenticationService } from \"../../_services/authentication.service\";\r\ndeclare var fbq: any;\r\ndeclare var gtag: any;\r\ndeclare var ga: any;\r\n\r\n@Component({\r\n selector: 'bxl-modify-registration-modal',\r\n templateUrl: 'modify-registration-modal.component.html',\r\n})\r\nexport class ModifyRegistrationModalComponent implements OnInit {\r\n initialized = false;\r\n @Input() existingRegistration: UserPackagePurchaseViewModel;\r\n @Input() conferenceId: number;\r\n submitComplete: Promise<{}> | undefined;\r\n\r\n actualPrice = 0;\r\n public cardNumber: string;\r\n public expMo: string;\r\n public expYr: string;\r\n public cvv: string;\r\n errorMessage: string;\r\n addons: PackageAddonViewModel[];\r\n eventAddons: CourseEventViewModel[];\r\n model: ModifyRegistrationViewModel;\r\n @ViewChild('theForm', { static: false }) public userFrm: NgForm;\r\n startTimes: Enumerable.IGrouping[];\r\n reservedBreakouts: number[];\r\n\r\n constructor(public activeModal: NgbActiveModal, private auth:AuthenticationService, private cmsService: ConferenceCMSService, private eventService: EventService, private zone: NgZone, private toaster: ToasterService) {}\r\n\r\n ngOnInit(): void {\r\n console.log(this.existingRegistration);\r\n\r\n this.cmsService.getSingleRegistrationPackage(this.conferenceId.toString(), this.existingRegistration.packageId).subscribe((pckg) => {\r\n if (pckg.reserveBreakouts) {\r\n this.startTimes = Enumerable.from(pckg.courseEvents)\r\n .where((x) => x.currentBreakoutCount < x.breakoutCapacity || this.existingRegistration.reservations.findIndex((r) => r.courseEventId == x.id) >= 0)\r\n .orderBy((x) => x.startTime)\r\n .groupBy((x) => x.formattedFullTime)\r\n .where((x) => x.getSource().length > 1)\r\n .toArray();\r\n console.log(this.startTimes[0]);\r\n\r\n this.reservedBreakouts = new Array(this.startTimes.length);\r\n\r\n for (var i = 0; i < this.startTimes.length; i++) {\r\n for (var j = 0; j < this.existingRegistration.reservations.length; j++) {\r\n var item: BasicEventViewModel[] = (this.startTimes[i].getSource());\r\n var ids = Enumerable.from(item)\r\n .select((x) => x.id)\r\n .toArray();\r\n\r\n if (ids.indexOf(this.existingRegistration.reservations[j].courseEventId) > -1) {\r\n this.reservedBreakouts[i] = this.existingRegistration.reservations[j].courseEventId;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.model = new ModifyRegistrationViewModel();\r\n var addons = Enumerable.from(pckg.addOns);\r\n var purchasedAddons = Enumerable.from(this.existingRegistration.addOns).select((x) => x.addOnId);\r\n\r\n this.addons = addons.where((x) => !purchasedAddons.contains(x.id)).toArray();\r\n\r\n this.eventAddons = Enumerable.from(this.existingRegistration.package.eventAddons)\r\n .where((x) => !x.userHasPurchased)\r\n .toArray();\r\n\r\n this.initialized = true;\r\n });\r\n }\r\n\r\n purchasePackageClicked() {\r\n if (!this.userFrm.valid) {\r\n this.markAllTouched();\r\n this.errorMessage = 'There are some invalid or missing fields. Please fill out all required fields.';\r\n return;\r\n }\r\n\r\n this.errorMessage = '';\r\n\r\n this.model.selectedAddOns = Enumerable.from(this.addons)\r\n .where((x) => x.selected)\r\n .toArray();\r\n\r\n this.model.selectedEventAddons = Enumerable.from(this.eventAddons)\r\n .where((x) => x.selected)\r\n .toArray();\r\n\r\n this.model.reservedBreakouts = this.reservedBreakouts;\r\n\r\n this.submitComplete = new Promise((resetButton: any, reject) => {\r\n this.purchasePackage(resetButton);\r\n });\r\n }\r\n\r\n purchasePackage(resetButton) {\r\n if (this.actualPrice == 0) {\r\n this.purchasePackageFree(resetButton);\r\n return;\r\n }\r\n\r\n let card = { number: this.cardNumber, exp_month: this.expMo, exp_year: this.expYr, cvc: this.cvv };\r\n (window).Stripe.card.createToken(card, (status: number, response: any) => {\r\n if (status === 200) {\r\n this.model.cardToken = response.id;\r\n\r\n this.zone.run(() => {\r\n this.eventService.updatePackage(this.existingRegistration.packageId, this.model).subscribe(\r\n (result) => {\r\n if (!result) {\r\n resetButton();\r\n this.errorMessage = 'Unable to process transaction';\r\n return;\r\n }\r\n\r\n resetButton();\r\n this.activeModal.close();\r\n\r\n this.auth.logAttribution(this.existingRegistration.organizationId, this.actualPrice);\r\n fbq('track', 'Purchase', { value: this.actualPrice, currency: 'USD' });\r\n gtag('event', 'conversion', {\r\n event_category: 'purchase',\r\n event_label: 'package',\r\n value: this.actualPrice,\r\n });\r\n gtag('event', 'conversion', {\r\n send_to: 'AW-10797976216/1tMrCOP-ov8CEJiV8Jwo',\r\n value: this.actualPrice,\r\n currency: 'USD',\r\n transaction_id: '',\r\n });\r\n console.log('here');\r\n this.toaster.messageDialog('Your purchase has been completed. You will receive a confirmation email shortly', 'Thank You!').subscribe();\r\n },\r\n (error) => {\r\n resetButton();\r\n this.errorMessage = error.error[0];\r\n }\r\n );\r\n });\r\n } else {\r\n resetButton();\r\n this.errorMessage = response.error.message;\r\n }\r\n });\r\n }\r\n purchasePackageFree(resetButton: any) {\r\n this.eventService.updatePackage(this.existingRegistration.packageId, this.model).subscribe(\r\n (result) => {\r\n if (!result) {\r\n resetButton();\r\n this.errorMessage = 'Unable to process transaction';\r\n return;\r\n }\r\n\r\n resetButton();\r\n this.activeModal.close();\r\n this.auth.logAttribution(this.existingRegistration.organizationId, this.actualPrice);\r\n\r\n fbq('track', 'Purchase', { value: this.actualPrice, currency: 'USD' });\r\n gtag('event', 'conversion', {\r\n event_category: 'purchase',\r\n event_label: 'package',\r\n value: this.actualPrice,\r\n });\r\n gtag('event', 'conversion', {\r\n send_to: 'AW-10797976216/1tMrCOP-ov8CEJiV8Jwo',\r\n value: this.actualPrice,\r\n currency: 'USD',\r\n transaction_id: '',\r\n });\r\n console.log('here');\r\n this.toaster.messageDialog('Your purchase has been completed. You will receive a confirmation email shortly', 'Thank You!').subscribe();\r\n },\r\n (error) => {\r\n resetButton();\r\n this.errorMessage = error.error[0];\r\n }\r\n );\r\n }\r\n\r\n markAllTouched() {\r\n Object.keys(this.userFrm.controls).forEach((field) => {\r\n // {1}\r\n const control = this.userFrm.control.get(field);\r\n console.log(control); // {2}\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true }); // {3}\r\n });\r\n }\r\n\r\n calculatePrice() {\r\n this.actualPrice = 0;\r\n\r\n if (this.model.purchaseCEUs && this.existingRegistration.memberRate) {\r\n this.actualPrice += this.existingRegistration.package.ceuPrice;\r\n }\r\n\r\n if (this.model.purchaseCEUs && !this.existingRegistration.memberRate) {\r\n this.actualPrice += this.existingRegistration.package.ceuNonMemberPrice;\r\n }\r\n\r\n var addonPrice = Enumerable.from(this.addons)\r\n .where((x) => x.selected)\r\n .sum((x) => x.price);\r\n this.actualPrice += addonPrice;\r\n\r\n var eventAddonPrice = Enumerable.from(this.eventAddons)\r\n .where((x) => x.selected)\r\n .sum((x) => x.price);\r\n this.actualPrice += eventAddonPrice;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n

Conference Registration

\r\n

Bundle Registration

\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ pckg.name }}
\r\n
\r\n {{ pckg.ceuOverride }} CEUs\r\n {{ pckg.totalCEUs | ceuDisplay }} \r\n No CEUs\r\n
\r\n

{{ actualPrice | currency: pckg.currencyCode:'symbol' }}

\r\n
\r\n
\r\n {{ pckg.description }}\r\n
\r\n
\r\n {{ errorMessage }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Please indicate your membership status
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Please indicate if you want CEUs.
\r\n
\r\n
\r\n
\r\n
0\" class=\"form-row\">\r\n
\r\n
Add-ons (Optional):
\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
0\" class=\"form-row\">\r\n
\r\n
Optional Workshops:
\r\n
Would you like to add any workshops?
\r\n
Purchase 2 or more workshops and receive a {{ pckg.eventAddonDiscountAmount | percent }} discount!
\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
0\" class=\"form-row\">\r\n
\r\n
Reserve Breakouts:
\r\n
Please select one breakout session at each time slot below for a total of six selections. Please note, there is a scroll on each session for a total of (14) choices at each time. All other conference sessions (with the exception of workshops) are pre-selected and included.
\r\n
Breakouts are targeted to all experience levels unless otherwise noted in the description.
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{ dataItem.title }}
\r\n
{{ dataItem.instructorName }} + ({{ dataItem.totalCEUs }} CEU)
\r\n {{ tag }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
This breakout is required
\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
Full Name is required
\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
Company / Affiliation is required
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
This field is required
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
0\">\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{ promoError }}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n
Card Number is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Month is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Year is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
CVV is required
\r\n
\r\n
\r\n
\r\n
\r\n {{ errorMessage }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, NgZone, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PackageViewModel, CardTokenViewModel, StringViewModel, ConferenceViewModelWithDetails, PurchasePackageViewModel, RegistrationPackageViewModel, RegistrationFieldType, PackageRequirement, SurveyViewModel, OrganizationViewModel } from 'src/app/_models/generatedModels';\r\nimport { AuthenticationService } from 'src/app/_services/authentication.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ConferenceCMSService, ConferenceSurveyService, EventService } from 'src/app/_services/generatedServices';\r\nimport { ToasterService } from 'src/app/_services/toaster.service';\r\nimport { Model } from 'survey-core';\r\nimport { ComponentCollection, Question } from 'survey-core';\r\n\r\nimport Enumerable from 'linq';\r\ndeclare var fbq: any;\r\ndeclare var gtag: any;\r\ndeclare var ga: any;\r\n\r\n@Component({\r\n selector: 'bxl-package-purchase-modal',\r\n templateUrl: 'package-purchase-modal.component.html',\r\n})\r\nexport class PackagePurchaseModalComponent implements OnInit {\r\n initialized = false;\r\n submitComplete: Promise<{}> | undefined;\r\n public cardNumber: string;\r\n public showWorkshops: boolean;\r\n public expMo: string;\r\n public expYr: string;\r\n public cvv: string;\r\n public promoCode: string;\r\n public pronouns: string;\r\n public affiliation: string;\r\n public promoError: string;\r\n public errorMessage: string;\r\n public actualPrice: number;\r\n\r\n public tShirtSize: string;\r\n public isMember: boolean;\r\n public purchaseCEUs: boolean;\r\n @Input() packageId: number;\r\n @Input() conference: ConferenceViewModelWithDetails;\r\n @Input() organization: OrganizationViewModel;\r\n @ViewChild('theForm', { static: false }) public userFrm: NgForm;\r\n fullName: string;\r\n promoDiscount: number;\r\n promoDiscountAmount: number;\r\n startTimes: any[] = [];\r\n pckg: RegistrationPackageViewModel;\r\n PackageRequirement = PackageRequirement;\r\n RegistrationFieldType = RegistrationFieldType;\r\n reservedBreakouts: number[];\r\n survey: SurveyViewModel;\r\n surveyModel: Model;\r\n constructor(public activeModal: NgbActiveModal, private surveyService: ConferenceSurveyService, private cmsService: ConferenceCMSService, private eventService: EventService, private zone: NgZone, private auth: AuthenticationService, private toaster: ToasterService) {}\r\n\r\n ngOnInit(): void {\r\n var subscription = this.conference ? this.cmsService.getSingleRegistrationPackage(this.conference.id.toString(), this.packageId) : this.cmsService.getSingleRegistrationPackageForOrganization(this.organization.id.toString(), this.packageId);\r\n\r\n subscription.subscribe((result) => {\r\n this.pckg = result;\r\n this.pckg.addOns = Enumerable.from(this.pckg.addOns).orderBy((x) => x.name).toArray();\r\n\r\n if (this.pckg.customQuestionSurveyId) {\r\n this.loadSurvey();\r\n }\r\n\r\n this.actualPrice = this.pckg.price;\r\n this.affiliation = this.auth.user.affiliation;\r\n\r\n if (this.pckg.reserveBreakouts) {\r\n this.startTimes = Enumerable.from(this.pckg.courseEvents)\r\n .where((x) => x.currentBreakoutCount < x.breakoutCapacity)\r\n .orderBy((x) => x.startTime)\r\n .groupBy((x) => x.formattedFullTime)\r\n .where((x) => x.getSource().length > 1)\r\n .toArray();\r\n console.log(this.startTimes[0]);\r\n this.reservedBreakouts = new Array(this.startTimes.length);\r\n }\r\n\r\n this.promoDiscount = 0;\r\n this.fullName = this.auth.user.firstName + ' ' + this.auth.user.lastName + ', ' + this.auth.user.credentials;\r\n console.log(this.auth.user.affiliation);\r\n this.initialized = true;\r\n });\r\n }\r\n\r\n loadSurvey() {\r\n this.surveyService.getSurveyById(this.conference.organizationId.toString(), this.conference.id, this.pckg.customQuestionSurveyId).subscribe((result) => {\r\n this.survey = result;\r\n const survey = new Model(JSON.parse(result.schemaJSON));\r\n //survey.onComplete.add(this.surveyComplete.bind(this));\r\n this.surveyModel = survey;\r\n this.surveyModel.isSinglePage = true;\r\n this.surveyModel.showNavigationButtons = false;\r\n this.surveyModel.questionsOnPageMode = 'singlePage';\r\n this.surveyModel.mode = 'edit';\r\n console.log(survey.getAllQuestions());\r\n this.updateQuestionsFromAuth();\r\n this.initialized = true;\r\n });\r\n }\r\n\r\n updateQuestionsFromAuth() {\r\n var questions = Enumerable.from(this.surveyModel.getAllQuestions());\r\n questions.forEach((question: Question) => {\r\n if (question.customQuestion?.name == 'bxlfirstname') {\r\n this.surveyModel.setValue(question.name, this.auth.user?.firstName);\r\n }\r\n\r\n if (question.customQuestion?.name == 'bxllastname') {\r\n this.surveyModel.setValue(question.name, this.auth.user?.lastName);\r\n }\r\n\r\n if (question.customQuestion?.name == 'bxlemail') {\r\n this.surveyModel.setValue(question.name, this.auth.user?.email);\r\n }\r\n\r\n console.log(question.customQuestion?.name);\r\n });\r\n }\r\n\r\n purchasePackageClicked() {\r\n console.log(this.reservedBreakouts);\r\n\r\n if (this.pckg.requirement.toString() == PackageRequirement[PackageRequirement.EDUAddress].toString() && this.auth.user.email.indexOf('.edu') == -1) {\r\n this.errorMessage = 'You must register with an .edu email address to purchase a student package.';\r\n return;\r\n }\r\n\r\n if (this.surveyModel?.hasErrors() || !this.userFrm.valid) {\r\n this.markAllTouched();\r\n this.errorMessage = 'There are some invalid or missing fields. Please fill out all required fields.';\r\n return;\r\n }\r\n\r\n this.errorMessage = '';\r\n\r\n let model = new PurchasePackageViewModel();\r\n model.cardToken = '';\r\n model.tShirtSize = this.tShirtSize;\r\n model.promoCode = this.promoCode;\r\n model.affiliation = this.affiliation;\r\n model.fullName = this.fullName;\r\n model.isMember = this.isMember;\r\n model.pronouns = this.pronouns;\r\n model.purchaseCEUs = this.purchaseCEUs;\r\n model.customSurveyJSON = JSON.stringify(this.surveyModel?.data);\r\n model.selectedAddOns = Enumerable.from(this.pckg.addOns)\r\n .where((x) => x.selected)\r\n .toArray();\r\n model.selectedEventAddons = Enumerable.from(this.pckg.eventAddons)\r\n .where((x) => x.selected)\r\n .toArray();\r\n\r\n model.customQuestionResponses = this.pckg.customRegistrationFields;\r\n model.reservedBreakouts = this.reservedBreakouts;\r\n\r\n this.submitComplete = new Promise((resetButton: any, reject) => {\r\n if (this.actualPrice > 0) {\r\n this.purchasePackage(resetButton, model);\r\n } else {\r\n this.completeFree(resetButton, model);\r\n }\r\n });\r\n }\r\n\r\n markAllTouched() {\r\n Object.keys(this.userFrm.controls).forEach((field) => {\r\n // {1}\r\n const control = this.userFrm.control.get(field);\r\n console.log(control); // {2}\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true }); // {3}\r\n });\r\n }\r\n\r\n calculatePrice() {\r\n if (this.isMember || !this.pckg.memberPricing) {\r\n console.log('is member');\r\n this.actualPrice = this.pckg.price;\r\n } else {\r\n this.actualPrice = this.pckg.nonMemberPrice;\r\n }\r\n\r\n if (this.purchaseCEUs && (this.isMember || !this.pckg.memberPricing)) {\r\n this.actualPrice += this.pckg.ceuPrice;\r\n } else if (this.purchaseCEUs && !this.isMember) {\r\n this.actualPrice += this.pckg.ceuNonMemberPrice;\r\n }\r\n\r\n console.log(this.actualPrice);\r\n\r\n if (this.promoDiscount > 0) {\r\n this.actualPrice = this.actualPrice - this.actualPrice * (this.promoDiscount / 100);\r\n }else if (this.promoDiscountAmount > 0){\r\n this.actualPrice = this.actualPrice - this.promoDiscountAmount;\r\n }else{\r\n this.actualPrice = this.actualPrice;\r\n }\r\n\r\n\r\n var addonPrice = Enumerable.from(this.pckg.addOns)\r\n .where((x) => x.selected)\r\n .sum((x) => x.price);\r\n this.actualPrice += addonPrice;\r\n\r\n var eventAddonPrice = Enumerable.from(this.pckg.eventAddons)\r\n .where((x) => x.selected)\r\n .sum((x) => {\r\n if (x.memberPricing && this.isMember) return x.memberPrice;\r\n return x.price;\r\n });\r\n\r\n var count = Enumerable.from(this.pckg.eventAddons)\r\n .where((x) => x.selected)\r\n .count();\r\n\r\n console.log(eventAddonPrice);\r\n\r\n if (this.pckg.eventAddonDiscountQuantityThreshold && count >= this.pckg.eventAddonDiscountQuantityThreshold) {\r\n var discountAmount = eventAddonPrice * this.pckg.eventAddonDiscountAmount;\r\n console.log(discountAmount);\r\n eventAddonPrice = eventAddonPrice - discountAmount;\r\n }\r\n\r\n this.actualPrice += eventAddonPrice;\r\n }\r\n\r\n applyPromoCode() {\r\n let model = new StringViewModel();\r\n model.value = this.promoCode;\r\n this.eventService.checkPackagePromoCode(this.pckg.id, model).subscribe(\r\n (result) => {\r\n this.promoError = '';\r\n this.promoDiscount = result.discountPercentage;\r\n this.promoDiscountAmount = result.discountAmount;\r\n this.calculatePrice();\r\n },\r\n (error) => {\r\n this.promoError = error.error;\r\n this.promoDiscount = 0;\r\n this.promoDiscountAmount = 0;\r\n this.calculatePrice();\r\n }\r\n );\r\n }\r\n\r\n completeFree(resetButton, model: PurchasePackageViewModel) {\r\n this.eventService.purchasePackage(this.pckg.id, model).subscribe(\r\n (result) => {\r\n if (!result) {\r\n resetButton();\r\n this.errorMessage = 'Unable to process transaction';\r\n return;\r\n }\r\n\r\n resetButton();\r\n this.activeModal.close();\r\n fbq('track', 'Purchase', { value: this.pckg.price, currency: 'USD' });\r\n gtag('event', 'conversion', {\r\n event_category: 'purchase',\r\n event_label: 'package',\r\n value: this.pckg.price,\r\n });\r\n gtag('event', 'conversion', {\r\n send_to: 'AW-10797976216/1tMrCOP-ov8CEJiV8Jwo',\r\n value: this.pckg.price,\r\n currency: 'USD',\r\n transaction_id: '',\r\n });\r\n\r\n console.log('here');\r\n this.toaster.messageDialog('Your purchase has been completed. You will receive a confirmation email shortly', 'Thank You!').subscribe();\r\n },\r\n (error) => {\r\n resetButton();\r\n this.errorMessage = error.error[0];\r\n }\r\n );\r\n }\r\n\r\n purchasePackage(resetButton, model: PurchasePackageViewModel) {\r\n let card = { number: this.cardNumber, exp_month: this.expMo, exp_year: this.expYr, cvc: this.cvv };\r\n (window).Stripe.card.createToken(card, (status: number, response: any) => {\r\n if (status === 200) {\r\n model.cardToken = response.id;\r\n\r\n this.zone.run(() => {\r\n this.eventService.purchasePackage(this.pckg.id, model).subscribe(\r\n (result) => {\r\n if (!result) {\r\n resetButton();\r\n this.errorMessage = 'Unable to process transaction';\r\n return;\r\n }\r\n\r\n resetButton();\r\n this.activeModal.close();\r\n fbq('track', 'Purchase', { value: this.pckg.price, currency: 'USD' });\r\n gtag('event', 'conversion', {\r\n event_category: 'purchase',\r\n event_label: 'package',\r\n value: this.pckg.price,\r\n });\r\n gtag('event', 'conversion', {\r\n send_to: 'AW-10797976216/1tMrCOP-ov8CEJiV8Jwo',\r\n value: this.pckg.price,\r\n currency: 'USD',\r\n transaction_id: '',\r\n });\r\n console.log('here');\r\n this.toaster.messageDialog('Your purchase has been completed. You will receive a confirmation email shortly', 'Thank You!').subscribe();\r\n },\r\n (error) => {\r\n resetButton();\r\n this.errorMessage = error.error[0];\r\n }\r\n );\r\n });\r\n } else {\r\n resetButton();\r\n this.errorMessage = response.error.message;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n

You Are Registered!

\r\n
Go to My Upcoming Events to view the events.
\r\n Modify Registration\r\n

Click the button above to buy CEUs, Add-Ons or Additional Workshops

\r\n \r\n
\r\n\r\n 0\">\r\n
\r\n
\r\n

Registration Options

\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModifyRegistrationModalComponent } from 'src/app/conferences/registration/modify-registration-modal.component';\r\nimport { PackagePurchaseModalComponent } from 'src/app/conferences/registration/package-purchase-modal.component';\r\nimport { RegistrationModalComponent } from 'src/app/events/registration/registration-modal.component';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, PackageDropdownViewModel, PackageViewModel, RegistrationPackageViewModel, UserPackagePurchaseHistoryViewModel, UserPackagePurchaseViewModel } from 'src/app/_models/generatedModels';\r\nimport { AuthenticationService } from 'src/app/_services/authentication.service';\r\nimport { ConferenceCMSService, OrganizationService, UserService } from 'src/app/_services/generatedServices';\r\nimport Enumerable from 'linq';\r\n\r\n@Component({\r\n selector: 'bxl-conference-package-listing',\r\n templateUrl: 'conference-package-listing.component.html',\r\n})\r\nexport class ConferencePackageListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n anyOnDemand: boolean;\r\n packageCategories: string[];\r\n activeCategory = '';\r\n\r\n registerMore: boolean;\r\n existingRegistration: UserPackagePurchaseViewModel;\r\n packages: RegistrationPackageViewModel[];\r\n homeRoute: string;\r\n atLeastOnePackageHasCEUs: boolean;\r\n\r\n constructor(private modalService: NgbModal, private user: UserService, private cmsService: ConferenceCMSService, private auth: AuthenticationService, private orgService: OrganizationService) {}\r\n\r\n ngOnInit(): void {\r\n\r\n this.fetchData();\r\n\r\n }\r\n\r\n modifyRegistration() {\r\n const modalRef = this.modalService.open(ModifyRegistrationModalComponent, { size: 'xl', ariaLabelledBy: 'modal-basic-title', backdrop: 'static' });\r\n modalRef.componentInstance.existingRegistration = this.existingRegistration;\r\n modalRef.componentInstance.conferenceId = this.conference.id;\r\n\r\n modalRef.result.then(\r\n (result) => {\r\n console.log('fetching data');\r\n\r\n this.fetchData();\r\n },\r\n (reason) => {}\r\n );\r\n return;\r\n }\r\n\r\n fetchData() {\r\n this.cmsService.getPackagesForRegistration(this.conference.id).subscribe((packages) => {\r\n this.packages = Enumerable.from(packages)\r\n .where((x) => x.onlyShowForGroups == false)\r\n .toArray();\r\n\r\n //this.anyOnDemand = this.conference.courseEvents.filter((x) => x.discriminator === 'course').length > 0;\r\n this.packageCategories = this.packages\r\n .filter((x) => !x.onlyShowForGroups)\r\n .map((p) => p.category)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.atLeastOnePackageHasCEUs = this.packages.some((x) => x.noCEUs === false);\r\n console.log(this.packageCategories);\r\n this.activeCategory = this.packageCategories[0];\r\n this.user.hasRegisteredForConference(this.conference.id.toString()).subscribe((registration) => {\r\n this.existingRegistration = registration;\r\n this.initialized = true;\r\n });\r\n });\r\n }\r\n\r\n purchasePackage(pckg: RegistrationPackageViewModel) {\r\n if (this.auth.isLoggedIn()) {\r\n this.showPurchaseModal(pckg);\r\n } else {\r\n this.showLoginModal(pckg);\r\n }\r\n }\r\n\r\n showLoginModal(pckg: RegistrationPackageViewModel) {\r\n const modalRef = this.modalService.open(RegistrationModalComponent, { size: 'lg', ariaLabelledBy: 'modal-basic-title', backdrop: 'static' });\r\n modalRef.result.then(\r\n (result) => {\r\n this.auth.fetchUserProfile().subscribe((result) => {\r\n this.showPurchaseModal(pckg);\r\n });\r\n },\r\n (reason) => {}\r\n );\r\n return;\r\n }\r\n\r\n changeCategory(category: string) {\r\n this.activeCategory = category;\r\n }\r\n\r\n showPurchaseModal(pckg: RegistrationPackageViewModel) {\r\n const modalRef = this.modalService.open(PackagePurchaseModalComponent, { size: 'xl', ariaLabelledBy: 'modal-basic-title', backdrop: 'static' });\r\n modalRef.componentInstance.packageId = pckg.id;\r\n modalRef.componentInstance.conference = this.conference;\r\n modalRef.result.then(\r\n (result) => {\r\n console.log('fetching data');\r\n\r\n this.fetchData();\r\n },\r\n (reason) => {}\r\n );\r\n return;\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { elementAt } from 'rxjs/operators';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, InstructorViewModel, OrganizationViewModel } from 'src/app/_models/generatedModels';\r\nimport { InstructorService, OrganizationCMSService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-conference-speaker-listing',\r\n templateUrl: 'conference-speaker-listing.component.html',\r\n})\r\nexport class ConferenceSpeakerListingComponent implements OnInit {\r\n initialized = false;\r\n\r\n instructors: InstructorViewModel[];\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n @Input() organization: OrganizationViewModel;\r\n\r\n constructor(private instructorService: InstructorService, private orgCMS: OrganizationCMSService) {}\r\n\r\n ngOnInit(): void {\r\n let ids: Array = [];\r\n\r\n if (this.element.data) {\r\n ids = JSON.parse(this.element.data);\r\n }\r\n\r\n if (this.conference) {\r\n this.instructorService.getInstructorsForConference(this.conference.id).subscribe((result) => {\r\n this.instructors = result.filter(function (item) {\r\n return ids.indexOf(item.id) === -1;\r\n });\r\n this.initialized = true;\r\n });\r\n } else {\r\n this.orgCMS.getInstructorsForNonConferenceCourseEvents(this.organization.id.toString()).subscribe((result) => {\r\n this.instructors = result.filter(function (item) {\r\n return ids.indexOf(item.id) === -1;\r\n });\r\n this.initialized = true;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n

No Results

\r\n

Please modify your search and try again.

\r\n
\r\n
\r\n 0\" [rows]=\"pageSize\" [first]=\"currentPage * pageSize\" [totalRecords]=\"resultCount\" (onPageChange)=\"paginate($event)\" [rowsPerPageOptions]=\"[10, 15, 20, 30, 50]\">\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport Enumerable from 'linq';\r\nimport { Enums } from 'src/app/_models/generatedEnums';\r\nimport { PageElementViewModel, ConferenceViewModel, EventOrderBy, EventSearchParameters, EventViewModel, OrganizationEventSearchParams, ConferenceRoomViewModel, TagViewModel } from 'src/app/_models/generatedModels';\r\nimport { EventService, OrganizationService } from 'src/app/_services/generatedServices';\r\n\r\n\r\n@Component({\r\n selector: 'bxl-conference-event-listing',\r\n templateUrl: 'conference-event-listing.component.html',\r\n})\r\nexport class ConferenceEventListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n events: EventViewModel[];\r\n searchParams: OrganizationEventSearchParams;\r\n EventOrderBy = EventOrderBy;\r\n OrderByEnum = Enums.EventOrderByEnum;\r\n\r\n currentPage = 0;\r\n pageSize = 15;\r\n resultCount = 0;\r\n searching = false;\r\n startTimes: Enumerable.IGrouping[];\r\n rooms: ConferenceRoomViewModel[];\r\n tags: TagViewModel[];\r\n hideFilter: boolean;\r\n constructor(private orgService: OrganizationService) {}\r\n\r\n ngOnInit(): void {\r\n this.searchParams = new OrganizationEventSearchParams();\r\n this.searchParams.courseEventStatus = null;\r\n this.searchParams.orderBy = EventOrderBy.EventDate;\r\n this.searchParams.roomId = null;\r\n this.searchParams.tag = null;\r\n\r\n this.orgService.getRoomsForConference(this.conference.id.toString()).subscribe((rooms) => {\r\n this.orgService.getTagsForConference(this.conference.id).subscribe((tags) => {\r\n this.rooms = rooms;\r\n this.tags = tags;\r\n\r\n console.log(this.element.data);\r\n\r\n if (this.element.data) {\r\n try {\r\n var data = JSON.parse(this.element.data);\r\n console.log(data?.tag);\r\n this.searchParams.selectedDay = data?.selectedDay;\r\n this.searchParams.selectedTime = data?.selectedTime;\r\n this.searchParams.tag = data?.tag;\r\n\r\n if (this.searchParams.selectedDay || this.searchParams.selectedTime || this.searchParams.tag) {\r\n this.hideFilter = true;\r\n }\r\n\r\n } catch (e) {\r\n console.log('error');\r\n this.searchParams.selectedDay = null;\r\n }\r\n } else {\r\n this.searchParams.selectedDay = null;\r\n }\r\n\r\n this.search(true);\r\n\r\n });\r\n });\r\n }\r\n\r\n search(resetPaging: boolean) {\r\n this.searching = true;\r\n if (resetPaging) {\r\n this.currentPage = 0;\r\n }\r\n this.events = [];\r\n\r\n this.orgService.searchEventsForConference(this.conference.id, this.currentPage, this.pageSize, true, this.searchParams).subscribe((pagedResult) => {\r\n this.currentPage = pagedResult.currentPage;\r\n this.pageSize = pagedResult.pageSize;\r\n this.resultCount = pagedResult.rowCount;\r\n this.events = pagedResult.results;\r\n\r\n this.initialized = true;\r\n this.searching = false;\r\n });\r\n }\r\n\r\n paginate(event) {\r\n //event.first = Index of the first record\r\n //event.rows = Number of rows to display in new page\r\n //event.page = Index of the new page\r\n //event.pageCount = Total number of pages\r\n this.currentPage = event.page;\r\n this.pageSize = event.rows;\r\n this.search(false);\r\n }\r\n}\r\n","

Individual On-Demand

\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel, CourseSearchParameters, CourseViewModel, CourseViewModelSimple } from 'src/app/_models/generatedModels';\r\nimport { CourseService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-conference-on-demand-listing',\r\n templateUrl: 'conference-on-demand-listing.component.html',\r\n})\r\nexport class ConferenceOnDemandListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n anyOnDemand: boolean;\r\n courses: CourseViewModelSimple[];\r\n\r\n constructor(private courseService: CourseService) {}\r\n\r\n ngOnInit(): void {\r\n var params = new CourseSearchParameters();\r\n params.conferenceId = this.conference.id;\r\n params.page = 0;\r\n params.pageSize = 10000;\r\n\r\n this.courseService.search(params).subscribe((result) => {\r\n this.courses = result.courses;\r\n this.initialized = true;\r\n });\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n

On-Demand Library

\r\n
\r\n\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

No Results

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, SearchFilterDataModel, OrganizationViewModel } from 'src/app/_models/generatedModels';\r\nimport { CourseService, OrganizationService } from 'src/app/_services/generatedServices';\r\nimport { OrganizationSearchService } from 'src/app/_services/on-demand-search-service';\r\n\r\n@Component({\r\n selector: 'bxl-conference-on-demand-search',\r\n templateUrl: 'conference-on-demand-search.component.html',\r\n})\r\nexport class ConferenceOnDemandSearchComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() organization: OrganizationViewModel;\r\n @Input() element: PageElementViewModel;\r\n filterData: SearchFilterDataModel;\r\n loadingMore: boolean;\r\n rootRoute: string;\r\n constructor(public searchService: OrganizationSearchService, private org: OrganizationService, private courseData: CourseService) {}\r\n\r\n ngOnInit(): void {\r\n var orgId = 0;\r\n if (this.conference) {\r\n orgId = this.conference.organizationId;\r\n this.rootRoute = '/conferences/' + this.conference.slug;\r\n }else{\r\n orgId = this.organization.id;\r\n this.rootRoute = '/organizations/' + this.organization.slug;\r\n }\r\n\r\n this.org.getOrganization(orgId.toString()).subscribe((orgResult) => {\r\n this.searchService.initialize(orgResult.id).then(() => {\r\n this.courseData.getFilterData().subscribe((result) => {\r\n this.filterData = result;\r\n this.initialized = true;\r\n });\r\n });\r\n });\r\n }\r\n\r\n loadMore() {\r\n this.loadingMore = true;\r\n this.searchService.loadMore().then(() => {\r\n this.loadingMore = false;\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

{{ exhibit.title }}

\r\n

\r\n {{ exhibit.subtitle }}\r\n

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

{{ exhibit.title }}

\r\n

\r\n {{ exhibit.subtitle }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel, ExhibitDesignerViewModel, SponsorshipLandingPageViewModel } from 'src/app/_models/generatedModels';\r\nimport { AuthenticationService } from 'src/app/_services/authentication.service';\r\nimport { ConferenceCMSService, ExhibitService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-conference-exhibit-listing',\r\n templateUrl: 'conference-exhibit-listing.component.html',\r\n})\r\nexport class ConferenceExhibitListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n exhibits: SponsorshipLandingPageViewModel[];\r\n\r\n constructor(private exhibitsService: ConferenceCMSService, public auth: AuthenticationService) {}\r\n\r\n ngOnInit(): void {\r\n this.exhibitsService.getLandingPagesForAllSponsorsAndExhibits(this.conference.id).subscribe((exhibits) => {\r\n this.exhibits = exhibits;\r\n this.initialized = true;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
NOTE: We are still accepting posters. Please click here to sign up!
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Please login/create a free account to view the posters!
\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

{{ poster.title }}

\r\n

\r\n {{ author.firstName + ' ' + author.lastName }}\r\n

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

{{ poster.title }}

\r\n

\r\n {{ author.firstName + ' ' + author.lastName }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, PosterViewModel } from 'src/app/_models/generatedModels';\r\nimport { AuthenticationService } from 'src/app/_services/authentication.service';\r\nimport { PosterService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-conference-poster-listing',\r\n templateUrl: 'conference-poster-listing.component.html',\r\n})\r\nexport class ConferencePosterListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n posters: PosterViewModel[];\r\n\r\n constructor(private posterService: PosterService, public auth: AuthenticationService,) {}\r\n\r\n ngOnInit(): void {\r\n this.posterService.getPostersForConference(this.conference.id).subscribe((result) => {\r\n this.posters = result.filter(x=>x.approved);\r\n this.initialized = true;\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel } from 'src/app/_models/generatedModels';\r\n\r\n@Component({\r\n selector: 'bxl-conference-banner-rotator',\r\n templateUrl: 'conference-banner-rotator.component.html',\r\n})\r\nexport class ConferenceBannerRotatorComponent implements OnInit {\r\n initialized = false;\r\n url: string;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n var urlList = this.element.data;\r\n var urlArray = urlList.split(',');\r\n var index = this.getRandomArbitrary(0, urlArray.length);\r\n this.url = urlArray[index];\r\n this.initialized = true;\r\n }\r\n\r\n getRandomArbitrary(min, max) {\r\n return Math.floor(Math.random() * (max - min) + min);\r\n }\r\n}\r\n","
\r\n

Sponsored By

\r\n \r\n
\r\n","
\r\n \r\n
\r\n
\r\n

\r\n

No Events

\r\n

No Events have been scheduled for this day.

\r\n
\r\n
\r\n \r\n
0\" class=\"container-fluid bg-white container-separator pl-0 pr-0 conference-scheduler\" style=\"\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{ evt.title }}\r\n\r\n \r\n {{ instructor.lastName }}{{ isLast ? '' : ', ' }}\r\n {{ evt.contentArea }}\r\n {{ evt.ceus | ceuDisplay: true }} CEUs\r\n \r\n 6\" class=\"instructor mb-auto\"\r\n >{{ instructor.lastName }}{{ isLast ? '' : ', ' }}\r\n 6\" class=\"d-flex mb-auto justify-content-between w-100\">\r\n {{ evt.contentArea }}\r\n {{ evt.ceus | ceuDisplay: true }} CEU\r\n \r\n
\r\n
\r\n
{{ evt.startTimeInTimeZone | date: 'shortTime' }} - {{ evt.endTimeInTimeZone | date: 'shortTime' }}
{{ evt.ceus | ceuDisplay }} CEU
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Time{{ room.roomName }}\r\n
 {{ room.subjectOrTrackName }}
\r\n
{{ time }}
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceRoomViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, ScheduledEventViewModel, SchedulerSettingsViewModel } from 'src/app/_models/generatedModels';\r\nimport * as moment from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ConferenceSchedulerService, OrganizationService } from 'src/app/_services/generatedServices';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventDetailsFlyoutComponent } from './event-details-flyout.component';\r\n\r\n@Component({\r\n selector: 'bxl-conference-schedule-element',\r\n templateUrl: 'conference-schedule-element.component.html',\r\n})\r\nexport class ConferenceScheduleElementComponent implements OnInit {\r\n initialized = false;\r\n colWidth = 0;\r\n\r\n timeBlocks = [];\r\n tempy: number;\r\n rooms: ConferenceRoomViewModel[];\r\n events: ScheduledEventViewModel[];\r\n schedulerSettings: SchedulerSettingsViewModel;\r\n currentDay: number;\r\n loading: boolean;\r\n momentFn = moment;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element:PageElementViewModel;\r\n constructor(private router: Router, private route: ActivatedRoute, private schedulerService: ConferenceSchedulerService, private modalService: NgbModal, private organizationService: OrganizationService, private ref: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.route.queryParamMap.subscribe((queryParams) => {\r\n this.currentDay = 0;\r\n\r\n if (queryParams.get('day')) {\r\n this.currentDay = parseInt(queryParams.get('day')) - 1;\r\n }\r\n\r\n this.reloadEvents();\r\n });\r\n }\r\n\r\n showDetails(evt: ScheduledEventViewModel) {\r\n const modalRef = this.modalService.open(EventDetailsFlyoutComponent, { size: 'lg', keyboard: false, ariaLabelledBy: 'modal-basic-title', windowClass: 'flyout', backdropClass: 'flyout', backdrop: 'static' });\r\n modalRef.componentInstance.event = evt;\r\n modalRef.result.then(\r\n (result) => {\r\n },\r\n (reason) => {\r\n }\r\n );\r\n }\r\n\r\n reloadEvents() {\r\n this.loading = true;\r\n this.schedulerService.getScheduledEvents(this.conference.organizationId.toString(), this.conference.id, this.currentDay).subscribe((schedulerSettings) => {\r\n this.schedulerSettings = schedulerSettings;\r\n this.events = this.schedulerSettings.events;\r\n\r\n this.organizationService.getRoomsForConference(this.conference.id.toString()).subscribe((rooms) => {\r\n this.rooms = rooms.filter((x) => !x.specificDates || x.specificDates.length == 0 || x.specificDates.find((y) => y == this.schedulerSettings.dayLabels[this.currentDay]));\r\n this.calculateColumns(window.innerWidth - 40);\r\n console.log(window.innerWidth);\r\n this.calculateTimes();\r\n\r\n this.tempy = 0;\r\n this.updateEvents();\r\n this.loading = false;\r\n this.initialized = true;\r\n });\r\n });\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.calculateColumns(event.target.innerWidth - 40);\r\n this.updateEvents();\r\n }\r\n\r\n calculateColumns(totalWith) {\r\n this.colWidth = (totalWith - 80) / this.rooms.length;\r\n console.log(this.colWidth);\r\n }\r\n\r\n nextDay() {\r\n this.currentDay++;\r\n this.reloadEvents();\r\n }\r\n\r\n previousDay() {\r\n this.currentDay--;\r\n this.reloadEvents();\r\n }\r\n\r\n calculateTimes() {\r\n this.timeBlocks = [];\r\n for (let hour = this.schedulerSettings.startHour; hour < this.schedulerSettings.endHour; hour++) {\r\n this.timeBlocks.push(moment({ hour }).format('h:mm A'));\r\n this.timeBlocks.push(\r\n moment({\r\n hour,\r\n minute: 30,\r\n }).format('h:mm A')\r\n );\r\n }\r\n }\r\n\r\n updateEvents() {\r\n this.events.forEach((event) => {\r\n var columnIndex = this.rooms.findIndex((x) => x.id == event.room.id);\r\n if (columnIndex != -1) {\r\n event.xCoordinate = 80 + columnIndex * this.colWidth;\r\n event.yCoordinate = event.timeIn5MinBlocks * 7;\r\n }\r\n });\r\n\r\n console.log(this.events);\r\n }\r\n}\r\n","\r\n\r\n

Program

\r\n
\r\n \r\n
\r\n
\r\n
{{ evt.startTimeInTimeZone | date: 'shortDate' }} {{ evt.formattedFullTimeRange }}
\r\n
\r\n {{ evt.paperType }}\r\n
\r\n
Track: {{ evt.contentArea }}
\r\n
{{ evt.room?.roomName }}
\r\n
{{ evt.ceus | ceuDisplay }}
\r\n
\r\n
\r\n
\r\n {{ '#' + (idx + 1) }}: {{ evt.title }}\r\n
\r\n
\r\n CHAIR: {{ evt.chair?.fullName | uppercase }} ({{ evt.chair?.affiliation }}, {{ evt.chair?.email }})\r\n
\r\n
\r\n DISCUSSANT: {{ evt.discussant?.fullName | uppercase }} ({{ evt.discussant?.affiliation }}, {{ evt.discussant?.email }})\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
    \r\n
  1. \r\n {{ paper.title }}\r\n
    \r\n {{ paper.presenter.fullName | uppercase }} ({{ paper.presenter?.affiliation }}, {{ paper.presenter?.email }})\r\n \r\n \r\n {{ author.fullName | uppercase }} ({{ author.affiliation }}, {{ author?.email }})\r\n \r\n \r\n
    \r\n
  2. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ evt.startTimeInTimeZone | date: 'shortDate' }} {{ evt.formattedFullTimeRange }}
\r\n
\r\n {{ evt.paperType }}\r\n
\r\n
Track: {{ evt.contentArea }}
\r\n
{{ evt.room?.roomName }}
\r\n
{{ evt.ceus | ceuDisplay }}
\r\n
\r\n
\r\n
\r\n {{ '#' + (idx + 1) }}: {{ evt.title }}\r\n
\r\n
\r\n CHAIR: {{ evt.chair?.fullName | uppercase }} ({{ evt.chair?.affiliation }}, {{ evt.chair?.email }})\r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n {{ paper.title }}\r\n
\r\n {{ paper.presenter.fullName | uppercase }} ({{ paper.presenter?.affiliation }}, {{ paper.presenter?.email }})\r\n \r\n \r\n {{ author.fullName | uppercase }} ({{ author.affiliation }}, {{ author?.email }})\r\n \r\n \r\n
\r\n
{{ paper.description }}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ evt.startTimeInTimeZone | date: 'shortDate' }} {{ evt.formattedFullTimeRange }}
\r\n
\r\n {{ evt.paperType }}\r\n
\r\n
Track: {{ evt.contentArea }}
\r\n
{{ evt.room?.roomName }}
\r\n
{{ evt.ceus | ceuDisplay }}
\r\n
\r\n
\r\n
\r\n {{ '#' + (idx + 1) }}: {{ evt.title }}\r\n
\r\n
\r\n CHAIR: {{ evt.chair?.fullName | uppercase }} ({{ evt.chair?.affiliation }}, {{ evt.chair?.email }})\r\n
\r\n
\r\n
\r\n
\r\n {{ evt.instructor?.fullName | uppercase }} ({{ evt.instructor?.affiliation }}, {{ evt.instructor?.email }})\r\n
\r\n {{ co.fullName | uppercase }} ({{ co.affiliation }}, {{ co.email }})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ evt.startTimeInTimeZone | date: 'shortDate' }} {{ evt.formattedFullTimeRange }}
\r\n
\r\n {{ evt.paperType }}\r\n
\r\n
Track: {{ evt.contentArea }}
\r\n
{{ evt.room?.roomName }}
\r\n
{{ evt.ceus | ceuDisplay }}
\r\n
\r\n
\r\n
\r\n {{ '#' + (idx + 1) }}: {{ evt.title }}\r\n
\r\n
\r\n {{ evt.instructor?.fullName | uppercase }} ({{ evt.instructor?.affiliation }}, {{ evt.instructor?.email }})\r\n \r\n {{ co.fullName | uppercase }} ({{ co.affiliation }}, {{ co.email }})\r\n \r\n
\r\n
\r\n
\r\n
{{ evt.instructor.biography | stripHtml }}
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n Biography\r\n
\r\n
{{ evt.instructor.biography | stripHtml }}
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{ evt.startTimeInTimeZone | date: 'shortDate' }} {{ evt.formattedFullTimeRange }}
\r\n
\r\n Special Event\r\n
\r\n
{{ evt.room?.roomName }}
\r\n
\r\n
\r\n
\r\n {{ '#' + (idx + 1) }}: {{ evt.title }}\r\n
\r\n
\r\n
{{ evt.instructor.biography | stripHtml }}
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel, ProgramEventViewModel } from 'src/app/_models/generatedModels';\r\nimport { ConferenceSchedulerService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-conference-program-export',\r\n templateUrl: 'conference-program-export.component.html',\r\n})\r\nexport class ConferenceProgramExportComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n events: ProgramEventViewModel[];\r\n constructor(private schedule: ConferenceSchedulerService) {}\r\n\r\n ngOnInit(): void {\r\n this.schedule.getProgramEvents(this.conference.organizationId.toString(), this.conference.id).subscribe((result) => {\r\n this.events = result;\r\n this.initialized = true;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n

No Results

\r\n

Please modify your search and try again.

\r\n
\r\n
\r\n 0\" [rows]=\"pageSize\" [first]=\"currentPage * pageSize\" [totalRecords]=\"resultCount\" (onPageChange)=\"paginate($event)\" [rowsPerPageOptions]=\"[10, 15, 20, 30, 50]\">\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Enums } from 'src/app/_models/generatedEnums';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, EventViewModel, OrganizationViewModel, OrganizationEventSearchParams, EventOrderBy, TagViewModel } from 'src/app/_models/generatedModels';\r\nimport { OrganizationService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-organization-event-listing',\r\n templateUrl: 'organization-event-listing.component.html',\r\n})\r\nexport class OrganizationEventListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() organization: OrganizationViewModel;\r\n @Input() element: PageElementViewModel;\r\n searchParams: OrganizationEventSearchParams;\r\n EventOrderBy = EventOrderBy;\r\n OrderByEnum = Enums.EventOrderByEnum;\r\n events: EventViewModel[];\r\n tags: TagViewModel[];\r\n hideFilter: boolean;\r\n currentPage = 0;\r\n pageSize = 15;\r\n resultCount = 0;\r\n searching = false;\r\n\r\n rootRoute: string;\r\n constructor(private orgService: OrganizationService) {}\r\n\r\n ngOnInit(): void {\r\n this.searchParams = new OrganizationEventSearchParams();\r\n this.searchParams.courseEventStatus = null;\r\n this.searchParams.orderBy = EventOrderBy.EventDate;\r\n this.searchParams.roomId = null;\r\n this.searchParams.tag = null;\r\n\r\n var orgId = 0;\r\n if (this.conference) {\r\n orgId = this.conference.organizationId;\r\n this.rootRoute = '/conferences/' + this.conference.slug;\r\n } else {\r\n orgId = this.organization.id;\r\n this.rootRoute = '/organizations/' + this.organization.slug;\r\n }\r\n this.orgService.getTagsForOrganization(orgId.toString()).subscribe((tags) => {\r\n this.tags = tags;\r\n\r\n if (this.element.data) {\r\n try {\r\n var data = JSON.parse(this.element.data);\r\n console.log(data?.tag);\r\n this.searchParams.selectedDay = data?.selectedDay;\r\n this.searchParams.selectedTime = data?.selectedTime;\r\n this.searchParams.tag = data?.tag;\r\n\r\n if (this.searchParams.selectedDay || this.searchParams.selectedTime || this.searchParams.tag) {\r\n this.hideFilter = true;\r\n }\r\n } catch (e) {\r\n console.log('error');\r\n this.searchParams.selectedDay = null;\r\n }\r\n } else {\r\n this.searchParams.selectedDay = null;\r\n }\r\n\r\n this.search(true);\r\n\r\n this.initialized = true;\r\n });\r\n }\r\n\r\n search(resetPaging: boolean) {\r\n this.searching = true;\r\n if (resetPaging) {\r\n this.currentPage = 0;\r\n }\r\n this.events = [];\r\n\r\n this.orgService.searchEventsForOrganization(this.organization.id.toString(), this.currentPage, this.pageSize, true, this.searchParams).subscribe((pagedResult) => {\r\n this.currentPage = pagedResult.currentPage;\r\n this.pageSize = pagedResult.pageSize;\r\n this.resultCount = pagedResult.rowCount;\r\n this.events = pagedResult.results;\r\n\r\n this.initialized = true;\r\n this.searching = false;\r\n });\r\n }\r\n\r\n paginate(event) {\r\n //event.first = Index of the first record\r\n //event.rows = Number of rows to display in new page\r\n //event.page = Index of the new page\r\n //event.pageCount = Total number of pages\r\n this.currentPage = event.page;\r\n this.pageSize = event.rows;\r\n this.search(false);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n = 3\" class=\"badge badge-success badge-pill\">{{ product.remainingQuantity }} remaining\r\n {{ product.remainingQuantity }} remaining\r\n Sold Out\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n {{ product.title }}\r\n

\r\n
\r\n {{ product.price | currency: conference.sponsorCurrency }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Enumerable from 'linq';\r\nimport { PageElementViewModel, ConferenceViewModel, SponsorshipProductViewModel } from 'src/app/_models/generatedModels';\r\nimport { ProductListingData } from 'src/app/_models/models';\r\nimport { CallForSponsorsService } from 'src/app/_services/generatedServices';\r\nimport { SponsorshipCartService } from 'src/app/_services/sponsorship-cart.service';\r\nimport { ToasterService } from 'src/app/_services/toaster.service';\r\n\r\n@Component({\r\n selector: 'bxl-sponsor-product-listing',\r\n templateUrl: 'sponsor-product-listing.component.html',\r\n})\r\nexport class SponsorProductListingComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n productListingData: ProductListingData;\r\n\r\n products: SponsorshipProductViewModel[];\r\n\r\n constructor(private callForSponsorsService: CallForSponsorsService, private router: Router, private cart: SponsorshipCartService, private toaster: ToasterService, private route: ActivatedRoute, private modalService: NgbModal) {}\r\n\r\n ngOnInit(): void {\r\n try{\r\n this.productListingData = JSON.parse(this.element.data);\r\n } catch {\r\n this.productListingData = new ProductListingData();\r\n }\r\n\r\n this.callForSponsorsService.getProductsForConference(this.conference.id.toString()).subscribe((products) => {\r\n var tags = Enumerable.from(this.productListingData.selectedTags);\r\n\r\n if (tags.any()) {\r\n this.products = products.filter((p) => tags.any((t) => p.tags.includes(t)) || (this.productListingData.includeNoTags && p.tags.length == 0));\r\n } else {\r\n this.products = products;\r\n }\r\n this.initialized = true;\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PageElementViewModel, ConferenceViewModel } from 'src/app/_models/generatedModels';\r\n\r\n@Component({\r\n selector: 'bxl-conference-pdf-viewer',\r\n templateUrl: 'conference-pdf-viewer.component.html',\r\n})\r\nexport class ConferencePdfViewerComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n pdfUrl: string;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.pdfUrl = this.element.data;\r\n\r\n this.initialized = true;\r\n }\r\n}\r\n","\r\n","\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ConferenceViewModel, OrganizationViewModel, PageElementViewModel } from 'src/app/_models/generatedModels';\r\nimport { OrganizationService } from 'src/app/_services/generatedServices';\r\n\r\n@Component({\r\n selector: 'bxl-conference-list',\r\n templateUrl: 'conference-list.component.html',\r\n})\r\nexport class ConferenceListComponent implements OnInit {\r\n initialized = false;\r\n @Input() conference: ConferenceViewModel;\r\n @Input() element: PageElementViewModel;\r\n @Input() organization: OrganizationViewModel;\r\n conferences: ConferenceViewModel[];\r\n\r\n constructor(private orgService: OrganizationService) {}\r\n\r\n ngOnInit(): void {\r\n console.log('here');\r\n this.orgService.getAllConferencesForOrg(this.organization.id.toString()).subscribe((conferences) => {\r\n this.conferences = conferences.filter((x) => x.published);\r\n this.initialized = true;\r\n });\r\n }\r\n}\r\n"," 0\">\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { OrganizationViewModel, PageElementViewModel, RegistrationPackageViewModel } from 'src/app/_models/generatedModels';\r\nimport { AuthenticationService } from 'src/app/_services/authentication.service';\r\nimport { ConferenceCMSService, OrganizationService, UserService } from 'src/app/_services/generatedServices';\r\nimport { PackagePurchaseModalComponent } from 'src/app/conferences/registration/package-purchase-modal.component';\r\nimport { RegistrationModalComponent } from 'src/app/events/registration/registration-modal.component';\r\n\r\n@Component({\r\n selector: 'bxl-organization-bundles',\r\n templateUrl: 'organization-bundles.component.html',\r\n})\r\nexport class OrganizationBundlesComponent implements OnInit {\r\n initialized = false;\r\n @Input() organization: OrganizationViewModel;\r\n @Input() element: PageElementViewModel;\r\n anyOnDemand: boolean;\r\n packageCategories: string[];\r\n activeCategory = '';\r\n\r\n registerMore: boolean;\r\n packages: RegistrationPackageViewModel[];\r\n\r\n constructor(private modalService: NgbModal, private user: UserService, private cmsService: ConferenceCMSService, private auth: AuthenticationService, private orgService: OrganizationService) {}\r\n\r\n ngOnInit(): void {\r\n this.fetchData();\r\n }\r\n\r\n\r\n\r\n fetchData() {\r\n this.cmsService.getOrganizationPackagesForRegistration(this.organization.id.toString()).subscribe((packages) => {\r\n this.packages = packages;\r\n this.packageCategories = this.packages\r\n .filter((x) => !x.onlyShowForGroups)\r\n .map((p) => p.category)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n this.activeCategory = this.packageCategories[0];\r\n\r\n });\r\n }\r\n\r\n purchasePackage(pckg: RegistrationPackageViewModel) {\r\n if (this.auth.isLoggedIn()) {\r\n this.showPurchaseModal(pckg);\r\n } else {\r\n this.showLoginModal(pckg);\r\n }\r\n }\r\n\r\n showLoginModal(pckg: RegistrationPackageViewModel) {\r\n const modalRef = this.modalService.open(RegistrationModalComponent, { size: 'lg', ariaLabelledBy: 'modal-basic-title', backdrop: 'static' });\r\n modalRef.result.then(\r\n (result) => {\r\n this.auth.fetchUserProfile().subscribe((result) => {\r\n this.showPurchaseModal(pckg);\r\n });\r\n },\r\n (reason) => {}\r\n );\r\n return;\r\n }\r\n\r\n changeCategory(category: string) {\r\n this.activeCategory = category;\r\n }\r\n\r\n showPurchaseModal(pckg: RegistrationPackageViewModel) {\r\n const modalRef = this.modalService.open(PackagePurchaseModalComponent, { size: 'xl', ariaLabelledBy: 'modal-basic-title', backdrop: 'static' });\r\n modalRef.componentInstance.packageId = pckg.id;\r\n modalRef.componentInstance.organization = this.organization;\r\n modalRef.result.then(\r\n (result) => {\r\n console.log('fetching data');\r\n\r\n this.fetchData();\r\n },\r\n (reason) => {}\r\n );\r\n return;\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PageElementTypeEnum } from 'src/app/_models/generatedEnums';\r\nimport { PageElementViewModel, ConferenceViewModel, ConferenceViewModelWithDetails, PageElementType, OrganizationViewModel } from 'src/app/_models/generatedModels';\r\n\r\n@Component({\r\n selector: 'bxl-page-element',\r\n templateUrl: 'page-element.component.html',\r\n})\r\nexport class PageElementComponent implements OnInit, OnDestroy {\r\n initialized = false;\r\n\r\n @Input() conference: ConferenceViewModel;\r\n @Input() organization: OrganizationViewModel;\r\n @Input() element: PageElementViewModel;\r\n\r\n PageElementType = PageElementType;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.initialized = true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log('elemetn destroyed');\r\n }\r\n}\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { ConferenceBannerRotatorComponent } from './conferences/page/elements/conference-banner-rotater/conference-banner-rotator.component';\r\nimport { ConferenceDateHeaderComponent } from './conferences/page/elements/conference-date-header/conference-date-header.component';\r\nimport { ConferenceEventListingComponent } from './conferences/page/elements/conference-event-listing/conference-event-listing.component';\r\nimport { ConferenceExhibitListingComponent } from './conferences/page/elements/conference-exhibits/conference-exhibit-listing.component';\r\nimport { ConferenceHtmlContentComponent } from './conferences/page/elements/conference-html-content/conference-html-content.component';\r\nimport { ConferenceListComponent } from './conferences/page/elements/conference-list/conference-list.component';\r\nimport { ConferenceOnDemandListingComponent } from './conferences/page/elements/conference-on-demand-listing/conference-on-demand-listing.component';\r\nimport { ConferenceOnDemandSearchComponent } from './conferences/page/elements/conference-on-demand-search/conference-on-demand-search.component';\r\nimport { ConferencePackageListingComponent } from './conferences/page/elements/conference-package-listing/conference-package-listing.component';\r\nimport { ConferencePdfViewerComponent } from './conferences/page/elements/conference-pdf-viewer/conference-pdf-viewer.component';\r\nimport { ConferencePosterListingComponent } from './conferences/page/elements/conference-poster-listing/conference-poster-listing.component';\r\nimport { ConferenceScheduleElementComponent } from './conferences/page/elements/conference-schedule/conference-schedule-element.component';\r\nimport { ConferenceSpeakerListingComponent } from './conferences/page/elements/conference-speaker-listing/conference-speaker-listing.component';\r\nimport { OrganizationBundlesComponent } from './conferences/page/elements/organization-bundles/organization-bundles.component';\r\nimport { OrganizationEventListingComponent } from './conferences/page/elements/organization-event-listing/organization-event-listing.component';\r\nimport { PageElementComponent } from './conferences/page/elements/page-element.component';\r\nimport { ConferenceProgramExportComponent } from './conferences/page/elements/program-export/conference-program-export.component';\r\nimport { SponsorProductListingComponent } from './conferences/page/elements/sponsor-product-listing/sponsor-product-listing.component';\r\nimport { AddEditExhibitComponent } from './superUser/conferences/exhibits/add-edit/add-edit-exhibit.component';\r\nimport { ExhibitInviteComponent } from './superUser/conferences/exhibits/exhibit-invite/exhibit-invite.component';\r\nimport { EmailRegistrantsModalComponent } from './superUser/events/email-registrants-modal.component';\r\nimport { ApplicationPipesModule } from './_shared/modules/application-pipes.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n PageElementComponent,\r\n ConferenceHtmlContentComponent,\r\n ConferenceSpeakerListingComponent,\r\n ConferencePosterListingComponent,\r\n ConferenceBannerRotatorComponent,\r\n ConferenceListComponent,\r\n ConferencePackageListingComponent,\r\n ConferenceOnDemandListingComponent,\r\n ConferenceEventListingComponent,\r\n ConferenceDateHeaderComponent,\r\n ConferenceOnDemandSearchComponent,\r\n SponsorProductListingComponent,\r\n ConferenceExhibitListingComponent,\r\n ConferenceScheduleElementComponent,\r\n ConferenceProgramExportComponent,\r\n OrganizationEventListingComponent,\r\n ConferencePdfViewerComponent,\r\n OrganizationBundlesComponent,\r\n\r\n\r\n ],\r\n entryComponents: [],\r\n imports: [\r\n ApplicationPipesModule,\r\n DragDropModule,\r\n RouterModule,\r\n SkeletonModule,\r\n PaginatorModule,\r\n PdfViewerModule,\r\n ],\r\n exports: [\r\n PageElementComponent,ConferenceHtmlContentComponent,\r\n ConferenceSpeakerListingComponent,\r\n ConferencePosterListingComponent,\r\n ConferenceBannerRotatorComponent,\r\n ConferenceListComponent,\r\n ConferencePackageListingComponent,\r\n OrganizationBundlesComponent,\r\n ConferenceOnDemandListingComponent,\r\n ConferenceEventListingComponent,\r\n ConferenceDateHeaderComponent,\r\n ConferenceOnDemandSearchComponent,\r\n SponsorProductListingComponent,\r\n ConferenceExhibitListingComponent,\r\n ConferenceScheduleElementComponent,\r\n ConferenceProgramExportComponent,\r\n OrganizationEventListingComponent,\r\n ConferencePdfViewerComponent,\r\n\r\n\r\n ],\r\n})\r\nexport class SharedCMSModule {}\r\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ViewChild, Output, Input, NgModule } from '@angular/core';\nimport { fromEvent, Subject, from } from 'rxjs';\nimport { takeUntil, debounceTime, filter } from 'rxjs/operators';\nimport * as PDFJS from 'pdfjs-dist/build/pdf';\nimport * as PDFJSViewer from 'pdfjs-dist/web/pdf_viewer';\n\nfunction createEventBus(pdfJsViewer, destroy$) {\n const globalEventBus = new pdfJsViewer.EventBus();\n attachDOMEventsToEventBus(globalEventBus, destroy$);\n return globalEventBus;\n}\nfunction attachDOMEventsToEventBus(eventBus, destroy$) {\n fromEvent(eventBus, 'documentload')\n .pipe(takeUntil(destroy$))\n .subscribe(() => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('documentload', true, true, {});\n window.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagerendered')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pageNumber, cssTransform, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagerendered', true, true, {\n pageNumber,\n cssTransform,\n });\n source.div.dispatchEvent(event);\n });\n fromEvent(eventBus, 'textlayerrendered')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pageNumber, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('textlayerrendered', true, true, { pageNumber });\n source.textLayerDiv.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagechanging')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pageNumber, source }) => {\n const event = document.createEvent('UIEvents');\n event.initEvent('pagechanging', true, true);\n /* tslint:disable:no-string-literal */\n event['pageNumber'] = pageNumber;\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagesinit')\n .pipe(takeUntil(destroy$))\n .subscribe(({ source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagesinit', true, true, null);\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagesloaded')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pagesCount, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagesloaded', true, true, { pagesCount });\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'scalechange')\n .pipe(takeUntil(destroy$))\n .subscribe(({ scale, presetValue, source }) => {\n const event = document.createEvent('UIEvents');\n event.initEvent('scalechange', true, true);\n /* tslint:disable:no-string-literal */\n event['scale'] = scale;\n /* tslint:disable:no-string-literal */\n event['presetValue'] = presetValue;\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'updateviewarea')\n .pipe(takeUntil(destroy$))\n .subscribe(({ location, source }) => {\n const event = document.createEvent('UIEvents');\n event.initEvent('updateviewarea', true, true);\n event['location'] = location;\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'find')\n .pipe(takeUntil(destroy$))\n .subscribe(({ source, type, query, phraseSearch, caseSensitive, highlightAll, findPrevious, }) => {\n if (source === window) {\n return; // event comes from FirefoxCom, no need to replicate\n }\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('find' + type, true, true, {\n query,\n phraseSearch,\n caseSensitive,\n highlightAll,\n findPrevious,\n });\n window.dispatchEvent(event);\n });\n fromEvent(eventBus, 'attachmentsloaded')\n .pipe(takeUntil(destroy$))\n .subscribe(({ attachmentsCount, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('attachmentsloaded', true, true, {\n attachmentsCount,\n });\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'sidebarviewchanged')\n .pipe(takeUntil(destroy$))\n .subscribe(({ view, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('sidebarviewchanged', true, true, { view });\n source.outerContainer.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagemode')\n .pipe(takeUntil(destroy$))\n .subscribe(({ mode, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagemode', true, true, { mode });\n source.pdfViewer.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'namedaction')\n .pipe(takeUntil(destroy$))\n .subscribe(({ action, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('namedaction', true, true, { action });\n source.pdfViewer.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'presentationmodechanged')\n .pipe(takeUntil(destroy$))\n .subscribe(({ active, switchInProgress }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('presentationmodechanged', true, true, {\n active,\n switchInProgress,\n });\n window.dispatchEvent(event);\n });\n fromEvent(eventBus, 'outlineloaded')\n .pipe(takeUntil(destroy$))\n .subscribe(({ outlineCount, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('outlineloaded', true, true, { outlineCount });\n source.container.dispatchEvent(event);\n });\n}\n\nfunction assign(obj, prop, value) {\n obj[prop] = value;\n}\nfunction isSSR() {\n return typeof window === 'undefined';\n}\n\n/**\n * Created by vadimdez on 21/06/16.\n */\nif (!isSSR()) {\n assign(PDFJS, 'verbosity', PDFJS.VerbosityLevel.INFOS);\n}\nvar RenderTextMode;\n(function (RenderTextMode) {\n RenderTextMode[RenderTextMode[\"DISABLED\"] = 0] = \"DISABLED\";\n RenderTextMode[RenderTextMode[\"ENABLED\"] = 1] = \"ENABLED\";\n RenderTextMode[RenderTextMode[\"ENHANCED\"] = 2] = \"ENHANCED\";\n})(RenderTextMode || (RenderTextMode = {}));\nclass PdfViewerComponent {\n constructor(element, ngZone) {\n this.element = element;\n this.ngZone = ngZone;\n this.isVisible = false;\n this._cMapsUrl = typeof PDFJS !== 'undefined'\n ? `https://unpkg.com/pdfjs-dist@${PDFJS.version}/cmaps/`\n : null;\n this._imageResourcesPath = typeof PDFJS !== 'undefined'\n ? `https://unpkg.com/pdfjs-dist@${PDFJS.version}/web/images/`\n : null;\n this._renderText = true;\n this._renderTextMode = RenderTextMode.ENABLED;\n this._stickToPage = false;\n this._originalSize = true;\n this._page = 1;\n this._zoom = 1;\n this._zoomScale = 'page-width';\n this._rotation = 0;\n this._showAll = true;\n this._canAutoResize = true;\n this._fitToPage = false;\n this._externalLinkTarget = 'blank';\n this._showBorders = false;\n this.resizeTimeout = null;\n this.pageScrollTimeout = null;\n this.isInitialized = false;\n this.destroy$ = new Subject();\n this.afterLoadComplete = new EventEmitter();\n this.pageRendered = new EventEmitter();\n this.pageInitialized = new EventEmitter();\n this.textLayerRendered = new EventEmitter();\n this.onError = new EventEmitter();\n this.onProgress = new EventEmitter();\n this.pageChange = new EventEmitter(true);\n if (isSSR()) {\n return;\n }\n let pdfWorkerSrc;\n if (window.hasOwnProperty('pdfWorkerSrc') &&\n typeof window.pdfWorkerSrc === 'string' &&\n window.pdfWorkerSrc) {\n pdfWorkerSrc = window.pdfWorkerSrc;\n }\n else {\n pdfWorkerSrc = `https://cdn.jsdelivr.net/npm/pdfjs-dist@${PDFJS.version}/legacy/build/pdf.worker.min.js`;\n }\n assign(PDFJS.GlobalWorkerOptions, 'workerSrc', pdfWorkerSrc);\n }\n set cMapsUrl(cMapsUrl) {\n this._cMapsUrl = cMapsUrl;\n }\n set page(_page) {\n _page = parseInt(_page, 10) || 1;\n const originalPage = _page;\n if (this._pdf) {\n _page = this.getValidPageNumber(_page);\n }\n this._page = _page;\n if (originalPage !== _page) {\n this.pageChange.emit(_page);\n }\n }\n set renderText(renderText) {\n this._renderText = renderText;\n }\n set renderTextMode(renderTextMode) {\n this._renderTextMode = renderTextMode;\n }\n set originalSize(originalSize) {\n this._originalSize = originalSize;\n }\n set showAll(value) {\n this._showAll = value;\n }\n set stickToPage(value) {\n this._stickToPage = value;\n }\n set zoom(value) {\n if (value <= 0) {\n return;\n }\n this._zoom = value;\n }\n get zoom() {\n return this._zoom;\n }\n set zoomScale(value) {\n this._zoomScale = value;\n }\n get zoomScale() {\n return this._zoomScale;\n }\n set rotation(value) {\n if (!(typeof value === 'number' && value % 90 === 0)) {\n console.warn('Invalid pages rotation angle.');\n return;\n }\n this._rotation = value;\n }\n set externalLinkTarget(value) {\n this._externalLinkTarget = value;\n }\n set autoresize(value) {\n this._canAutoResize = Boolean(value);\n }\n set fitToPage(value) {\n this._fitToPage = Boolean(value);\n }\n set showBorders(value) {\n this._showBorders = Boolean(value);\n }\n static getLinkTarget(type) {\n switch (type) {\n case 'blank':\n return PDFJSViewer.LinkTarget.BLANK;\n case 'none':\n return PDFJSViewer.LinkTarget.NONE;\n case 'self':\n return PDFJSViewer.LinkTarget.SELF;\n case 'parent':\n return PDFJSViewer.LinkTarget.PARENT;\n case 'top':\n return PDFJSViewer.LinkTarget.TOP;\n }\n return null;\n }\n ngAfterViewChecked() {\n if (this.isInitialized) {\n return;\n }\n const offset = this.pdfViewerContainer.nativeElement.offsetParent;\n if (this.isVisible === true && offset == null) {\n this.isVisible = false;\n return;\n }\n if (this.isVisible === false && offset != null) {\n this.isVisible = true;\n setTimeout(() => {\n this.initialize();\n this.ngOnChanges({ src: this.src });\n });\n }\n }\n ngOnInit() {\n this.initialize();\n this.setupResizeListener();\n }\n ngOnDestroy() {\n this.clear();\n this.destroy$.next();\n this.loadingTask = null;\n }\n ngOnChanges(changes) {\n if (isSSR() || !this.isVisible) {\n return;\n }\n if ('src' in changes) {\n this.loadPDF();\n }\n else if (this._pdf) {\n if ('renderText' in changes) {\n this.pdfViewer.textLayerMode = this._renderText\n ? this._renderTextMode\n : RenderTextMode.DISABLED;\n this.resetPdfDocument();\n }\n else if ('showAll' in changes) {\n this.setupViewer();\n this.resetPdfDocument();\n }\n if ('page' in changes) {\n const { page } = changes;\n if (page.currentValue === this._latestScrolledPage) {\n return;\n }\n // New form of page changing: The viewer will now jump to the specified page when it is changed.\n // This behavior is introduced by using the PDFSinglePageViewer\n this.pdfViewer.scrollPageIntoView({ pageNumber: this._page });\n }\n this.update();\n }\n }\n updateSize() {\n from(this._pdf.getPage(this.pdfViewer.currentPageNumber))\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (page) => {\n const rotation = this._rotation || page.rotate;\n const viewportWidth = page.getViewport({\n scale: this._zoom,\n rotation\n }).width * PdfViewerComponent.CSS_UNITS;\n let scale = this._zoom;\n let stickToPage = true;\n // Scale the document when it shouldn't be in original size or doesn't fit into the viewport\n if (!this._originalSize ||\n (this._fitToPage &&\n viewportWidth > this.pdfViewerContainer.nativeElement.clientWidth)) {\n const viewPort = page.getViewport({ scale: 1, rotation });\n scale = this.getScale(viewPort.width, viewPort.height);\n stickToPage = !this._stickToPage;\n }\n this.pdfViewer._setScale(scale, stickToPage);\n }\n });\n }\n clear() {\n if (this.loadingTask && !this.loadingTask.destroyed) {\n this.loadingTask.destroy();\n }\n if (this._pdf) {\n this._latestScrolledPage = 0;\n this._pdf.destroy();\n this._pdf = null;\n this.pdfViewer.setDocument(null);\n this.pdfLinkService.setDocument(null, null);\n this.pdfFindController.setDocument(null);\n }\n }\n getPDFLinkServiceConfig() {\n const linkTarget = PdfViewerComponent.getLinkTarget(this._externalLinkTarget);\n if (linkTarget) {\n return { externalLinkTarget: linkTarget };\n }\n return {};\n }\n initEventBus() {\n this.eventBus = createEventBus(PDFJSViewer, this.destroy$);\n fromEvent(this.eventBus, 'pagerendered')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n this.pageRendered.emit(event);\n });\n fromEvent(this.eventBus, 'pagesinit')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n this.pageInitialized.emit(event);\n });\n fromEvent(this.eventBus, 'pagechanging')\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ pageNumber }) => {\n if (this.pageScrollTimeout) {\n clearTimeout(this.pageScrollTimeout);\n }\n this.pageScrollTimeout = window.setTimeout(() => {\n this._latestScrolledPage = pageNumber;\n this.pageChange.emit(pageNumber);\n }, 100);\n });\n fromEvent(this.eventBus, 'textlayerrendered')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n this.textLayerRendered.emit(event);\n });\n }\n initPDFServices() {\n this.pdfLinkService = new PDFJSViewer.PDFLinkService({\n eventBus: this.eventBus,\n ...this.getPDFLinkServiceConfig()\n });\n this.pdfFindController = new PDFJSViewer.PDFFindController({\n eventBus: this.eventBus,\n linkService: this.pdfLinkService,\n });\n }\n getPDFOptions() {\n return {\n eventBus: this.eventBus,\n container: this.element.nativeElement.querySelector('div'),\n removePageBorders: !this._showBorders,\n linkService: this.pdfLinkService,\n textLayerMode: this._renderText\n ? this._renderTextMode\n : RenderTextMode.DISABLED,\n findController: this.pdfFindController,\n renderer: 'canvas',\n l10n: undefined,\n imageResourcesPath: this._imageResourcesPath,\n };\n }\n setupViewer() {\n assign(PDFJS, 'disableTextLayer', !this._renderText);\n this.initPDFServices();\n if (this._showAll) {\n this.pdfViewer = new PDFJSViewer.PDFViewer(this.getPDFOptions());\n }\n else {\n this.pdfViewer = new PDFJSViewer.PDFSinglePageViewer(this.getPDFOptions());\n }\n this.pdfLinkService.setViewer(this.pdfViewer);\n this.pdfViewer._currentPageNumber = this._page;\n }\n getValidPageNumber(page) {\n if (page < 1) {\n return 1;\n }\n if (page > this._pdf.numPages) {\n return this._pdf.numPages;\n }\n return page;\n }\n getDocumentParams() {\n const srcType = typeof this.src;\n if (!this._cMapsUrl) {\n return this.src;\n }\n const params = {\n cMapUrl: this._cMapsUrl,\n cMapPacked: true,\n enableXfa: true\n };\n if (srcType === 'string') {\n params.url = this.src;\n }\n else if (srcType === 'object') {\n if (this.src.byteLength !== undefined) {\n params.data = this.src;\n }\n else {\n Object.assign(params, this.src);\n }\n }\n return params;\n }\n loadPDF() {\n if (!this.src) {\n return;\n }\n if (this.lastLoaded === this.src) {\n this.update();\n return;\n }\n this.clear();\n this.setupViewer();\n this.loadingTask = PDFJS.getDocument(this.getDocumentParams());\n this.loadingTask.onProgress = (progressData) => {\n this.onProgress.emit(progressData);\n };\n const src = this.src;\n from(this.loadingTask.promise)\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (pdf) => {\n this._pdf = pdf;\n this.lastLoaded = src;\n this.afterLoadComplete.emit(pdf);\n this.resetPdfDocument();\n this.update();\n },\n error: (error) => {\n this.lastLoaded = null;\n this.onError.emit(error);\n }\n });\n }\n update() {\n this.page = this._page;\n this.render();\n }\n render() {\n this._page = this.getValidPageNumber(this._page);\n if (this._rotation !== 0 ||\n this.pdfViewer.pagesRotation !== this._rotation) {\n setTimeout(() => {\n this.pdfViewer.pagesRotation = this._rotation;\n });\n }\n if (this._stickToPage) {\n setTimeout(() => {\n this.pdfViewer.currentPageNumber = this._page;\n });\n }\n this.updateSize();\n }\n getScale(viewportWidth, viewportHeight) {\n const borderSize = this._showBorders ? 2 * PdfViewerComponent.BORDER_WIDTH : 0;\n const pdfContainerWidth = this.pdfViewerContainer.nativeElement.clientWidth - borderSize;\n const pdfContainerHeight = this.pdfViewerContainer.nativeElement.clientHeight - borderSize;\n if (pdfContainerHeight === 0 ||\n viewportHeight === 0 ||\n pdfContainerWidth === 0 ||\n viewportWidth === 0) {\n return 1;\n }\n let ratio = 1;\n switch (this._zoomScale) {\n case 'page-fit':\n ratio = Math.min(pdfContainerHeight / viewportHeight, pdfContainerWidth / viewportWidth);\n break;\n case 'page-height':\n ratio = pdfContainerHeight / viewportHeight;\n break;\n case 'page-width':\n default:\n ratio = pdfContainerWidth / viewportWidth;\n break;\n }\n return (this._zoom * ratio) / PdfViewerComponent.CSS_UNITS;\n }\n resetPdfDocument() {\n this.pdfLinkService.setDocument(this._pdf, null);\n this.pdfFindController.setDocument(this._pdf);\n this.pdfViewer.setDocument(this._pdf);\n }\n initialize() {\n if (isSSR() || !this.isVisible) {\n return;\n }\n this.isInitialized = true;\n this.initEventBus();\n this.setupViewer();\n }\n setupResizeListener() {\n if (isSSR()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize')\n .pipe(debounceTime(100), filter(() => this._canAutoResize && !!this._pdf), takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateSize();\n });\n });\n }\n}\nPdfViewerComponent.CSS_UNITS = 96.0 / 72.0;\nPdfViewerComponent.BORDER_WIDTH = 9;\nPdfViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.3\", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nPdfViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.3\", type: PdfViewerComponent, selector: \"pdf-viewer\", inputs: { src: \"src\", cMapsUrl: [\"c-maps-url\", \"cMapsUrl\"], page: \"page\", renderText: [\"render-text\", \"renderText\"], renderTextMode: [\"render-text-mode\", \"renderTextMode\"], originalSize: [\"original-size\", \"originalSize\"], showAll: [\"show-all\", \"showAll\"], stickToPage: [\"stick-to-page\", \"stickToPage\"], zoom: \"zoom\", zoomScale: [\"zoom-scale\", \"zoomScale\"], rotation: \"rotation\", externalLinkTarget: [\"external-link-target\", \"externalLinkTarget\"], autoresize: \"autoresize\", fitToPage: [\"fit-to-page\", \"fitToPage\"], showBorders: [\"show-borders\", \"showBorders\"] }, outputs: { afterLoadComplete: \"after-load-complete\", pageRendered: \"page-rendered\", pageInitialized: \"pages-initialized\", textLayerRendered: \"text-layer-rendered\", onError: \"error\", onProgress: \"on-progress\", pageChange: \"pageChange\" }, viewQueries: [{ propertyName: \"pdfViewerContainer\", first: true, predicate: [\"pdfViewerContainer\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n
\n
\n
\n `, isInline: true, styles: [\".ng2-pdf-viewer-container{overflow-x:auto;position:absolute;height:100%;width:100%;-webkit-overflow-scrolling:touch}:host{display:block;position:relative}:host ::ng-deep{--pdfViewer-padding-bottom: 0;--page-margin: 1px auto -8px;--page-border: 9px solid transparent;--spreadHorizontalWrapped-margin-LR: -3.5px;--zoom-factor: 1;--viewport-scale-factor: 1;--shadow: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAA1ElEQVQ4jbWUWw6EIAxFy2NFs/8NzR4UJhpqLsdi5mOmSSMUOfYWqv3S0gMr4XlYH/64gZa/gN3ANYA7KAXALt4ktoQ5MI9YxqaG8bWmsIysMuT6piSQCa4whZThCu8CM4zP9YJaKci9jicPq3NcBWYoPMGUlhG7ivtkB+gVyFY75wXghOvh8t5mto1Mdim6e+MBqH6XsY+YAwjpq3vGF7weTWQptLEDVCZvPTMl5JZZsdh47FHW6qFMyvLYqjcnmdFfY9Xk/KDOlzCusX2mi/ofM7MPkzBcSp4Q1/wAAAAASUVORK5CYII=);--viewer-container-height: 0;--annotation-unfocused-field-background: url(\\\"data:image/svg+xml;charset=UTF-8,\\\");--xfa-unfocused-field-background: url(\\\"data:image/svg+xml;charset=UTF-8,\\\")}@media screen and (forced-colors: active){:host ::ng-deep{--pdfViewer-padding-bottom: 9px;--page-margin: 9px auto 0;--page-border: none;--spreadHorizontalWrapped-margin-LR: 4.5px}}:host ::ng-deep .textLayer{position:absolute;text-align:initial;left:0;top:0;right:0;bottom:0;overflow:hidden;opacity:.2;line-height:1;-webkit-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none}:host ::ng-deep .textLayer span,:host ::ng-deep .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}:host ::ng-deep .textLayer span.markedContent{top:0;height:0}:host ::ng-deep .textLayer .highlight{margin:-1px;padding:1px;background-color:#b400aa;border-radius:4px}:host ::ng-deep .textLayer .highlight.appended{position:initial}:host ::ng-deep .textLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .textLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .textLayer .highlight.middle{border-radius:0}:host ::ng-deep .textLayer .highlight.selected{background-color:#006400}:host ::ng-deep .textLayer ::selection{background:blue}:host ::ng-deep .textLayer br::selection{background:transparent}:host ::ng-deep .textLayer .endOfContent{display:block;position:absolute;left:0;top:100%;right:0;bottom:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}:host ::ng-deep .textLayer .endOfContent.active{top:0}:host ::ng-deep .annotationLayer section{position:absolute;text-align:initial}:host ::ng-deep .annotationLayer .linkAnnotation>a,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>canvas{position:relative;top:0;left:0;z-index:-1}:host ::ng-deep .annotationLayer .linkAnnotation>a:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a:hover{opacity:.2;background:yellow;box-shadow:0 2px 10px #ff0}:host ::ng-deep .annotationLayer .textAnnotation img{position:absolute;cursor:pointer}:host ::ng-deep .annotationLayer .textWidgetAnnotation input,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{background-image:var(--annotation-unfocused-field-background);border:1px solid transparent;box-sizing:border-box;font-size:9px;height:100%;margin:0;padding:0 3px;vertical-align:top;width:100%}:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select option{padding:0}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea{font:message-box;font-size:9px;resize:none}:host ::ng-deep .annotationLayer .textWidgetAnnotation input[disabled],:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea[disabled],:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input[disabled]{background:none;border:1px solid transparent;cursor:not-allowed}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:hover,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:hover,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:hover{border:1px solid black}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:1px solid transparent}:host ::ng-deep .annotationLayer .textWidgetAnnotation input :focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea :focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton :focus{background-image:none;background-color:transparent;outline:auto}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:#000;content:\\\"\\\";display:block;position:absolute}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0}:host ::ng-deep .annotationLayer .popupWrapper{position:absolute;width:20em}:host ::ng-deep .annotationLayer .popup{position:absolute;z-index:200;max-width:20em;background-color:#ff9;box-shadow:0 2px 5px #888;border-radius:2px;padding:6px;margin-left:5px;cursor:pointer;font:message-box;font-size:9px;white-space:normal;word-wrap:break-word}:host ::ng-deep .annotationLayer .popup>*{font-size:9px}:host ::ng-deep .annotationLayer .popup h1{display:inline-block}:host ::ng-deep .annotationLayer .popupDate{display:inline-block;margin-left:5px}:host ::ng-deep .annotationLayer .popupContent{border-top:1px solid #333333;margin-top:2px;padding-top:2px}:host ::ng-deep .annotationLayer .richText>*{white-space:pre-wrap}:host ::ng-deep .annotationLayer .highlightAnnotation,:host ::ng-deep .annotationLayer .underlineAnnotation,:host ::ng-deep .annotationLayer .squigglyAnnotation,:host ::ng-deep .annotationLayer .strikeoutAnnotation,:host ::ng-deep .annotationLayer .freeTextAnnotation,:host ::ng-deep .annotationLayer .lineAnnotation svg line,:host ::ng-deep .annotationLayer .squareAnnotation svg rect,:host ::ng-deep .annotationLayer .circleAnnotation svg ellipse,:host ::ng-deep .annotationLayer .polylineAnnotation svg polyline,:host ::ng-deep .annotationLayer .polygonAnnotation svg polygon,:host ::ng-deep .annotationLayer .caretAnnotation,:host ::ng-deep .annotationLayer .inkAnnotation svg polyline,:host ::ng-deep .annotationLayer .stampAnnotation,:host ::ng-deep .annotationLayer .fileAttachmentAnnotation{cursor:pointer}:host ::ng-deep .xfaLayer .highlight{margin:-1px;padding:1px;background-color:#efcbed;border-radius:4px}:host ::ng-deep .xfaLayer .highlight.appended{position:initial}:host ::ng-deep .xfaLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .xfaLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .xfaLayer .highlight.middle{border-radius:0}:host ::ng-deep .xfaLayer .highlight.selected{background-color:#cbdfcb}:host ::ng-deep .xfaLayer ::selection{background:blue}:host ::ng-deep .xfaPage{overflow:hidden;position:relative}:host ::ng-deep .xfaContentarea{position:absolute}:host ::ng-deep .xfaPrintOnly{display:none}:host ::ng-deep .xfaLayer{position:absolute;text-align:initial;top:0;left:0;transform-origin:0 0;line-height:1.2}:host ::ng-deep .xfaLayer *{color:inherit;font:inherit;font-style:inherit;font-weight:inherit;font-feature-settings:inherit;font-kerning:inherit;letter-spacing:-.01px;text-align:inherit;text-decoration:inherit;box-sizing:border-box;background-color:transparent;padding:0;margin:0;pointer-events:auto;line-height:inherit}:host ::ng-deep .xfaLayer div{pointer-events:none}:host ::ng-deep .xfaLayer svg{pointer-events:none}:host ::ng-deep .xfaLayer svg *{pointer-events:none}:host ::ng-deep .xfaLayer a{color:#00f}:host ::ng-deep .xfaRich li{margin-left:3em}:host ::ng-deep .xfaFont{color:#000;font-weight:400;font-feature-settings:\\\"kern\\\" off;font-kerning:none;font-size:10px;font-style:normal;letter-spacing:0;text-decoration:none;vertical-align:0}:host ::ng-deep .xfaCaption{overflow:hidden;flex:0 0 auto}:host ::ng-deep .xfaCaptionForCheckButton{overflow:hidden;flex:1 1 auto}:host ::ng-deep .xfaLabel{height:100%;width:100%}:host ::ng-deep .xfaLeft{display:flex;flex-direction:row;align-items:center}:host ::ng-deep .xfaRight{display:flex;flex-direction:row-reverse;align-items:center}:host ::ng-deep .xfaLeft>.xfaCaption,:host ::ng-deep .xfaLeft>.xfaCaptionForCheckButton,:host ::ng-deep .xfaRight>.xfaCaption,:host ::ng-deep .xfaRight>.xfaCaptionForCheckButton{max-height:100%}:host ::ng-deep .xfaTop{display:flex;flex-direction:column;align-items:flex-start}:host ::ng-deep .xfaBottom{display:flex;flex-direction:column-reverse;align-items:flex-start}:host ::ng-deep .xfaTop>.xfaCaption,:host ::ng-deep .xfaTop>.xfaCaptionForCheckButton,:host ::ng-deep .xfaBottom>.xfaCaption,:host ::ng-deep .xfaBottom>.xfaCaptionForCheckButton{width:100%}:host ::ng-deep .xfaBorder{background-color:transparent;position:absolute;pointer-events:none}:host ::ng-deep .xfaWrapped{width:100%;height:100%}:host ::ng-deep .xfaTextfield:focus,:host ::ng-deep .xfaSelect:focus{background-image:none;background-color:transparent;outline:auto;outline-offset:-1px}:host ::ng-deep .xfaCheckbox:focus,:host ::ng-deep .xfaRadio:focus{outline:auto}:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{height:100%;width:100%;flex:1 1 auto;border:none;resize:none;background-image:var(--xfa-unfocused-field-background)}:host ::ng-deep .xfaTop>.xfaTextfield,:host ::ng-deep .xfaTop>.xfaSelect,:host ::ng-deep .xfaBottom>.xfaTextfield,:host ::ng-deep .xfaBottom>.xfaSelect{flex:0 1 auto}:host ::ng-deep .xfaButton{cursor:pointer;width:100%;height:100%;border:none;text-align:center}:host ::ng-deep .xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}:host ::ng-deep .xfaCheckbox,:host ::ng-deep .xfaRadio{width:100%;height:100%;flex:0 0 auto;border:none}:host ::ng-deep .xfaRich{white-space:pre-wrap;width:100%;height:100%}:host ::ng-deep .xfaImage{object-position:left top;object-fit:contain;width:100%;height:100%}:host ::ng-deep .xfaLrTb,:host ::ng-deep .xfaRlTb,:host ::ng-deep .xfaTb{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaLr{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaRl{display:flex;flex-direction:row-reverse;align-items:stretch}:host ::ng-deep .xfaTb>div{justify-content:left}:host ::ng-deep .xfaPosition{position:relative}:host ::ng-deep .xfaArea{position:relative}:host ::ng-deep .xfaValignMiddle{display:flex;align-items:center}:host ::ng-deep .xfaTable{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaTable .xfaRow{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaTable .xfaRlRow{display:flex;flex-direction:row-reverse;align-items:stretch;flex:1}:host ::ng-deep .xfaTable .xfaRlRow>div{flex:1}:host ::ng-deep .xfaNonInteractive input,:host ::ng-deep .xfaNonInteractive textarea,:host ::ng-deep .xfaDisabled input,:host ::ng-deep .xfaDisabled textarea,:host ::ng-deep .xfaReadOnly input,:host ::ng-deep .xfaReadOnly textarea{background:initial}@media print{:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{background:transparent}:host ::ng-deep .xfaSelect{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:1px;text-overflow:\\\"\\\"}}:host ::ng-deep .pdfViewer{padding-bottom:var(--pdfViewer-padding-bottom)}:host ::ng-deep .pdfViewer .canvasWrapper{overflow:hidden}:host ::ng-deep .pdfViewer .page{direction:ltr;width:816px;height:1056px;margin:var(--page-margin);position:relative;overflow:visible;border:var(--page-border);background-clip:content-box;border-image:var(--shadow) 9 9 repeat;background-color:#fff}:host ::ng-deep .pdfViewer .dummyPage{position:relative;width:0;height:var(--viewer-container-height)}:host ::ng-deep .pdfViewer.removePageBorders .page{margin:0 auto 10px;border:none}:host ::ng-deep .pdfViewer.singlePageView{display:inline-block}:host ::ng-deep .pdfViewer.singlePageView .page{margin:0;border:none}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .pdfViewer.scrollWrapped,:host ::ng-deep .spread{margin-left:3.5px;margin-right:3.5px;text-align:center}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .spread{white-space:nowrap}:host ::ng-deep .pdfViewer.removePageBorders,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{margin-left:0;margin-right:0}:host ::ng-deep .spread .page,:host ::ng-deep .spread .dummyPage,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{display:inline-block;vertical-align:middle}:host ::ng-deep .spread .page,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page{margin-left:var(--spreadHorizontalWrapped-margin-LR);margin-right:var(--spreadHorizontalWrapped-margin-LR)}:host ::ng-deep .pdfViewer.removePageBorders .spread .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollHorizontal .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollWrapped .page{margin-left:5px;margin-right:5px}:host ::ng-deep .pdfViewer .page canvas{margin:0;display:block}:host ::ng-deep .pdfViewer .page canvas[hidden]{display:none}:host ::ng-deep .pdfViewer .page .loadingIcon{position:absolute;display:block;left:0;top:0;right:0;bottom:0;background:url(data:image/gif;base64,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) center no-repeat}:host ::ng-deep .pdfViewer .page .loadingIcon.notVisible{background:none}:host ::ng-deep .pdfViewer.enablePermissions .textLayer span{-webkit-user-select:none!important;user-select:none!important;cursor:not-allowed}:host ::ng-deep .pdfPresentationMode .pdfViewer{padding-bottom:0}:host ::ng-deep .pdfPresentationMode .spread{margin:0}:host ::ng-deep .pdfPresentationMode .pdfViewer .page{margin:0 auto;border:2px solid transparent}\\n\"] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.3\", ngImport: i0, type: PdfViewerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'pdf-viewer', template: `\n
\n
\n
\n `, styles: [\".ng2-pdf-viewer-container{overflow-x:auto;position:absolute;height:100%;width:100%;-webkit-overflow-scrolling:touch}:host{display:block;position:relative}:host ::ng-deep{--pdfViewer-padding-bottom: 0;--page-margin: 1px auto -8px;--page-border: 9px solid transparent;--spreadHorizontalWrapped-margin-LR: -3.5px;--zoom-factor: 1;--viewport-scale-factor: 1;--shadow: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAA1ElEQVQ4jbWUWw6EIAxFy2NFs/8NzR4UJhpqLsdi5mOmSSMUOfYWqv3S0gMr4XlYH/64gZa/gN3ANYA7KAXALt4ktoQ5MI9YxqaG8bWmsIysMuT6piSQCa4whZThCu8CM4zP9YJaKci9jicPq3NcBWYoPMGUlhG7ivtkB+gVyFY75wXghOvh8t5mto1Mdim6e+MBqH6XsY+YAwjpq3vGF7weTWQptLEDVCZvPTMl5JZZsdh47FHW6qFMyvLYqjcnmdFfY9Xk/KDOlzCusX2mi/ofM7MPkzBcSp4Q1/wAAAAASUVORK5CYII=);--viewer-container-height: 0;--annotation-unfocused-field-background: url(\\\"data:image/svg+xml;charset=UTF-8,\\\");--xfa-unfocused-field-background: url(\\\"data:image/svg+xml;charset=UTF-8,\\\")}@media screen and (forced-colors: active){:host ::ng-deep{--pdfViewer-padding-bottom: 9px;--page-margin: 9px auto 0;--page-border: none;--spreadHorizontalWrapped-margin-LR: 4.5px}}:host ::ng-deep .textLayer{position:absolute;text-align:initial;left:0;top:0;right:0;bottom:0;overflow:hidden;opacity:.2;line-height:1;-webkit-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none}:host ::ng-deep .textLayer span,:host ::ng-deep .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}:host ::ng-deep .textLayer span.markedContent{top:0;height:0}:host ::ng-deep .textLayer .highlight{margin:-1px;padding:1px;background-color:#b400aa;border-radius:4px}:host ::ng-deep .textLayer .highlight.appended{position:initial}:host ::ng-deep .textLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .textLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .textLayer .highlight.middle{border-radius:0}:host ::ng-deep .textLayer .highlight.selected{background-color:#006400}:host ::ng-deep .textLayer ::selection{background:blue}:host ::ng-deep .textLayer br::selection{background:transparent}:host ::ng-deep .textLayer .endOfContent{display:block;position:absolute;left:0;top:100%;right:0;bottom:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}:host ::ng-deep .textLayer .endOfContent.active{top:0}:host ::ng-deep .annotationLayer section{position:absolute;text-align:initial}:host ::ng-deep .annotationLayer .linkAnnotation>a,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>canvas{position:relative;top:0;left:0;z-index:-1}:host ::ng-deep .annotationLayer .linkAnnotation>a:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a:hover{opacity:.2;background:yellow;box-shadow:0 2px 10px #ff0}:host ::ng-deep .annotationLayer .textAnnotation img{position:absolute;cursor:pointer}:host ::ng-deep .annotationLayer .textWidgetAnnotation input,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{background-image:var(--annotation-unfocused-field-background);border:1px solid transparent;box-sizing:border-box;font-size:9px;height:100%;margin:0;padding:0 3px;vertical-align:top;width:100%}:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select option{padding:0}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea{font:message-box;font-size:9px;resize:none}:host ::ng-deep .annotationLayer .textWidgetAnnotation input[disabled],:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea[disabled],:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input[disabled]{background:none;border:1px solid transparent;cursor:not-allowed}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:hover,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:hover,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:hover{border:1px solid black}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:1px solid transparent}:host ::ng-deep .annotationLayer .textWidgetAnnotation input :focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea :focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton :focus{background-image:none;background-color:transparent;outline:auto}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:#000;content:\\\"\\\";display:block;position:absolute}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0}:host ::ng-deep .annotationLayer .popupWrapper{position:absolute;width:20em}:host ::ng-deep .annotationLayer .popup{position:absolute;z-index:200;max-width:20em;background-color:#ff9;box-shadow:0 2px 5px #888;border-radius:2px;padding:6px;margin-left:5px;cursor:pointer;font:message-box;font-size:9px;white-space:normal;word-wrap:break-word}:host ::ng-deep .annotationLayer .popup>*{font-size:9px}:host ::ng-deep .annotationLayer .popup h1{display:inline-block}:host ::ng-deep .annotationLayer .popupDate{display:inline-block;margin-left:5px}:host ::ng-deep .annotationLayer .popupContent{border-top:1px solid #333333;margin-top:2px;padding-top:2px}:host ::ng-deep .annotationLayer .richText>*{white-space:pre-wrap}:host ::ng-deep .annotationLayer .highlightAnnotation,:host ::ng-deep .annotationLayer .underlineAnnotation,:host ::ng-deep .annotationLayer .squigglyAnnotation,:host ::ng-deep .annotationLayer .strikeoutAnnotation,:host ::ng-deep .annotationLayer .freeTextAnnotation,:host ::ng-deep .annotationLayer .lineAnnotation svg line,:host ::ng-deep .annotationLayer .squareAnnotation svg rect,:host ::ng-deep .annotationLayer .circleAnnotation svg ellipse,:host ::ng-deep .annotationLayer .polylineAnnotation svg polyline,:host ::ng-deep .annotationLayer .polygonAnnotation svg polygon,:host ::ng-deep .annotationLayer .caretAnnotation,:host ::ng-deep .annotationLayer .inkAnnotation svg polyline,:host ::ng-deep .annotationLayer .stampAnnotation,:host ::ng-deep .annotationLayer .fileAttachmentAnnotation{cursor:pointer}:host ::ng-deep .xfaLayer .highlight{margin:-1px;padding:1px;background-color:#efcbed;border-radius:4px}:host ::ng-deep .xfaLayer .highlight.appended{position:initial}:host ::ng-deep .xfaLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .xfaLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .xfaLayer .highlight.middle{border-radius:0}:host ::ng-deep .xfaLayer .highlight.selected{background-color:#cbdfcb}:host ::ng-deep .xfaLayer ::selection{background:blue}:host ::ng-deep .xfaPage{overflow:hidden;position:relative}:host ::ng-deep .xfaContentarea{position:absolute}:host ::ng-deep .xfaPrintOnly{display:none}:host ::ng-deep .xfaLayer{position:absolute;text-align:initial;top:0;left:0;transform-origin:0 0;line-height:1.2}:host ::ng-deep .xfaLayer *{color:inherit;font:inherit;font-style:inherit;font-weight:inherit;font-feature-settings:inherit;font-kerning:inherit;letter-spacing:-.01px;text-align:inherit;text-decoration:inherit;box-sizing:border-box;background-color:transparent;padding:0;margin:0;pointer-events:auto;line-height:inherit}:host ::ng-deep .xfaLayer div{pointer-events:none}:host ::ng-deep .xfaLayer svg{pointer-events:none}:host ::ng-deep .xfaLayer svg *{pointer-events:none}:host ::ng-deep .xfaLayer a{color:#00f}:host ::ng-deep .xfaRich li{margin-left:3em}:host ::ng-deep .xfaFont{color:#000;font-weight:400;font-feature-settings:\\\"kern\\\" off;font-kerning:none;font-size:10px;font-style:normal;letter-spacing:0;text-decoration:none;vertical-align:0}:host ::ng-deep .xfaCaption{overflow:hidden;flex:0 0 auto}:host ::ng-deep .xfaCaptionForCheckButton{overflow:hidden;flex:1 1 auto}:host ::ng-deep .xfaLabel{height:100%;width:100%}:host ::ng-deep .xfaLeft{display:flex;flex-direction:row;align-items:center}:host ::ng-deep .xfaRight{display:flex;flex-direction:row-reverse;align-items:center}:host ::ng-deep .xfaLeft>.xfaCaption,:host ::ng-deep .xfaLeft>.xfaCaptionForCheckButton,:host ::ng-deep .xfaRight>.xfaCaption,:host ::ng-deep .xfaRight>.xfaCaptionForCheckButton{max-height:100%}:host ::ng-deep .xfaTop{display:flex;flex-direction:column;align-items:flex-start}:host ::ng-deep .xfaBottom{display:flex;flex-direction:column-reverse;align-items:flex-start}:host ::ng-deep .xfaTop>.xfaCaption,:host ::ng-deep .xfaTop>.xfaCaptionForCheckButton,:host ::ng-deep .xfaBottom>.xfaCaption,:host ::ng-deep .xfaBottom>.xfaCaptionForCheckButton{width:100%}:host ::ng-deep .xfaBorder{background-color:transparent;position:absolute;pointer-events:none}:host ::ng-deep .xfaWrapped{width:100%;height:100%}:host ::ng-deep .xfaTextfield:focus,:host ::ng-deep .xfaSelect:focus{background-image:none;background-color:transparent;outline:auto;outline-offset:-1px}:host ::ng-deep .xfaCheckbox:focus,:host ::ng-deep .xfaRadio:focus{outline:auto}:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{height:100%;width:100%;flex:1 1 auto;border:none;resize:none;background-image:var(--xfa-unfocused-field-background)}:host ::ng-deep .xfaTop>.xfaTextfield,:host ::ng-deep .xfaTop>.xfaSelect,:host ::ng-deep .xfaBottom>.xfaTextfield,:host ::ng-deep .xfaBottom>.xfaSelect{flex:0 1 auto}:host ::ng-deep .xfaButton{cursor:pointer;width:100%;height:100%;border:none;text-align:center}:host ::ng-deep .xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}:host ::ng-deep .xfaCheckbox,:host ::ng-deep .xfaRadio{width:100%;height:100%;flex:0 0 auto;border:none}:host ::ng-deep .xfaRich{white-space:pre-wrap;width:100%;height:100%}:host ::ng-deep .xfaImage{object-position:left top;object-fit:contain;width:100%;height:100%}:host ::ng-deep .xfaLrTb,:host ::ng-deep .xfaRlTb,:host ::ng-deep .xfaTb{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaLr{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaRl{display:flex;flex-direction:row-reverse;align-items:stretch}:host ::ng-deep .xfaTb>div{justify-content:left}:host ::ng-deep .xfaPosition{position:relative}:host ::ng-deep .xfaArea{position:relative}:host ::ng-deep .xfaValignMiddle{display:flex;align-items:center}:host ::ng-deep .xfaTable{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaTable .xfaRow{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaTable .xfaRlRow{display:flex;flex-direction:row-reverse;align-items:stretch;flex:1}:host ::ng-deep .xfaTable .xfaRlRow>div{flex:1}:host ::ng-deep .xfaNonInteractive input,:host ::ng-deep .xfaNonInteractive textarea,:host ::ng-deep .xfaDisabled input,:host ::ng-deep .xfaDisabled textarea,:host ::ng-deep .xfaReadOnly input,:host ::ng-deep .xfaReadOnly textarea{background:initial}@media print{:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{background:transparent}:host ::ng-deep .xfaSelect{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:1px;text-overflow:\\\"\\\"}}:host ::ng-deep .pdfViewer{padding-bottom:var(--pdfViewer-padding-bottom)}:host ::ng-deep .pdfViewer .canvasWrapper{overflow:hidden}:host ::ng-deep .pdfViewer .page{direction:ltr;width:816px;height:1056px;margin:var(--page-margin);position:relative;overflow:visible;border:var(--page-border);background-clip:content-box;border-image:var(--shadow) 9 9 repeat;background-color:#fff}:host ::ng-deep .pdfViewer .dummyPage{position:relative;width:0;height:var(--viewer-container-height)}:host ::ng-deep .pdfViewer.removePageBorders .page{margin:0 auto 10px;border:none}:host ::ng-deep .pdfViewer.singlePageView{display:inline-block}:host ::ng-deep .pdfViewer.singlePageView .page{margin:0;border:none}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .pdfViewer.scrollWrapped,:host ::ng-deep .spread{margin-left:3.5px;margin-right:3.5px;text-align:center}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .spread{white-space:nowrap}:host ::ng-deep .pdfViewer.removePageBorders,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{margin-left:0;margin-right:0}:host ::ng-deep .spread .page,:host ::ng-deep .spread .dummyPage,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{display:inline-block;vertical-align:middle}:host ::ng-deep .spread .page,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page{margin-left:var(--spreadHorizontalWrapped-margin-LR);margin-right:var(--spreadHorizontalWrapped-margin-LR)}:host ::ng-deep .pdfViewer.removePageBorders .spread .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollHorizontal .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollWrapped .page{margin-left:5px;margin-right:5px}:host ::ng-deep .pdfViewer .page canvas{margin:0;display:block}:host ::ng-deep .pdfViewer .page canvas[hidden]{display:none}:host ::ng-deep .pdfViewer .page .loadingIcon{position:absolute;display:block;left:0;top:0;right:0;bottom:0;background:url(data:image/gif;base64,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) center no-repeat}:host ::ng-deep .pdfViewer .page .loadingIcon.notVisible{background:none}:host ::ng-deep .pdfViewer.enablePermissions .textLayer span{-webkit-user-select:none!important;user-select:none!important;cursor:not-allowed}:host ::ng-deep .pdfPresentationMode .pdfViewer{padding-bottom:0}:host ::ng-deep .pdfPresentationMode .spread{margin:0}:host ::ng-deep .pdfPresentationMode .pdfViewer .page{margin:0 auto;border:2px solid transparent}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { pdfViewerContainer: [{\n type: ViewChild,\n args: ['pdfViewerContainer']\n }], afterLoadComplete: [{\n type: Output,\n args: ['after-load-complete']\n }], pageRendered: [{\n type: Output,\n args: ['page-rendered']\n }], pageInitialized: [{\n type: Output,\n args: ['pages-initialized']\n }], textLayerRendered: [{\n type: Output,\n args: ['text-layer-rendered']\n }], onError: [{\n type: Output,\n args: ['error']\n }], onProgress: [{\n type: Output,\n args: ['on-progress']\n }], pageChange: [{\n type: Output\n }], src: [{\n type: Input\n }], cMapsUrl: [{\n type: Input,\n args: ['c-maps-url']\n }], page: [{\n type: Input,\n args: ['page']\n }], renderText: [{\n type: Input,\n args: ['render-text']\n }], renderTextMode: [{\n type: Input,\n args: ['render-text-mode']\n }], originalSize: [{\n type: Input,\n args: ['original-size']\n }], showAll: [{\n type: Input,\n args: ['show-all']\n }], stickToPage: [{\n type: Input,\n args: ['stick-to-page']\n }], zoom: [{\n type: Input,\n args: ['zoom']\n }], zoomScale: [{\n type: Input,\n args: ['zoom-scale']\n }], rotation: [{\n type: Input,\n args: ['rotation']\n }], externalLinkTarget: [{\n type: Input,\n args: ['external-link-target']\n }], autoresize: [{\n type: Input,\n args: ['autoresize']\n }], fitToPage: [{\n type: Input,\n args: ['fit-to-page']\n }], showBorders: [{\n type: Input,\n args: ['show-borders']\n }] } });\n\n/**\n * Created by vadimdez on 01/11/2016.\n */\nclass PdfViewerModule {\n}\nPdfViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.3\", ngImport: i0, type: PdfViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPdfViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.3\", ngImport: i0, type: PdfViewerModule, declarations: [PdfViewerComponent], exports: [PdfViewerComponent] });\nPdfViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.3\", ngImport: i0, type: PdfViewerModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.3\", ngImport: i0, type: PdfViewerModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [PdfViewerComponent],\n exports: [PdfViewerComponent]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PdfViewerComponent, PdfViewerModule, RenderTextMode };\n"]}