{"version":3,"sources":["jsdelivr-header.js","/npm/@heroiclabs/nakama-js-protobuf@1.4.0/dist/nakama-js-protobuf.cjs.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,IAAI,SAAW,OAAO,OAClB,UAAY,OAAO,eACnB,iBAAmB,OAAO,yBAC1B,kBAAoB,OAAO,oBAC3B,oBAAsB,OAAO,sBAC7B,aAAe,OAAO,eACtB,aAAe,OAAO,UAAU,eAChC,aAAe,OAAO,UAAU,qBAChC,gBAAkB,CAAC,EAAK,EAAK,IAAU,KAAO,EAAM,UAAU,EAAK,EAAK,CAAE,YAAY,EAAM,cAAc,EAAM,UAAU,EAAM,UAAW,EAAI,GAAO,EACtJ,eAAiB,CAAC,EAAG,KACvB,IAAK,IAAI,KAAQ,IAAM,EAAI,CAAC,GACtB,aAAa,KAAK,EAAG,IACvB,gBAAgB,EAAG,EAAM,EAAE,IAC/B,GAAI,oBACF,IAAK,IAAI,KAAQ,oBAAoB,GAC/B,aAAa,KAAK,EAAG,IACvB,gBAAgB,EAAG,EAAM,EAAE,IAEjC,OAAO,CAAC,EAEN,WAAa,CAAC,EAAI,IAAS,WAC7B,OAAO,IAAQ,EAAI,EAAG,kBAAkB,GAAI,MAAM,EAAO,CAAE,QAAS,CAAC,IAAK,QAAS,GAAO,EAAK,OACjG,EACI,SAAW,CAAC,EAAQ,KACtB,IAAK,IAAI,KAAQ,EACf,UAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,YAAY,GAAO,EAE7D,YAAc,CAAC,EAAI,EAAM,EAAQ,KACnC,GAAI,GAAwB,iBAAT,GAAqC,mBAAT,EAC7C,IAAK,IAAI,KAAO,kBAAkB,GAC3B,aAAa,KAAK,EAAI,IAAQ,IAAQ,GACzC,UAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,aAAc,EAAO,iBAAiB,EAAM,KAAS,EAAK,aAE3G,OAAO,CAAE,EAEP,QAAU,CAAC,EAAM,EAAY,KAAY,EAAiB,MAAR,EAAe,SAAS,aAAa,IAAS,CAAC,EAAG,aAKtG,GAAe,GAAS,EAAK,WAA+E,EAAlE,UAAU,EAAQ,UAAW,CAAE,MAAO,EAAM,YAAY,IAClG,IAEE,aAAgB,GAAS,YAAY,UAAU,CAAC,EAAG,aAAc,CAAE,OAAO,IAAS,GAGnF,aAAe,WAAW,CAC5B,sCAAsC,EAAU,GAC9C,EAAQ,QAAU,EAClB,IAAI,EAAO,KACX,IACE,EAAO,IAAI,YAAY,SAAS,IAAI,YAAY,OAAO,IAAI,WAAW,CACpE,EACA,GACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,GACA,EACA,GACA,EACA,IACA,GACA,GACA,EACA,EACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,GACA,EACA,GACA,EACA,IACA,GACA,GACA,EACA,EACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,GACA,EACA,GACA,EACA,IACA,GACA,GACA,EACA,EACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,GACA,EACA,GACA,EACA,IACA,GACA,GACA,EACA,EACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,GACA,EACA,GACA,EACA,IACA,MACG,CAAC,GAAG,OACX,CAAE,MAAO,GACT,CACA,SAAS,EAAM,EAAK,EAAM,GACxB,KAAK,IAAY,EAAN,EACX,KAAK,KAAc,EAAP,EACZ,KAAK,WAAa,CACpB,CAGA,SAAS,EAAO,GACd,OAAsC,KAA9B,GAAO,EAAgB,WACjC,CAJA,EAAM,UAAU,WAChB,OAAO,eAAe,EAAM,UAAW,aAAc,CAAE,OAAO,IAI9D,EAAM,OAAS,EACf,IAAI,EAAY,CAAC,EACb,EAAa,CAAC,EAClB,SAAS,EAAQ,EAAO,GACtB,IAAI,EAAK,EAAW,EACpB,OAAI,GAEE,EAAQ,IADZ,KAAW,IACe,EAAQ,OAChC,EAAY,EAAW,IAEd,GAEX,EAAM,EAAS,GAAgB,EAAR,GAAa,GAAK,EAAI,GAAG,GAC5C,IACF,EAAW,GAAS,GACf,IAGH,GAAS,MADb,GAAS,IACoB,EAAQ,OACnC,EAAY,EAAU,IAEb,GAEX,EAAM,EAAS,EAAO,EAAQ,GAAK,EAAI,GAAG,GACtC,IACF,EAAU,GAAS,GACd,EAEX,CAEA,SAAS,EAAW,EAAO,GACzB,GAAI,MAAM,GACR,OAAO,EAAW,EAAQ,EAC5B,GAAI,EAAU,CACZ,GAAI,EAAQ,EACV,OAAO,EACT,GAAI,GAAS,EACX,OAAO,CACX,KAAO,CACL,GAAI,IAAU,EACZ,OAAO,EACT,GAAI,EAAQ,GAAK,EACf,OAAO,CACX,CACA,OAAI,EAAQ,EACH,GAAY,EAAO,GAAU,MAC/B,EAAS,EAAQ,EAAiB,EAAG,EAAQ,EAAiB,EAAG,EAC1E,CAEA,SAAS,EAAS,EAAS,EAAU,GACnC,OAAO,IAAI,EAAM,EAAS,EAAU,EACtC,CAtBA,EAAM,QAAU,EAmBhB,EAAM,WAAa,EAInB,EAAM,SAAW,EACjB,IAAI,EAAU,KAAK,IACnB,SAAS,EAAW,EAAK,EAAU,GACjC,GAAmB,IAAf,EAAI,OACN,MAAM,MAAM,gBACd,GAAY,QAAR,GAAyB,aAAR,GAA8B,cAAR,GAA+B,cAAR,EAChE,OAAO,EAOT,GANwB,iBAAb,GACT,EAAQ,EAAU,GAAW,GAE7B,IAAa,GAEf,EAAQ,GAAS,IACL,GAAK,GAAK,EACpB,MAAM,WAAW,SACnB,IAAI,EACJ,IAAK,EAAI,EAAI,QAAQ,MAAQ,EAC3B,MAAM,MAAM,mBACT,GAAU,IAAN,EACP,OAAO,EAAW,EAAI,UAAU,GAAI,EAAU,GAAO,MAIvD,IAFA,IAAI,EAAe,EAAW,EAAQ,EAAO,IACzC,EAAS,EACJ,EAAI,EAAG,EAAI,EAAI,OAAQ,GAAK,EAAG,CACtC,IAAI,EAAO,KAAK,IAAI,EAAG,EAAI,OAAS,GAAI,EAAQ,SAAS,EAAI,UAAU,EAAG,EAAI,GAAO,GACrF,GAAI,EAAO,EAAG,CACZ,IAAI,EAAQ,EAAW,EAAQ,EAAO,IACtC,EAAS,EAAO,IAAI,GAAO,IAAI,EAAW,GAC5C,MAEE,GADA,EAAS,EAAO,IAAI,IACJ,IAAI,EAAW,GAEnC,CAEA,OADA,EAAO,SAAW,EACX,CACT,CAEA,SAAS,EAAU,EAAK,GACtB,MAAmB,iBAAR,EACF,EAAW,EAAK,GACN,iBAAR,EACF,EAAW,EAAK,GAClB,EAAS,EAAI,IAAK,EAAI,KAA0B,kBAAb,EAAyB,EAAW,EAAI,SACpF,CAPA,EAAM,WAAa,EAQnB,EAAM,UAAY,EAClB,IAEI,EAAiB,WACjB,EAAiB,EAAiB,EAClC,EAAiB,EAAiB,EAClC,EAAa,EAJI,GAAK,IAKtB,EAAO,EAAQ,GACnB,EAAM,KAAO,EACb,IAAI,EAAQ,EAAQ,GAAG,GACvB,EAAM,MAAQ,EACd,IAAI,EAAM,EAAQ,GAClB,EAAM,IAAM,EACZ,IAAI,EAAO,EAAQ,GAAG,GACtB,EAAM,KAAO,EACb,IAAI,EAAU,GAAS,GACvB,EAAM,QAAU,EAChB,IAAI,EAAY,GAAS,EAAgB,YAAgB,GACzD,EAAM,UAAY,EAClB,IAAI,EAAqB,GAAS,GAAgB,GAAgB,GAClE,EAAM,mBAAqB,EAC3B,IAAI,EAAY,EAAS,GAAG,YAAgB,GAC5C,EAAM,UAAY,EAClB,IAAI,EAAgB,EAAM,UAC1B,EAAc,MAAQ,WACpB,OAAO,KAAK,SAAW,KAAK,MAAQ,EAAI,KAAK,GAC/C,EACA,EAAc,SAAW,WACvB,OAAI,KAAK,UACC,KAAK,OAAS,GAAK,GAAkB,KAAK,MAAQ,GACrD,KAAK,KAAO,GAAkB,KAAK,MAAQ,EACpD,EACA,EAAc,SAAW,SAAkB,GAEzC,IADA,EAAQ,GAAS,IACL,GAAK,GAAK,EACpB,MAAM,WAAW,SACnB,GAAI,KAAK,SACP,MAAO,IACT,GAAI,KAAK,aAAc,CACrB,GAAI,KAAK,GAAG,GAAY,CACtB,IAAI,EAAY,EAAW,GAAQ,EAAM,KAAK,IAAI,GAAY,EAAO,EAAI,IAAI,GAAW,IAAI,MAC5F,OAAO,EAAI,SAAS,GAAS,EAAK,QAAQ,SAAS,EACrD,CACE,MAAO,IAAM,KAAK,MAAM,SAAS,EACrC,CAGA,IAFA,IAAI,EAAe,EAAW,EAAQ,EAAO,GAAI,KAAK,UAAW,EAAM,KACnE,EAAS,KACA,CACX,IAAI,EAAS,EAAI,IAAI,GAAyE,GAAjD,EAAI,IAAI,EAAO,IAAI,IAAe,UAAY,GAAmB,SAAS,GAEvH,IADA,EAAM,GACE,SACN,OAAO,EAAS,EAEhB,KAAO,EAAO,OAAS,GACrB,EAAS,IAAM,EACjB,EAAS,GAAK,EAAS,CAE3B,CACF,EACA,EAAc,YAAc,WAC1B,OAAO,KAAK,IACd,EACA,EAAc,oBAAsB,WAClC,OAAO,KAAK,OAAS,CACvB,EACA,EAAc,WAAa,WACzB,OAAO,KAAK,GACd,EACA,EAAc,mBAAqB,WACjC,OAAO,KAAK,MAAQ,CACtB,EACA,EAAc,cAAgB,WAC5B,GAAI,KAAK,aACP,OAAO,KAAK,GAAG,GAAa,GAAK,KAAK,MAAM,gBAE9C,IADA,IAAI,EAAmB,GAAb,KAAK,KAAY,KAAK,KAAO,KAAK,IACnC,EAAM,GAAI,EAAM,KAClB,EAAM,GAAK,GADU,KAG5B,OAAoB,GAAb,KAAK,KAAY,EAAM,GAAK,EAAM,CAC3C,EACA,EAAc,OAAS,WACrB,OAAqB,IAAd,KAAK,MAA2B,IAAb,KAAK,GACjC,EACA,EAAc,IAAM,EAAc,OAClC,EAAc,WAAa,WACzB,OAAQ,KAAK,UAAY,KAAK,KAAO,CACvC,EACA,EAAc,WAAa,WACzB,OAAO,KAAK,UAAY,KAAK,MAAQ,CACvC,EACA,EAAc,MAAQ,WACpB,QAA0B,GAAlB,KAAK,IACf,EACA,EAAc,OAAS,WACrB,QAAmB,EAAX,KAAK,IACf,EACA,EAAc,OAAS,SAAgB,GAGrC,OAFK,EAAO,KACV,EAAQ,EAAU,KAChB,KAAK,WAAa,EAAM,UAAY,KAAK,OAAS,IAAO,GAAK,EAAM,OAAS,IAAO,KAEjF,KAAK,OAAS,EAAM,MAAQ,KAAK,MAAQ,EAAM,IACxD,EACA,EAAc,GAAK,EAAc,OACjC,EAAc,UAAY,SAAmB,GAC3C,OAAQ,KAAK,GAEX,EAEJ,EACA,EAAc,IAAM,EAAc,UAClC,EAAc,GAAK,EAAc,UACjC,EAAc,SAAW,SAAkB,GACzC,OAAO,KAAK,KAEV,GACE,CACN,EACA,EAAc,GAAK,EAAc,SACjC,EAAc,gBAAkB,SAAyB,GACvD,OAAO,KAAK,KAEV,IACG,CACP,EACA,EAAc,IAAM,EAAc,gBAClC,EAAc,GAAK,EAAc,gBACjC,EAAc,YAAc,SAAqB,GAC/C,OAAO,KAAK,KAEV,GACE,CACN,EACA,EAAc,GAAK,EAAc,YACjC,EAAc,mBAAqB,SAA4B,GAC7D,OAAO,KAAK,KAEV,IACG,CACP,EACA,EAAc,IAAM,EAAc,mBAClC,EAAc,GAAK,EAAc,mBACjC,EAAc,QAAU,SAAiB,GAGvC,GAFK,EAAO,KACV,EAAQ,EAAU,IAChB,KAAK,GAAG,GACV,OAAO,EACT,IAAI,EAAU,KAAK,aAAc,EAAW,EAAM,aAClD,OAAI,IAAY,GACN,GACL,GAAW,EACP,EACJ,KAAK,SAEH,EAAM,OAAS,EAAI,KAAK,OAAS,GAAK,EAAM,OAAS,KAAK,MAAQ,EAAM,MAAQ,EAAI,KAAK,MAAQ,GAAK,EAAI,EADxG,KAAK,IAAI,GAAO,cAAgB,EAAI,CAE/C,EACA,EAAc,KAAO,EAAc,QACnC,EAAc,OAAS,WACrB,OAAK,KAAK,UAAY,KAAK,GAAG,GACrB,EACF,KAAK,MAAM,IAAI,EACxB,EACA,EAAc,IAAM,EAAc,OAClC,EAAc,IAAM,SAAa,GAC1B,EAAO,KACV,EAAS,EAAU,IACrB,IAAI,EAAM,KAAK,OAAS,GACpB,EAAkB,MAAZ,KAAK,KACX,EAAM,KAAK,MAAQ,GACnB,EAAiB,MAAX,KAAK,IACX,EAAM,EAAO,OAAS,GACtB,EAAoB,MAAd,EAAO,KACb,EAAM,EAAO,MAAQ,GAErB,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAYrC,OAVA,IADA,GAAO,GAFgB,MAAb,EAAO,QAGF,GAGf,IADA,GAAO,EAAM,KACE,GAGf,IADA,GAAO,EAAM,KACE,GAEf,GAAO,EAAM,EAEN,GANP,GAAO,QAMgB,IATvB,GAAO,QAQP,GAAO,QACiC,IAHxC,GAAO,OAG2C,KAAK,SACzD,EACA,EAAc,SAAW,SAAkB,GAGzC,OAFK,EAAO,KACV,EAAa,EAAU,IAClB,KAAK,IAAI,EAAW,MAC7B,EACA,EAAc,IAAM,EAAc,SAClC,EAAc,SAAW,SAAkB,GACzC,GAAI,KAAK,SACP,OAAO,EAGT,GAFK,EAAO,KACV,EAAa,EAAU,IACrB,EAOF,OAAO,EANG,EAAK,IACb,KAAK,IACL,KAAK,KACL,EAAW,IACX,EAAW,MAEQ,EAAK,WAAY,KAAK,UAE7C,GAAI,EAAW,SACb,OAAO,EACT,GAAI,KAAK,GAAG,GACV,OAAO,EAAW,QAAU,EAAY,EAC1C,GAAI,EAAW,GAAG,GAChB,OAAO,KAAK,QAAU,EAAY,EACpC,GAAI,KAAK,aACP,OAAI,EAAW,aACN,KAAK,MAAM,IAAI,EAAW,OAE1B,KAAK,MAAM,IAAI,GAAY,MAC/B,GAAI,EAAW,aACpB,OAAO,KAAK,IAAI,EAAW,OAAO,MACpC,GAAI,KAAK,GAAG,IAAe,EAAW,GAAG,GACvC,OAAO,EAAW,KAAK,WAAa,EAAW,WAAY,KAAK,UAClE,IAAI,EAAM,KAAK,OAAS,GACpB,EAAkB,MAAZ,KAAK,KACX,EAAM,KAAK,MAAQ,GACnB,EAAiB,MAAX,KAAK,IACX,EAAM,EAAW,OAAS,GAC1B,EAAwB,MAAlB,EAAW,KACjB,EAAM,EAAW,MAAQ,GACzB,EAAuB,MAAjB,EAAW,IACjB,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,EAqBrC,OAnBA,IADA,GAAO,EAAM,KACE,GAGf,IADA,GAAO,EAAM,KACE,GACf,GAAO,MAEP,IADA,GAAO,EAAM,KACE,GAGf,IADA,GAAO,EAAM,KACE,GACf,GAAO,MAEP,IADA,GAAO,EAAM,KACE,GACf,GAAO,MAEP,IADA,GAAO,EAAM,KACE,GAEf,GAAO,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1C,GAZP,GAAO,QAYgB,IAlBvB,GAAO,QAiBP,GAAO,QACiC,IAHxC,GAAO,OAG2C,KAAK,SACzD,EACA,EAAc,IAAM,EAAc,SAClC,EAAc,OAAS,SAAgB,GAGrC,GAFK,EAAO,KACV,EAAU,EAAU,IAClB,EAAQ,SACV,MAAM,MAAM,oBAKZ,IAUE,EAAQ,EAAK,EAdjB,GAAI,EACF,OAAK,KAAK,WAA2B,aAAf,KAAK,OAAyC,IAAjB,EAAQ,MAAgC,IAAlB,EAAQ,KAS1E,GANI,KAAK,SAAW,EAAK,MAAQ,EAAK,OAC3C,KAAK,IACL,KAAK,KACL,EAAQ,IACR,EAAQ,MAEW,EAAK,WAAY,KAAK,UARlC,KAUX,GAAI,KAAK,SACP,OAAO,KAAK,SAAW,EAAQ,EAEjC,GAAK,KAAK,SA0BH,CAGL,GAFK,EAAQ,WACX,EAAU,EAAQ,cAChB,EAAQ,GAAG,MACb,OAAO,EACT,GAAI,EAAQ,GAAG,KAAK,KAAK,IACvB,OAAO,EACT,EAAM,CACR,KAlCoB,CAClB,GAAI,KAAK,GAAG,GACV,OAAI,EAAQ,GAAG,IAAQ,EAAQ,GAAG,GACzB,EACA,EAAQ,GAAG,GACX,GAGP,EADe,KAAK,IAAI,GACN,IAAI,GAAS,IAAI,IACxB,GAAG,GACL,EAAQ,aAAe,EAAM,GAEpC,EAAM,KAAK,IAAI,EAAQ,IAAI,IAC3B,EAAM,EAAO,IAAI,EAAI,IAAI,KAIxB,GAAI,EAAQ,GAAG,GACpB,OAAO,KAAK,SAAW,EAAQ,EACjC,GAAI,KAAK,aACP,OAAI,EAAQ,aACH,KAAK,MAAM,IAAI,EAAQ,OACzB,KAAK,MAAM,IAAI,GAAS,MAC1B,GAAI,EAAQ,aACjB,OAAO,KAAK,IAAI,EAAQ,OAAO,MACjC,EAAM,CACR,CAUA,IADA,EAAM,KACC,EAAI,IAAI,IAAU,CACvB,EAAS,KAAK,IAAI,EAAG,KAAK,MAAM,EAAI,WAAa,EAAQ,aAEzD,IADA,IAAI,EAAO,KAAK,KAAK,KAAK,IAAI,GAAU,KAAK,KAAM,EAAQ,GAAQ,GAAK,EAAI,EAAQ,EAAG,EAAO,IAAK,EAAY,EAAW,GAAS,EAAY,EAAU,IAAI,GACtJ,EAAU,cAAgB,EAAU,GAAG,IAG5C,GADA,EAAY,EADZ,GAAU,EACqB,KAAK,WACd,IAAI,GAExB,EAAU,WACZ,EAAY,GACd,EAAM,EAAI,IAAI,GACd,EAAM,EAAI,IAAI,EAChB,CACA,OAAO,CACT,EACA,EAAc,IAAM,EAAc,OAClC,EAAc,OAAS,SAAgB,GAGrC,OAFK,EAAO,KACV,EAAU,EAAU,IAClB,EAOK,GANI,KAAK,SAAW,EAAK,MAAQ,EAAK,OAC3C,KAAK,IACL,KAAK,KACL,EAAQ,IACR,EAAQ,MAEW,EAAK,WAAY,KAAK,UAEtC,KAAK,IAAI,KAAK,IAAI,GAAS,IAAI,GACxC,EACA,EAAc,IAAM,EAAc,OAClC,EAAc,IAAM,EAAc,OAClC,EAAc,IAAM,WAClB,OAAO,GAAU,KAAK,KAAM,KAAK,KAAM,KAAK,SAC9C,EACA,EAAc,IAAM,SAAa,GAG/B,OAFK,EAAO,KACV,EAAQ,EAAU,IACb,EAAS,KAAK,IAAM,EAAM,IAAK,KAAK,KAAO,EAAM,KAAM,KAAK,SACrE,EACA,EAAc,GAAK,SAAY,GAG7B,OAFK,EAAO,KACV,EAAQ,EAAU,IACb,EAAS,KAAK,IAAM,EAAM,IAAK,KAAK,KAAO,EAAM,KAAM,KAAK,SACrE,EACA,EAAc,IAAM,SAAa,GAG/B,OAFK,EAAO,KACV,EAAQ,EAAU,IACb,EAAS,KAAK,IAAM,EAAM,IAAK,KAAK,KAAO,EAAM,KAAM,KAAK,SACrE,EACA,EAAc,UAAY,SAAmB,GAG3C,OAFI,EAAO,KACT,EAAU,EAAQ,SACI,IAAnB,GAAW,IACP,KACA,EAAU,GACV,EAAS,KAAK,KAAO,EAAS,KAAK,MAAQ,EAAU,KAAK,MAAQ,GAAK,EAAS,KAAK,UAErF,EAAS,EAAG,KAAK,KAAO,EAAU,GAAI,KAAK,SACtD,EACA,EAAc,IAAM,EAAc,UAClC,EAAc,WAAa,SAAoB,GAG7C,OAFI,EAAO,KACT,EAAU,EAAQ,SACI,IAAnB,GAAW,IACP,KACA,EAAU,GACV,EAAS,KAAK,MAAQ,EAAU,KAAK,MAAQ,GAAK,EAAS,KAAK,MAAQ,EAAS,KAAK,UAEtF,EAAS,KAAK,MAAQ,EAAU,GAAI,KAAK,MAAQ,EAAI,GAAK,EAAG,KAAK,SAC7E,EACA,EAAc,IAAM,EAAc,WAClC,EAAc,mBAAqB,SAA4B,GAI7D,GAHI,EAAO,KACT,EAAU,EAAQ,SAEJ,KADhB,GAAW,IAET,OAAO,KAEP,IAAI,EAAO,KAAK,KAChB,OAAI,EAAU,GAEL,EADG,KAAK,MACS,EAAU,GAAQ,GAAK,EAAS,IAAS,EAAS,KAAK,UAExE,EADc,KAAZ,EACO,EAEA,IAAS,EAAU,GAFb,EAAG,KAAK,SAIpC,EACA,EAAc,KAAO,EAAc,mBACnC,EAAc,MAAQ,EAAc,mBACpC,EAAc,SAAW,WACvB,OAAK,KAAK,SAEH,EAAS,KAAK,IAAK,KAAK,MAAM,GAD5B,IAEX,EACA,EAAc,WAAa,WACzB,OAAI,KAAK,SACA,KACF,EAAS,KAAK,IAAK,KAAK,MAAM,EACvC,EACA,EAAc,QAAU,SAAiB,GACvC,OAAO,EAAK,KAAK,YAAc,KAAK,WACtC,EACA,EAAc,UAAY,WACxB,IAAI,EAAK,KAAK,KAAM,EAAK,KAAK,IAC9B,MAAO,CACA,IAAL,EACA,IAAO,EAAI,IACX,IAAO,GAAK,IACZ,IAAO,GACF,IAAL,EACA,IAAO,EAAI,IACX,IAAO,GAAK,IACZ,IAAO,GAEX,EACA,EAAc,UAAY,WACxB,IAAI,EAAK,KAAK,KAAM,EAAK,KAAK,IAC9B,MAAO,CACL,IAAO,GACP,IAAO,GAAK,IACZ,IAAO,EAAI,IACN,IAAL,EACA,IAAO,GACP,IAAO,GAAK,IACZ,IAAO,EAAI,IACN,IAAL,EAEJ,EACA,EAAM,UAAY,SAAmB,EAAO,EAAU,GACpD,OAAO,EAAK,EAAM,YAAY,EAAO,GAAY,EAAM,YAAY,EAAO,EAC5E,EACA,EAAM,YAAc,SAAqB,EAAO,GAC9C,OAAO,IAAI,EACT,EAAM,GAAK,EAAM,IAAM,EAAI,EAAM,IAAM,GAAK,EAAM,IAAM,GACxD,EAAM,GAAK,EAAM,IAAM,EAAI,EAAM,IAAM,GAAK,EAAM,IAAM,GACxD,EAEJ,EACA,EAAM,YAAc,SAAqB,EAAO,GAC9C,OAAO,IAAI,EACT,EAAM,IAAM,GAAK,EAAM,IAAM,GAAK,EAAM,IAAM,EAAI,EAAM,GACxD,EAAM,IAAM,GAAK,EAAM,IAAM,GAAK,EAAM,IAAM,EAAI,EAAM,GACxD,EAEJ,CACF,IAIE,kBAAoB,WAAW,CACjC,oDAAoD,EAAU,GAE5D,EAAQ,QACR,SAAmB,EAAI,GACrB,IAAI,EAAS,IAAI,MAAM,UAAU,OAAS,GAAI,EAAS,EAAG,EAAQ,EAAG,GAAU,EAC/E,KAAO,EAAQ,UAAU,QACvB,EAAO,KAAY,UAAU,KAC/B,OAAO,IAAI,SAAQ,SAAkB,EAAS,GAC5C,EAAO,GAAU,SAAkB,GACjC,GAAI,EAEF,GADA,GAAU,EACN,EACF,EAAO,OACJ,CAEH,IADA,IAAI,EAAU,IAAI,MAAM,UAAU,OAAS,GAAI,EAAU,EAClD,EAAU,EAAQ,QACvB,EAAQ,KAAa,UAAU,GACjC,EAAQ,MAAM,KAAM,EACtB,CAEJ,EACA,IACE,EAAG,MAAM,GAAO,KAAM,EACxB,CAAE,MAAO,GACH,IACF,GAAU,EACV,EAAO,GAEX,CACF,GACF,CACF,IAIE,eAAiB,WAAW,CAC9B,iDAAiD,GAE/C,IAAI,EAAS,EACb,EAAO,OAAS,SAAgB,GAC9B,IAAI,EAAI,EAAO,OACf,IAAK,EACH,OAAO,EAET,IADA,IAAI,EAAI,IACC,EAAI,EAAI,GAA0B,MAArB,EAAO,OAAO,MAChC,EACJ,OAAO,KAAK,KAAqB,EAAhB,EAAO,QAAc,EAAI,CAC5C,EACA,IAII,EAJA,EAAM,IAAI,MAAM,IAChB,EAAM,IAAI,MAAM,KACpB,IAAK,EAAI,EAAG,EAAI,IACd,EAAI,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,EAAI,EAAI,GAAK,IAAM,IAEnF,EAAO,OAAS,SAAgB,EAAQ,EAAO,GAG7C,IAFA,IACmB,EADf,EAAQ,KAAM,EAAQ,GACtB,EAAK,EAAG,EAAI,EACT,EAAQ,GAAK,CAClB,IAAI,EAAI,EAAO,KACf,OAAQ,GACN,KAAK,EACH,EAAM,KAAQ,EAAI,GAAK,GACvB,GAAS,EAAJ,IAAU,EACf,EAAI,EACJ,MACF,KAAK,EACH,EAAM,KAAQ,EAAI,EAAI,GAAK,GAC3B,GAAS,GAAJ,IAAW,EAChB,EAAI,EACJ,MACF,KAAK,EACH,EAAM,KAAQ,EAAI,EAAI,GAAK,GAC3B,EAAM,KAAQ,EAAQ,GAAJ,GAClB,EAAI,EAGJ,EAAK,QACN,IAAU,EAAQ,KAAK,KAAK,OAAO,aAAa,MAAM,OAAQ,IAC/D,EAAK,EAET,CAOA,OANI,IACF,EAAM,KAAQ,EAAI,GAClB,EAAM,KAAQ,GACJ,IAAN,IACF,EAAM,KAAQ,KAEd,GACE,GACF,EAAM,KAAK,OAAO,aAAa,MAAM,OAAQ,EAAM,MAAM,EAAG,KACvD,EAAM,KAAK,KAEb,OAAO,aAAa,MAAM,OAAQ,EAAM,MAAM,EAAG,GAC1D,EACA,IAAI,EAAkB,mBACtB,EAAO,OAAS,SAAgB,EAAQ,EAAQ,GAG9C,IAFA,IACW,EADP,EAAQ,EACR,EAAI,EACC,EAAK,EAAG,EAAK,EAAO,QAAU,CACrC,IAAI,EAAI,EAAO,WAAW,KAC1B,GAAU,KAAN,GAAY,EAAI,EAClB,MACF,QAAqB,KAAhB,EAAI,EAAI,IACX,MAAM,MAAM,GACd,OAAQ,GACN,KAAK,EACH,EAAI,EACJ,EAAI,EACJ,MACF,KAAK,EACH,EAAO,KAAY,GAAK,GAAS,GAAJ,IAAW,EACxC,EAAI,EACJ,EAAI,EACJ,MACF,KAAK,EACH,EAAO,MAAiB,GAAJ,IAAW,GAAS,GAAJ,IAAW,EAC/C,EAAI,EACJ,EAAI,EACJ,MACF,KAAK,EACH,EAAO,MAAiB,EAAJ,IAAU,EAAI,EAClC,EAAI,EAGV,CACA,GAAU,IAAN,EACF,MAAM,MAAM,GACd,OAAO,EAAS,CAClB,EACA,EAAO,KAAO,SAAc,GAC1B,MAAO,mEAAmE,KAAK,EACjF,CACF,IAIE,qBAAuB,WAAW,CACpC,uDAAuD,EAAU,GAG/D,SAAS,IACP,KAAK,WAAa,CAAC,CACrB,CAHA,EAAQ,QAAU,EAIlB,EAAa,UAAU,GAAK,SAAY,EAAK,EAAI,GAK/C,OAJC,KAAK,WAAW,KAAS,KAAK,WAAW,GAAO,KAAK,KAAK,CACzD,KACA,IAAK,GAAO,OAEP,IACT,EACA,EAAa,UAAU,IAAM,SAAa,EAAK,GAC7C,QAAY,IAAR,EACF,KAAK,WAAa,CAAC,OAEnB,QAAW,IAAP,EACF,KAAK,WAAW,GAAO,QAGvB,IADA,IAAI,EAAY,KAAK,WAAW,GACvB,EAAI,EAAG,EAAI,EAAU,QACxB,EAAU,GAAG,KAAO,EACtB,EAAU,OAAO,EAAG,KAElB,EAGV,OAAO,IACT,EACA,EAAa,UAAU,KAAO,SAAc,GAC1C,IAAI,EAAY,KAAK,WAAW,GAChC,GAAI,EAAW,CAEb,IADA,IAAI,EAAO,GAAI,EAAI,EACZ,EAAI,UAAU,QACnB,EAAK,KAAK,UAAU,MACtB,IAAK,EAAI,EAAG,EAAI,EAAU,QACxB,EAAU,GAAG,GAAG,MAAM,EAAU,KAAK,IAAK,EAC9C,CACA,OAAO,IACT,CACF,IAIE,cAAgB,WAAW,CAC7B,gDAAgD,EAAU,GAGxD,SAAS,EAAQ,GA0Kf,MAzK4B,oBAAjB,aACT,WACE,IAAI,EAAM,IAAI,aAAa,EAAE,IAAK,EAAM,IAAI,WAAW,EAAI,QAAS,EAAgB,MAAX,EAAI,GAC7E,SAAS,EAAmB,EAAK,EAAK,GACpC,EAAI,GAAK,EACT,EAAI,GAAO,EAAI,GACf,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,EACrB,CACA,SAAS,EAAmB,EAAK,EAAK,GACpC,EAAI,GAAK,EACT,EAAI,GAAO,EAAI,GACf,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,EACrB,CAGA,SAAS,EAAkB,EAAK,GAK9B,OAJA,EAAI,GAAK,EAAI,GACb,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACZ,EAAI,EACb,CACA,SAAS,EAAkB,EAAK,GAK9B,OAJA,EAAI,GAAK,EAAI,GACb,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACZ,EAAI,EACb,CAfA,EAAS,aAAe,EAAK,EAAqB,EAClD,EAAS,aAAe,EAAK,EAAqB,EAelD,EAAS,YAAc,EAAK,EAAoB,EAChD,EAAS,YAAc,EAAK,EAAoB,CACjD,CAlCD,GAoCA,WACE,SAAS,EAAmB,EAAW,EAAK,EAAK,GAC/C,IAAI,EAAO,EAAM,EAAI,EAAI,EAGzB,GAFI,IACF,GAAO,GACG,IAAR,EACF,EAAU,EAAI,EAAM,EAAI,EAGpB,WAGD,EAAK,QACL,GAAI,MAAM,GACb,EAAU,WAAY,EAAK,QACxB,GAAI,EAAM,qBACb,GAAW,GAAQ,GAAK,cAAgB,EAAG,EAAK,QAC7C,GAAI,EAAM,sBACb,GAAW,GAAQ,GAAK,KAAK,MAAM,EAAM,yBAA2B,EAAG,EAAK,OACzE,CACH,IAAI,EAAW,KAAK,MAAM,KAAK,IAAI,GAAO,KAAK,KAC/C,GAAW,GAAQ,GAAK,EAAW,KAAO,GAD2E,QAArD,KAAK,MAAM,EAAM,KAAK,IAAI,GAAI,GAAY,YAC7C,EAAG,EAAK,EACvE,CACF,CAGA,SAAS,EAAkB,EAAU,EAAK,GACxC,IAAI,EAAO,EAAS,EAAK,GAAM,EAAsB,GAAd,GAAQ,IAAU,EAAG,EAAW,IAAS,GAAK,IAAK,EAAkB,QAAP,EACrG,OAAoB,MAAb,EAAmB,EAAW,IAAM,GAAO,KAAwB,IAAb,EAAwB,qBAAP,EAA8B,EAAW,EAAO,KAAK,IAAI,EAAG,EAAW,MAAQ,EAAW,QAC1K,CALA,EAAS,aAAe,EAAmB,KAAK,KAAM,GACtD,EAAS,aAAe,EAAmB,KAAK,KAAM,GAKtD,EAAS,YAAc,EAAkB,KAAK,KAAM,GACpD,EAAS,YAAc,EAAkB,KAAK,KAAM,EACrD,CAhCD,GAiC0B,oBAAjB,aACT,WACE,IAAI,EAAM,IAAI,aAAa,EAAE,IAAK,EAAM,IAAI,WAAW,EAAI,QAAS,EAAgB,MAAX,EAAI,GAC7E,SAAS,EAAoB,EAAK,EAAK,GACrC,EAAI,GAAK,EACT,EAAI,GAAO,EAAI,GACf,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,EACrB,CACA,SAAS,EAAoB,EAAK,EAAK,GACrC,EAAI,GAAK,EACT,EAAI,GAAO,EAAI,GACf,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,GAAK,EAAI,EACrB,CAGA,SAAS,EAAmB,EAAK,GAS/B,OARA,EAAI,GAAK,EAAI,GACb,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACZ,EAAI,EACb,CACA,SAAS,EAAmB,EAAK,GAS/B,OARA,EAAI,GAAK,EAAI,GACb,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACnB,EAAI,GAAK,EAAI,EAAM,GACZ,EAAI,EACb,CAvBA,EAAS,cAAgB,EAAK,EAAsB,EACpD,EAAS,cAAgB,EAAK,EAAsB,EAuBpD,EAAS,aAAe,EAAK,EAAqB,EAClD,EAAS,aAAe,EAAK,EAAqB,CACnD,CAlDD,GAoDA,WACE,SAAS,EAAoB,EAAW,EAAM,EAAM,EAAK,EAAK,GAC5D,IAAI,EAAO,EAAM,EAAI,EAAI,EAGzB,GAFI,IACF,GAAO,GACG,IAAR,EACF,EAAU,EAAG,EAAK,EAAM,GACxB,EAAU,EAAI,EAAM,EAAI,EAGpB,WAGD,EAAK,EAAM,QACT,GAAI,MAAM,GACf,EAAU,EAAG,EAAK,EAAM,GACxB,EAAU,WAAY,EAAK,EAAM,QAC5B,GAAI,EAAM,sBACf,EAAU,EAAG,EAAK,EAAM,GACxB,GAAW,GAAQ,GAAK,cAAgB,EAAG,EAAK,EAAM,OACjD,CACL,IAAI,EACJ,GAAI,EAAM,uBAER,GADA,EAAW,EAAM,UACM,EAAG,EAAK,EAAM,GACrC,GAAW,GAAQ,GAAK,EAAW,cAAgB,EAAG,EAAK,EAAM,OAC5D,CACL,IAAI,EAAW,KAAK,MAAM,KAAK,IAAI,GAAO,KAAK,KAC9B,OAAb,IACF,EAAW,MAEb,EAAqB,kBADrB,EAAW,EAAM,KAAK,IAAI,GAAI,MACY,EAAG,EAAK,EAAM,GACxD,GAAW,GAAQ,GAAK,EAAW,MAAQ,GAAgB,QAAX,EAAqB,WAAa,EAAG,EAAK,EAAM,EAClG,CACF,CACF,CAGA,SAAS,EAAmB,EAAU,EAAM,EAAM,EAAK,GACrD,IAAI,EAAK,EAAS,EAAK,EAAM,GAAO,EAAK,EAAS,EAAK,EAAM,GACzD,EAAoB,GAAZ,GAAM,IAAU,EAAG,EAAW,IAAO,GAAK,KAAM,EAAW,YAAmB,QAAL,GAAgB,EACrG,OAAoB,OAAb,EAAoB,EAAW,IAAM,GAAO,KAAwB,IAAb,EAAwB,OAAP,EAAgB,EAAW,EAAO,KAAK,IAAI,EAAG,EAAW,OAAS,EAAW,iBAC9J,CANA,EAAS,cAAgB,EAAoB,KAAK,KAAM,EAAa,EAAG,GACxE,EAAS,cAAgB,EAAoB,KAAK,KAAM,EAAa,EAAG,GAMxE,EAAS,aAAe,EAAmB,KAAK,KAAM,EAAY,EAAG,GACrE,EAAS,aAAe,EAAmB,KAAK,KAAM,EAAY,EAAG,EACtE,CA7CD,GA8CK,CACT,CACA,SAAS,EAAY,EAAK,EAAK,GAC7B,EAAI,GAAa,IAAN,EACX,EAAI,EAAM,GAAK,IAAQ,EAAI,IAC3B,EAAI,EAAM,GAAK,IAAQ,GAAK,IAC5B,EAAI,EAAM,GAAK,IAAQ,EACzB,CACA,SAAS,EAAY,EAAK,EAAK,GAC7B,EAAI,GAAO,IAAQ,GACnB,EAAI,EAAM,GAAK,IAAQ,GAAK,IAC5B,EAAI,EAAM,GAAK,IAAQ,EAAI,IAC3B,EAAI,EAAM,GAAW,IAAN,CACjB,CACA,SAAS,EAAW,EAAK,GACvB,OAAQ,EAAI,GAAO,EAAI,EAAM,IAAM,EAAI,EAAI,EAAM,IAAM,GAAK,EAAI,EAAM,IAAM,MAAQ,CACtF,CACA,SAAS,EAAW,EAAK,GACvB,OAAQ,EAAI,IAAQ,GAAK,EAAI,EAAM,IAAM,GAAK,EAAI,EAAM,IAAM,EAAI,EAAI,EAAM,MAAQ,CACtF,CA9LA,EAAQ,QAAU,EAAQ,EA+L5B,IAIE,gBAAkB,WAAW,CAC/B,kDAAkD,QAAS,QAGzD,SAAS,QAAQ,YACf,IACE,IAAI,IAAM,KAAK,QAAQ,QAAQ,IAAK,MAA1B,CAAiC,YAC3C,GAAI,MAAQ,IAAI,QAAU,OAAO,KAAK,KAAK,QACzC,OAAO,GACX,CAAE,MAAO,GACT,CACA,OAAO,IACT,CATA,OAAO,QAAU,OAUnB,IAIE,aAAe,WAAW,CAC5B,+CAA+C,GAE7C,IAAI,EAAO,EACX,EAAK,OAAS,SAAqB,GAEjC,IADA,IAAI,EAAM,EAAG,EAAI,EACR,EAAI,EAAG,EAAI,EAAO,SAAU,GACnC,EAAI,EAAO,WAAW,IACd,IACN,GAAO,EACA,EAAI,KACX,GAAO,EACgB,QAAX,MAAJ,IAA+D,QAAX,MAA3B,EAAO,WAAW,EAAI,OACrD,EACF,GAAO,GAEP,GAAO,EAEX,OAAO,CACT,EACA,EAAK,KAAO,SAAmB,EAAQ,EAAO,GAE5C,GADU,EAAM,EACN,EACR,MAAO,GAET,IADA,IAAqC,EAAjC,EAAQ,KAAM,EAAQ,GAAI,EAAI,EAC3B,EAAQ,IACb,EAAI,EAAO,MACH,IACN,EAAM,KAAO,EACN,EAAI,KAAO,EAAI,IACtB,EAAM,MAAY,GAAJ,IAAW,EAAsB,GAAlB,EAAO,KAC7B,EAAI,KAAO,EAAI,KACtB,IAAU,EAAJ,IAAU,IAAwB,GAAlB,EAAO,OAAkB,IAAwB,GAAlB,EAAO,OAAkB,EAAsB,GAAlB,EAAO,MAAiB,MAC1G,EAAM,KAAO,OAAS,GAAK,IAC3B,EAAM,KAAO,OAAa,KAAJ,IAEtB,EAAM,MAAY,GAAJ,IAAW,IAAwB,GAAlB,EAAO,OAAkB,EAAsB,GAAlB,EAAO,KACjE,EAAI,QACL,IAAU,EAAQ,KAAK,KAAK,OAAO,aAAa,MAAM,OAAQ,IAC/D,EAAI,GAGR,OAAI,GACE,GACF,EAAM,KAAK,OAAO,aAAa,MAAM,OAAQ,EAAM,MAAM,EAAG,KACvD,EAAM,KAAK,KAEb,OAAO,aAAa,MAAM,OAAQ,EAAM,MAAM,EAAG,GAC1D,EACA,EAAK,MAAQ,SAAoB,EAAQ,EAAQ,GAE/C,IADA,IAAoB,EAAI,EAApB,EAAQ,EACH,EAAI,EAAG,EAAI,EAAO,SAAU,GACnC,EAAK,EAAO,WAAW,IACd,IACP,EAAO,KAAY,EACV,EAAK,MACd,EAAO,KAAY,GAAM,EAAI,IAC7B,EAAO,KAAiB,GAAL,EAAU,KACH,QAAX,MAAL,IAAuE,QAAX,OAAjC,EAAK,EAAO,WAAW,EAAI,MAChE,EAAK,QAAe,KAAL,IAAc,KAAY,KAAL,KAClC,EACF,EAAO,KAAY,GAAM,GAAK,IAC9B,EAAO,KAAY,GAAM,GAAK,GAAK,IACnC,EAAO,KAAY,GAAM,EAAI,GAAK,IAClC,EAAO,KAAiB,GAAL,EAAU,MAE7B,EAAO,KAAY,GAAM,GAAK,IAC9B,EAAO,KAAY,GAAM,EAAI,GAAK,IAClC,EAAO,KAAiB,GAAL,EAAU,KAGjC,OAAO,EAAS,CAClB,CACF,IAIE,aAAe,WAAW,CAC5B,+CAA+C,EAAU,GAEvD,EAAQ,QACR,SAAc,EAAO,EAAO,GAC1B,IAAI,EAAO,GAAQ,KACf,EAAM,IAAS,EACf,EAAO,KACP,EAAS,EACb,OAAO,SAAoB,GACzB,GAAI,EAAQ,GAAK,EAAQ,EACvB,OAAO,EAAM,GACX,EAAS,EAAQ,IACnB,EAAO,EAAM,GACb,EAAS,GAEX,IAAI,EAAM,EAAM,KAAK,EAAM,EAAQ,GAAU,GAG7C,OAFa,EAAT,IACF,EAAwB,GAAL,EAAT,IACL,CACT,CACF,CACF,IAIE,iBAAmB,WAAW,CAChC,qDAAqD,EAAU,GAE7D,EAAQ,QAAU,EAClB,IAAI,EAAQ,kBACZ,SAAS,EAAS,EAAI,GACpB,KAAK,GAAK,IAAO,EACjB,KAAK,GAAK,IAAO,CACnB,CACA,IAAI,EAAO,EAAS,KAAO,IAAI,EAAS,EAAG,GAC3C,EAAK,SAAW,WACd,OAAO,CACT,EACA,EAAK,SAAW,EAAK,SAAW,WAC9B,OAAO,IACT,EACA,EAAK,OAAS,WACZ,OAAO,CACT,EACA,IAAI,EAAW,EAAS,SAAW,mBACnC,EAAS,WAAa,SAAoB,GACxC,GAAc,IAAV,EACF,OAAO,EACT,IAAI,EAAO,EAAQ,EACf,IACF,GAAS,GACX,IAAI,EAAK,IAAU,EAAG,GAAM,EAAQ,GAAM,aAAe,EAUzD,OATI,IACF,GAAM,IAAO,EACb,GAAM,IAAO,IACP,EAAK,aACT,EAAK,IACC,EAAK,aACT,EAAK,KAGJ,IAAI,EAAS,EAAI,EAC1B,EACA,EAAS,KAAO,SAAc,GAC5B,GAAqB,iBAAV,EACT,OAAO,EAAS,WAAW,GAC7B,GAAI,EAAM,SAAS,GAAQ,CACzB,IAAI,EAAM,KAGR,OAAO,EAAS,WAAW,SAAS,EAAO,KAF3C,EAAQ,EAAM,KAAK,WAAW,EAGlC,CACA,OAAO,EAAM,KAAO,EAAM,KAAO,IAAI,EAAS,EAAM,MAAQ,EAAG,EAAM,OAAS,GAAK,CACrF,EACA,EAAS,UAAU,SAAW,SAAkB,GAC9C,IAAK,GAAY,KAAK,KAAO,GAAI,CAC/B,IAAI,EAAgB,GAAV,KAAK,KAAW,EAAG,GAAM,KAAK,KAAO,EAG/C,OAFK,IACH,EAAK,EAAK,IAAM,KACT,EAAU,WAAL,EAChB,CACA,OAAO,KAAK,GAAe,WAAV,KAAK,EACxB,EACA,EAAS,UAAU,OAAS,SAAgB,GAC1C,OAAO,EAAM,KAAO,IAAI,EAAM,KAAe,EAAV,KAAK,GAAkB,EAAV,KAAK,GAAQ,QAAQ,IAAa,CAAE,IAAe,EAAV,KAAK,GAAQ,KAAgB,EAAV,KAAK,GAAQ,SAAU,QAAQ,GAC7I,EACA,IAAI,EAAa,OAAO,UAAU,WAClC,EAAS,SAAW,SAAkB,GACpC,OAAI,IAAS,EACJ,EACF,IAAI,GACR,EAAW,KAAK,EAAM,GAAK,EAAW,KAAK,EAAM,IAAM,EAAI,EAAW,KAAK,EAAM,IAAM,GAAK,EAAW,KAAK,EAAM,IAAM,MAAQ,GAChI,EAAW,KAAK,EAAM,GAAK,EAAW,KAAK,EAAM,IAAM,EAAI,EAAW,KAAK,EAAM,IAAM,GAAK,EAAW,KAAK,EAAM,IAAM,MAAQ,EAErI,EACA,EAAS,UAAU,OAAS,WAC1B,OAAO,OAAO,aACF,IAAV,KAAK,GACL,KAAK,KAAO,EAAI,IAChB,KAAK,KAAO,GAAK,IACjB,KAAK,KAAO,GACF,IAAV,KAAK,GACL,KAAK,KAAO,EAAI,IAChB,KAAK,KAAO,GAAK,IACjB,KAAK,KAAO,GAEhB,EACA,EAAS,UAAU,SAAW,WAC5B,IAAI,EAAO,KAAK,IAAM,GAGtB,OAFA,KAAK,KAAO,KAAK,IAAM,EAAI,KAAK,KAAO,IAAM,KAAU,EACvD,KAAK,IAAM,KAAK,IAAM,EAAI,KAAU,EAC7B,IACT,EACA,EAAS,UAAU,SAAW,WAC5B,IAAI,IAAmB,EAAV,KAAK,IAGlB,OAFA,KAAK,KAAO,KAAK,KAAO,EAAI,KAAK,IAAM,IAAM,KAAU,EACvD,KAAK,IAAM,KAAK,KAAO,EAAI,KAAU,EAC9B,IACT,EACA,EAAS,UAAU,OAAS,WAC1B,IAAI,EAAQ,KAAK,GAAI,GAAS,KAAK,KAAO,GAAK,KAAK,IAAM,KAAO,EAAG,EAAQ,KAAK,KAAO,GACxF,OAAiB,IAAV,EAAwB,IAAV,EAAc,EAAQ,MAAQ,EAAQ,IAAM,EAAI,EAAI,EAAQ,QAAU,EAAI,EAAI,EAAQ,MAAQ,EAAQ,IAAM,EAAI,EAAI,EAAQ,QAAU,EAAI,EAAI,EAAQ,IAAM,EAAI,EACvL,CACF,IAIE,gBAAkB,WAAW,CAC/B,oDAAoD,GAElD,IAAI,EAAQ,EA0EZ,SAAS,EAAM,EAAK,EAAK,GACvB,IAAK,IAAI,EAAO,OAAO,KAAK,GAAM,EAAI,EAAG,EAAI,EAAK,SAAU,OACrC,IAAjB,EAAI,EAAK,KAAmB,IAC9B,EAAI,EAAK,IAAM,EAAI,EAAK,KAC5B,OAAO,CACT,CAKA,SAAS,EAAS,GAChB,SAAS,EAAY,EAAS,GAC5B,KAAM,gBAAgB,GACpB,OAAO,IAAI,EAAY,EAAS,GAClC,OAAO,eAAe,KAAM,UAAW,CAAE,IAAK,WAC5C,OAAO,CACT,IACI,MAAM,kBACR,MAAM,kBAAkB,KAAM,GAE9B,OAAO,eAAe,KAAM,QAAS,CAAE,OAAO,IAAI,OAAQ,OAAS,KACjE,GACF,EAAM,KAAM,EAChB,CAQA,OAPC,EAAY,UAAY,OAAO,OAAO,MAAM,YAAY,YAAc,EACvE,OAAO,eAAe,EAAY,UAAW,OAAQ,CAAE,IAAK,WAC1D,OAAO,CACT,IACA,EAAY,UAAU,SAAW,WAC/B,OAAO,KAAK,KAAO,KAAO,KAAK,OACjC,EACO,CACT,CAzGA,EAAM,UAAY,oBAClB,EAAM,OAAS,iBACf,EAAM,aAAe,uBACrB,EAAM,MAAQ,gBACd,EAAM,QAAU,kBAChB,EAAM,KAAO,eACb,EAAM,KAAO,eACb,EAAM,SAAW,mBACjB,EAAM,OAAS,QAA0B,oBAAX,QAA0B,QAAU,OAAO,SAAW,OAAO,QAAQ,UAAY,OAAO,QAAQ,SAAS,MACvI,EAAM,OAAS,EAAM,QAAU,QAA4B,oBAAX,QAA0B,QAA0B,oBAAT,MAAwB,MAAQ,EAC3H,EAAM,WAAa,OAAO,OAAS,OAAO,OAAO,IAAM,GAIvD,EAAM,YAAc,OAAO,OAAS,OAAO,OAAO,CAAC,GAAK,CAGxD,EACA,EAAM,UAAY,OAAO,WACzB,SAAmB,GACjB,MAAwB,iBAAV,GAAsB,SAAS,IAAU,KAAK,MAAM,KAAW,CAC/E,EACA,EAAM,SAAW,SAAkB,GACjC,MAAwB,iBAAV,GAAsB,aAAiB,MACvD,EACA,EAAM,SAAW,SAAkB,GACjC,OAAO,GAA0B,iBAAV,CACzB,EACA,EAAM,MAMN,EAAM,MAAQ,SAAe,EAAK,GAChC,IAAI,EAAQ,EAAI,GAChB,QAAa,MAAT,IAAiB,EAAI,eAAe,MACd,iBAAV,IAAuB,MAAM,QAAQ,GAAS,EAAM,OAAS,OAAO,KAAK,GAAO,QAAU,EAE5G,EACA,EAAM,OAAS,WACb,IACE,IAAI,EAAU,EAAM,QAAQ,UAAU,OACtC,OAAO,EAAQ,UAAU,UAAY,EAAU,IAIjD,CAAE,MAAO,GACP,OAAO,IACT,CACF,CAVe,GAWf,EAAM,aAAe,KACrB,EAAM,oBAAsB,KAC5B,EAAM,UAAY,SAAmB,GACnC,MAA8B,iBAAhB,EAA2B,EAAM,OAAS,EAAM,oBAAoB,GAAe,IAAI,EAAM,MAAM,GAAe,EAAM,OAAS,EAAM,aAAa,GAAqC,oBAAf,WAA6B,EAAc,IAAI,WAAW,EACpP,EACA,EAAM,MAA8B,oBAAf,WAA6B,WAAa,MAC/D,EAAM,KACN,EAAM,OAAO,SACb,EAAM,OAAO,QAAQ,MACrB,EAAM,OAAO,MAAQ,EAAM,QAAQ,QACnC,EAAM,OAAS,mBACf,EAAM,QAAU,wBAChB,EAAM,QAAU,6CAChB,EAAM,WAAa,SAAoB,GACrC,OAAO,EAAQ,EAAM,SAAS,KAAK,GAAO,SAAW,EAAM,SAAS,QACtE,EACA,EAAM,aAAe,SAAsB,EAAM,GAC/C,IAAI,EAAO,EAAM,SAAS,SAAS,GACnC,OAAI,EAAM,KACD,EAAM,KAAK,SAAS,EAAK,GAAI,EAAK,GAAI,GACxC,EAAK,SAAS,QAAQ,GAC/B,EAOA,EAAM,MAAQ,EACd,EAAM,QAAU,SAAiB,GAC/B,OAAO,EAAI,OAAO,GAAG,cAAgB,EAAI,UAAU,EACrD,EAwBA,EAAM,SAAW,EACjB,EAAM,cAAgB,EAAS,iBAC/B,EAAM,YAAc,SAAkB,GAEpC,IADA,IAAI,EAAW,CAAC,EACP,EAAI,EAAG,EAAI,EAAW,SAAU,EACvC,EAAS,EAAW,IAAM,EAC5B,OAAO,WACL,IAAK,IAAI,EAAO,OAAO,KAAK,MAAO,EAAK,EAAK,OAAS,EAAG,GAAM,IAAK,EAClE,GAA2B,IAAvB,EAAS,EAAK,UAAiC,IAAnB,KAAK,EAAK,KAAsC,OAAnB,KAAK,EAAK,IACrE,OAAO,EAAK,EAClB,CACF,EACA,EAAM,YAAc,SAAkB,GACpC,OAAO,SAAS,GACd,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,SAAU,EACnC,EAAW,KAAO,UACb,KAAK,EAAW,GAC7B,CACF,EACA,EAAM,cAAgB,CACpB,MAAO,OACP,MAAO,OACP,MAAO,OACP,MAAM,GAER,EAAM,WAAa,WACjB,IAAI,EAAU,EAAM,OACf,GAIL,EAAM,aAAe,EAAQ,OAAS,WAAW,MAAQ,EAAQ,MACjE,SAAqB,EAAO,GAC1B,OAAO,IAAI,EAAQ,EAAO,EAC5B,EACA,EAAM,oBAAsB,EAAQ,aACpC,SAA4B,GAC1B,OAAO,IAAI,EAAQ,EACrB,GAVE,EAAM,aAAe,EAAM,oBAAsB,IAWrD,CACF,IAIE,eAAiB,WAAW,CAC9B,8CAA8C,EAAU,GAEtD,EAAQ,QAAU,EAClB,IACI,EADA,EAAQ,kBAER,EAAW,EAAM,SACjB,EAAS,EAAM,OACf,EAAO,EAAM,KACjB,SAAS,EAAG,EAAI,EAAK,GACnB,KAAK,GAAK,EACV,KAAK,IAAM,EACX,KAAK,UAAO,EACZ,KAAK,IAAM,CACb,CACA,SAAS,IACT,CACA,SAAS,EAAM,GACb,KAAK,KAAO,EAAO,KACnB,KAAK,KAAO,EAAO,KACnB,KAAK,IAAM,EAAO,IAClB,KAAK,KAAO,EAAO,MACrB,CACA,SAAS,IACP,KAAK,IAAM,EACX,KAAK,KAAO,IAAI,EAAG,EAAM,EAAG,GAC5B,KAAK,KAAO,KAAK,KACjB,KAAK,OAAS,IAChB,CACA,IAAI,EAAS,WACX,OAAO,EAAM,OAAS,WACpB,OAAQ,EAAQ,OAAS,WACvB,OAAO,IAAI,CACb,IACF,EAAI,WACF,OAAO,IAAI,CACb,CACF,EAYA,SAAS,EAAU,EAAK,EAAK,GAC3B,EAAI,GAAa,IAAN,CACb,CAQA,SAAS,EAAS,EAAK,GACrB,KAAK,IAAM,EACX,KAAK,UAAO,EACZ,KAAK,IAAM,CACb,CAgBA,SAAS,EAAc,EAAK,EAAK,GAC/B,KAAO,EAAI,IACT,EAAI,KAAkB,IAAT,EAAI,GAAW,IAC5B,EAAI,IAAM,EAAI,KAAO,EAAI,EAAI,IAAM,MAAQ,EAC3C,EAAI,MAAQ,EAEd,KAAO,EAAI,GAAK,KACd,EAAI,KAAkB,IAAT,EAAI,GAAW,IAC5B,EAAI,GAAK,EAAI,KAAO,EAEtB,EAAI,KAAS,EAAI,EACnB,CAaA,SAAS,EAAa,EAAK,EAAK,GAC9B,EAAI,GAAa,IAAN,EACX,EAAI,EAAM,GAAK,IAAQ,EAAI,IAC3B,EAAI,EAAM,GAAK,IAAQ,GAAK,IAC5B,EAAI,EAAM,GAAK,IAAQ,EACzB,CAtEA,EAAQ,OAAS,IACjB,EAAQ,MAAQ,SAAe,GAC7B,OAAO,IAAI,EAAM,MAAM,EACzB,EACI,EAAM,QAAU,QAClB,EAAQ,MAAQ,EAAM,KAAK,EAAQ,MAAO,EAAM,MAAM,UAAU,WAClE,EAAQ,UAAU,MAAQ,SAAc,EAAI,EAAK,GAG/C,OAFA,KAAK,KAAO,KAAK,KAAK,KAAO,IAAI,EAAG,EAAI,EAAK,GAC7C,KAAK,KAAO,EACL,IACT,EAgBA,EAAS,UAAY,OAAO,OAAO,EAAG,WACtC,EAAS,UAAU,GAbnB,SAAuB,EAAK,EAAK,GAC/B,KAAO,EAAM,KACX,EAAI,KAAe,IAAN,EAAY,IACzB,KAAS,EAEX,EAAI,GAAO,CACb,EAQA,EAAQ,UAAU,OAAS,SAAsB,GAK/C,OAJA,KAAK,MAAQ,KAAK,KAAO,KAAK,KAAK,KAAO,IAAI,GAC3C,KAAkB,GAAK,IAAM,EAAI,EAAQ,MAAQ,EAAI,EAAQ,QAAU,EAAI,EAAQ,UAAY,EAAI,EACpG,IACC,IACI,IACT,EACA,EAAQ,UAAU,MAAQ,SAAqB,GAC7C,OAAO,EAAQ,EAAI,KAAK,MAAM,EAAe,GAAI,EAAS,WAAW,IAAU,KAAK,OAAO,EAC7F,EACA,EAAQ,UAAU,OAAS,SAAsB,GAC/C,OAAO,KAAK,QAAQ,GAAS,EAAI,GAAS,MAAQ,EACpD,EAaA,EAAQ,UAAU,OAAS,SAAsB,GAC/C,IAAI,EAAO,EAAS,KAAK,GACzB,OAAO,KAAK,MAAM,EAAe,EAAK,SAAU,EAClD,EACA,EAAQ,UAAU,MAAQ,EAAQ,UAAU,OAC5C,EAAQ,UAAU,OAAS,SAAsB,GAC/C,IAAI,EAAO,EAAS,KAAK,GAAO,WAChC,OAAO,KAAK,MAAM,EAAe,EAAK,SAAU,EAClD,EACA,EAAQ,UAAU,KAAO,SAAoB,GAC3C,OAAO,KAAK,MAAM,EAAW,EAAG,EAAQ,EAAI,EAC9C,EAOA,EAAQ,UAAU,QAAU,SAAuB,GACjD,OAAO,KAAK,MAAM,EAAc,EAAG,IAAU,EAC/C,EACA,EAAQ,UAAU,SAAW,EAAQ,UAAU,QAC/C,EAAQ,UAAU,QAAU,SAAuB,GACjD,IAAI,EAAO,EAAS,KAAK,GACzB,OAAO,KAAK,MAAM,EAAc,EAAG,EAAK,IAAI,MAAM,EAAc,EAAG,EAAK,GAC1E,EACA,EAAQ,UAAU,SAAW,EAAQ,UAAU,QAC/C,EAAQ,UAAU,MAAQ,SAAqB,GAC7C,OAAO,KAAK,MAAM,EAAM,MAAM,aAAc,EAAG,EACjD,EACA,EAAQ,UAAU,OAAS,SAAsB,GAC/C,OAAO,KAAK,MAAM,EAAM,MAAM,cAAe,EAAG,EAClD,EACA,IAAI,EAAa,EAAM,MAAM,UAAU,IAAM,SAAwB,EAAK,EAAK,GAC7E,EAAI,IAAI,EAAK,EACf,EAAI,SAAwB,EAAK,EAAK,GACpC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,SAAU,EAChC,EAAI,EAAM,GAAK,EAAI,EACvB,EACA,EAAQ,UAAU,MAAQ,SAAqB,GAC7C,IAAI,EAAM,EAAM,SAAW,EAC3B,IAAK,EACH,OAAO,KAAK,MAAM,EAAW,EAAG,GAClC,GAAI,EAAM,SAAS,GAAQ,CACzB,IAAI,EAAM,EAAQ,MAAM,EAAM,EAAO,OAAO,IAC5C,EAAO,OAAO,EAAO,EAAK,GAC1B,EAAQ,CACV,CACA,OAAO,KAAK,OAAO,GAAK,MAAM,EAAY,EAAK,EACjD,EACA,EAAQ,UAAU,OAAS,SAAsB,GAC/C,IAAI,EAAM,EAAK,OAAO,GACtB,OAAO,EAAM,KAAK,OAAO,GAAK,MAAM,EAAK,MAAO,EAAK,GAAS,KAAK,MAAM,EAAW,EAAG,EACzF,EACA,EAAQ,UAAU,KAAO,WAIvB,OAHA,KAAK,OAAS,IAAI,EAAM,MACxB,KAAK,KAAO,KAAK,KAAO,IAAI,EAAG,EAAM,EAAG,GACxC,KAAK,IAAM,EACJ,IACT,EACA,EAAQ,UAAU,MAAQ,WAUxB,OATI,KAAK,QACP,KAAK,KAAO,KAAK,OAAO,KACxB,KAAK,KAAO,KAAK,OAAO,KACxB,KAAK,IAAM,KAAK,OAAO,IACvB,KAAK,OAAS,KAAK,OAAO,OAE1B,KAAK,KAAO,KAAK,KAAO,IAAI,EAAG,EAAM,EAAG,GACxC,KAAK,IAAM,GAEN,IACT,EACA,EAAQ,UAAU,OAAS,WACzB,IAAI,EAAO,KAAK,KAAM,EAAO,KAAK,KAAM,EAAM,KAAK,IAOnD,OANA,KAAK,QAAQ,OAAO,GAChB,IACF,KAAK,KAAK,KAAO,EAAK,KACtB,KAAK,KAAO,EACZ,KAAK,KAAO,GAEP,IACT,EACA,EAAQ,UAAU,OAAS,WAEzB,IADA,IAAI,EAAO,KAAK,KAAK,KAAM,EAAM,KAAK,YAAY,MAAM,KAAK,KAAM,EAAM,EAClE,GACL,EAAK,GAAG,EAAK,IAAK,EAAK,GACvB,GAAO,EAAK,IACZ,EAAO,EAAK,KAEd,OAAO,CACT,EACA,EAAQ,WAAa,SAAS,GAC5B,EAAe,EACf,EAAQ,OAAS,IACjB,EAAa,YACf,CACF,IAIE,sBAAwB,WAAW,CACrC,qDAAqD,EAAU,GAE7D,EAAQ,QAAU,EAClB,IAAI,EAAU,kBACb,EAAa,UAAY,OAAO,OAAO,EAAQ,YAAY,YAAc,EAC1E,IAAI,EAAQ,kBACZ,SAAS,IACP,EAAQ,KAAK,KACf,CAsBA,SAAS,EAAkB,EAAK,EAAK,GAC/B,EAAI,OAAS,GACf,EAAM,KAAK,MAAM,EAAK,EAAK,GACpB,EAAI,UACX,EAAI,UAAU,EAAK,GAEnB,EAAI,MAAM,EAAK,EACnB,CA5BA,EAAa,WAAa,WACxB,EAAa,MAAQ,EAAM,oBAC3B,EAAa,iBAAmB,EAAM,QAAU,EAAM,OAAO,qBAAqB,YAAkD,QAApC,EAAM,OAAO,UAAU,IAAI,KAAiB,SAA8B,EAAK,EAAK,GAClL,EAAI,IAAI,EAAK,EACf,EAAI,SAA+B,EAAK,EAAK,GAC3C,GAAI,EAAI,KACN,EAAI,KAAK,EAAK,EAAK,EAAG,EAAI,aAE1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,QACtB,EAAI,KAAS,EAAI,IACvB,CACF,EACA,EAAa,UAAU,MAAQ,SAA4B,GACrD,EAAM,SAAS,KACjB,EAAQ,EAAM,aAAa,EAAO,WACpC,IAAI,EAAM,EAAM,SAAW,EAI3B,OAHA,KAAK,OAAO,GACR,GACF,KAAK,MAAM,EAAa,iBAAkB,EAAK,GAC1C,IACT,EASA,EAAa,UAAU,OAAS,SAA6B,GAC3D,IAAI,EAAM,EAAM,OAAO,WAAW,GAIlC,OAHA,KAAK,OAAO,GACR,GACF,KAAK,MAAM,EAAmB,EAAK,GAC9B,IACT,EACA,EAAa,YACf,IAIE,eAAiB,WAAW,CAC9B,8CAA8C,EAAU,GAEtD,EAAQ,QAAU,EAClB,IACI,EADA,EAAQ,kBAER,EAAW,EAAM,SACjB,EAAO,EAAM,KACjB,SAAS,EAAgB,EAAQ,GAC/B,OAAO,WAAW,uBAAyB,EAAO,IAAM,OAAS,GAAe,GAAK,MAAQ,EAAO,IACtG,CACA,SAAS,EAAQ,GACf,KAAK,IAAM,EACX,KAAK,IAAM,EACX,KAAK,IAAM,EAAO,MACpB,CACA,IAoBM,EApBF,EAAqC,oBAAf,WAA6B,SAA4B,GACjF,GAAI,aAAkB,YAAc,MAAM,QAAQ,GAChD,OAAO,IAAI,EAAQ,GACrB,MAAM,MAAM,iBACd,EAAI,SAAuB,GACzB,GAAI,MAAM,QAAQ,GAChB,OAAO,IAAI,EAAQ,GACrB,MAAM,MAAM,iBACd,EACI,EAAS,WACX,OAAO,EAAM,OAAS,SAA6B,GACjD,OAAQ,EAAQ,OAAS,SAAuB,GAC9C,OAAO,EAAM,OAAO,SAAS,GAAW,IAAI,EAAa,GAAW,EAAa,EACnF,GAAG,EACL,EAAI,CACN,EAoCA,SAAS,IACP,IAAI,EAAO,IAAI,EAAS,EAAG,GACvB,EAAI,EACR,KAAI,KAAK,IAAM,KAAK,IAAM,GAWnB,CACL,KAAO,EAAI,IAAK,EAAG,CACjB,GAAI,KAAK,KAAO,KAAK,IACnB,MAAM,EAAgB,MAExB,GADA,EAAK,IAAM,EAAK,IAA2B,IAArB,KAAK,IAAI,KAAK,OAAmB,EAAJ,KAAW,EAC1D,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,CACX,CAEA,OADA,EAAK,IAAM,EAAK,IAA6B,IAAvB,KAAK,IAAI,KAAK,SAAqB,EAAJ,KAAW,EACzD,CACT,CApBE,KAAO,EAAI,IAAK,EAEd,GADA,EAAK,IAAM,EAAK,IAA2B,IAArB,KAAK,IAAI,KAAK,OAAmB,EAAJ,KAAW,EAC1D,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EAIX,GAFA,EAAK,IAAM,EAAK,IAA2B,IAArB,KAAK,IAAI,KAAK,OAAe,MAAQ,EAC3D,EAAK,IAAM,EAAK,IAA2B,IAArB,KAAK,IAAI,KAAK,OAAe,KAAO,EACtD,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EAaX,GAZE,EAAI,EAYF,KAAK,IAAM,KAAK,IAAM,GACxB,KAAO,EAAI,IAAK,EAEd,GADA,EAAK,IAAM,EAAK,IAA2B,IAArB,KAAK,IAAI,KAAK,OAAmB,EAAJ,EAAQ,KAAO,EAC9D,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,OAGX,KAAO,EAAI,IAAK,EAAG,CACjB,GAAI,KAAK,KAAO,KAAK,IACnB,MAAM,EAAgB,MAExB,GADA,EAAK,IAAM,EAAK,IAA2B,IAArB,KAAK,IAAI,KAAK,OAAmB,EAAJ,EAAQ,KAAO,EAC9D,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,CACX,CAEF,MAAM,MAAM,0BACd,CAIA,SAAS,EAAgB,EAAK,GAC5B,OAAQ,EAAI,EAAM,GAAK,EAAI,EAAM,IAAM,EAAI,EAAI,EAAM,IAAM,GAAK,EAAI,EAAM,IAAM,MAAQ,CAC1F,CAWA,SAAS,IACP,GAAI,KAAK,IAAM,EAAI,KAAK,IACtB,MAAM,EAAgB,KAAM,GAC9B,OAAO,IAAI,EAAS,EAAgB,KAAK,IAAK,KAAK,KAAO,GAAI,EAAgB,KAAK,IAAK,KAAK,KAAO,GACtG,CAjGA,EAAQ,OAAS,IACjB,EAAQ,UAAU,OAAS,EAAM,MAAM,UAAU,UACjD,EAAM,MAAM,UAAU,MACtB,EAAQ,UAAU,QACZ,EAAQ,WACL,WAEL,GADA,GAA8B,IAArB,KAAK,IAAI,KAAK,QAAgB,EACnC,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EAET,GADA,GAAS,GAA8B,IAArB,KAAK,IAAI,KAAK,OAAe,KAAO,EAClD,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EAET,GADA,GAAS,GAA8B,IAArB,KAAK,IAAI,KAAK,OAAe,MAAQ,EACnD,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EAET,GADA,GAAS,GAA8B,IAArB,KAAK,IAAI,KAAK,OAAe,MAAQ,EACnD,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EAET,GADA,GAAS,GAA8B,GAArB,KAAK,IAAI,KAAK,OAAc,MAAQ,EAClD,KAAK,IAAI,KAAK,OAAS,IACzB,OAAO,EACT,IAAK,KAAK,KAAO,GAAK,KAAK,IAEzB,MADA,KAAK,IAAM,KAAK,IACV,EAAgB,KAAM,IAE9B,OAAO,CACT,GAEF,EAAQ,UAAU,MAAQ,WACxB,OAAuB,EAAhB,KAAK,QACd,EACA,EAAQ,UAAU,OAAS,WACzB,IAAI,EAAQ,KAAK,SACjB,OAAO,IAAU,IAAc,EAAR,EACzB,EA2CA,EAAQ,UAAU,KAAO,WACvB,OAAyB,IAAlB,KAAK,QACd,EAIA,EAAQ,UAAU,QAAU,WAC1B,GAAI,KAAK,IAAM,EAAI,KAAK,IACtB,MAAM,EAAgB,KAAM,GAC9B,OAAO,EAAgB,KAAK,IAAK,KAAK,KAAO,EAC/C,EACA,EAAQ,UAAU,SAAW,WAC3B,GAAI,KAAK,IAAM,EAAI,KAAK,IACtB,MAAM,EAAgB,KAAM,GAC9B,OAAkD,EAA3C,EAAgB,KAAK,IAAK,KAAK,KAAO,EAC/C,EAMA,EAAQ,UAAU,MAAQ,WACxB,GAAI,KAAK,IAAM,EAAI,KAAK,IACtB,MAAM,EAAgB,KAAM,GAC9B,IAAI,EAAQ,EAAM,MAAM,YAAY,KAAK,IAAK,KAAK,KAEnD,OADA,KAAK,KAAO,EACL,CACT,EACA,EAAQ,UAAU,OAAS,WACzB,GAAI,KAAK,IAAM,EAAI,KAAK,IACtB,MAAM,EAAgB,KAAM,GAC9B,IAAI,EAAQ,EAAM,MAAM,aAAa,KAAK,IAAK,KAAK,KAEpD,OADA,KAAK,KAAO,EACL,CACT,EACA,EAAQ,UAAU,MAAQ,WACxB,IAAI,EAAS,KAAK,SAAU,EAAQ,KAAK,IAAK,EAAM,KAAK,IAAM,EAC/D,GAAI,EAAM,KAAK,IACb,MAAM,EAAgB,KAAM,GAE9B,OADA,KAAK,KAAO,EACR,MAAM,QAAQ,KAAK,KACd,KAAK,IAAI,MAAM,EAAO,GACxB,IAAU,EAAM,IAAI,KAAK,IAAI,YAAY,GAAK,KAAK,OAAO,KAAK,KAAK,IAAK,EAAO,EACzF,EACA,EAAQ,UAAU,OAAS,WACzB,IAAI,EAAQ,KAAK,QACjB,OAAO,EAAK,KAAK,EAAO,EAAG,EAAM,OACnC,EACA,EAAQ,UAAU,KAAO,SAAc,GACrC,GAAsB,iBAAX,EAAqB,CAC9B,GAAI,KAAK,IAAM,EAAS,KAAK,IAC3B,MAAM,EAAgB,KAAM,GAC9B,KAAK,KAAO,CACd,MACE,GACE,GAAI,KAAK,KAAO,KAAK,IACnB,MAAM,EAAgB,YACM,IAAvB,KAAK,IAAI,KAAK,QAEzB,OAAO,IACT,EACA,EAAQ,UAAU,SAAW,SAAS,GACpC,OAAQ,GACN,KAAK,EACH,KAAK,OACL,MACF,KAAK,EACH,KAAK,KAAK,GACV,MACF,KAAK,EACH,KAAK,KAAK,KAAK,UACf,MACF,KAAK,EACH,KAA0C,IAAlC,EAA2B,EAAhB,KAAK,WACtB,KAAK,SAAS,GAEhB,MACF,KAAK,EACH,KAAK,KAAK,GACV,MACF,QACE,MAAM,MAAM,qBAAuB,EAAW,cAAgB,KAAK,KAEvE,OAAO,IACT,EACA,EAAQ,WAAa,SAAS,GAC5B,EAAe,EACf,EAAQ,OAAS,IACjB,EAAa,aACb,IAAI,EAAK,EAAM,KAAO,SAAW,WAIjC,EAAM,MAAM,EAAQ,UAAW,CAC7B,MAAO,WACL,OAAO,EAAe,KAAK,MAAM,IAAI,EACvC,EACA,OAAQ,WACN,OAAO,EAAe,KAAK,MAAM,IAAI,EACvC,EACA,OAAQ,WACN,OAAO,EAAe,KAAK,MAAM,WAAW,IAAI,EAClD,EACA,QAAS,WACP,OAAO,EAAY,KAAK,MAAM,IAAI,EACpC,EACA,SAAU,WACR,OAAO,EAAY,KAAK,MAAM,IAAI,EACpC,GAEJ,CACF,IAIE,sBAAwB,WAAW,CACrC,qDAAqD,EAAU,GAE7D,EAAQ,QAAU,EAClB,IAAI,EAAU,kBACb,EAAa,UAAY,OAAO,OAAO,EAAQ,YAAY,YAAc,EAC1E,IAAI,EAAQ,kBACZ,SAAS,EAAa,GACpB,EAAQ,KAAK,KAAM,EACrB,CACA,EAAa,WAAa,WACpB,EAAM,SACR,EAAa,UAAU,OAAS,EAAM,OAAO,UAAU,MAC3D,EACA,EAAa,UAAU,OAAS,WAC9B,IAAI,EAAM,KAAK,SACf,OAAO,KAAK,IAAI,UAAY,KAAK,IAAI,UAAU,KAAK,IAAK,KAAK,IAAM,KAAK,IAAI,KAAK,IAAM,EAAK,KAAK,MAAQ,KAAK,IAAI,SAAS,QAAS,KAAK,IAAK,KAAK,IAAM,KAAK,IAAI,KAAK,IAAM,EAAK,KAAK,KAC1L,EACA,EAAa,YACf,IAIE,gBAAkB,WAAW,CAC/B,mDAAmD,EAAU,GAE3D,EAAQ,QAAU,EAClB,IAAI,EAAQ,kBAEZ,SAAS,EAAQ,EAAS,EAAkB,GAC1C,GAAuB,mBAAZ,EACT,MAAM,UAAU,8BAClB,EAAM,aAAa,KAAK,MACxB,KAAK,QAAU,EACf,KAAK,iBAAmB,QAAQ,GAChC,KAAK,kBAAoB,QAAQ,EACnC,EARC,EAAQ,UAAY,OAAO,OAAO,EAAM,aAAa,YAAY,YAAc,EAShF,EAAQ,UAAU,QAAU,SAAS,EAAQ,EAAQ,EAAa,EAAc,EAAS,GACvF,IAAK,EACH,MAAM,UAAU,6BAClB,IAAI,EAAQ,KACZ,IAAK,EACH,OAAO,EAAM,UAAU,EAAS,EAAO,EAAQ,EAAa,EAAc,GAC5E,GAAK,EAAM,QAMX,IACE,OAAO,EAAM,QACX,EACA,EAAY,EAAM,iBAAmB,kBAAoB,UAAU,GAAS,UAC5E,SAAqB,EAAK,GACxB,GAAI,EAEF,OADA,EAAM,KAAK,QAAS,EAAK,GAClB,EAAS,GAElB,GAAiB,OAAb,EAAJ,CAOA,KAAM,aAAoB,GACxB,IACE,EAAW,EAAa,EAAM,kBAAoB,kBAAoB,UAAU,EAClF,CAAE,MAAO,GAEP,OADA,EAAM,KAAK,QAAS,EAAM,GACnB,EAAS,EAClB,CAGF,OADA,EAAM,KAAK,OAAQ,EAAU,GACtB,EAAS,KAAM,EAVtB,CALE,EAAM,KAEJ,EAcN,GAEJ,CAAE,MAAO,GAKP,OAJA,EAAM,KAAK,QAAS,EAAK,QACzB,YAAW,WACT,EAAS,EACX,GAAG,EAEL,MAvCE,YAAW,WACT,EAAS,MAAM,iBACjB,GAAG,EAsCP,EACA,EAAQ,UAAU,IAAM,SAAa,GAOnC,OANI,KAAK,UACF,GACH,KAAK,QAAQ,KAAM,KAAM,MAC3B,KAAK,QAAU,KACf,KAAK,KAAK,OAAO,OAEZ,IACT,CACF,IAIE,YAAc,WAAW,CAC3B,2CAA2C,GAE/B,EACN,QAAU,iBAChB,IAIE,cAAgB,WAAW,CAC7B,6CAA6C,EAAU,GAErD,EAAQ,QAAU,CAAC,CACrB,IAIE,sBAAwB,WAAW,CACrC,qDAAqD,GAEnD,IAAI,EAAW,EAUf,SAAS,IACP,EAAS,KAAK,aACd,EAAS,OAAO,WAAW,EAAS,cACpC,EAAS,OAAO,WAAW,EAAS,aACtC,CAbA,EAAS,MAAQ,UACjB,EAAS,OAAS,iBAClB,EAAS,aAAe,wBACxB,EAAS,OAAS,iBAClB,EAAS,aAAe,wBACxB,EAAS,KAAO,kBAChB,EAAS,IAAM,cACf,EAAS,MAAQ,gBACjB,EAAS,UAAY,EAMrB,GACF,IAIE,iBAAmB,WAAW,CAChC,2CAA2C,EAAU,GAEnD,EAAQ,QAAU,uBACpB,IAIE,2BAA6B,CAAC,EAClC,SAAS,2BAA4B,CACnC,mBAAoB,IAAM,qBAE5B,OAAO,QAAU,aAAa,4BAG9B,IAAI,aAAe,QAAQ,gBACvB,gBAAkB,QAAQ,oBAG1B,KAAO,QAAQ,gBACf,eAAiB,QAAQ,oBACzB,cAAgB,CAClB,QAAS,EACT,MAAO,GAET,SAAS,aAAa,GACpB,GAAI,EAAK,GAAG,OAAO,kBACjB,MAAM,IAAI,WAAW,MAAM,gDAE7B,OAAO,EAAK,UACd,CACA,IAAI,UAAY,CACd,OAAM,CAAC,EAAS,EAAS,eAAe,OAAO,YAC7C,EAAO,OAAO,GAAG,MAAM,EAAQ,SAC/B,EAAO,OAAO,IAAI,MAAM,EAAQ,OACzB,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,WAAa,IAAI,eAAe,OAAO,GAAS,EAChF,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,eACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,QAAU,aAAa,EAAO,SACtC,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,QACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,eAOnC,YANuB,IAAnB,EAAO,SAAyC,OAAnB,EAAO,UACtC,EAAQ,QAAU,OAAO,EAAO,eAEb,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,OAAO,EAAO,QAEzB,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,eAOnC,YANuB,IAAnB,EAAO,SAAyC,OAAnB,EAAO,UACtC,EAAQ,QAAU,EAAO,cAEN,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,EAAO,OAElB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFoB,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACnC,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,GAEE,eAAe,KAAK,OAAS,OAC/B,eAAe,KAAK,KAAO,MAC3B,EAAI,eAAe,cAIrB,IAAI,YAAc,QAAQ,gBACtB,gBAAkB,QAAQ,oBAG1B,MAAQ,QAAQ,gBAChB,gBAAkB,QAAQ,oBAC1B,eAAiB,CACnB,MAAO,GAEL,cAAgB,CAClB,OAAO,GAEL,gBAAkB,CACpB,MAAO,IAEL,WAAa,CACf,OAAM,CAAC,EAAS,EAAS,gBAAgB,OAAO,YAC9C,EAAO,OAAO,GAAG,MAAM,EAAQ,OACxB,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,WAAa,IAAI,gBAAgB,OAAO,GAAS,EACjF,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,gBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,MAAQ,EAAO,aAGvB,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,gBAInC,YAHqB,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,OAAO,EAAO,QAEzB,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,gBAInC,YAHqB,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,EAAO,OAElB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADkB,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,GAEE,UAAY,CACd,OAAM,CAAC,EAAS,EAAS,gBAAgB,OAAO,YAC9C,EAAO,OAAO,GAAG,KAAK,EAAQ,OACvB,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,WAAa,IAAI,gBAAgB,OAAO,GAAS,EACjF,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,eACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,MAAQ,EAAO,YAGvB,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,eAInC,YAHqB,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,QAAQ,EAAO,QAE1B,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,eAInC,YAHqB,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,EAAO,OAElB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADkB,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,GAEE,YAAc,CAChB,OAAM,CAAC,EAAS,EAAS,gBAAgB,OAAO,YAC9C,EAAO,OAAO,IAAI,OAAO,EAAQ,OAC1B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,WAAa,IAAI,gBAAgB,OAAO,GAAS,EACjF,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,MAAQ,EAAO,cAGvB,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,iBAInC,YAHqB,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,OAAO,EAAO,QAEzB,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,iBAInC,YAHqB,IAAjB,EAAO,OAAqC,OAAjB,EAAO,QACpC,EAAQ,MAAQ,EAAO,OAElB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADkB,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,GAEE,gBAAgB,KAAK,OAAS,QAChC,gBAAgB,KAAK,KAAO,OAC5B,EAAI,gBAAgB,cAEtB,IAAI,aAAe,WACf,KAAO,aAAa,MAAQ,CAAE,GAAQ,OAAO,KAAK,EAAK,UAAU,SAAS,WAC1E,KAAO,aAAa,MAAQ,CAAE,GAAQ,OAAO,KAAK,EAAK,UAAU,SAAS,WAG1E,mBAAqB,CACvB,WAAY,GACZ,WAAY,GACZ,UAAW,GACX,SAAU,GACV,QAAS,GACT,UAAW,GACX,SAAU,GACV,YAAa,GACb,YAAa,IAEX,eAAiB,CACnB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAER,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,iBAEd,IAAjB,EAAQ,MACV,WAAW,OACT,CAAE,MAAO,EAAQ,MACjB,EAAO,OAAO,IAAI,QAClB,SAEsB,KAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEX,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,cAEP,IAAxB,EAAQ,aACV,UAAU,OACR,YAAY,EAAQ,aACpB,EAAO,OAAO,IAAI,QAClB,cAEwB,IAAxB,EAAQ,aACV,UAAU,OACR,YAAY,EAAQ,aACpB,EAAO,OAAO,IAAI,QAClB,cAEuB,IAAvB,EAAQ,YACV,UAAU,OACR,CAAE,MAAO,EAAQ,YACjB,EAAO,OAAO,IAAI,QAClB,SAEsB,KAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,KAAK,OAAO,EAAQ,aAE7B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,oBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,KAAO,WAAW,OAAO,EAAQ,EAAO,UAAU,MAC1D,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,SAC3B,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,EAAQ,YAAc,cACpB,UAAU,OAAO,EAAQ,EAAO,WAElC,MACF,KAAK,EACH,EAAQ,YAAc,cACpB,UAAU,OAAO,EAAQ,EAAO,WAElC,MACF,KAAK,EACH,EAAQ,WAAa,UAAU,OAAO,EAAQ,EAAO,UAAU,MAC/D,MACF,KAAK,GACH,EAAQ,UAAY,EAAO,SAC3B,MACF,KAAK,GACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,GACH,EAAQ,YAAc,EAAO,SAC7B,MACF,KAAK,GACH,EAAQ,YAAc,EAAO,SAC7B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,oBAkEnC,YAjE0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEH,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,UAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEO,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,kBAAkB,EAAO,aAE/C,EAAQ,iBAAc,OAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,kBAAkB,EAAO,aAE/C,EAAQ,iBAAc,OAEE,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,QAAQ,EAAO,YAEpC,EAAQ,gBAAa,OAEE,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,GAEjB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAcb,YAbuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACpC,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBAC1C,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WACzB,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACpC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACnC,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cAC7B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAY,oBACjD,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAY,oBAClD,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACrC,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACpC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC/B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,kBACrC,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,aACtD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,oBAkEnC,YAjE0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEH,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,UAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEO,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,iBAAc,OAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,iBAAc,OAEE,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,gBAAa,OAEE,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,GAEjB,CACT,GAEE,iBAAmB,CACrB,GAAI,GACJ,QAAS,GACT,QAAS,GACT,KAAM,EACN,UAAW,GACX,YAAY,GAEV,aAAe,CACjB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YACnC,KAAf,EAAQ,IACV,EAAO,OAAO,IAAI,OAAO,EAAQ,IAEX,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAEX,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAEd,IAAjB,EAAQ,MACV,EAAO,OAAO,IAAI,MAAM,EAAQ,MAER,KAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,OAAO,EAAQ,gBAEP,IAAxB,EAAQ,aACV,UAAU,OACR,YAAY,EAAQ,aACpB,EAAO,OAAO,IAAI,QAClB,UAEuB,IAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,KAAK,EAAQ,YAE1B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,kBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,GAAK,EAAO,SACpB,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,SAC3B,MACF,KAAK,EACH,EAAQ,YAAc,cACpB,UAAU,OAAO,EAAQ,EAAO,WAElC,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,OAC5B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,kBAoCnC,YAnCkB,IAAd,EAAO,IAA+B,OAAd,EAAO,GACjC,EAAQ,GAAK,OAAO,EAAO,IAE3B,EAAQ,GAAK,QAEQ,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEG,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,KAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,QAEK,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,kBAAkB,EAAO,aAE/C,EAAQ,iBAAc,OAEE,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,QAAQ,EAAO,YAEpC,EAAQ,YAAa,EAEhB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAQb,YAPe,IAAf,EAAQ,KAAkB,EAAI,GAAK,EAAQ,SACvB,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACjC,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACpC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WACzB,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACjC,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAY,oBAClD,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,YACpD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,kBAoCnC,YAnCkB,IAAd,EAAO,IAA+B,OAAd,EAAO,GACjC,EAAQ,GAAK,EAAO,GAEpB,EAAQ,GAAK,QAEQ,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEG,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,QAEK,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,iBAAc,OAEE,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,YAAa,EAEhB,CACT,GAEE,QAAU,CAAE,GAAI,GAAI,QAAS,GAAI,SAAU,IAC3C,IAAM,CACR,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YACnC,KAAf,EAAQ,IACV,EAAO,OAAO,IAAI,OAAO,EAAQ,IAEX,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,SACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,GAAK,EAAO,SACpB,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,SAgBnC,YAfkB,IAAd,EAAO,IAA+B,OAAd,EAAO,GACjC,EAAQ,GAAK,OAAO,EAAO,IAE3B,EAAQ,GAAK,QAEQ,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,GAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAIb,YAHe,IAAf,EAAQ,KAAkB,EAAI,GAAK,EAAQ,SACvB,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cAChC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,SAgBnC,YAfkB,IAAd,EAAO,IAA+B,OAAd,EAAO,GACjC,EAAQ,GAAK,EAAO,GAEpB,EAAQ,GAAK,QAEQ,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,GAEd,CACT,GAEE,YAAc,MAChB,QAA2B,IAAhB,YACT,OAAO,YACT,GAAoB,oBAAT,KACT,OAAO,KACT,GAAsB,oBAAX,OACT,OAAO,OACT,GAAsB,oBAAX,OACT,OAAO,OACT,KAAM,gCACP,EAViB,GAWlB,SAAS,YAAY,GAGnB,MAAO,CAAE,QAFO,EAAK,UAAY,IAEf,MADJ,EAAK,UAAY,IAAM,IAEvC,CACA,SAAS,cAAc,GACrB,IAAI,EAAqB,IAAZ,EAAE,QAEf,OADA,GAAU,EAAE,MAAQ,IACb,IAAI,KAAK,EAClB,CACA,SAAS,kBAAkB,GACzB,OAAI,aAAa,KACR,EACe,iBAAN,EACT,IAAI,KAAK,GAET,cAAc,UAAU,SAAS,GAE5C,CACI,gBAAgB,QAAQ,KAAK,OAAS,YAAY,UACpD,gBAAgB,QAAQ,KAAK,KAAO,YAAY,QAChD,gBAAgB,QAAQ,aAI1B,IAAI,aAAe,CAAE,IAAK,IACtB,SAAW,CACb,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEX,IAApB,EAAQ,SACV,QAAQ,OAAO,EAAQ,QAAS,EAAO,OAAO,IAAI,QAAQ,cAE/B,IAAzB,EAAQ,cACV,YAAY,OACV,EAAQ,aACR,EAAO,OAAO,IAAI,QAClB,cAE0B,IAA1B,EAAQ,eACV,aAAa,OACX,EAAQ,cACR,EAAO,OAAO,IAAI,QAClB,cAE4B,IAA5B,EAAQ,iBACV,eAAe,OACb,EAAQ,gBACR,EAAO,OAAO,IAAI,QAClB,cAEgC,IAAhC,EAAQ,qBACV,kBAAkB,OAChB,EAAQ,oBACR,EAAO,OAAO,IAAI,QAClB,cAEiC,IAAjC,EAAQ,sBACV,mBAAmB,OACjB,EAAQ,qBACR,EAAO,OAAO,IAAI,QAClB,cAEmC,IAAnC,EAAQ,wBACV,qBAAqB,OACnB,EAAQ,uBACR,EAAO,OAAO,IAAI,QAClB,cAEmC,IAAnC,EAAQ,wBACV,qBAAqB,OACnB,EAAQ,uBACR,EAAO,OAAO,IAAI,QAClB,cAEmC,IAAnC,EAAQ,wBACV,qBAAqB,OACnB,EAAQ,uBACR,EAAO,OAAO,IAAI,QAClB,cAEkB,IAAlB,EAAQ,OACV,OAAO,OAAO,EAAQ,MAAO,EAAO,OAAO,IAAI,QAAQ,cAEnC,IAAlB,EAAQ,OACV,MAAM,OAAO,EAAQ,MAAO,EAAO,OAAO,IAAI,QAAQ,cAE3B,IAAzB,EAAQ,cACV,YAAY,OACV,EAAQ,aACR,EAAO,OAAO,KAAK,QACnB,cAEuB,IAAvB,EAAQ,YACV,UAAU,OAAO,EAAQ,WAAY,EAAO,OAAO,KAAK,QAAQ,cAElC,IAA5B,EAAQ,iBACV,cAAc,OACZ,EAAQ,gBACR,EAAO,OAAO,KAAK,QACnB,cAEuB,IAAvB,EAAQ,YACV,UAAU,OAAO,EAAQ,WAAY,EAAO,OAAO,KAAK,QAAQ,cAEtC,IAAxB,EAAQ,aACV,WAAW,OACT,EAAQ,YACR,EAAO,OAAO,KAAK,QACnB,cAEiC,IAAjC,EAAQ,sBACV,mBAAmB,OACjB,EAAQ,qBACR,EAAO,OAAO,KAAK,QACnB,cAE2B,IAA3B,EAAQ,gBACV,cAAc,OACZ,EAAQ,eACR,EAAO,OAAO,KAAK,QACnB,cAE+B,IAA/B,EAAQ,oBACV,kBAAkB,OAChB,EAAQ,mBACR,EAAO,OAAO,KAAK,QACnB,cAE8B,IAA9B,EAAQ,mBACV,iBAAiB,OACf,EAAQ,kBACR,EAAO,OAAO,KAAK,QACnB,cAE8B,IAA9B,EAAQ,mBACV,iBAAiB,OACf,EAAQ,kBACR,EAAO,OAAO,KAAK,QACnB,cAE0B,IAA1B,EAAQ,eACV,cAAc,OACZ,EAAQ,cACR,EAAO,OAAO,KAAK,QACnB,cAEgB,IAAhB,EAAQ,KACV,IAAI,OAAO,EAAQ,IAAK,EAAO,OAAO,KAAK,QAAQ,cAE9B,IAAnB,EAAQ,QACV,OAAO,OAAO,EAAQ,OAAQ,EAAO,OAAO,KAAK,QAAQ,cAE7B,IAA1B,EAAQ,eACV,aAAa,OACX,EAAQ,cACR,EAAO,OAAO,KAAK,QACnB,cAEkC,IAAlC,EAAQ,uBACV,oBAAoB,OAClB,EAAQ,sBACR,EAAO,OAAO,KAAK,QACnB,cAE4B,IAA5B,EAAQ,iBACV,eAAe,OACb,EAAQ,gBACR,EAAO,OAAO,KAAK,QACnB,cAE0B,IAA1B,EAAQ,eACV,aAAa,OACX,EAAQ,cACR,EAAO,OAAO,KAAK,QACnB,cAEwB,IAAxB,EAAQ,aACV,WAAW,OACT,EAAQ,YACR,EAAO,OAAO,KAAK,QACnB,cAEkC,IAAlC,EAAQ,uBACV,oBAAoB,OAClB,EAAQ,sBACR,EAAO,OAAO,KAAK,QACnB,cAEiB,IAAjB,EAAQ,MACV,KAAK,OAAO,EAAQ,KAAM,EAAO,OAAO,KAAK,QAAQ,cAElC,IAAjB,EAAQ,MACV,KAAK,OAAO,EAAQ,KAAM,EAAO,OAAO,KAAK,QAAQ,cAEjC,IAAlB,EAAQ,OACV,MAAM,OAAO,EAAQ,MAAO,EAAO,OAAO,KAAK,QAAQ,cAE5B,IAAzB,EAAQ,cACV,YAAY,OACV,EAAQ,aACR,EAAO,OAAO,KAAK,QACnB,cAEuB,IAAvB,EAAQ,YACV,UAAU,OAAO,EAAQ,WAAY,EAAO,OAAO,KAAK,QAAQ,cAEtC,IAAxB,EAAQ,aACV,WAAW,OACT,EAAQ,YACR,EAAO,OAAO,KAAK,QACnB,cAE0B,IAA1B,EAAQ,eACV,aAAa,OACX,EAAQ,cACR,EAAO,OAAO,KAAK,QACnB,cAEyB,IAAzB,EAAQ,cACV,YAAY,OACV,EAAQ,aACR,EAAO,OAAO,KAAK,QACnB,cAEyB,IAAzB,EAAQ,cACV,YAAY,OACV,EAAQ,aACR,EAAO,OAAO,KAAK,QACnB,cAEyB,IAAzB,EAAQ,cACV,YAAY,OACV,EAAQ,aACR,EAAO,OAAO,KAAK,QACnB,cAEwB,IAAxB,EAAQ,aACV,WAAW,OACT,EAAQ,YACR,EAAO,OAAO,KAAK,QACnB,cAEoC,IAApC,EAAQ,yBACV,qBAAqB,OACnB,EAAQ,wBACR,EAAO,OAAO,KAAK,QACnB,cAE+B,IAA/B,EAAQ,oBACV,iBAAiB,OACf,EAAQ,mBACR,EAAO,OAAO,KAAK,QACnB,cAEiC,IAAjC,EAAQ,sBACV,mBAAmB,OACjB,EAAQ,qBACR,EAAO,OAAO,KAAK,QACnB,cAEoC,IAApC,EAAQ,yBACV,sBAAsB,OACpB,EAAQ,wBACR,EAAO,OAAO,KAAK,QACnB,cAEoC,IAApC,EAAQ,yBACV,sBAAsB,OACpB,EAAQ,wBACR,EAAO,OAAO,KAAK,QACnB,cAEuB,IAAvB,EAAQ,YACV,UAAU,OAAO,EAAQ,WAAY,EAAO,OAAO,KAAK,QAAQ,cAElC,IAA5B,EAAQ,iBACV,cAAc,OACZ,EAAQ,gBACR,EAAO,OAAO,KAAK,QACnB,cAEiC,IAAjC,EAAQ,sBACV,mBAAmB,OACjB,EAAQ,qBACR,EAAO,OAAO,KAAK,QACnB,SAEG,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,cACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,QAAU,QAAQ,OAAO,EAAQ,EAAO,UAChD,MACF,KAAK,EACH,EAAQ,aAAe,YAAY,OAAO,EAAQ,EAAO,UACzD,MACF,KAAK,EACH,EAAQ,cAAgB,aAAa,OAAO,EAAQ,EAAO,UAC3D,MACF,KAAK,EACH,EAAQ,gBAAkB,eAAe,OACvC,EACA,EAAO,UAET,MACF,KAAK,EACH,EAAQ,oBAAsB,kBAAkB,OAC9C,EACA,EAAO,UAET,MACF,KAAK,EACH,EAAQ,qBAAuB,mBAAmB,OAChD,EACA,EAAO,UAET,MACF,KAAK,EACH,EAAQ,uBAAyB,qBAAqB,OACpD,EACA,EAAO,UAET,MACF,KAAK,EACH,EAAQ,uBAAyB,qBAAqB,OACpD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,uBAAyB,qBAAqB,OACpD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,MAAQ,OAAO,OAAO,EAAQ,EAAO,UAC7C,MACF,KAAK,GACH,EAAQ,MAAQ,MAAM,OAAO,EAAQ,EAAO,UAC5C,MACF,KAAK,GACH,EAAQ,aAAe,YAAY,OAAO,EAAQ,EAAO,UACzD,MACF,KAAK,GACH,EAAQ,WAAa,UAAU,OAAO,EAAQ,EAAO,UACrD,MACF,KAAK,GACH,EAAQ,gBAAkB,cAAc,OACtC,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,WAAa,UAAU,OAAO,EAAQ,EAAO,UACrD,MACF,KAAK,GACH,EAAQ,YAAc,WAAW,OAAO,EAAQ,EAAO,UACvD,MACF,KAAK,GACH,EAAQ,qBAAuB,mBAAmB,OAChD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,eAAiB,cAAc,OACrC,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,mBAAqB,kBAAkB,OAC7C,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,kBAAoB,iBAAiB,OAC3C,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,kBAAoB,iBAAiB,OAC3C,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,cAAgB,cAAc,OAAO,EAAQ,EAAO,UAC5D,MACF,KAAK,GACH,EAAQ,IAAM,IAAI,OAAO,EAAQ,EAAO,UACxC,MACF,KAAK,GACH,EAAQ,OAAS,OAAO,OAAO,EAAQ,EAAO,UAC9C,MACF,KAAK,GACH,EAAQ,cAAgB,aAAa,OAAO,EAAQ,EAAO,UAC3D,MACF,KAAK,GACH,EAAQ,sBAAwB,oBAAoB,OAClD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,gBAAkB,eAAe,OACvC,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,cAAgB,aAAa,OAAO,EAAQ,EAAO,UAC3D,MACF,KAAK,GACH,EAAQ,YAAc,WAAW,OAAO,EAAQ,EAAO,UACvD,MACF,KAAK,GACH,EAAQ,sBAAwB,oBAAoB,OAClD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,KAAO,KAAK,OAAO,EAAQ,EAAO,UAC1C,MACF,KAAK,GACH,EAAQ,KAAO,KAAK,OAAO,EAAQ,EAAO,UAC1C,MACF,KAAK,GACH,EAAQ,MAAQ,MAAM,OAAO,EAAQ,EAAO,UAC5C,MACF,KAAK,GACH,EAAQ,aAAe,YAAY,OAAO,EAAQ,EAAO,UACzD,MACF,KAAK,GACH,EAAQ,WAAa,UAAU,OAAO,EAAQ,EAAO,UACrD,MACF,KAAK,GACH,EAAQ,YAAc,WAAW,OAAO,EAAQ,EAAO,UACvD,MACF,KAAK,GACH,EAAQ,cAAgB,aAAa,OAAO,EAAQ,EAAO,UAC3D,MACF,KAAK,GACH,EAAQ,aAAe,YAAY,OAAO,EAAQ,EAAO,UACzD,MACF,KAAK,GACH,EAAQ,aAAe,YAAY,OAAO,EAAQ,EAAO,UACzD,MACF,KAAK,GACH,EAAQ,aAAe,YAAY,OAAO,EAAQ,EAAO,UACzD,MACF,KAAK,GACH,EAAQ,YAAc,WAAW,OAAO,EAAQ,EAAO,UACvD,MACF,KAAK,GACH,EAAQ,wBAA0B,qBAAqB,OACrD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,mBAAqB,iBAAiB,OAC5C,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,qBAAuB,mBAAmB,OAChD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,wBAA0B,sBAAsB,OACtD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,wBAA0B,sBAAsB,OACtD,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,WAAa,UAAU,OAAO,EAAQ,EAAO,UACrD,MACF,KAAK,GACH,EAAQ,gBAAkB,cAAc,OACtC,EACA,EAAO,UAET,MACF,KAAK,GACH,EAAQ,qBAAuB,mBAAmB,OAChD,EACA,EAAO,UAET,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,cA6RnC,YA5RmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEO,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,QAAQ,SAAS,EAAO,SAE1C,EAAQ,aAAU,OAEQ,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,SAAS,EAAO,cAEnD,EAAQ,kBAAe,OAEI,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,SAAS,EAAO,eAErD,EAAQ,mBAAgB,OAEK,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,eAAe,SAAS,EAAO,iBAEzD,EAAQ,qBAAkB,OAEO,IAA/B,EAAO,qBAAiE,OAA/B,EAAO,oBAClD,EAAQ,oBAAsB,kBAAkB,SAC9C,EAAO,qBAGT,EAAQ,yBAAsB,OAEI,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,SAChD,EAAO,sBAGT,EAAQ,0BAAuB,OAEK,IAAlC,EAAO,wBAAuE,OAAlC,EAAO,uBACrD,EAAQ,uBAAyB,qBAAqB,SACpD,EAAO,wBAGT,EAAQ,4BAAyB,OAEG,IAAlC,EAAO,wBAAuE,OAAlC,EAAO,uBACrD,EAAQ,uBAAyB,qBAAqB,SACpD,EAAO,wBAGT,EAAQ,4BAAyB,OAEG,IAAlC,EAAO,wBAAuE,OAAlC,EAAO,uBACrD,EAAQ,uBAAyB,qBAAqB,SACpD,EAAO,wBAGT,EAAQ,4BAAyB,OAEd,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,SAAS,EAAO,OAEvC,EAAQ,WAAQ,OAEG,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,MAAM,SAAS,EAAO,OAEtC,EAAQ,WAAQ,OAEU,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,SAAS,EAAO,cAEnD,EAAQ,kBAAe,OAEC,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,SAAS,EAAO,YAE/C,EAAQ,gBAAa,OAEQ,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,cAAc,SAAS,EAAO,iBAExD,EAAQ,qBAAkB,OAEF,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,SAAS,EAAO,YAE/C,EAAQ,gBAAa,OAEI,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,SAAS,EAAO,aAEjD,EAAQ,iBAAc,OAEY,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,SAChD,EAAO,sBAGT,EAAQ,0BAAuB,OAEH,IAA1B,EAAO,gBAAuD,OAA1B,EAAO,eAC7C,EAAQ,eAAiB,cAAc,SAAS,EAAO,gBAEvD,EAAQ,oBAAiB,OAEO,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,mBACjD,EAAQ,mBAAqB,kBAAkB,SAC7C,EAAO,oBAGT,EAAQ,wBAAqB,OAEE,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,kBAChD,EAAQ,kBAAoB,iBAAiB,SAC3C,EAAO,mBAGT,EAAQ,uBAAoB,OAEG,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,kBAChD,EAAQ,kBAAoB,iBAAiB,SAC3C,EAAO,mBAGT,EAAQ,uBAAoB,OAED,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,cAAc,SAAS,EAAO,eAEtD,EAAQ,mBAAgB,OAEP,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,IAAI,SAAS,EAAO,KAElC,EAAQ,SAAM,OAEM,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,SAAS,EAAO,QAExC,EAAQ,YAAS,OAEU,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,SAAS,EAAO,eAErD,EAAQ,mBAAgB,OAEW,IAAjC,EAAO,uBAAqE,OAAjC,EAAO,sBACpD,EAAQ,sBAAwB,oBAAoB,SAClD,EAAO,uBAGT,EAAQ,2BAAwB,OAEH,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,eAAe,SAAS,EAAO,iBAEzD,EAAQ,qBAAkB,OAEC,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,SAAS,EAAO,eAErD,EAAQ,mBAAgB,OAEC,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,SAAS,EAAO,aAEjD,EAAQ,iBAAc,OAEa,IAAjC,EAAO,uBAAqE,OAAjC,EAAO,sBACpD,EAAQ,sBAAwB,oBAAoB,SAClD,EAAO,uBAGT,EAAQ,2BAAwB,OAEd,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,KAAK,SAAS,EAAO,MAEpC,EAAQ,UAAO,OAEG,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,KAAK,SAAS,EAAO,MAEpC,EAAQ,UAAO,OAEI,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,MAAM,SAAS,EAAO,OAEtC,EAAQ,WAAQ,OAEU,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,SAAS,EAAO,cAEnD,EAAQ,kBAAe,OAEC,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,SAAS,EAAO,YAE/C,EAAQ,gBAAa,OAEI,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,SAAS,EAAO,aAEjD,EAAQ,iBAAc,OAEK,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,SAAS,EAAO,eAErD,EAAQ,mBAAgB,OAEE,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,SAAS,EAAO,cAEnD,EAAQ,kBAAe,OAEG,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,SAAS,EAAO,cAEnD,EAAQ,kBAAe,OAEG,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,SAAS,EAAO,cAEnD,EAAQ,kBAAe,OAEE,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,SAAS,EAAO,aAEjD,EAAQ,iBAAc,OAEe,IAAnC,EAAO,yBAAyE,OAAnC,EAAO,wBACtD,EAAQ,wBAA0B,qBAAqB,SACrD,EAAO,yBAGT,EAAQ,6BAA0B,OAEF,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,mBACjD,EAAQ,mBAAqB,iBAAiB,SAC5C,EAAO,oBAGT,EAAQ,wBAAqB,OAEK,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,SAChD,EAAO,sBAGT,EAAQ,0BAAuB,OAEM,IAAnC,EAAO,yBAAyE,OAAnC,EAAO,wBACtD,EAAQ,wBAA0B,sBAAsB,SACtD,EAAO,yBAGT,EAAQ,6BAA0B,OAEG,IAAnC,EAAO,yBAAyE,OAAnC,EAAO,wBACtD,EAAQ,wBAA0B,sBAAsB,SACtD,EAAO,yBAGT,EAAQ,6BAA0B,OAEV,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,SAAS,EAAO,YAE/C,EAAQ,gBAAa,OAEQ,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,cAAc,SAAS,EAAO,iBAExD,EAAQ,qBAAkB,OAEQ,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,SAChD,EAAO,sBAGT,EAAQ,0BAAuB,EAE1B,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAmDb,YAlDgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UACzB,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,QAAU,QAAQ,OAAO,EAAQ,cAAW,QACxE,IAAzB,EAAQ,eAA4B,EAAI,aAAe,EAAQ,aAAe,YAAY,OAAO,EAAQ,mBAAgB,QAC/F,IAA1B,EAAQ,gBAA6B,EAAI,cAAgB,EAAQ,cAAgB,aAAa,OAAO,EAAQ,oBAAiB,QAClG,IAA5B,EAAQ,kBAA+B,EAAI,gBAAkB,EAAQ,gBAAkB,eAAe,OAAO,EAAQ,sBAAmB,QACxG,IAAhC,EAAQ,sBAAmC,EAAI,oBAAsB,EAAQ,oBAAsB,kBAAkB,OAAO,EAAQ,0BAAuB,QAC1H,IAAjC,EAAQ,uBAAoC,EAAI,qBAAuB,EAAQ,qBAAuB,mBAAmB,OAAO,EAAQ,2BAAwB,QAC7H,IAAnC,EAAQ,yBAAsC,EAAI,uBAAyB,EAAQ,uBAAyB,qBAAqB,OAAO,EAAQ,6BAA0B,QACvI,IAAnC,EAAQ,yBAAsC,EAAI,uBAAyB,EAAQ,uBAAyB,qBAAqB,OAAO,EAAQ,6BAA0B,QACvI,IAAnC,EAAQ,yBAAsC,EAAI,uBAAyB,EAAQ,uBAAyB,qBAAqB,OAAO,EAAQ,6BAA0B,QACxJ,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,MAAQ,OAAO,OAAO,EAAQ,YAAS,QACtE,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,MAAQ,MAAM,OAAO,EAAQ,YAAS,QAC9D,IAAzB,EAAQ,eAA4B,EAAI,aAAe,EAAQ,aAAe,YAAY,OAAO,EAAQ,mBAAgB,QAClG,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,WAAa,UAAU,OAAO,EAAQ,iBAAc,QACnF,IAA5B,EAAQ,kBAA+B,EAAI,gBAAkB,EAAQ,gBAAkB,cAAc,OAAO,EAAQ,sBAAmB,QAChH,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,WAAa,UAAU,OAAO,EAAQ,iBAAc,QACvF,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAc,WAAW,OAAO,EAAQ,kBAAe,QACnF,IAAjC,EAAQ,uBAAoC,EAAI,qBAAuB,EAAQ,qBAAuB,mBAAmB,OAAO,EAAQ,2BAAwB,QACrI,IAA3B,EAAQ,iBAA8B,EAAI,eAAiB,EAAQ,eAAiB,cAAc,OAAO,EAAQ,qBAAkB,QACpG,IAA/B,EAAQ,qBAAkC,EAAI,mBAAqB,EAAQ,mBAAqB,kBAAkB,OAAO,EAAQ,yBAAsB,QACzH,IAA9B,EAAQ,oBAAiC,EAAI,kBAAoB,EAAQ,kBAAoB,iBAAiB,OAAO,EAAQ,wBAAqB,QACpH,IAA9B,EAAQ,oBAAiC,EAAI,kBAAoB,EAAQ,kBAAoB,iBAAiB,OAAO,EAAQ,wBAAqB,QACxH,IAA1B,EAAQ,gBAA6B,EAAI,cAAgB,EAAQ,cAAgB,cAAc,OAAO,EAAQ,oBAAiB,QAC/G,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,IAAM,IAAI,OAAO,EAAQ,UAAO,QAC1D,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,OAAS,OAAO,OAAO,EAAQ,aAAU,QAClE,IAA1B,EAAQ,gBAA6B,EAAI,cAAgB,EAAQ,cAAgB,aAAa,OAAO,EAAQ,oBAAiB,QAC5F,IAAlC,EAAQ,wBAAqC,EAAI,sBAAwB,EAAQ,sBAAwB,oBAAoB,OAAO,EAAQ,4BAAyB,QACzI,IAA5B,EAAQ,kBAA+B,EAAI,gBAAkB,EAAQ,gBAAkB,eAAe,OAAO,EAAQ,sBAAmB,QAC9G,IAA1B,EAAQ,gBAA6B,EAAI,cAAgB,EAAQ,cAAgB,aAAa,OAAO,EAAQ,oBAAiB,QACtG,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAc,WAAW,OAAO,EAAQ,kBAAe,QAClF,IAAlC,EAAQ,wBAAqC,EAAI,sBAAwB,EAAQ,sBAAwB,oBAAoB,OAAO,EAAQ,4BAAyB,QACpJ,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,KAAO,KAAK,OAAO,EAAQ,WAAQ,QACjE,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,KAAO,KAAK,OAAO,EAAQ,WAAQ,QAChE,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,MAAQ,MAAM,OAAO,EAAQ,YAAS,QAC9D,IAAzB,EAAQ,eAA4B,EAAI,aAAe,EAAQ,aAAe,YAAY,OAAO,EAAQ,mBAAgB,QAClG,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,WAAa,UAAU,OAAO,EAAQ,iBAAc,QACvF,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAc,WAAW,OAAO,EAAQ,kBAAe,QAC1F,IAA1B,EAAQ,gBAA6B,EAAI,cAAgB,EAAQ,cAAgB,aAAa,OAAO,EAAQ,oBAAiB,QACrG,IAAzB,EAAQ,eAA4B,EAAI,aAAe,EAAQ,aAAe,YAAY,OAAO,EAAQ,mBAAgB,QAChG,IAAzB,EAAQ,eAA4B,EAAI,aAAe,EAAQ,aAAe,YAAY,OAAO,EAAQ,mBAAgB,QAChG,IAAzB,EAAQ,eAA4B,EAAI,aAAe,EAAQ,aAAe,YAAY,OAAO,EAAQ,mBAAgB,QACjG,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAc,WAAW,OAAO,EAAQ,kBAAe,QAChF,IAApC,EAAQ,0BAAuC,EAAI,wBAA0B,EAAQ,wBAA0B,qBAAqB,OAAO,EAAQ,8BAA2B,QAC/I,IAA/B,EAAQ,qBAAkC,EAAI,mBAAqB,EAAQ,mBAAqB,iBAAiB,OAAO,EAAQ,yBAAsB,QACrH,IAAjC,EAAQ,uBAAoC,EAAI,qBAAuB,EAAQ,qBAAuB,mBAAmB,OAAO,EAAQ,2BAAwB,QAC5H,IAApC,EAAQ,0BAAuC,EAAI,wBAA0B,EAAQ,wBAA0B,sBAAsB,OAAO,EAAQ,8BAA2B,QAC3I,IAApC,EAAQ,0BAAuC,EAAI,wBAA0B,EAAQ,wBAA0B,sBAAsB,OAAO,EAAQ,8BAA2B,QACxJ,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,WAAa,UAAU,OAAO,EAAQ,iBAAc,QACnF,IAA5B,EAAQ,kBAA+B,EAAI,gBAAkB,EAAQ,gBAAkB,cAAc,OAAO,EAAQ,sBAAmB,QACtG,IAAjC,EAAQ,uBAAoC,EAAI,qBAAuB,EAAQ,qBAAuB,mBAAmB,OAAO,EAAQ,2BAAwB,GACzJ,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,cAqSnC,YApSmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEO,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,QAAQ,YAAY,EAAO,SAE7C,EAAQ,aAAU,OAEQ,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,YAAY,EAAO,cAEtD,EAAQ,kBAAe,OAEI,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,YAAY,EAAO,eAExD,EAAQ,mBAAgB,OAEK,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,eAAe,YACvC,EAAO,iBAGT,EAAQ,qBAAkB,OAEO,IAA/B,EAAO,qBAAiE,OAA/B,EAAO,oBAClD,EAAQ,oBAAsB,kBAAkB,YAC9C,EAAO,qBAGT,EAAQ,yBAAsB,OAEI,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,YAChD,EAAO,sBAGT,EAAQ,0BAAuB,OAEK,IAAlC,EAAO,wBAAuE,OAAlC,EAAO,uBACrD,EAAQ,uBAAyB,qBAAqB,YACpD,EAAO,wBAGT,EAAQ,4BAAyB,OAEG,IAAlC,EAAO,wBAAuE,OAAlC,EAAO,uBACrD,EAAQ,uBAAyB,qBAAqB,YACpD,EAAO,wBAGT,EAAQ,4BAAyB,OAEG,IAAlC,EAAO,wBAAuE,OAAlC,EAAO,uBACrD,EAAQ,uBAAyB,qBAAqB,YACpD,EAAO,wBAGT,EAAQ,4BAAyB,OAEd,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,YAAY,EAAO,OAE1C,EAAQ,WAAQ,OAEG,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,MAAM,YAAY,EAAO,OAEzC,EAAQ,WAAQ,OAEU,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,YAAY,EAAO,cAEtD,EAAQ,kBAAe,OAEC,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,YAAY,EAAO,YAElD,EAAQ,gBAAa,OAEQ,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,cAAc,YACtC,EAAO,iBAGT,EAAQ,qBAAkB,OAEF,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,YAAY,EAAO,YAElD,EAAQ,gBAAa,OAEI,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,YAAY,EAAO,aAEpD,EAAQ,iBAAc,OAEY,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,YAChD,EAAO,sBAGT,EAAQ,0BAAuB,OAEH,IAA1B,EAAO,gBAAuD,OAA1B,EAAO,eAC7C,EAAQ,eAAiB,cAAc,YAAY,EAAO,gBAE1D,EAAQ,oBAAiB,OAEO,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,mBACjD,EAAQ,mBAAqB,kBAAkB,YAC7C,EAAO,oBAGT,EAAQ,wBAAqB,OAEE,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,kBAChD,EAAQ,kBAAoB,iBAAiB,YAC3C,EAAO,mBAGT,EAAQ,uBAAoB,OAEG,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,kBAChD,EAAQ,kBAAoB,iBAAiB,YAC3C,EAAO,mBAGT,EAAQ,uBAAoB,OAED,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,cAAc,YAAY,EAAO,eAEzD,EAAQ,mBAAgB,OAEP,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,IAAI,YAAY,EAAO,KAErC,EAAQ,SAAM,OAEM,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,YAAY,EAAO,QAE3C,EAAQ,YAAS,OAEU,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,YAAY,EAAO,eAExD,EAAQ,mBAAgB,OAEW,IAAjC,EAAO,uBAAqE,OAAjC,EAAO,sBACpD,EAAQ,sBAAwB,oBAAoB,YAClD,EAAO,uBAGT,EAAQ,2BAAwB,OAEH,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,eAAe,YACvC,EAAO,iBAGT,EAAQ,qBAAkB,OAEC,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,YAAY,EAAO,eAExD,EAAQ,mBAAgB,OAEC,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,YAAY,EAAO,aAEpD,EAAQ,iBAAc,OAEa,IAAjC,EAAO,uBAAqE,OAAjC,EAAO,sBACpD,EAAQ,sBAAwB,oBAAoB,YAClD,EAAO,uBAGT,EAAQ,2BAAwB,OAEd,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,KAAK,YAAY,EAAO,MAEvC,EAAQ,UAAO,OAEG,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,KAAK,YAAY,EAAO,MAEvC,EAAQ,UAAO,OAEI,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,MAAM,YAAY,EAAO,OAEzC,EAAQ,WAAQ,OAEU,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,YAAY,EAAO,cAEtD,EAAQ,kBAAe,OAEC,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,YAAY,EAAO,YAElD,EAAQ,gBAAa,OAEI,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,YAAY,EAAO,aAEpD,EAAQ,iBAAc,OAEK,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,aAAa,YAAY,EAAO,eAExD,EAAQ,mBAAgB,OAEE,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,YAAY,EAAO,cAEtD,EAAQ,kBAAe,OAEG,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,YAAY,EAAO,cAEtD,EAAQ,kBAAe,OAEG,IAAxB,EAAO,cAAmD,OAAxB,EAAO,aAC3C,EAAQ,aAAe,YAAY,YAAY,EAAO,cAEtD,EAAQ,kBAAe,OAEE,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,WAAW,YAAY,EAAO,aAEpD,EAAQ,iBAAc,OAEe,IAAnC,EAAO,yBAAyE,OAAnC,EAAO,wBACtD,EAAQ,wBAA0B,qBAAqB,YACrD,EAAO,yBAGT,EAAQ,6BAA0B,OAEF,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,mBACjD,EAAQ,mBAAqB,iBAAiB,YAC5C,EAAO,oBAGT,EAAQ,wBAAqB,OAEK,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,YAChD,EAAO,sBAGT,EAAQ,0BAAuB,OAEM,IAAnC,EAAO,yBAAyE,OAAnC,EAAO,wBACtD,EAAQ,wBAA0B,sBAAsB,YACtD,EAAO,yBAGT,EAAQ,6BAA0B,OAEG,IAAnC,EAAO,yBAAyE,OAAnC,EAAO,wBACtD,EAAQ,wBAA0B,sBAAsB,YACtD,EAAO,yBAGT,EAAQ,6BAA0B,OAEV,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,UAAU,YAAY,EAAO,YAElD,EAAQ,gBAAa,OAEQ,IAA3B,EAAO,iBAAyD,OAA3B,EAAO,gBAC9C,EAAQ,gBAAkB,cAAc,YACtC,EAAO,iBAGT,EAAQ,qBAAkB,OAEQ,IAAhC,EAAO,sBAAmE,OAAhC,EAAO,qBACnD,EAAQ,qBAAuB,mBAAmB,YAChD,EAAO,sBAGT,EAAQ,0BAAuB,EAE1B,CACT,GAEE,YAAc,CAChB,GAAI,GACJ,UAAW,GACX,SAAU,GACV,YAAa,GACb,YAAa,IAEX,QAAU,CACZ,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UACnC,KAAf,EAAQ,IACV,EAAO,OAAO,IAAI,OAAO,EAAQ,IAEnC,IAAK,MAAM,KAAK,EAAQ,UACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAiBnD,YAfqB,IAAjB,EAAQ,MACV,aAAa,OAAO,EAAQ,KAAM,EAAO,OAAO,IAAI,QAAQ,SAEpC,KAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAE5B,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,aAEnC,IADA,EAAQ,UAAY,GACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,GAAK,EAAO,SACpB,MACF,KAAK,EACH,EAAQ,UAAU,KAAK,aAAa,OAAO,EAAQ,EAAO,WAC1D,MACF,KAAK,EACH,EAAQ,KAAO,aAAa,OAAO,EAAQ,EAAO,UAClD,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,SAC3B,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,YAAc,EAAO,SAC7B,MACF,KAAK,EACH,EAAQ,YAAc,EAAO,SAC7B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,aAOnC,GANA,EAAQ,UAAY,QACF,IAAd,EAAO,IAA+B,OAAd,EAAO,GACjC,EAAQ,GAAK,OAAO,EAAO,IAE3B,EAAQ,GAAK,QAEU,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,SAAS,IA4BjD,YAzBoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,aAAa,SAAS,EAAO,MAE5C,EAAQ,UAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,GAEjB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAcb,YAbe,IAAf,EAAQ,KAAkB,EAAI,GAAK,EAAQ,IACvC,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAC/B,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,UAAY,QAED,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,KAAO,aAAa,OAAO,EAAQ,WAAQ,QACpE,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACpC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC/B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,kBACrC,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,aACtD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,aAOnC,GANA,EAAQ,UAAY,QACF,IAAd,EAAO,IAA+B,OAAd,EAAO,GACjC,EAAQ,GAAK,EAAO,GAEpB,EAAQ,GAAK,QAEU,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,YAAY,IA4BpD,YAzBoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,aAAa,YAAY,EAAO,MAE/C,EAAQ,UAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,GAEjB,CACT,GAEE,gBAAkB,CAAE,OAAQ,GAAI,KAAM,GACtC,YAAc,CAChB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC/B,KAAnB,EAAQ,QACV,EAAO,OAAO,IAAI,OAAO,EAAQ,QAEd,IAAjB,EAAQ,MACV,EAAO,OAAO,IAAI,MAAM,EAAQ,WAEN,IAAxB,EAAQ,aACV,UAAU,OACR,CAAE,MAAO,EAAQ,aACjB,EAAO,OAAO,IAAI,QAClB,cAEmB,IAAnB,EAAQ,QACV,UAAU,OACR,CAAE,MAAO,EAAQ,QACjB,EAAO,OAAO,IAAI,QAClB,SAEG,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,OAAS,EAAO,SACxB,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,YAAc,UAAU,OAAO,EAAQ,EAAO,UAAU,MAChE,MACF,KAAK,EACH,EAAQ,OAAS,UAAU,OAAO,EAAQ,EAAO,UAAU,MAC3D,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,iBAqBnC,YApBsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,OAAS,QAEC,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,KAAO,OAEU,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,QAAQ,EAAO,aAErC,EAAQ,iBAAc,OAEF,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,QAAQ,EAAO,QAEhC,EAAQ,YAAS,EAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAKb,YAJmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,aAClC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WACvB,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,kBAC1C,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,iBAqBnC,YApBsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,OAAS,QAEC,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,OAEU,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,iBAAc,OAEF,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,YAAS,EAEZ,CACT,GAEE,iBAAmB,CAAE,WAAY,IACjC,aAAe,CACjB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,kBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,WAAa,EAAO,cAG5B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,kBAMnC,YAL0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,GAEhB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,YACpD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,kBAMnC,YAL0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,GAEhB,CACT,GAEE,sBAAwB,CAC1B,WAAY,GACZ,WAAY,GACZ,SAAU,GACV,UAAW,GACX,SAAU,GACV,YAAa,GACb,YAAa,IAEX,kBAAoB,CACtB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAER,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,iBAEd,IAAjB,EAAQ,MACV,WAAW,OACT,CAAE,MAAO,EAAQ,MACjB,EAAO,OAAO,IAAI,QAClB,SAEqB,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEP,IAAxB,EAAQ,aACV,UAAU,OACR,aAAa,EAAQ,aACrB,EAAO,OAAO,IAAI,QAClB,cAEwB,IAAxB,EAAQ,aACV,UAAU,OACR,aAAa,EAAQ,aACrB,EAAO,OAAO,IAAI,QAClB,cAEuB,IAAvB,EAAQ,YACV,UAAU,OACR,CAAE,MAAO,EAAQ,YACjB,EAAO,OAAO,IAAI,QAClB,SAEsB,KAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,uBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,KAAO,WAAW,OAAO,EAAQ,EAAO,UAAU,MAC1D,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,YAAc,eACpB,UAAU,OAAO,EAAQ,EAAO,WAElC,MACF,KAAK,EACH,EAAQ,YAAc,eACpB,UAAU,OAAO,EAAQ,EAAO,WAElC,MACF,KAAK,EACH,EAAQ,WAAa,UAAU,OAAO,EAAQ,EAAO,UAAU,MAC/D,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,SAC3B,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,GACH,EAAQ,YAAc,EAAO,SAC7B,MACF,KAAK,GACH,EAAQ,YAAc,EAAO,SAC7B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,uBAwDnC,YAvD0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEH,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,UAAO,OAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,mBAAmB,EAAO,aAEhD,EAAQ,iBAAc,OAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,mBAAmB,EAAO,aAEhD,EAAQ,iBAAc,OAEE,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,QAAQ,EAAO,YAEpC,EAAQ,gBAAa,OAEE,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,GAEjB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAYb,YAXuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACpC,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBAC1C,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WAC1B,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC/B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAY,oBACjD,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,YAAY,oBAClD,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACrC,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACpC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC/B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,kBACrC,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,aACtD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,uBAwDnC,YAvD0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEH,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,UAAO,OAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,iBAAc,OAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,iBAAc,OAEE,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,gBAAa,OAEE,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,GAEjB,CACT,GAEE,uBAAyB,CAAE,WAAY,GAAI,QAAS,IACpD,mBAAqB,CACvB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAEX,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,wBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,wBAWnC,YAV0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEA,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,GAEb,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACvC,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,SAC9C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,wBAWnC,YAV0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEA,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,GAEb,CACT,GAEE,yBAA2B,CAC7B,WAAY,GACZ,WAAY,GACZ,QAAS,IAEP,qBAAuB,CACzB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAER,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAEX,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,0BACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,0BAgBnC,YAf0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEA,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,GAEb,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAIb,YAHuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACpC,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACvC,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,SAC9C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,0BAgBnC,YAf0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEA,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,GAEb,CACT,GAEE,yBAA2B,CAAE,WAAY,GAAI,WAAY,IACzD,qBAAuB,CACzB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAER,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,0BACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,0BAWnC,YAV0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,GAEhB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACpC,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,YACpD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,0BAWnC,YAV0B,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEG,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,GAEhB,CACT,GAEE,yBAA2B,CAC7B,WAAY,GACZ,UAAW,GACX,SAAU,GACV,YAAa,GACb,YAAa,IAEX,qBAAuB,CACzB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC3B,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAEnC,IAAK,MAAM,KAAK,EAAQ,MACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,IAAK,MAAM,KAAK,EAAQ,OACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAcnD,MAZ0B,KAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAEP,KAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAE5B,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,0BAGnC,IAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,GACV,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,MAAM,KAAK,aAAa,OAAO,EAAQ,EAAO,WACtD,MACF,KAAK,EACH,EAAQ,OAAO,KAAK,aAAa,OAAO,EAAQ,EAAO,WACvD,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,SAC3B,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,YAAc,EAAO,SAC7B,MACF,KAAK,EACH,EAAQ,YAAc,EAAO,SAC7B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,0BAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACS,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEF,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,SAAS,IAG7C,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,SAAS,IAuB9C,YApByB,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,OAAO,EAAO,aAEpC,EAAQ,YAAc,GAEjB,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAoBb,YAnBuB,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,YACvD,EAAQ,MACV,EAAI,MAAQ,EAAQ,MAAM,KACvB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,MAAQ,GAEV,EAAQ,OACV,EAAI,OAAS,EAAQ,OAAO,KACzB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,OAAS,QAEO,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACpC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC/B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,kBACrC,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,aACtD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,0BAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACS,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEF,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,YAAY,IAGhD,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,YAAY,IAuBjD,YApByB,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,QAEE,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,QAEG,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,YAAc,GAEjB,CACT,GAEE,UAAY,CAAE,KAAM,EAAG,QAAS,IAChC,OAAS,CACX,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YACjC,IAAjB,EAAQ,MACV,EAAO,OAAO,GAAG,MAAM,EAAQ,MAET,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAEnC,OAAO,QAAQ,EAAQ,SAAS,SAAQ,EAAE,EAAK,MAC7C,mBAAmB,OACjB,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEL,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,WAEnC,IADA,EAAQ,QAAU,CAAC,EACZ,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,MAAM,EAAS,mBAAmB,OAAO,EAAQ,EAAO,eACnC,IAAjB,EAAO,QACT,EAAQ,QAAQ,EAAO,KAAO,EAAO,OAEvC,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,WAiBnC,OAhBA,EAAQ,QAAU,CAAC,OACC,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,KAAO,OAEM,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEG,IAAnB,EAAO,SAAyC,OAAnB,EAAO,SACtC,OAAO,QAAQ,EAAO,SAAS,SAAQ,EAAE,EAAK,MAC5C,EAAQ,QAAQ,GAAO,OAAO,EAAM,IAGjC,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EASb,YARiB,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WAC3B,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,SACrD,EAAI,QAAU,CAAC,EACX,EAAQ,SACV,OAAO,QAAQ,EAAQ,SAAS,SAAQ,EAAE,EAAG,MAC3C,EAAI,QAAQ,GAAK,CAAC,IAGf,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,WAmBnC,OAlBA,EAAQ,QAAU,CAAC,OACC,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,OAEM,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEG,IAAnB,EAAO,SAAyC,OAAnB,EAAO,SACtC,OAAO,QAAQ,EAAO,SAAS,SAAQ,EAAE,EAAK,WAC9B,IAAV,IACF,EAAQ,QAAQ,GAAO,OAAO,GAChC,IAGG,CACT,GAEE,uBAAyB,CAAE,IAAK,GAAI,MAAO,IAC3C,mBAAqB,CACvB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,wBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,wBAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,GAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,wBAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,GAEX,CACT,GAEE,UAAY,CAAE,SAAU,GAAI,eAAe,EAAO,KAAM,GACxD,MAAQ,CACV,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEL,IAA1B,EAAQ,eACV,EAAO,OAAO,IAAI,KAAK,EAAQ,oBAEX,IAAlB,EAAQ,OACV,YAAY,OACV,CAAE,MAAO,EAAQ,OACjB,EAAO,OAAO,IAAI,QAClB,SAEiB,IAAjB,EAAQ,MACV,EAAO,OAAO,IAAI,MAAM,EAAQ,MAElC,IAAK,MAAM,KAAK,EAAQ,UACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAKnD,YAHqB,IAAjB,EAAQ,MACV,aAAa,OAAO,EAAQ,KAAM,EAAO,OAAO,IAAI,QAAQ,SAEvD,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,WAEnC,IADA,EAAQ,UAAY,GACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,cAAgB,EAAO,OAC/B,MACF,KAAK,EACH,EAAQ,MAAQ,YAAY,OAAO,EAAQ,EAAO,UAAU,MAC5D,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,UAAU,KAAK,aAAa,OAAO,EAAQ,EAAO,WAC1D,MACF,KAAK,EACH,EAAQ,KAAO,aAAa,OAAO,EAAQ,EAAO,UAClD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,WAsBnC,GArBA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEQ,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,QAAQ,EAAO,eAEvC,EAAQ,eAAgB,OAEL,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,WAAQ,OAEE,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,KAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,SAAS,IAQjD,YALoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,aAAa,SAAS,EAAO,MAE5C,EAAQ,UAAO,EAEV,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAab,YAZqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC7B,IAA1B,EAAQ,gBAA6B,EAAI,cAAgB,EAAQ,oBAC/C,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,YAChC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,MAC3C,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAC/B,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,UAAY,QAED,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,KAAO,aAAa,OAAO,EAAQ,WAAQ,GACnF,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,WAsBnC,GArBA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEQ,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,EAAQ,cAAgB,EAAO,cAE/B,EAAQ,eAAgB,OAEL,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,WAAQ,OAEE,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,OAEQ,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,YAAY,IAQpD,YALoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,aAAa,YAAY,EAAO,MAE/C,EAAQ,UAAO,EAEV,CACT,GAEE,gBAAkB,CAAC,EACnB,YAAc,CAChB,OAAM,CAAC,EAAG,EAAS,gBAAgB,QAAQ,OAAO,WACzC,EAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SAGf,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,SAAS,GACS,eAAe,CAAC,EAAG,iBAGrC,OAAO,IACO,CAAC,GAGf,YAAY,GACM,eAAe,CAAC,EAAG,kBAInC,cAAgB,CAAE,SAAU,GAAI,QAAS,EAAG,UAAU,GACtD,UAAY,CACd,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEV,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAE1C,IAApB,EAAQ,SACV,EAAO,OAAO,IAAI,MAAM,EAAQ,SAEN,IAAxB,EAAQ,KAAK,QACf,EAAO,OAAO,IAAI,MAAM,EAAQ,OAET,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,KAAK,EAAQ,UAE1B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,eAEnC,IADA,EAAQ,KAAO,IAAI,WACZ,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,KAAK,EACH,EAAQ,QAAU,cAAc,EAAO,SACvC,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,OAC1B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,eAyBnC,OAxBA,EAAQ,KAAO,IAAI,gBACK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,OAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,OACnC,EAAQ,KAAO,gBAAgB,EAAO,YAEhB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,QAAQ,EAAO,UAElC,EAAQ,UAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAQb,YAPqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAClC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,QACtF,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACpC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,qBACpB,IAAjB,EAAQ,KAAkB,EAAQ,KAAO,IAAI,kBAE1B,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,eA0BnC,YAzBwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,OAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,IAAI,gBAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,UAAW,EAEd,CACT,GAEE,kBAAoB,CAAE,SAAU,GAAI,QAAS,EAAG,UAAU,GAC1D,cAAgB,CAClB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEX,IAApB,EAAQ,SACV,EAAO,OAAO,IAAI,MAAM,EAAQ,SAEN,IAAxB,EAAQ,KAAK,QACf,EAAO,OAAO,IAAI,MAAM,EAAQ,MAElC,IAAK,MAAM,KAAK,EAAQ,UACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAKnD,OAHyB,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,KAAK,EAAQ,UAE1B,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,mBAGnC,IAFA,EAAQ,UAAY,GACpB,EAAQ,KAAO,IAAI,WACZ,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,QAAU,cAAc,EAAO,SACvC,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,UAAU,KAAK,aAAa,OAAO,EAAQ,EAAO,WAC1D,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,OAC1B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,mBAgBnC,GAfA,EAAQ,UAAY,GACpB,EAAQ,KAAO,IAAI,gBACK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,OACnC,EAAQ,KAAO,gBAAgB,EAAO,YAEf,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,SAAS,IAQjD,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,QAAQ,EAAO,UAElC,EAAQ,UAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAcb,YAbqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACnC,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACpC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,qBACpB,IAAjB,EAAQ,KAAkB,EAAQ,KAAO,IAAI,aAE3C,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAC/B,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,UAAY,QAEG,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,mBAiBnC,GAhBA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,IAAI,gBAEI,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,YAAY,IAQpD,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,UAAW,EAEd,CACT,GAEE,cAAgB,CAAC,EACjB,UAAY,CACd,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,iBAC7B,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEb,IAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAEnC,OAAO,QAAQ,EAAQ,UAAU,SAAQ,EAAE,EAAK,MAC9C,wBAAwB,OACtB,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEL,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,eAEnC,IADA,EAAQ,SAAW,CAAC,EACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,KAAK,EACH,MAAM,EAAS,wBAAwB,OACrC,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,SAAS,EAAO,KAAO,EAAO,OAExC,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,eAiBnC,OAhBA,EAAQ,SAAW,CAAC,OACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,cAAW,OAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,WAAQ,OAEM,IAApB,EAAO,UAA2C,OAApB,EAAO,UACvC,OAAO,QAAQ,EAAO,UAAU,SAAQ,EAAE,EAAK,MAC7C,EAAQ,SAAS,GAAO,OAAO,EAAM,IAGlC,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EASb,YARqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACrC,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OACjD,EAAI,SAAW,CAAC,EACZ,EAAQ,UACV,OAAO,QAAQ,EAAQ,UAAU,SAAQ,EAAE,EAAG,MAC5C,EAAI,SAAS,GAAK,CAAC,IAGhB,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,eAmBnC,OAlBA,EAAQ,SAAW,CAAC,OACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,cAAW,OAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,WAAQ,OAEM,IAApB,EAAO,UAA2C,OAApB,EAAO,UACvC,OAAO,QAAQ,EAAO,UAAU,SAAQ,EAAE,EAAK,WAC/B,IAAV,IACF,EAAQ,SAAS,GAAO,OAAO,GACjC,IAGG,CACT,GAEE,4BAA8B,CAAE,IAAK,GAAI,MAAO,IAChD,wBAA0B,CAC5B,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,6BACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,6BAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,GAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,6BAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,GAEX,CACT,GAEE,eAAiB,CAAE,SAAU,IAC7B,WAAa,CACf,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,gBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,SAAW,EAAO,cAG1B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,gBAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,GAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,gBAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,GAEd,CACT,GAEE,uBAAyB,CAAE,SAAU,IACrC,mBAAqB,CACvB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEnC,IAAK,MAAM,KAAK,EAAQ,MACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,IAAK,MAAM,KAAK,EAAQ,OACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,wBAGnC,IAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,GACV,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,MAAM,KAAK,aAAa,OAAO,EAAQ,EAAO,WACtD,MACF,KAAK,EACH,EAAQ,OAAO,KAAK,aAAa,OAAO,EAAQ,EAAO,WACvD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,wBAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,SAAS,IAG7C,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,SAAS,IAG9C,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAgBb,YAfqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UACnD,EAAQ,MACV,EAAI,MAAQ,EAAQ,MAAM,KACvB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,MAAQ,GAEV,EAAQ,OACV,EAAI,OAAS,EAAQ,OAAO,KACzB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,OAAS,GAER,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,wBAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,YAAY,IAGhD,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,YAAY,IAGjD,OAAO,CACT,GAEE,kBAAoB,CAAE,UAAW,EAAG,UAAW,EAAG,MAAO,IACzD,cAAgB,CAClB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC5B,IAAtB,EAAQ,WACV,EAAO,OAAO,GAAG,MAAM,EAAQ,WAEP,IAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,MAAM,EAAQ,WAEZ,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAEnC,OAAO,QAAQ,EAAQ,mBAAmB,SAAQ,EAAE,EAAK,MACvD,oCAAoC,OAClC,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEZ,OAAO,QAAQ,EAAQ,oBAAoB,SAAQ,EAAE,EAAK,MACxD,qCAAqC,OACnC,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEL,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,mBAGnC,IAFA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,EACvB,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,UAAY,EAAO,QAC3B,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,QAC3B,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,KAAK,EACH,MAAM,EAAS,oCAAoC,OACjD,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,kBAAkB,EAAO,KAAO,EAAO,OAEjD,MACF,KAAK,EACH,MAAM,EAAS,qCAAqC,OAClD,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,mBAAmB,EAAO,KAAO,EAAO,OAElD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,mBA4BnC,OA3BA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,OACL,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,OAEG,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,OAED,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,QAEe,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,mBAChD,OAAO,QAAQ,EAAO,mBAAmB,SAAQ,EAAE,EAAK,MACtD,EAAQ,kBAAkB,GAAO,OAAO,EAAM,SAGhB,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,oBACjD,OAAO,QAAQ,EAAO,oBAAoB,SAAQ,EAAE,EAAK,MACvD,EAAQ,mBAAmB,GAAO,OAAO,EAAM,IAG5C,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAgBb,YAfsB,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACnC,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACvC,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OACjD,EAAI,kBAAoB,CAAC,EACrB,EAAQ,mBACV,OAAO,QAAQ,EAAQ,mBAAmB,SAAQ,EAAE,EAAG,MACrD,EAAI,kBAAkB,GAAK,CAAC,IAGhC,EAAI,mBAAqB,CAAC,EACtB,EAAQ,oBACV,OAAO,QAAQ,EAAQ,oBAAoB,SAAQ,EAAE,EAAG,MACtD,EAAI,mBAAmB,GAAK,CAAC,IAG1B,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,mBAgCnC,OA/BA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,OACL,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,OAEG,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,OAED,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,QAEe,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,mBAChD,OAAO,QAAQ,EAAO,mBAAmB,SAAQ,EAAE,EAAK,WACxC,IAAV,IACF,EAAQ,kBAAkB,GAAO,OAAO,GAC1C,SAG8B,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,oBACjD,OAAO,QAAQ,EAAO,oBAAoB,SAAQ,EAAE,EAAK,WACzC,IAAV,IACF,EAAQ,mBAAmB,GAAO,OAAO,GAC3C,IAGG,CACT,GAEE,wCAA0C,CAAE,IAAK,GAAI,MAAO,IAC5D,oCAAsC,CACxC,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,yCACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,yCAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,GAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,yCAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,GAEX,CACT,GAEE,yCAA2C,CAAE,IAAK,GAAI,MAAO,GAC7D,qCAAuC,CACzC,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,IAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,0CACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,0CAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,EAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,0CAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,EAEX,CACT,GAEE,sBAAwB,CAAE,OAAQ,IAClC,kBAAoB,CACtB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC/B,KAAnB,EAAQ,QACV,EAAO,OAAO,IAAI,OAAO,EAAQ,aAEV,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEb,IAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAEnC,IAAK,MAAM,KAAK,EAAQ,MACtB,iCAAiC,OAC/B,EACA,EAAO,OAAO,IAAI,QAClB,SAQJ,YANqB,IAAjB,EAAQ,MACV,iCAAiC,OAC/B,EAAQ,KACR,EAAO,OAAO,IAAI,QAClB,SAEG,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,uBAEnC,IADA,EAAQ,MAAQ,GACT,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,OAAS,EAAO,SACxB,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,KAAK,EACH,EAAQ,MAAM,KACZ,iCAAiC,OAAO,EAAQ,EAAO,WAEzD,MACF,KAAK,EACH,EAAQ,KAAO,iCAAiC,OAC9C,EACA,EAAO,UAET,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,uBAiBnC,GAhBA,EAAQ,MAAQ,QACM,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,OAAS,QAEK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,cAAW,OAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,WAAQ,OAEG,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,iCAAiC,SAAS,IAQjE,YALoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,iCAAiC,SAAS,EAAO,MAEhE,EAAQ,UAAO,EAEV,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAYb,YAXmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,aAC9B,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACrC,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC7C,EAAQ,MACV,EAAI,MAAQ,EAAQ,MAAM,KACvB,GAAM,EAAI,iCAAiC,OAAO,QAAK,IAG1D,EAAI,MAAQ,QAEG,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,KAAO,iCAAiC,OAAO,EAAQ,WAAQ,GACvG,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,uBAiBnC,GAhBA,EAAQ,MAAQ,QACM,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,OAAS,QAEK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,cAAW,OAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,WAAQ,OAEG,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,iCAAiC,YAAY,IAQpE,YALoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,iCAAiC,YAAY,EAAO,MAEnE,EAAQ,UAAO,EAEV,CACT,GAEE,qCAAuC,CAAE,SAAU,IACnD,iCAAmC,CACrC,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,iBAC7B,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAEzC,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEnC,OAAO,QAAQ,EAAQ,mBAAmB,SAAQ,EAAE,EAAK,MACvD,uDAAuD,OACrD,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEZ,OAAO,QAAQ,EAAQ,oBAAoB,SAAQ,EAAE,EAAK,MACxD,wDAAwD,OACtD,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEL,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,sCAGnC,IAFA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,EACvB,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,MAAM,EAAS,uDAAuD,OACpE,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,kBAAkB,EAAO,KAAO,EAAO,OAEjD,MACF,KAAK,EACH,MAAM,EAAS,wDAAwD,OACrE,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,mBAAmB,EAAO,KAAO,EAAO,OAElD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,sCAuBnC,OAtBA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,OACN,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,OAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEY,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,mBAChD,OAAO,QAAQ,EAAO,mBAAmB,SAAQ,EAAE,EAAK,MACtD,EAAQ,kBAAkB,GAAO,OAAO,EAAM,SAGhB,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,oBACjD,OAAO,QAAQ,EAAO,oBAAoB,SAAQ,EAAE,EAAK,MACvD,EAAQ,mBAAmB,GAAO,OAAO,EAAM,IAG5C,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAeb,YAdqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,QACrF,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UACvD,EAAI,kBAAoB,CAAC,EACrB,EAAQ,mBACV,OAAO,QAAQ,EAAQ,mBAAmB,SAAQ,EAAE,EAAG,MACrD,EAAI,kBAAkB,GAAK,CAAC,IAGhC,EAAI,mBAAqB,CAAC,EACtB,EAAQ,oBACV,OAAO,QAAQ,EAAQ,oBAAoB,SAAQ,EAAE,EAAG,MACtD,EAAI,mBAAmB,GAAK,CAAC,IAG1B,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,sCA2BnC,OA1BA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,OACN,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,OAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEY,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,mBAChD,OAAO,QAAQ,EAAO,mBAAmB,SAAQ,EAAE,EAAK,WACxC,IAAV,IACF,EAAQ,kBAAkB,GAAO,OAAO,GAC1C,SAG8B,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,oBACjD,OAAO,QAAQ,EAAO,oBAAoB,SAAQ,EAAE,EAAK,WACzC,IAAV,IACF,EAAQ,mBAAmB,GAAO,OAAO,GAC3C,IAGG,CACT,GAEE,2DAA6D,CAC/D,IAAK,GACL,MAAO,IAEL,uDAAyD,CAC3D,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,4DACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,4DAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,GAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,4DAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,GAEX,CACT,GAEE,4DAA8D,CAChE,IAAK,GACL,MAAO,GAEL,wDAA0D,CAC5D,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,IAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,6DACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,6DAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,EAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,6DAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,EAEX,CACT,GAEE,qBAAuB,CAAE,OAAQ,IACjC,iBAAmB,CACrB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC/B,KAAnB,EAAQ,QACV,EAAO,OAAO,IAAI,OAAO,EAAQ,QAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,sBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,OAAS,EAAO,cAGxB,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,sBAMnC,YALsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,OAAS,GAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,sBAMnC,YALsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,OAAS,GAEZ,CACT,GAEE,qBAAuB,CAAE,OAAQ,IACjC,iBAAmB,CACrB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC/B,KAAnB,EAAQ,QACV,EAAO,OAAO,IAAI,OAAO,EAAQ,QAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,sBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,OAAS,EAAO,cAGxB,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,sBAMnC,YALsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,OAAS,GAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,sBAMnC,YALsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,OAAS,GAEZ,CACT,GAEE,kBAAoB,CAAC,EACrB,cAAgB,CAClB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UACtD,IAAK,MAAM,KAAK,EAAQ,cACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,mBAEnC,IADA,EAAQ,cAAgB,GACjB,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,cAAc,KACpB,aAAa,OAAO,EAAQ,EAAO,gBAIrC,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,mBAEnC,GADA,EAAQ,cAAgB,QACK,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,IAAK,MAAM,KAAK,EAAO,cACrB,EAAQ,cAAc,KAAK,aAAa,SAAS,IAGrD,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAQb,OAPI,EAAQ,cACV,EAAI,cAAgB,EAAQ,cAAc,KACvC,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,cAAgB,GAEf,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,mBAEnC,GADA,EAAQ,cAAgB,QACK,IAAzB,EAAO,eAAqD,OAAzB,EAAO,cAC5C,IAAK,MAAM,KAAK,EAAO,cACrB,EAAQ,cAAc,KAAK,aAAa,YAAY,IAGxD,OAAO,CACT,GAEE,UAAY,CAAE,SAAU,GAAI,MAAM,EAAO,SAAU,GACnD,MAAQ,CACV,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEd,IAAjB,EAAQ,MACV,EAAO,OAAO,IAAI,KAAK,EAAQ,MAER,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,MAAM,EAAQ,eAEb,IAAjB,EAAQ,MACV,aAAa,OAAO,EAAQ,KAAM,EAAO,OAAO,IAAI,QAAQ,cAEvC,IAAnB,EAAQ,QACV,aAAa,OAAO,EAAQ,OAAQ,EAAO,OAAO,IAAI,QAAQ,SAEhE,IAAK,MAAM,KAAK,EAAQ,UACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,WAEnC,IADA,EAAQ,UAAY,GACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,OACtB,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,QAC1B,MACF,KAAK,EACH,EAAQ,KAAO,aAAa,OAAO,EAAQ,EAAO,UAClD,MACF,KAAK,EACH,EAAQ,OAAS,aAAa,OAAO,EAAQ,EAAO,UACpD,MACF,KAAK,EACH,EAAQ,UAAU,KAAK,aAAa,OAAO,EAAQ,EAAO,WAC1D,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,WA2BnC,GA1BA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAED,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,QAAQ,EAAO,MAE9B,EAAQ,MAAO,OAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,OAED,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,aAAa,SAAS,EAAO,MAE5C,EAAQ,UAAO,OAEK,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,aAAa,SAAS,EAAO,QAE9C,EAAQ,YAAS,OAEM,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,SAAS,IAGjD,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAab,YAZqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACtC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WAC1B,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACtC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,KAAO,aAAa,OAAO,EAAQ,WAAQ,QACvE,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,OAAS,aAAa,OAAO,EAAQ,aAAU,GAC9F,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAC/B,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,UAAY,GAEX,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,WA2BnC,GA1BA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAED,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,MAAO,OAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,OAED,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,aAAa,YAAY,EAAO,MAE/C,EAAQ,UAAO,OAEK,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,aAAa,YAAY,EAAO,QAEjD,EAAQ,YAAS,OAEM,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,YAAY,IAGpD,OAAO,CACT,GAEE,gBAAkB,CAAE,MAAM,EAAO,SAAU,GAC3C,YAAc,CAChB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,aACjC,IAAjB,EAAQ,MACV,EAAO,OAAO,GAAG,KAAK,EAAQ,MAEP,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,MAAM,EAAQ,UAE3B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,KAAO,EAAO,OACtB,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,QAC1B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,QAAQ,EAAO,MAE9B,EAAQ,MAAO,OAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFiB,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WAC1B,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,MAAO,OAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,EAEd,CACT,GAEE,cAAgB,CAAE,SAAU,IAC5B,UAAY,CACd,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,eACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,SAAW,EAAO,cAG1B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,eAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,GAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,eAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,GAEd,CACT,GAEE,eAAiB,CAAE,SAAU,IAC7B,WAAa,CACf,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,gBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,SAAW,EAAO,cAG1B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,gBAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,GAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,gBAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,GAEd,CACT,GAEE,iBAAmB,CAAE,SAAU,IAC/B,aAAe,CACjB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEV,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAE3D,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,kBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,kBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAClC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,GACnG,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,kBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,EAEd,CACT,GAEE,gBAAkB,CAAE,SAAU,IAC9B,YAAc,CAChB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEV,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAE3D,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAClC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,GACnG,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,EAEd,CACT,GAEE,gBAAkB,CAAE,SAAU,IAC9B,YAAc,CAChB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEV,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAE3D,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAClC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,GACnG,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,EAEd,CACT,GAEE,gBAAkB,CAAE,SAAU,IAC9B,YAAc,CAChB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEV,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAE3D,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,iBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAClC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,GACnG,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,iBAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,EAEd,CACT,GAEE,eAAiB,CAAE,SAAU,IAC7B,WAAa,CACf,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,gBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,SAAW,EAAO,cAG1B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,gBAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,GAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,gBAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,GAEd,CACT,GAEE,yBAA2B,CAAE,SAAU,IACvC,qBAAuB,CACzB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,0BACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,SAAW,EAAO,cAG1B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,0BAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,GAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,0BAMnC,YALwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,GAEd,CACT,GAEE,qBAAuB,CAAE,SAAU,IACnC,iBAAmB,CACrB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEnC,IAAK,MAAM,KAAK,EAAQ,UACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,sBAEnC,IADA,EAAQ,UAAY,GACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,UAAU,KAAK,aAAa,OAAO,EAAQ,EAAO,WAC1D,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,sBAOnC,GANA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEI,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,SAAS,IAGjD,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EASb,YARqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UACnD,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAC/B,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,UAAY,GAEX,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,sBAOnC,GANA,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEI,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,YAAY,IAGpD,OAAO,CACT,GAEE,uBAAyB,CAC3B,SAAU,GACV,UAAW,EACX,UAAW,EACX,MAAO,IAEL,mBAAqB,CACvB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAET,IAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,MAAM,EAAQ,WAER,IAAtB,EAAQ,WACV,EAAO,OAAO,IAAI,MAAM,EAAQ,WAEZ,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAEnC,OAAO,QAAQ,EAAQ,mBAAmB,SAAQ,EAAE,EAAK,MACvD,yCAAyC,OACvC,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEZ,OAAO,QAAQ,EAAQ,oBAAoB,SAAQ,EAAE,EAAK,MACxD,0CAA0C,OACxC,CAAE,MAAK,SACP,EAAO,OAAO,IAAI,QAClB,QAAQ,IAEL,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,wBAGnC,IAFA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,EACvB,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,QAC3B,MACF,KAAK,EACH,EAAQ,UAAY,EAAO,QAC3B,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,KAAK,EACH,MAAM,EAAS,yCAAyC,OACtD,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,kBAAkB,EAAO,KAAO,EAAO,OAEjD,MACF,KAAK,EACH,MAAM,EAAS,0CAA0C,OACvD,EACA,EAAO,eAEY,IAAjB,EAAO,QACT,EAAQ,mBAAmB,EAAO,KAAO,EAAO,OAElD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,wBAiCnC,OAhCA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,OACN,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEI,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,OAEG,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,OAAO,EAAO,WAElC,EAAQ,UAAY,OAED,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,QAEe,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,mBAChD,OAAO,QAAQ,EAAO,mBAAmB,SAAQ,EAAE,EAAK,MACtD,EAAQ,kBAAkB,GAAO,OAAO,EAAM,SAGhB,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,oBACjD,OAAO,QAAQ,EAAO,oBAAoB,SAAQ,EAAE,EAAK,MACvD,EAAQ,mBAAmB,GAAO,OAAO,EAAM,IAG5C,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAiBb,YAhBqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACjC,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACnC,IAAtB,EAAQ,YAAyB,EAAI,UAAY,EAAQ,gBACvC,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OACjD,EAAI,kBAAoB,CAAC,EACrB,EAAQ,mBACV,OAAO,QAAQ,EAAQ,mBAAmB,SAAQ,EAAE,EAAG,MACrD,EAAI,kBAAkB,GAAK,CAAC,IAGhC,EAAI,mBAAqB,CAAC,EACtB,EAAQ,oBACV,OAAO,QAAQ,EAAQ,oBAAoB,SAAQ,EAAE,EAAG,MACtD,EAAI,mBAAmB,GAAK,CAAC,IAG1B,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,wBAqCnC,OApCA,EAAQ,kBAAoB,CAAC,EAC7B,EAAQ,mBAAqB,CAAC,OACN,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEI,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,OAEG,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,EAAQ,UAAY,EAAO,UAE3B,EAAQ,UAAY,OAED,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,QAEe,IAA7B,EAAO,mBAA6D,OAA7B,EAAO,mBAChD,OAAO,QAAQ,EAAO,mBAAmB,SAAQ,EAAE,EAAK,WACxC,IAAV,IACF,EAAQ,kBAAkB,GAAO,OAAO,GAC1C,SAG8B,IAA9B,EAAO,oBAA+D,OAA9B,EAAO,oBACjD,OAAO,QAAQ,EAAO,oBAAoB,SAAQ,EAAE,EAAK,WACzC,IAAV,IACF,EAAQ,mBAAmB,GAAO,OAAO,GAC3C,IAGG,CACT,GAEE,6CAA+C,CACjD,IAAK,GACL,MAAO,IAEL,yCAA2C,CAC7C,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,8CACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,8CAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,GAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,8CAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,GAEX,CACT,GAEE,8CAAgD,CAClD,IAAK,GACL,MAAO,GAEL,0CAA4C,CAC9C,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAClC,KAAhB,EAAQ,KACV,EAAO,OAAO,IAAI,OAAO,EAAQ,KAEb,IAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,+CACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,IAAM,EAAO,SACrB,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,+CAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,OAAO,EAAO,KAE5B,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,EAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFgB,IAAhB,EAAQ,MAAmB,EAAI,IAAM,EAAQ,UAC3B,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,+CAWnC,YAVmB,IAAf,EAAO,KAAiC,OAAf,EAAO,IAClC,EAAQ,IAAM,EAAO,IAErB,EAAQ,IAAM,QAEK,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,EAEX,CACT,GAEE,0BAA4B,CAAE,SAAU,GAAI,OAAQ,IACpD,sBAAwB,CAC1B,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEZ,KAAnB,EAAQ,QACV,EAAO,OAAO,IAAI,OAAO,EAAQ,QAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,2BACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,OAAS,EAAO,SACxB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,2BAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEC,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,OAAS,GAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACpC,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,2BAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEC,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,OAAS,GAEZ,CACT,GAEE,0BAA4B,CAAE,SAAU,GAAI,OAAQ,IACpD,sBAAwB,CAC1B,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEZ,KAAnB,EAAQ,QACV,EAAO,OAAO,IAAI,OAAO,EAAQ,QAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,2BACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,OAAS,EAAO,SACxB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,2BAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEC,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,OAAS,GAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAGb,YAFqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACpC,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,2BAWnC,YAVwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEC,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,OAAS,GAEZ,CACT,GAEE,cAAgB,CAAE,SAAU,GAAI,QAAS,GACzC,UAAY,CACd,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,eAEV,IAArB,EAAQ,UACV,aAAa,OAAO,EAAQ,SAAU,EAAO,OAAO,IAAI,QAAQ,SAE1C,IAApB,EAAQ,SACV,EAAO,OAAO,IAAI,MAAM,EAAQ,SAEN,IAAxB,EAAQ,KAAK,QACf,EAAO,OAAO,IAAI,MAAM,EAAQ,MAE3B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,eAEnC,IADA,EAAQ,KAAO,IAAI,WACZ,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,SAAW,aAAa,OAAO,EAAQ,EAAO,UACtD,MACF,KAAK,EACH,EAAQ,QAAU,cAAc,EAAO,SACvC,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,eAoBnC,OAnBA,EAAQ,KAAO,IAAI,gBACK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,SAAS,EAAO,UAEhD,EAAQ,cAAW,OAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,OACnC,EAAQ,KAAO,gBAAgB,EAAO,OAEjC,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAOb,YANqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAClC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,SAAW,aAAa,OAAO,EAAQ,eAAY,QACtF,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACpC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,qBACpB,IAAjB,EAAQ,KAAkB,EAAQ,KAAO,IAAI,aAExC,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,eAqBnC,YApBwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEG,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,aAAa,YAAY,EAAO,UAEnD,EAAQ,cAAW,OAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,IAAI,WAEd,CACT,GAEE,kBAAoB,CAAE,SAAU,GAAI,QAAS,GAC7C,cAAgB,CAClB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEX,IAApB,EAAQ,SACV,EAAO,OAAO,IAAI,MAAM,EAAQ,SAEN,IAAxB,EAAQ,KAAK,QACf,EAAO,OAAO,IAAI,MAAM,EAAQ,MAE3B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,mBAEnC,IADA,EAAQ,KAAO,IAAI,WACZ,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,QAAU,cAAc,EAAO,SACvC,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,mBAenC,OAdA,EAAQ,KAAO,IAAI,gBACK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,OACnC,EAAQ,KAAO,gBAAgB,EAAO,OAEjC,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAMb,YALqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eACnC,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cACpC,IAAjB,EAAQ,OAAoB,EAAI,KAAO,qBACpB,IAAjB,EAAQ,KAAkB,EAAQ,KAAO,IAAI,aAExC,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,mBAgBnC,YAfwB,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEE,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,OAEA,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,IAAI,WAEd,CACT,GAEE,uBAAyB,CAAE,SAAU,IACrC,mBAAqB,CACvB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UAC7B,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,UAEnC,IAAK,MAAM,KAAK,EAAQ,MACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,IAAK,MAAM,KAAK,EAAQ,OACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,wBAGnC,IAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,GACV,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,MAAM,KAAK,aAAa,OAAO,EAAQ,EAAO,WACtD,MACF,KAAK,EACH,EAAQ,OAAO,KAAK,aAAa,OAAO,EAAQ,EAAO,WACvD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,wBAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,SAAS,IAG7C,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,SAAS,IAG9C,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAgBb,YAfqB,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UACnD,EAAQ,MACV,EAAI,MAAQ,EAAQ,MAAM,KACvB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,MAAQ,GAEV,EAAQ,OACV,EAAI,OAAS,EAAQ,OAAO,KACzB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,OAAS,GAER,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,wBAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEA,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,YAAY,IAGhD,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,YAAY,IAGjD,OAAO,CACT,GAEE,SAAW,CAAC,EACZ,KAAO,CACT,OAAM,CAAC,EAAG,EAAS,gBAAgB,QAAQ,OAAO,WACzC,EAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,UACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SAGf,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,SAAS,GACS,eAAe,CAAC,EAAG,UAGrC,OAAO,IACO,CAAC,GAGf,YAAY,GACM,eAAe,CAAC,EAAG,WAInC,SAAW,CAAC,EACZ,KAAO,CACT,OAAM,CAAC,EAAG,EAAS,gBAAgB,QAAQ,OAAO,WACzC,EAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,UACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SAGf,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,SAAS,GACS,eAAe,CAAC,EAAG,UAGrC,OAAO,IACO,CAAC,GAGf,YAAY,GACM,eAAe,CAAC,EAAG,WAInC,WAAa,CAAC,EACd,OAAS,CACX,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UACtD,IAAK,MAAM,KAAK,EAAQ,UACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,YAEnC,IADA,EAAQ,UAAY,GACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,UAAU,KAAK,aAAa,OAAO,EAAQ,EAAO,gBAG1D,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,YAEnC,GADA,EAAQ,UAAY,QACK,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,SAAS,IAGjD,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAQb,OAPI,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAC/B,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,UAAY,GAEX,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,YAEnC,GADA,EAAQ,UAAY,QACK,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,aAAa,YAAY,IAGpD,OAAO,CACT,GAEE,iBAAmB,CAAE,SAAU,GAAI,UAAW,IAC9C,aAAe,CACjB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UACtD,IAAK,MAAM,KAAK,EAAQ,SACtB,EAAO,OAAO,IAAI,OAAO,GAE3B,IAAK,MAAM,KAAK,EAAQ,UACtB,EAAO,OAAO,IAAI,OAAO,GAE3B,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,kBAGnC,IAFA,EAAQ,SAAW,GACnB,EAAQ,UAAY,GACb,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,SAAS,KAAK,EAAO,UAC7B,MACF,KAAK,EACH,EAAQ,UAAU,KAAK,EAAO,UAC9B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,kBAGnC,GAFA,EAAQ,SAAW,GACnB,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,IAAK,MAAM,KAAK,EAAO,SACrB,EAAQ,SAAS,KAAK,OAAO,IAGjC,QAAyB,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,OAAO,IAGlC,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAWb,OAVI,EAAQ,SACV,EAAI,SAAW,EAAQ,SAAS,KAAK,GAAM,IAE3C,EAAI,SAAW,GAEb,EAAQ,UACV,EAAI,UAAY,EAAQ,UAAU,KAAK,GAAM,IAE7C,EAAI,UAAY,GAEX,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,kBAGnC,GAFA,EAAQ,SAAW,GACnB,EAAQ,UAAY,QACI,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,IAAK,MAAM,KAAK,EAAO,SACrB,EAAQ,SAAS,KAAK,GAG1B,QAAyB,IAArB,EAAO,WAA6C,OAArB,EAAO,UACxC,IAAK,MAAM,KAAK,EAAO,UACrB,EAAQ,UAAU,KAAK,GAG3B,OAAO,CACT,GAEE,wBAA0B,CAAC,EAC3B,oBAAsB,CACxB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UACtD,IAAK,MAAM,KAAK,EAAQ,MACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,IAAK,MAAM,KAAK,EAAQ,OACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,yBAGnC,IAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,GACV,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,MAAM,KAAK,aAAa,OAAO,EAAQ,EAAO,WACtD,MACF,KAAK,EACH,EAAQ,OAAO,KAAK,aAAa,OAAO,EAAQ,EAAO,WACvD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,yBAGnC,GAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACI,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,SAAS,IAG7C,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,SAAS,IAG9C,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAeb,OAdI,EAAQ,MACV,EAAI,MAAQ,EAAQ,MAAM,KACvB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,MAAQ,GAEV,EAAQ,OACV,EAAI,OAAS,EAAQ,OAAO,KACzB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,OAAS,GAER,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,yBAGnC,GAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACI,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,YAAY,IAGhD,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,YAAY,IAGjD,OAAO,CACT,GAEE,mBAAqB,CAAE,SAAU,IACjC,eAAiB,CACnB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,UACtD,IAAK,MAAM,KAAK,EAAQ,SACtB,EAAO,OAAO,IAAI,OAAO,GAE3B,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,oBAEnC,IADA,EAAQ,SAAW,GACZ,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,SAAS,KAAK,EAAO,eAG7B,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,oBAEnC,GADA,EAAQ,SAAW,QACK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,IAAK,MAAM,KAAK,EAAO,SACrB,EAAQ,SAAS,KAAK,OAAO,IAGjC,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAMb,OALI,EAAQ,SACV,EAAI,SAAW,EAAQ,SAAS,KAAK,GAAM,IAE3C,EAAI,SAAW,GAEV,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,oBAEnC,GADA,EAAQ,SAAW,QACK,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,IAAK,MAAM,KAAK,EAAO,SACrB,EAAQ,SAAS,KAAK,GAG1B,OAAO,CACT,GAEE,iBAAmB,CAAC,EACpB,aAAe,CACjB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,iBAC/B,IAAnB,EAAQ,QACV,YAAY,OACV,CAAE,MAAO,EAAQ,QACjB,EAAO,OAAO,IAAI,QAClB,SAEG,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,kBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,GAAQ,IAAQ,GACT,EACH,EAAQ,OAAS,YAAY,OAAO,EAAQ,EAAO,UAAU,WAG7D,EAAO,SAAe,EAAN,EAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,kBAMnC,YALsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,YAAS,EAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAEb,YADmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,kBAMnC,YALsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,YAAS,EAEZ,CACT,GAEE,WAAa,CAAE,KAAM,EAAG,QAAS,GAAI,WAAY,GAAI,MAAO,IAC5D,OAAS,CACX,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YACjC,IAAjB,EAAQ,MACV,EAAO,OAAO,GAAG,MAAM,EAAQ,MAET,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAER,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAEb,KAAlB,EAAQ,OACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAE5B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,YACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,KAAO,EAAO,QACtB,MACF,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,MAAQ,EAAO,SACvB,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,YAqBnC,YApBoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,KAAO,OAEM,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEM,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEF,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,OAAO,EAAO,OAE9B,EAAQ,MAAQ,GAEX,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAKb,YAJiB,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WAC3B,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cAC9B,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACzC,IAAlB,EAAQ,QAAqB,EAAI,MAAQ,EAAQ,OAC1C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,YAqBnC,YApBoB,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,OAEM,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEM,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEF,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,EAAQ,MAAQ,EAAO,MAEvB,EAAQ,MAAQ,GAEX,CACT,GAEE,eAAiB,CAAE,KAAM,GAAI,UAAU,GACvC,WAAa,CACf,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,iBAC/B,IAAnB,EAAQ,QACV,OAAO,OAAO,EAAQ,OAAQ,EAAO,OAAO,IAAI,QAAQ,cAEnC,IAAnB,EAAQ,QACV,aAAa,OAAO,EAAQ,OAAQ,EAAO,OAAO,IAAI,QAAQ,SAE3C,KAAjB,EAAQ,MACV,EAAO,OAAO,IAAI,OAAO,EAAQ,OAEV,IAArB,EAAQ,UACV,EAAO,OAAO,IAAI,KAAK,EAAQ,UAE1B,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,gBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,OAAS,OAAO,OAAO,EAAQ,EAAO,UAC9C,MACF,KAAK,EACH,EAAQ,OAAS,aAAa,OAAO,EAAQ,EAAO,UACpD,MACF,KAAK,EACH,EAAQ,KAAO,EAAO,SACtB,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,OAC1B,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,gBAqBnC,YApBsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,SAAS,EAAO,QAExC,EAAQ,YAAS,OAEG,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,aAAa,SAAS,EAAO,QAE9C,EAAQ,YAAS,OAEC,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,OAAO,EAAO,MAE7B,EAAQ,KAAO,QAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,QAAQ,EAAO,UAElC,EAAQ,UAAW,EAEd,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAKb,YAJmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,OAAS,OAAO,OAAO,EAAQ,aAAU,QACzE,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,OAAS,aAAa,OAAO,EAAQ,aAAU,QACjF,IAAjB,EAAQ,OAAoB,EAAI,KAAO,EAAQ,WAC1B,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,UAChD,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,gBAqBnC,YApBsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,YAAY,EAAO,QAE3C,EAAQ,YAAS,OAEG,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,aAAa,YAAY,EAAO,QAEjD,EAAQ,YAAS,OAEC,IAAhB,EAAO,MAAmC,OAAhB,EAAO,KACnC,EAAQ,KAAO,EAAO,KAEtB,EAAQ,KAAO,QAEO,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,UAAW,EAEd,CACT,GAEE,wBAA0B,CAAC,EAC3B,oBAAsB,CACxB,MAAA,CAAO,EAAS,EAAS,gBAAgB,QAAQ,OAAO,eAC/B,IAAnB,EAAQ,QACV,OAAO,OAAO,EAAQ,OAAQ,EAAO,OAAO,IAAI,QAAQ,SAE1D,IAAK,MAAM,KAAK,EAAQ,MACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,IAAK,MAAM,KAAK,EAAQ,OACtB,aAAa,OAAO,EAAG,EAAO,OAAO,IAAI,QAAQ,SAEnD,OAAO,CACT,EACA,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,yBAGnC,IAFA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,GACV,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,OAAS,OAAO,OAAO,EAAQ,EAAO,UAC9C,MACF,KAAK,EACH,EAAQ,MAAM,KAAK,aAAa,OAAO,EAAQ,EAAO,WACtD,MACF,KAAK,EACH,EAAQ,OAAO,KAAK,aAAa,OAAO,EAAQ,EAAO,WACvD,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,yBAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACK,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,SAAS,EAAO,QAExC,EAAQ,YAAS,OAEE,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,SAAS,IAG7C,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,SAAS,IAG9C,OAAO,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAgBb,YAfmB,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,OAAS,OAAO,OAAO,EAAQ,aAAU,GACxF,EAAQ,MACV,EAAI,MAAQ,EAAQ,MAAM,KACvB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,MAAQ,GAEV,EAAQ,OACV,EAAI,OAAS,EAAQ,OAAO,KACzB,GAAM,EAAI,aAAa,OAAO,QAAK,IAGtC,EAAI,OAAS,GAER,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,yBAQnC,GAPA,EAAQ,MAAQ,GAChB,EAAQ,OAAS,QACK,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,YAAY,EAAO,QAE3C,EAAQ,YAAS,OAEE,IAAjB,EAAO,OAAqC,OAAjB,EAAO,MACpC,IAAK,MAAM,KAAK,EAAO,MACrB,EAAQ,MAAM,KAAK,aAAa,YAAY,IAGhD,QAAsB,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,IAAK,MAAM,KAAK,EAAO,OACrB,EAAQ,OAAO,KAAK,aAAa,YAAY,IAGjD,OAAO,CACT,GAEE,iBAAmB,CACrB,QAAS,GACT,WAAY,GACZ,SAAU,GACV,aAAa,GAEX,aAAe,CACjB,OAAM,CAAC,EAAS,EAAS,gBAAgB,QAAQ,OAAO,YAC9B,KAApB,EAAQ,SACV,EAAO,OAAO,IAAI,OAAO,EAAQ,SAER,KAAvB,EAAQ,YACV,EAAO,OAAO,IAAI,OAAO,EAAQ,YAEV,KAArB,EAAQ,UACV,EAAO,OAAO,IAAI,OAAO,EAAQ,WAEP,IAAxB,EAAQ,aACV,EAAO,OAAO,IAAI,KAAK,EAAQ,kBAEV,IAAnB,EAAQ,QACV,YAAY,OACV,CAAE,MAAO,EAAQ,QACjB,EAAO,OAAO,IAAI,QAClB,SAEG,GAET,MAAA,CAAO,EAAO,GACZ,MAAM,EAAS,aAAiB,gBAAgB,QAAQ,OAAS,EAAQ,IAAI,gBAAgB,QAAQ,OAAO,GAC5G,IAAI,OAAiB,IAAX,EAAoB,EAAO,IAAM,EAAO,IAAM,EACxD,MAAM,EAAU,eAAe,CAAC,EAAG,kBACnC,KAAO,EAAO,IAAM,GAAK,CACvB,MAAM,EAAM,EAAO,SACnB,OAAQ,IAAQ,GACd,KAAK,EACH,EAAQ,QAAU,EAAO,SACzB,MACF,KAAK,EACH,EAAQ,WAAa,EAAO,SAC5B,MACF,KAAK,EACH,EAAQ,SAAW,EAAO,SAC1B,MACF,KAAK,EACH,EAAQ,YAAc,EAAO,OAC7B,MACF,KAAK,EACH,EAAQ,OAAS,YAAY,OAAO,EAAQ,EAAO,UAAU,MAC7D,MACF,QACE,EAAO,SAAe,EAAN,GAGtB,CACA,OAAO,CACT,EACA,QAAA,CAAS,GACP,MAAM,EAAU,eAAe,CAAC,EAAG,kBA0BnC,YAzBuB,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,OAAO,EAAO,SAEhC,EAAQ,QAAU,QAEM,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,OAAO,EAAO,YAEnC,EAAQ,WAAa,QAEC,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,OAAO,EAAO,UAEjC,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,QAAQ,EAAO,aAErC,EAAQ,aAAc,OAEF,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,OAAO,EAAO,QAE/B,EAAQ,YAAS,EAEZ,CACT,EACA,MAAA,CAAO,GACL,MAAM,EAAM,CAAC,EAMb,YALoB,IAApB,EAAQ,UAAuB,EAAI,QAAU,EAAQ,cAC9B,IAAvB,EAAQ,aAA0B,EAAI,WAAa,EAAQ,iBACtC,IAArB,EAAQ,WAAwB,EAAI,SAAW,EAAQ,eAC/B,IAAxB,EAAQ,cAA2B,EAAI,YAAc,EAAQ,kBAC1C,IAAnB,EAAQ,SAAsB,EAAI,OAAS,EAAQ,QAC5C,CACT,EACA,WAAA,CAAY,GACV,MAAM,EAAU,eAAe,CAAC,EAAG,kBA0BnC,YAzBuB,IAAnB,EAAO,SAAyC,OAAnB,EAAO,QACtC,EAAQ,QAAU,EAAO,QAEzB,EAAQ,QAAU,QAEM,IAAtB,EAAO,YAA+C,OAAtB,EAAO,WACzC,EAAQ,WAAa,EAAO,WAE5B,EAAQ,WAAa,QAEC,IAApB,EAAO,UAA2C,OAApB,EAAO,SACvC,EAAQ,SAAW,EAAO,SAE1B,EAAQ,SAAW,QAEM,IAAvB,EAAO,aAAiD,OAAvB,EAAO,YAC1C,EAAQ,YAAc,EAAO,YAE7B,EAAQ,aAAc,OAEF,IAAlB,EAAO,QAAuC,OAAlB,EAAO,OACrC,EAAQ,OAAS,EAAO,OAExB,EAAQ,YAAS,EAEZ,CACT,GAEE,YAAc,MAChB,QAA2B,IAAhB,YACT,OAAO,YACT,GAAoB,oBAAT,KACT,OAAO,KACT,GAAsB,oBAAX,OACT,OAAO,OACT,GAAsB,oBAAX,OACT,OAAO,OACT,KAAM,gCACP,EAViB,GAWd,MAAQ,YAAY,MAAQ,CAAE,GAAQ,YAAY,OAAO,KAAK,EAAK,UAAU,SAAS,WAC1F,SAAS,gBAAgB,GACvB,MAAM,EAAM,MAAM,GACZ,EAAM,IAAI,WAAW,EAAI,QAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,SAAU,EAChC,EAAI,GAAK,EAAI,WAAW,GAE1B,OAAO,CACT,CACA,IAAI,MAAQ,YAAY,MAAQ,CAAE,GAAQ,YAAY,OAAO,KAAK,EAAK,UAAU,SAAS,WAC1F,SAAS,gBAAgB,GACvB,MAAM,EAAM,GACZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,aAAc,EACpC,EAAI,KAAK,OAAO,aAAa,EAAI,KAEnC,OAAO,MAAM,EAAI,KAAK,IACxB,CACA,SAAS,aAAa,GAGpB,MAAO,CAAE,QAFO,EAAK,UAAY,IAEf,MADJ,EAAK,UAAY,IAAM,IAEvC,CACA,SAAS,eAAe,GACtB,IAAI,EAAqB,IAAZ,EAAE,QAEf,OADA,GAAU,EAAE,MAAQ,IACb,IAAI,KAAK,EAClB,CACA,SAAS,mBAAmB,GAC1B,OAAI,aAAa,KACR,EACe,iBAAN,EACT,IAAI,KAAK,GAET,eAAe,UAAU,SAAS,GAE7C,CACA,SAAS,cAAc,GACrB,GAAI,EAAK,GAAG,OAAO,kBACjB,MAAM,IAAI,YAAY,MAAM,gDAE9B,OAAO,EAAK,UACd,CACI,gBAAgB,QAAQ,KAAK,OAAS,aAAa,UACrD,gBAAgB,QAAQ,KAAK,KAAO,aAAa,QACjD,gBAAgB,QAAQ,aAI1B,IAAI,mBAAqB,MACvB,WAAA,GACA,CACA,WAAI,GACF,OAAO,KAAK,QAAQ,OACtB,CACA,WAAI,CAAQ,GACV,KAAK,QAAQ,QAAU,CACzB,CACA,WAAI,GACF,OAAO,KAAK,QAAQ,OACtB,CACA,WAAI,CAAQ,GACV,KAAK,QAAQ,QAAU,CACzB,CACA,aAAI,GACF,OAAO,KAAK,QAAQ,SACtB,CACA,aAAI,CAAU,GACR,EACF,KAAK,QAAQ,UAAa,IACxB,MAAM,EAAS,EAAI,KACb,EAAa,IAAI,WAAW,GAC5B,EAAW,SAAS,OAAO,GAC7B,EAAS,kBAC0B,MAAjC,EAAS,gBAAgB,OAC3B,EAAS,gBAAgB,KAAO,GAES,MAAvC,EAAS,gBAAgB,aAC3B,EAAS,gBAAgB,YAAa,IAG1C,EAAM,EAAS,EAGjB,EAAQ,IAEZ,CACA,UAAI,GACF,OAAO,KAAK,QAAQ,MACtB,CACA,UAAI,CAAO,GACT,KAAK,QAAQ,OAAS,CACxB,CACA,MAAA,GACE,IAAI,EACJ,OAA+B,OAAtB,EAAK,KAAK,cAAmB,EAAS,EAAG,aAAe,UAAU,IAC7E,CACA,KAAA,GACE,KAAK,QAAQ,QACb,KAAK,aAAU,CACjB,CACA,OAAA,CAAQ,EAAQ,EAAM,EAAM,EAAc,GACxC,MAAM,EAAM,GAAG,IAAS,KAAQ,uBAA0B,mBAAmB,EAAa,qBAAqB,mBAAmB,qBAClI,KAAK,QAAU,IAAI,UAAU,GAC7B,KAAK,QAAQ,WAAa,aAC5B,CACA,IAAA,CAAK,GACH,GAAI,EAAI,gBAAiB,CACvB,IAAI,EAAU,EAAI,gBAAgB,KACZ,iBAAX,IACT,EAAI,gBAAgB,MAAO,IAAI,aAAc,OAAO,GAExD,MAAO,GAAI,EAAI,gBAAiB,CAC9B,IAAI,EAAU,EAAI,gBAAgB,KACZ,iBAAX,IACT,EAAI,gBAAgB,MAAO,IAAI,aAAc,OAAO,GAExD,CACA,MACM,EADiB,SAAS,OAAO,SAAS,YAAY,IAC1B,SAClC,KAAK,QAAQ,KAAK,EACpB","file":"/npm/@heroiclabs/nakama-js-protobuf@1.4.0/dist/nakama-js-protobuf.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@heroiclabs/nakama-js-protobuf@1.4.0/dist/nakama-js-protobuf.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __commonJS = (cb, mod2) => function __require() {\n  return mod2 || (0, cb[__getOwnPropNames(cb)[0]])((mod2 = { exports: {} }).exports, mod2), mod2.exports;\n};\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, \"default\", { value: mod2, enumerable: true }) : target,\n  mod2\n));\nvar __toCommonJS = (mod2) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod2);\n\n// ../../node_modules/long/src/long.js\nvar require_long = __commonJS({\n  \"../../node_modules/long/src/long.js\"(exports2, module2) {\n    module2.exports = Long5;\n    var wasm = null;\n    try {\n      wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\n        0,\n        97,\n        115,\n        109,\n        1,\n        0,\n        0,\n        0,\n        1,\n        13,\n        2,\n        96,\n        0,\n        1,\n        127,\n        96,\n        4,\n        127,\n        127,\n        127,\n        127,\n        1,\n        127,\n        3,\n        7,\n        6,\n        0,\n        1,\n        1,\n        1,\n        1,\n        1,\n        6,\n        6,\n        1,\n        127,\n        1,\n        65,\n        0,\n        11,\n        7,\n        50,\n        6,\n        3,\n        109,\n        117,\n        108,\n        0,\n        1,\n        5,\n        100,\n        105,\n        118,\n        95,\n        115,\n        0,\n        2,\n        5,\n        100,\n        105,\n        118,\n        95,\n        117,\n        0,\n        3,\n        5,\n        114,\n        101,\n        109,\n        95,\n        115,\n        0,\n        4,\n        5,\n        114,\n        101,\n        109,\n        95,\n        117,\n        0,\n        5,\n        8,\n        103,\n        101,\n        116,\n        95,\n        104,\n        105,\n        103,\n        104,\n        0,\n        0,\n        10,\n        191,\n        1,\n        6,\n        4,\n        0,\n        35,\n        0,\n        11,\n        36,\n        1,\n        1,\n        126,\n        32,\n        0,\n        173,\n        32,\n        1,\n        173,\n        66,\n        32,\n        134,\n        132,\n        32,\n        2,\n        173,\n        32,\n        3,\n        173,\n        66,\n        32,\n        134,\n        132,\n        126,\n        34,\n        4,\n        66,\n        32,\n        135,\n        167,\n        36,\n        0,\n        32,\n        4,\n        167,\n        11,\n        36,\n        1,\n        1,\n        126,\n        32,\n        0,\n        173,\n        32,\n        1,\n        173,\n        66,\n        32,\n        134,\n        132,\n        32,\n        2,\n        173,\n        32,\n        3,\n        173,\n        66,\n        32,\n        134,\n        132,\n        127,\n        34,\n        4,\n        66,\n        32,\n        135,\n        167,\n        36,\n        0,\n        32,\n        4,\n        167,\n        11,\n        36,\n        1,\n        1,\n        126,\n        32,\n        0,\n        173,\n        32,\n        1,\n        173,\n        66,\n        32,\n        134,\n        132,\n        32,\n        2,\n        173,\n        32,\n        3,\n        173,\n        66,\n        32,\n        134,\n        132,\n        128,\n        34,\n        4,\n        66,\n        32,\n        135,\n        167,\n        36,\n        0,\n        32,\n        4,\n        167,\n        11,\n        36,\n        1,\n        1,\n        126,\n        32,\n        0,\n        173,\n        32,\n        1,\n        173,\n        66,\n        32,\n        134,\n        132,\n        32,\n        2,\n        173,\n        32,\n        3,\n        173,\n        66,\n        32,\n        134,\n        132,\n        129,\n        34,\n        4,\n        66,\n        32,\n        135,\n        167,\n        36,\n        0,\n        32,\n        4,\n        167,\n        11,\n        36,\n        1,\n        1,\n        126,\n        32,\n        0,\n        173,\n        32,\n        1,\n        173,\n        66,\n        32,\n        134,\n        132,\n        32,\n        2,\n        173,\n        32,\n        3,\n        173,\n        66,\n        32,\n        134,\n        132,\n        130,\n        34,\n        4,\n        66,\n        32,\n        135,\n        167,\n        36,\n        0,\n        32,\n        4,\n        167,\n        11\n      ])), {}).exports;\n    } catch (e) {\n    }\n    function Long5(low, high, unsigned) {\n      this.low = low | 0;\n      this.high = high | 0;\n      this.unsigned = !!unsigned;\n    }\n    Long5.prototype.__isLong__;\n    Object.defineProperty(Long5.prototype, \"__isLong__\", { value: true });\n    function isLong(obj) {\n      return (obj && obj[\"__isLong__\"]) === true;\n    }\n    Long5.isLong = isLong;\n    var INT_CACHE = {};\n    var UINT_CACHE = {};\n    function fromInt(value, unsigned) {\n      var obj, cachedObj, cache;\n      if (unsigned) {\n        value >>>= 0;\n        if (cache = 0 <= value && value < 256) {\n          cachedObj = UINT_CACHE[value];\n          if (cachedObj)\n            return cachedObj;\n        }\n        obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\n        if (cache)\n          UINT_CACHE[value] = obj;\n        return obj;\n      } else {\n        value |= 0;\n        if (cache = -128 <= value && value < 128) {\n          cachedObj = INT_CACHE[value];\n          if (cachedObj)\n            return cachedObj;\n        }\n        obj = fromBits(value, value < 0 ? -1 : 0, false);\n        if (cache)\n          INT_CACHE[value] = obj;\n        return obj;\n      }\n    }\n    Long5.fromInt = fromInt;\n    function fromNumber(value, unsigned) {\n      if (isNaN(value))\n        return unsigned ? UZERO : ZERO;\n      if (unsigned) {\n        if (value < 0)\n          return UZERO;\n        if (value >= TWO_PWR_64_DBL)\n          return MAX_UNSIGNED_VALUE;\n      } else {\n        if (value <= -TWO_PWR_63_DBL)\n          return MIN_VALUE;\n        if (value + 1 >= TWO_PWR_63_DBL)\n          return MAX_VALUE;\n      }\n      if (value < 0)\n        return fromNumber(-value, unsigned).neg();\n      return fromBits(value % TWO_PWR_32_DBL | 0, value / TWO_PWR_32_DBL | 0, unsigned);\n    }\n    Long5.fromNumber = fromNumber;\n    function fromBits(lowBits, highBits, unsigned) {\n      return new Long5(lowBits, highBits, unsigned);\n    }\n    Long5.fromBits = fromBits;\n    var pow_dbl = Math.pow;\n    function fromString(str, unsigned, radix) {\n      if (str.length === 0)\n        throw Error(\"empty string\");\n      if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\n        return ZERO;\n      if (typeof unsigned === \"number\") {\n        radix = unsigned, unsigned = false;\n      } else {\n        unsigned = !!unsigned;\n      }\n      radix = radix || 10;\n      if (radix < 2 || 36 < radix)\n        throw RangeError(\"radix\");\n      var p;\n      if ((p = str.indexOf(\"-\")) > 0)\n        throw Error(\"interior hyphen\");\n      else if (p === 0) {\n        return fromString(str.substring(1), unsigned, radix).neg();\n      }\n      var radixToPower = fromNumber(pow_dbl(radix, 8));\n      var result = ZERO;\n      for (var i = 0; i < str.length; i += 8) {\n        var size = Math.min(8, str.length - i), value = parseInt(str.substring(i, i + size), radix);\n        if (size < 8) {\n          var power = fromNumber(pow_dbl(radix, size));\n          result = result.mul(power).add(fromNumber(value));\n        } else {\n          result = result.mul(radixToPower);\n          result = result.add(fromNumber(value));\n        }\n      }\n      result.unsigned = unsigned;\n      return result;\n    }\n    Long5.fromString = fromString;\n    function fromValue(val, unsigned) {\n      if (typeof val === \"number\")\n        return fromNumber(val, unsigned);\n      if (typeof val === \"string\")\n        return fromString(val, unsigned);\n      return fromBits(val.low, val.high, typeof unsigned === \"boolean\" ? unsigned : val.unsigned);\n    }\n    Long5.fromValue = fromValue;\n    var TWO_PWR_16_DBL = 1 << 16;\n    var TWO_PWR_24_DBL = 1 << 24;\n    var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n    var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n    var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n    var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n    var ZERO = fromInt(0);\n    Long5.ZERO = ZERO;\n    var UZERO = fromInt(0, true);\n    Long5.UZERO = UZERO;\n    var ONE = fromInt(1);\n    Long5.ONE = ONE;\n    var UONE = fromInt(1, true);\n    Long5.UONE = UONE;\n    var NEG_ONE = fromInt(-1);\n    Long5.NEG_ONE = NEG_ONE;\n    var MAX_VALUE = fromBits(4294967295 | 0, 2147483647 | 0, false);\n    Long5.MAX_VALUE = MAX_VALUE;\n    var MAX_UNSIGNED_VALUE = fromBits(4294967295 | 0, 4294967295 | 0, true);\n    Long5.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n    var MIN_VALUE = fromBits(0, 2147483648 | 0, false);\n    Long5.MIN_VALUE = MIN_VALUE;\n    var LongPrototype = Long5.prototype;\n    LongPrototype.toInt = function toInt() {\n      return this.unsigned ? this.low >>> 0 : this.low;\n    };\n    LongPrototype.toNumber = function toNumber() {\n      if (this.unsigned)\n        return (this.high >>> 0) * TWO_PWR_32_DBL + (this.low >>> 0);\n      return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\n    };\n    LongPrototype.toString = function toString(radix) {\n      radix = radix || 10;\n      if (radix < 2 || 36 < radix)\n        throw RangeError(\"radix\");\n      if (this.isZero())\n        return \"0\";\n      if (this.isNegative()) {\n        if (this.eq(MIN_VALUE)) {\n          var radixLong = fromNumber(radix), div = this.div(radixLong), rem1 = div.mul(radixLong).sub(this);\n          return div.toString(radix) + rem1.toInt().toString(radix);\n        } else\n          return \"-\" + this.neg().toString(radix);\n      }\n      var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned), rem = this;\n      var result = \"\";\n      while (true) {\n        var remDiv = rem.div(radixToPower), intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0, digits = intval.toString(radix);\n        rem = remDiv;\n        if (rem.isZero())\n          return digits + result;\n        else {\n          while (digits.length < 6)\n            digits = \"0\" + digits;\n          result = \"\" + digits + result;\n        }\n      }\n    };\n    LongPrototype.getHighBits = function getHighBits() {\n      return this.high;\n    };\n    LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\n      return this.high >>> 0;\n    };\n    LongPrototype.getLowBits = function getLowBits() {\n      return this.low;\n    };\n    LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\n      return this.low >>> 0;\n    };\n    LongPrototype.getNumBitsAbs = function getNumBitsAbs() {\n      if (this.isNegative())\n        return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\n      var val = this.high != 0 ? this.high : this.low;\n      for (var bit = 31; bit > 0; bit--)\n        if ((val & 1 << bit) != 0)\n          break;\n      return this.high != 0 ? bit + 33 : bit + 1;\n    };\n    LongPrototype.isZero = function isZero() {\n      return this.high === 0 && this.low === 0;\n    };\n    LongPrototype.eqz = LongPrototype.isZero;\n    LongPrototype.isNegative = function isNegative() {\n      return !this.unsigned && this.high < 0;\n    };\n    LongPrototype.isPositive = function isPositive() {\n      return this.unsigned || this.high >= 0;\n    };\n    LongPrototype.isOdd = function isOdd() {\n      return (this.low & 1) === 1;\n    };\n    LongPrototype.isEven = function isEven() {\n      return (this.low & 1) === 0;\n    };\n    LongPrototype.equals = function equals(other) {\n      if (!isLong(other))\n        other = fromValue(other);\n      if (this.unsigned !== other.unsigned && this.high >>> 31 === 1 && other.high >>> 31 === 1)\n        return false;\n      return this.high === other.high && this.low === other.low;\n    };\n    LongPrototype.eq = LongPrototype.equals;\n    LongPrototype.notEquals = function notEquals(other) {\n      return !this.eq(\n        /* validates */\n        other\n      );\n    };\n    LongPrototype.neq = LongPrototype.notEquals;\n    LongPrototype.ne = LongPrototype.notEquals;\n    LongPrototype.lessThan = function lessThan(other) {\n      return this.comp(\n        /* validates */\n        other\n      ) < 0;\n    };\n    LongPrototype.lt = LongPrototype.lessThan;\n    LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\n      return this.comp(\n        /* validates */\n        other\n      ) <= 0;\n    };\n    LongPrototype.lte = LongPrototype.lessThanOrEqual;\n    LongPrototype.le = LongPrototype.lessThanOrEqual;\n    LongPrototype.greaterThan = function greaterThan(other) {\n      return this.comp(\n        /* validates */\n        other\n      ) > 0;\n    };\n    LongPrototype.gt = LongPrototype.greaterThan;\n    LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\n      return this.comp(\n        /* validates */\n        other\n      ) >= 0;\n    };\n    LongPrototype.gte = LongPrototype.greaterThanOrEqual;\n    LongPrototype.ge = LongPrototype.greaterThanOrEqual;\n    LongPrototype.compare = function compare(other) {\n      if (!isLong(other))\n        other = fromValue(other);\n      if (this.eq(other))\n        return 0;\n      var thisNeg = this.isNegative(), otherNeg = other.isNegative();\n      if (thisNeg && !otherNeg)\n        return -1;\n      if (!thisNeg && otherNeg)\n        return 1;\n      if (!this.unsigned)\n        return this.sub(other).isNegative() ? -1 : 1;\n      return other.high >>> 0 > this.high >>> 0 || other.high === this.high && other.low >>> 0 > this.low >>> 0 ? -1 : 1;\n    };\n    LongPrototype.comp = LongPrototype.compare;\n    LongPrototype.negate = function negate() {\n      if (!this.unsigned && this.eq(MIN_VALUE))\n        return MIN_VALUE;\n      return this.not().add(ONE);\n    };\n    LongPrototype.neg = LongPrototype.negate;\n    LongPrototype.add = function add(addend) {\n      if (!isLong(addend))\n        addend = fromValue(addend);\n      var a48 = this.high >>> 16;\n      var a32 = this.high & 65535;\n      var a16 = this.low >>> 16;\n      var a00 = this.low & 65535;\n      var b48 = addend.high >>> 16;\n      var b32 = addend.high & 65535;\n      var b16 = addend.low >>> 16;\n      var b00 = addend.low & 65535;\n      var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n      c00 += a00 + b00;\n      c16 += c00 >>> 16;\n      c00 &= 65535;\n      c16 += a16 + b16;\n      c32 += c16 >>> 16;\n      c16 &= 65535;\n      c32 += a32 + b32;\n      c48 += c32 >>> 16;\n      c32 &= 65535;\n      c48 += a48 + b48;\n      c48 &= 65535;\n      return fromBits(c16 << 16 | c00, c48 << 16 | c32, this.unsigned);\n    };\n    LongPrototype.subtract = function subtract(subtrahend) {\n      if (!isLong(subtrahend))\n        subtrahend = fromValue(subtrahend);\n      return this.add(subtrahend.neg());\n    };\n    LongPrototype.sub = LongPrototype.subtract;\n    LongPrototype.multiply = function multiply(multiplier) {\n      if (this.isZero())\n        return ZERO;\n      if (!isLong(multiplier))\n        multiplier = fromValue(multiplier);\n      if (wasm) {\n        var low = wasm.mul(\n          this.low,\n          this.high,\n          multiplier.low,\n          multiplier.high\n        );\n        return fromBits(low, wasm.get_high(), this.unsigned);\n      }\n      if (multiplier.isZero())\n        return ZERO;\n      if (this.eq(MIN_VALUE))\n        return multiplier.isOdd() ? MIN_VALUE : ZERO;\n      if (multiplier.eq(MIN_VALUE))\n        return this.isOdd() ? MIN_VALUE : ZERO;\n      if (this.isNegative()) {\n        if (multiplier.isNegative())\n          return this.neg().mul(multiplier.neg());\n        else\n          return this.neg().mul(multiplier).neg();\n      } else if (multiplier.isNegative())\n        return this.mul(multiplier.neg()).neg();\n      if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\n        return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\n      var a48 = this.high >>> 16;\n      var a32 = this.high & 65535;\n      var a16 = this.low >>> 16;\n      var a00 = this.low & 65535;\n      var b48 = multiplier.high >>> 16;\n      var b32 = multiplier.high & 65535;\n      var b16 = multiplier.low >>> 16;\n      var b00 = multiplier.low & 65535;\n      var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n      c00 += a00 * b00;\n      c16 += c00 >>> 16;\n      c00 &= 65535;\n      c16 += a16 * b00;\n      c32 += c16 >>> 16;\n      c16 &= 65535;\n      c16 += a00 * b16;\n      c32 += c16 >>> 16;\n      c16 &= 65535;\n      c32 += a32 * b00;\n      c48 += c32 >>> 16;\n      c32 &= 65535;\n      c32 += a16 * b16;\n      c48 += c32 >>> 16;\n      c32 &= 65535;\n      c32 += a00 * b32;\n      c48 += c32 >>> 16;\n      c32 &= 65535;\n      c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n      c48 &= 65535;\n      return fromBits(c16 << 16 | c00, c48 << 16 | c32, this.unsigned);\n    };\n    LongPrototype.mul = LongPrototype.multiply;\n    LongPrototype.divide = function divide(divisor) {\n      if (!isLong(divisor))\n        divisor = fromValue(divisor);\n      if (divisor.isZero())\n        throw Error(\"division by zero\");\n      if (wasm) {\n        if (!this.unsigned && this.high === -2147483648 && divisor.low === -1 && divisor.high === -1) {\n          return this;\n        }\n        var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\n          this.low,\n          this.high,\n          divisor.low,\n          divisor.high\n        );\n        return fromBits(low, wasm.get_high(), this.unsigned);\n      }\n      if (this.isZero())\n        return this.unsigned ? UZERO : ZERO;\n      var approx, rem, res;\n      if (!this.unsigned) {\n        if (this.eq(MIN_VALUE)) {\n          if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\n            return MIN_VALUE;\n          else if (divisor.eq(MIN_VALUE))\n            return ONE;\n          else {\n            var halfThis = this.shr(1);\n            approx = halfThis.div(divisor).shl(1);\n            if (approx.eq(ZERO)) {\n              return divisor.isNegative() ? ONE : NEG_ONE;\n            } else {\n              rem = this.sub(divisor.mul(approx));\n              res = approx.add(rem.div(divisor));\n              return res;\n            }\n          }\n        } else if (divisor.eq(MIN_VALUE))\n          return this.unsigned ? UZERO : ZERO;\n        if (this.isNegative()) {\n          if (divisor.isNegative())\n            return this.neg().div(divisor.neg());\n          return this.neg().div(divisor).neg();\n        } else if (divisor.isNegative())\n          return this.div(divisor.neg()).neg();\n        res = ZERO;\n      } else {\n        if (!divisor.unsigned)\n          divisor = divisor.toUnsigned();\n        if (divisor.gt(this))\n          return UZERO;\n        if (divisor.gt(this.shru(1)))\n          return UONE;\n        res = UZERO;\n      }\n      rem = this;\n      while (rem.gte(divisor)) {\n        approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\n        var log2 = Math.ceil(Math.log(approx) / Math.LN2), delta = log2 <= 48 ? 1 : pow_dbl(2, log2 - 48), approxRes = fromNumber(approx), approxRem = approxRes.mul(divisor);\n        while (approxRem.isNegative() || approxRem.gt(rem)) {\n          approx -= delta;\n          approxRes = fromNumber(approx, this.unsigned);\n          approxRem = approxRes.mul(divisor);\n        }\n        if (approxRes.isZero())\n          approxRes = ONE;\n        res = res.add(approxRes);\n        rem = rem.sub(approxRem);\n      }\n      return res;\n    };\n    LongPrototype.div = LongPrototype.divide;\n    LongPrototype.modulo = function modulo(divisor) {\n      if (!isLong(divisor))\n        divisor = fromValue(divisor);\n      if (wasm) {\n        var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\n          this.low,\n          this.high,\n          divisor.low,\n          divisor.high\n        );\n        return fromBits(low, wasm.get_high(), this.unsigned);\n      }\n      return this.sub(this.div(divisor).mul(divisor));\n    };\n    LongPrototype.mod = LongPrototype.modulo;\n    LongPrototype.rem = LongPrototype.modulo;\n    LongPrototype.not = function not() {\n      return fromBits(~this.low, ~this.high, this.unsigned);\n    };\n    LongPrototype.and = function and(other) {\n      if (!isLong(other))\n        other = fromValue(other);\n      return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\n    };\n    LongPrototype.or = function or(other) {\n      if (!isLong(other))\n        other = fromValue(other);\n      return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\n    };\n    LongPrototype.xor = function xor(other) {\n      if (!isLong(other))\n        other = fromValue(other);\n      return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\n    };\n    LongPrototype.shiftLeft = function shiftLeft(numBits) {\n      if (isLong(numBits))\n        numBits = numBits.toInt();\n      if ((numBits &= 63) === 0)\n        return this;\n      else if (numBits < 32)\n        return fromBits(this.low << numBits, this.high << numBits | this.low >>> 32 - numBits, this.unsigned);\n      else\n        return fromBits(0, this.low << numBits - 32, this.unsigned);\n    };\n    LongPrototype.shl = LongPrototype.shiftLeft;\n    LongPrototype.shiftRight = function shiftRight(numBits) {\n      if (isLong(numBits))\n        numBits = numBits.toInt();\n      if ((numBits &= 63) === 0)\n        return this;\n      else if (numBits < 32)\n        return fromBits(this.low >>> numBits | this.high << 32 - numBits, this.high >> numBits, this.unsigned);\n      else\n        return fromBits(this.high >> numBits - 32, this.high >= 0 ? 0 : -1, this.unsigned);\n    };\n    LongPrototype.shr = LongPrototype.shiftRight;\n    LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\n      if (isLong(numBits))\n        numBits = numBits.toInt();\n      numBits &= 63;\n      if (numBits === 0)\n        return this;\n      else {\n        var high = this.high;\n        if (numBits < 32) {\n          var low = this.low;\n          return fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits, this.unsigned);\n        } else if (numBits === 32)\n          return fromBits(high, 0, this.unsigned);\n        else\n          return fromBits(high >>> numBits - 32, 0, this.unsigned);\n      }\n    };\n    LongPrototype.shru = LongPrototype.shiftRightUnsigned;\n    LongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n    LongPrototype.toSigned = function toSigned() {\n      if (!this.unsigned)\n        return this;\n      return fromBits(this.low, this.high, false);\n    };\n    LongPrototype.toUnsigned = function toUnsigned() {\n      if (this.unsigned)\n        return this;\n      return fromBits(this.low, this.high, true);\n    };\n    LongPrototype.toBytes = function toBytes(le) {\n      return le ? this.toBytesLE() : this.toBytesBE();\n    };\n    LongPrototype.toBytesLE = function toBytesLE() {\n      var hi = this.high, lo = this.low;\n      return [\n        lo & 255,\n        lo >>> 8 & 255,\n        lo >>> 16 & 255,\n        lo >>> 24,\n        hi & 255,\n        hi >>> 8 & 255,\n        hi >>> 16 & 255,\n        hi >>> 24\n      ];\n    };\n    LongPrototype.toBytesBE = function toBytesBE() {\n      var hi = this.high, lo = this.low;\n      return [\n        hi >>> 24,\n        hi >>> 16 & 255,\n        hi >>> 8 & 255,\n        hi & 255,\n        lo >>> 24,\n        lo >>> 16 & 255,\n        lo >>> 8 & 255,\n        lo & 255\n      ];\n    };\n    Long5.fromBytes = function fromBytes(bytes, unsigned, le) {\n      return le ? Long5.fromBytesLE(bytes, unsigned) : Long5.fromBytesBE(bytes, unsigned);\n    };\n    Long5.fromBytesLE = function fromBytesLE(bytes, unsigned) {\n      return new Long5(\n        bytes[0] | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24,\n        bytes[4] | bytes[5] << 8 | bytes[6] << 16 | bytes[7] << 24,\n        unsigned\n      );\n    };\n    Long5.fromBytesBE = function fromBytesBE(bytes, unsigned) {\n      return new Long5(\n        bytes[4] << 24 | bytes[5] << 16 | bytes[6] << 8 | bytes[7],\n        bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3],\n        unsigned\n      );\n    };\n  }\n});\n\n// ../../node_modules/@protobufjs/aspromise/index.js\nvar require_aspromise = __commonJS({\n  \"../../node_modules/@protobufjs/aspromise/index.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = asPromise;\n    function asPromise(fn, ctx) {\n      var params = new Array(arguments.length - 1), offset = 0, index = 2, pending = true;\n      while (index < arguments.length)\n        params[offset++] = arguments[index++];\n      return new Promise(function executor(resolve, reject) {\n        params[offset] = function callback(err) {\n          if (pending) {\n            pending = false;\n            if (err)\n              reject(err);\n            else {\n              var params2 = new Array(arguments.length - 1), offset2 = 0;\n              while (offset2 < params2.length)\n                params2[offset2++] = arguments[offset2];\n              resolve.apply(null, params2);\n            }\n          }\n        };\n        try {\n          fn.apply(ctx || null, params);\n        } catch (err) {\n          if (pending) {\n            pending = false;\n            reject(err);\n          }\n        }\n      });\n    }\n  }\n});\n\n// ../../node_modules/@protobufjs/base64/index.js\nvar require_base64 = __commonJS({\n  \"../../node_modules/@protobufjs/base64/index.js\"(exports2) {\n    \"use strict\";\n    var base64 = exports2;\n    base64.length = function length(string) {\n      var p = string.length;\n      if (!p)\n        return 0;\n      var n = 0;\n      while (--p % 4 > 1 && string.charAt(p) === \"=\")\n        ++n;\n      return Math.ceil(string.length * 3) / 4 - n;\n    };\n    var b64 = new Array(64);\n    var s64 = new Array(123);\n    for (i = 0; i < 64; )\n      s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\n    var i;\n    base64.encode = function encode(buffer, start, end) {\n      var parts = null, chunk = [];\n      var i2 = 0, j = 0, t;\n      while (start < end) {\n        var b = buffer[start++];\n        switch (j) {\n          case 0:\n            chunk[i2++] = b64[b >> 2];\n            t = (b & 3) << 4;\n            j = 1;\n            break;\n          case 1:\n            chunk[i2++] = b64[t | b >> 4];\n            t = (b & 15) << 2;\n            j = 2;\n            break;\n          case 2:\n            chunk[i2++] = b64[t | b >> 6];\n            chunk[i2++] = b64[b & 63];\n            j = 0;\n            break;\n        }\n        if (i2 > 8191) {\n          (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\n          i2 = 0;\n        }\n      }\n      if (j) {\n        chunk[i2++] = b64[t];\n        chunk[i2++] = 61;\n        if (j === 1)\n          chunk[i2++] = 61;\n      }\n      if (parts) {\n        if (i2)\n          parts.push(String.fromCharCode.apply(String, chunk.slice(0, i2)));\n        return parts.join(\"\");\n      }\n      return String.fromCharCode.apply(String, chunk.slice(0, i2));\n    };\n    var invalidEncoding = \"invalid encoding\";\n    base64.decode = function decode(string, buffer, offset) {\n      var start = offset;\n      var j = 0, t;\n      for (var i2 = 0; i2 < string.length; ) {\n        var c = string.charCodeAt(i2++);\n        if (c === 61 && j > 1)\n          break;\n        if ((c = s64[c]) === void 0)\n          throw Error(invalidEncoding);\n        switch (j) {\n          case 0:\n            t = c;\n            j = 1;\n            break;\n          case 1:\n            buffer[offset++] = t << 2 | (c & 48) >> 4;\n            t = c;\n            j = 2;\n            break;\n          case 2:\n            buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\n            t = c;\n            j = 3;\n            break;\n          case 3:\n            buffer[offset++] = (t & 3) << 6 | c;\n            j = 0;\n            break;\n        }\n      }\n      if (j === 1)\n        throw Error(invalidEncoding);\n      return offset - start;\n    };\n    base64.test = function test(string) {\n      return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\n    };\n  }\n});\n\n// ../../node_modules/@protobufjs/eventemitter/index.js\nvar require_eventemitter = __commonJS({\n  \"../../node_modules/@protobufjs/eventemitter/index.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = EventEmitter;\n    function EventEmitter() {\n      this._listeners = {};\n    }\n    EventEmitter.prototype.on = function on(evt, fn, ctx) {\n      (this._listeners[evt] || (this._listeners[evt] = [])).push({\n        fn,\n        ctx: ctx || this\n      });\n      return this;\n    };\n    EventEmitter.prototype.off = function off(evt, fn) {\n      if (evt === void 0)\n        this._listeners = {};\n      else {\n        if (fn === void 0)\n          this._listeners[evt] = [];\n        else {\n          var listeners = this._listeners[evt];\n          for (var i = 0; i < listeners.length; )\n            if (listeners[i].fn === fn)\n              listeners.splice(i, 1);\n            else\n              ++i;\n        }\n      }\n      return this;\n    };\n    EventEmitter.prototype.emit = function emit(evt) {\n      var listeners = this._listeners[evt];\n      if (listeners) {\n        var args = [], i = 1;\n        for (; i < arguments.length; )\n          args.push(arguments[i++]);\n        for (i = 0; i < listeners.length; )\n          listeners[i].fn.apply(listeners[i++].ctx, args);\n      }\n      return this;\n    };\n  }\n});\n\n// ../../node_modules/@protobufjs/float/index.js\nvar require_float = __commonJS({\n  \"../../node_modules/@protobufjs/float/index.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = factory(factory);\n    function factory(exports3) {\n      if (typeof Float32Array !== \"undefined\")\n        (function() {\n          var f32 = new Float32Array([-0]), f8b = new Uint8Array(f32.buffer), le = f8b[3] === 128;\n          function writeFloat_f32_cpy(val, buf, pos) {\n            f32[0] = val;\n            buf[pos] = f8b[0];\n            buf[pos + 1] = f8b[1];\n            buf[pos + 2] = f8b[2];\n            buf[pos + 3] = f8b[3];\n          }\n          function writeFloat_f32_rev(val, buf, pos) {\n            f32[0] = val;\n            buf[pos] = f8b[3];\n            buf[pos + 1] = f8b[2];\n            buf[pos + 2] = f8b[1];\n            buf[pos + 3] = f8b[0];\n          }\n          exports3.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\n          exports3.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\n          function readFloat_f32_cpy(buf, pos) {\n            f8b[0] = buf[pos];\n            f8b[1] = buf[pos + 1];\n            f8b[2] = buf[pos + 2];\n            f8b[3] = buf[pos + 3];\n            return f32[0];\n          }\n          function readFloat_f32_rev(buf, pos) {\n            f8b[3] = buf[pos];\n            f8b[2] = buf[pos + 1];\n            f8b[1] = buf[pos + 2];\n            f8b[0] = buf[pos + 3];\n            return f32[0];\n          }\n          exports3.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\n          exports3.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\n        })();\n      else\n        (function() {\n          function writeFloat_ieee754(writeUint, val, buf, pos) {\n            var sign = val < 0 ? 1 : 0;\n            if (sign)\n              val = -val;\n            if (val === 0)\n              writeUint(1 / val > 0 ? (\n                /* positive */\n                0\n              ) : (\n                /* negative 0 */\n                2147483648\n              ), buf, pos);\n            else if (isNaN(val))\n              writeUint(2143289344, buf, pos);\n            else if (val > 34028234663852886e22)\n              writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\n            else if (val < 11754943508222875e-54)\n              writeUint((sign << 31 | Math.round(val / 1401298464324817e-60)) >>> 0, buf, pos);\n            else {\n              var exponent = Math.floor(Math.log(val) / Math.LN2), mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\n              writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\n            }\n          }\n          exports3.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\n          exports3.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\n          function readFloat_ieee754(readUint, buf, pos) {\n            var uint = readUint(buf, pos), sign = (uint >> 31) * 2 + 1, exponent = uint >>> 23 & 255, mantissa = uint & 8388607;\n            return exponent === 255 ? mantissa ? NaN : sign * Infinity : exponent === 0 ? sign * 1401298464324817e-60 * mantissa : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\n          }\n          exports3.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\n          exports3.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\n        })();\n      if (typeof Float64Array !== \"undefined\")\n        (function() {\n          var f64 = new Float64Array([-0]), f8b = new Uint8Array(f64.buffer), le = f8b[7] === 128;\n          function writeDouble_f64_cpy(val, buf, pos) {\n            f64[0] = val;\n            buf[pos] = f8b[0];\n            buf[pos + 1] = f8b[1];\n            buf[pos + 2] = f8b[2];\n            buf[pos + 3] = f8b[3];\n            buf[pos + 4] = f8b[4];\n            buf[pos + 5] = f8b[5];\n            buf[pos + 6] = f8b[6];\n            buf[pos + 7] = f8b[7];\n          }\n          function writeDouble_f64_rev(val, buf, pos) {\n            f64[0] = val;\n            buf[pos] = f8b[7];\n            buf[pos + 1] = f8b[6];\n            buf[pos + 2] = f8b[5];\n            buf[pos + 3] = f8b[4];\n            buf[pos + 4] = f8b[3];\n            buf[pos + 5] = f8b[2];\n            buf[pos + 6] = f8b[1];\n            buf[pos + 7] = f8b[0];\n          }\n          exports3.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\n          exports3.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\n          function readDouble_f64_cpy(buf, pos) {\n            f8b[0] = buf[pos];\n            f8b[1] = buf[pos + 1];\n            f8b[2] = buf[pos + 2];\n            f8b[3] = buf[pos + 3];\n            f8b[4] = buf[pos + 4];\n            f8b[5] = buf[pos + 5];\n            f8b[6] = buf[pos + 6];\n            f8b[7] = buf[pos + 7];\n            return f64[0];\n          }\n          function readDouble_f64_rev(buf, pos) {\n            f8b[7] = buf[pos];\n            f8b[6] = buf[pos + 1];\n            f8b[5] = buf[pos + 2];\n            f8b[4] = buf[pos + 3];\n            f8b[3] = buf[pos + 4];\n            f8b[2] = buf[pos + 5];\n            f8b[1] = buf[pos + 6];\n            f8b[0] = buf[pos + 7];\n            return f64[0];\n          }\n          exports3.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\n          exports3.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\n        })();\n      else\n        (function() {\n          function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\n            var sign = val < 0 ? 1 : 0;\n            if (sign)\n              val = -val;\n            if (val === 0) {\n              writeUint(0, buf, pos + off0);\n              writeUint(1 / val > 0 ? (\n                /* positive */\n                0\n              ) : (\n                /* negative 0 */\n                2147483648\n              ), buf, pos + off1);\n            } else if (isNaN(val)) {\n              writeUint(0, buf, pos + off0);\n              writeUint(2146959360, buf, pos + off1);\n            } else if (val > 17976931348623157e292) {\n              writeUint(0, buf, pos + off0);\n              writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\n            } else {\n              var mantissa;\n              if (val < 22250738585072014e-324) {\n                mantissa = val / 5e-324;\n                writeUint(mantissa >>> 0, buf, pos + off0);\n                writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\n              } else {\n                var exponent = Math.floor(Math.log(val) / Math.LN2);\n                if (exponent === 1024)\n                  exponent = 1023;\n                mantissa = val * Math.pow(2, -exponent);\n                writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\n                writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\n              }\n            }\n          }\n          exports3.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\n          exports3.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\n          function readDouble_ieee754(readUint, off0, off1, buf, pos) {\n            var lo = readUint(buf, pos + off0), hi = readUint(buf, pos + off1);\n            var sign = (hi >> 31) * 2 + 1, exponent = hi >>> 20 & 2047, mantissa = 4294967296 * (hi & 1048575) + lo;\n            return exponent === 2047 ? mantissa ? NaN : sign * Infinity : exponent === 0 ? sign * 5e-324 * mantissa : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\n          }\n          exports3.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\n          exports3.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\n        })();\n      return exports3;\n    }\n    function writeUintLE(val, buf, pos) {\n      buf[pos] = val & 255;\n      buf[pos + 1] = val >>> 8 & 255;\n      buf[pos + 2] = val >>> 16 & 255;\n      buf[pos + 3] = val >>> 24;\n    }\n    function writeUintBE(val, buf, pos) {\n      buf[pos] = val >>> 24;\n      buf[pos + 1] = val >>> 16 & 255;\n      buf[pos + 2] = val >>> 8 & 255;\n      buf[pos + 3] = val & 255;\n    }\n    function readUintLE(buf, pos) {\n      return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16 | buf[pos + 3] << 24) >>> 0;\n    }\n    function readUintBE(buf, pos) {\n      return (buf[pos] << 24 | buf[pos + 1] << 16 | buf[pos + 2] << 8 | buf[pos + 3]) >>> 0;\n    }\n  }\n});\n\n// ../../node_modules/@protobufjs/inquire/index.js\nvar require_inquire = __commonJS({\n  \"../../node_modules/@protobufjs/inquire/index.js\"(exports, module) {\n    \"use strict\";\n    module.exports = inquire;\n    function inquire(moduleName) {\n      try {\n        var mod = eval(\"quire\".replace(/^/, \"re\"))(moduleName);\n        if (mod && (mod.length || Object.keys(mod).length))\n          return mod;\n      } catch (e) {\n      }\n      return null;\n    }\n  }\n});\n\n// ../../node_modules/@protobufjs/utf8/index.js\nvar require_utf8 = __commonJS({\n  \"../../node_modules/@protobufjs/utf8/index.js\"(exports2) {\n    \"use strict\";\n    var utf8 = exports2;\n    utf8.length = function utf8_length(string) {\n      var len = 0, c = 0;\n      for (var i = 0; i < string.length; ++i) {\n        c = string.charCodeAt(i);\n        if (c < 128)\n          len += 1;\n        else if (c < 2048)\n          len += 2;\n        else if ((c & 64512) === 55296 && (string.charCodeAt(i + 1) & 64512) === 56320) {\n          ++i;\n          len += 4;\n        } else\n          len += 3;\n      }\n      return len;\n    };\n    utf8.read = function utf8_read(buffer, start, end) {\n      var len = end - start;\n      if (len < 1)\n        return \"\";\n      var parts = null, chunk = [], i = 0, t;\n      while (start < end) {\n        t = buffer[start++];\n        if (t < 128)\n          chunk[i++] = t;\n        else if (t > 191 && t < 224)\n          chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\n        else if (t > 239 && t < 365) {\n          t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 65536;\n          chunk[i++] = 55296 + (t >> 10);\n          chunk[i++] = 56320 + (t & 1023);\n        } else\n          chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\n        if (i > 8191) {\n          (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\n          i = 0;\n        }\n      }\n      if (parts) {\n        if (i)\n          parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\n        return parts.join(\"\");\n      }\n      return String.fromCharCode.apply(String, chunk.slice(0, i));\n    };\n    utf8.write = function utf8_write(string, buffer, offset) {\n      var start = offset, c1, c2;\n      for (var i = 0; i < string.length; ++i) {\n        c1 = string.charCodeAt(i);\n        if (c1 < 128) {\n          buffer[offset++] = c1;\n        } else if (c1 < 2048) {\n          buffer[offset++] = c1 >> 6 | 192;\n          buffer[offset++] = c1 & 63 | 128;\n        } else if ((c1 & 64512) === 55296 && ((c2 = string.charCodeAt(i + 1)) & 64512) === 56320) {\n          c1 = 65536 + ((c1 & 1023) << 10) + (c2 & 1023);\n          ++i;\n          buffer[offset++] = c1 >> 18 | 240;\n          buffer[offset++] = c1 >> 12 & 63 | 128;\n          buffer[offset++] = c1 >> 6 & 63 | 128;\n          buffer[offset++] = c1 & 63 | 128;\n        } else {\n          buffer[offset++] = c1 >> 12 | 224;\n          buffer[offset++] = c1 >> 6 & 63 | 128;\n          buffer[offset++] = c1 & 63 | 128;\n        }\n      }\n      return offset - start;\n    };\n  }\n});\n\n// ../../node_modules/@protobufjs/pool/index.js\nvar require_pool = __commonJS({\n  \"../../node_modules/@protobufjs/pool/index.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = pool;\n    function pool(alloc, slice, size) {\n      var SIZE = size || 8192;\n      var MAX = SIZE >>> 1;\n      var slab = null;\n      var offset = SIZE;\n      return function pool_alloc(size2) {\n        if (size2 < 1 || size2 > MAX)\n          return alloc(size2);\n        if (offset + size2 > SIZE) {\n          slab = alloc(SIZE);\n          offset = 0;\n        }\n        var buf = slice.call(slab, offset, offset += size2);\n        if (offset & 7)\n          offset = (offset | 7) + 1;\n        return buf;\n      };\n    }\n  }\n});\n\n// ../../node_modules/protobufjs/src/util/longbits.js\nvar require_longbits = __commonJS({\n  \"../../node_modules/protobufjs/src/util/longbits.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = LongBits;\n    var util3 = require_minimal();\n    function LongBits(lo, hi) {\n      this.lo = lo >>> 0;\n      this.hi = hi >>> 0;\n    }\n    var zero = LongBits.zero = new LongBits(0, 0);\n    zero.toNumber = function() {\n      return 0;\n    };\n    zero.zzEncode = zero.zzDecode = function() {\n      return this;\n    };\n    zero.length = function() {\n      return 1;\n    };\n    var zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n    LongBits.fromNumber = function fromNumber(value) {\n      if (value === 0)\n        return zero;\n      var sign = value < 0;\n      if (sign)\n        value = -value;\n      var lo = value >>> 0, hi = (value - lo) / 4294967296 >>> 0;\n      if (sign) {\n        hi = ~hi >>> 0;\n        lo = ~lo >>> 0;\n        if (++lo > 4294967295) {\n          lo = 0;\n          if (++hi > 4294967295)\n            hi = 0;\n        }\n      }\n      return new LongBits(lo, hi);\n    };\n    LongBits.from = function from(value) {\n      if (typeof value === \"number\")\n        return LongBits.fromNumber(value);\n      if (util3.isString(value)) {\n        if (util3.Long)\n          value = util3.Long.fromString(value);\n        else\n          return LongBits.fromNumber(parseInt(value, 10));\n      }\n      return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n    };\n    LongBits.prototype.toNumber = function toNumber(unsigned) {\n      if (!unsigned && this.hi >>> 31) {\n        var lo = ~this.lo + 1 >>> 0, hi = ~this.hi >>> 0;\n        if (!lo)\n          hi = hi + 1 >>> 0;\n        return -(lo + hi * 4294967296);\n      }\n      return this.lo + this.hi * 4294967296;\n    };\n    LongBits.prototype.toLong = function toLong(unsigned) {\n      return util3.Long ? new util3.Long(this.lo | 0, this.hi | 0, Boolean(unsigned)) : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n    };\n    var charCodeAt = String.prototype.charCodeAt;\n    LongBits.fromHash = function fromHash(hash) {\n      if (hash === zeroHash)\n        return zero;\n      return new LongBits(\n        (charCodeAt.call(hash, 0) | charCodeAt.call(hash, 1) << 8 | charCodeAt.call(hash, 2) << 16 | charCodeAt.call(hash, 3) << 24) >>> 0,\n        (charCodeAt.call(hash, 4) | charCodeAt.call(hash, 5) << 8 | charCodeAt.call(hash, 6) << 16 | charCodeAt.call(hash, 7) << 24) >>> 0\n      );\n    };\n    LongBits.prototype.toHash = function toHash() {\n      return String.fromCharCode(\n        this.lo & 255,\n        this.lo >>> 8 & 255,\n        this.lo >>> 16 & 255,\n        this.lo >>> 24,\n        this.hi & 255,\n        this.hi >>> 8 & 255,\n        this.hi >>> 16 & 255,\n        this.hi >>> 24\n      );\n    };\n    LongBits.prototype.zzEncode = function zzEncode() {\n      var mask = this.hi >> 31;\n      this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n      this.lo = (this.lo << 1 ^ mask) >>> 0;\n      return this;\n    };\n    LongBits.prototype.zzDecode = function zzDecode() {\n      var mask = -(this.lo & 1);\n      this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n      this.hi = (this.hi >>> 1 ^ mask) >>> 0;\n      return this;\n    };\n    LongBits.prototype.length = function length() {\n      var part0 = this.lo, part1 = (this.lo >>> 28 | this.hi << 4) >>> 0, part2 = this.hi >>> 24;\n      return part2 === 0 ? part1 === 0 ? part0 < 16384 ? part0 < 128 ? 1 : 2 : part0 < 2097152 ? 3 : 4 : part1 < 16384 ? part1 < 128 ? 5 : 6 : part1 < 2097152 ? 7 : 8 : part2 < 128 ? 9 : 10;\n    };\n  }\n});\n\n// ../../node_modules/protobufjs/src/util/minimal.js\nvar require_minimal = __commonJS({\n  \"../../node_modules/protobufjs/src/util/minimal.js\"(exports2) {\n    \"use strict\";\n    var util3 = exports2;\n    util3.asPromise = require_aspromise();\n    util3.base64 = require_base64();\n    util3.EventEmitter = require_eventemitter();\n    util3.float = require_float();\n    util3.inquire = require_inquire();\n    util3.utf8 = require_utf8();\n    util3.pool = require_pool();\n    util3.LongBits = require_longbits();\n    util3.isNode = Boolean(typeof global !== \"undefined\" && global && global.process && global.process.versions && global.process.versions.node);\n    util3.global = util3.isNode && global || typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || exports2;\n    util3.emptyArray = Object.freeze ? Object.freeze([]) : (\n      /* istanbul ignore next */\n      []\n    );\n    util3.emptyObject = Object.freeze ? Object.freeze({}) : (\n      /* istanbul ignore next */\n      {}\n    );\n    util3.isInteger = Number.isInteger || /* istanbul ignore next */\n    function isInteger(value) {\n      return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n    };\n    util3.isString = function isString(value) {\n      return typeof value === \"string\" || value instanceof String;\n    };\n    util3.isObject = function isObject(value) {\n      return value && typeof value === \"object\";\n    };\n    util3.isset = /**\n     * Checks if a property on a message is considered to be present.\n     * @param {Object} obj Plain object or message instance\n     * @param {string} prop Property name\n     * @returns {boolean} `true` if considered to be present, otherwise `false`\n     */\n    util3.isSet = function isSet(obj, prop) {\n      var value = obj[prop];\n      if (value != null && obj.hasOwnProperty(prop))\n        return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n      return false;\n    };\n    util3.Buffer = function() {\n      try {\n        var Buffer2 = util3.inquire(\"buffer\").Buffer;\n        return Buffer2.prototype.utf8Write ? Buffer2 : (\n          /* istanbul ignore next */\n          null\n        );\n      } catch (e) {\n        return null;\n      }\n    }();\n    util3._Buffer_from = null;\n    util3._Buffer_allocUnsafe = null;\n    util3.newBuffer = function newBuffer(sizeOrArray) {\n      return typeof sizeOrArray === \"number\" ? util3.Buffer ? util3._Buffer_allocUnsafe(sizeOrArray) : new util3.Array(sizeOrArray) : util3.Buffer ? util3._Buffer_from(sizeOrArray) : typeof Uint8Array === \"undefined\" ? sizeOrArray : new Uint8Array(sizeOrArray);\n    };\n    util3.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n    util3.Long = /* istanbul ignore next */\n    util3.global.dcodeIO && /* istanbul ignore next */\n    util3.global.dcodeIO.Long || /* istanbul ignore next */\n    util3.global.Long || util3.inquire(\"long\");\n    util3.key2Re = /^true|false|0|1$/;\n    util3.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n    util3.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n    util3.longToHash = function longToHash(value) {\n      return value ? util3.LongBits.from(value).toHash() : util3.LongBits.zeroHash;\n    };\n    util3.longFromHash = function longFromHash(hash, unsigned) {\n      var bits = util3.LongBits.fromHash(hash);\n      if (util3.Long)\n        return util3.Long.fromBits(bits.lo, bits.hi, unsigned);\n      return bits.toNumber(Boolean(unsigned));\n    };\n    function merge(dst, src, ifNotSet) {\n      for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n        if (dst[keys[i]] === void 0 || !ifNotSet)\n          dst[keys[i]] = src[keys[i]];\n      return dst;\n    }\n    util3.merge = merge;\n    util3.lcFirst = function lcFirst(str) {\n      return str.charAt(0).toLowerCase() + str.substring(1);\n    };\n    function newError(name) {\n      function CustomError(message, properties) {\n        if (!(this instanceof CustomError))\n          return new CustomError(message, properties);\n        Object.defineProperty(this, \"message\", { get: function() {\n          return message;\n        } });\n        if (Error.captureStackTrace)\n          Error.captureStackTrace(this, CustomError);\n        else\n          Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n        if (properties)\n          merge(this, properties);\n      }\n      (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n      Object.defineProperty(CustomError.prototype, \"name\", { get: function() {\n        return name;\n      } });\n      CustomError.prototype.toString = function toString() {\n        return this.name + \": \" + this.message;\n      };\n      return CustomError;\n    }\n    util3.newError = newError;\n    util3.ProtocolError = newError(\"ProtocolError\");\n    util3.oneOfGetter = function getOneOf(fieldNames) {\n      var fieldMap = {};\n      for (var i = 0; i < fieldNames.length; ++i)\n        fieldMap[fieldNames[i]] = 1;\n      return function() {\n        for (var keys = Object.keys(this), i2 = keys.length - 1; i2 > -1; --i2)\n          if (fieldMap[keys[i2]] === 1 && this[keys[i2]] !== void 0 && this[keys[i2]] !== null)\n            return keys[i2];\n      };\n    };\n    util3.oneOfSetter = function setOneOf(fieldNames) {\n      return function(name) {\n        for (var i = 0; i < fieldNames.length; ++i)\n          if (fieldNames[i] !== name)\n            delete this[fieldNames[i]];\n      };\n    };\n    util3.toJSONOptions = {\n      longs: String,\n      enums: String,\n      bytes: String,\n      json: true\n    };\n    util3._configure = function() {\n      var Buffer2 = util3.Buffer;\n      if (!Buffer2) {\n        util3._Buffer_from = util3._Buffer_allocUnsafe = null;\n        return;\n      }\n      util3._Buffer_from = Buffer2.from !== Uint8Array.from && Buffer2.from || /* istanbul ignore next */\n      function Buffer_from(value, encoding) {\n        return new Buffer2(value, encoding);\n      };\n      util3._Buffer_allocUnsafe = Buffer2.allocUnsafe || /* istanbul ignore next */\n      function Buffer_allocUnsafe(size) {\n        return new Buffer2(size);\n      };\n    };\n  }\n});\n\n// ../../node_modules/protobufjs/src/writer.js\nvar require_writer = __commonJS({\n  \"../../node_modules/protobufjs/src/writer.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = Writer3;\n    var util3 = require_minimal();\n    var BufferWriter;\n    var LongBits = util3.LongBits;\n    var base64 = util3.base64;\n    var utf8 = util3.utf8;\n    function Op(fn, len, val) {\n      this.fn = fn;\n      this.len = len;\n      this.next = void 0;\n      this.val = val;\n    }\n    function noop() {\n    }\n    function State(writer) {\n      this.head = writer.head;\n      this.tail = writer.tail;\n      this.len = writer.len;\n      this.next = writer.states;\n    }\n    function Writer3() {\n      this.len = 0;\n      this.head = new Op(noop, 0, 0);\n      this.tail = this.head;\n      this.states = null;\n    }\n    var create = function create2() {\n      return util3.Buffer ? function create_buffer_setup() {\n        return (Writer3.create = function create_buffer() {\n          return new BufferWriter();\n        })();\n      } : function create_array() {\n        return new Writer3();\n      };\n    };\n    Writer3.create = create();\n    Writer3.alloc = function alloc(size) {\n      return new util3.Array(size);\n    };\n    if (util3.Array !== Array)\n      Writer3.alloc = util3.pool(Writer3.alloc, util3.Array.prototype.subarray);\n    Writer3.prototype._push = function push(fn, len, val) {\n      this.tail = this.tail.next = new Op(fn, len, val);\n      this.len += len;\n      return this;\n    };\n    function writeByte(val, buf, pos) {\n      buf[pos] = val & 255;\n    }\n    function writeVarint32(val, buf, pos) {\n      while (val > 127) {\n        buf[pos++] = val & 127 | 128;\n        val >>>= 7;\n      }\n      buf[pos] = val;\n    }\n    function VarintOp(len, val) {\n      this.len = len;\n      this.next = void 0;\n      this.val = val;\n    }\n    VarintOp.prototype = Object.create(Op.prototype);\n    VarintOp.prototype.fn = writeVarint32;\n    Writer3.prototype.uint32 = function write_uint32(value) {\n      this.len += (this.tail = this.tail.next = new VarintOp(\n        (value = value >>> 0) < 128 ? 1 : value < 16384 ? 2 : value < 2097152 ? 3 : value < 268435456 ? 4 : 5,\n        value\n      )).len;\n      return this;\n    };\n    Writer3.prototype.int32 = function write_int32(value) {\n      return value < 0 ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) : this.uint32(value);\n    };\n    Writer3.prototype.sint32 = function write_sint32(value) {\n      return this.uint32((value << 1 ^ value >> 31) >>> 0);\n    };\n    function writeVarint64(val, buf, pos) {\n      while (val.hi) {\n        buf[pos++] = val.lo & 127 | 128;\n        val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n        val.hi >>>= 7;\n      }\n      while (val.lo > 127) {\n        buf[pos++] = val.lo & 127 | 128;\n        val.lo = val.lo >>> 7;\n      }\n      buf[pos++] = val.lo;\n    }\n    Writer3.prototype.uint64 = function write_uint64(value) {\n      var bits = LongBits.from(value);\n      return this._push(writeVarint64, bits.length(), bits);\n    };\n    Writer3.prototype.int64 = Writer3.prototype.uint64;\n    Writer3.prototype.sint64 = function write_sint64(value) {\n      var bits = LongBits.from(value).zzEncode();\n      return this._push(writeVarint64, bits.length(), bits);\n    };\n    Writer3.prototype.bool = function write_bool(value) {\n      return this._push(writeByte, 1, value ? 1 : 0);\n    };\n    function writeFixed32(val, buf, pos) {\n      buf[pos] = val & 255;\n      buf[pos + 1] = val >>> 8 & 255;\n      buf[pos + 2] = val >>> 16 & 255;\n      buf[pos + 3] = val >>> 24;\n    }\n    Writer3.prototype.fixed32 = function write_fixed32(value) {\n      return this._push(writeFixed32, 4, value >>> 0);\n    };\n    Writer3.prototype.sfixed32 = Writer3.prototype.fixed32;\n    Writer3.prototype.fixed64 = function write_fixed64(value) {\n      var bits = LongBits.from(value);\n      return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n    };\n    Writer3.prototype.sfixed64 = Writer3.prototype.fixed64;\n    Writer3.prototype.float = function write_float(value) {\n      return this._push(util3.float.writeFloatLE, 4, value);\n    };\n    Writer3.prototype.double = function write_double(value) {\n      return this._push(util3.float.writeDoubleLE, 8, value);\n    };\n    var writeBytes = util3.Array.prototype.set ? function writeBytes_set(val, buf, pos) {\n      buf.set(val, pos);\n    } : function writeBytes_for(val, buf, pos) {\n      for (var i = 0; i < val.length; ++i)\n        buf[pos + i] = val[i];\n    };\n    Writer3.prototype.bytes = function write_bytes(value) {\n      var len = value.length >>> 0;\n      if (!len)\n        return this._push(writeByte, 1, 0);\n      if (util3.isString(value)) {\n        var buf = Writer3.alloc(len = base64.length(value));\n        base64.decode(value, buf, 0);\n        value = buf;\n      }\n      return this.uint32(len)._push(writeBytes, len, value);\n    };\n    Writer3.prototype.string = function write_string(value) {\n      var len = utf8.length(value);\n      return len ? this.uint32(len)._push(utf8.write, len, value) : this._push(writeByte, 1, 0);\n    };\n    Writer3.prototype.fork = function fork() {\n      this.states = new State(this);\n      this.head = this.tail = new Op(noop, 0, 0);\n      this.len = 0;\n      return this;\n    };\n    Writer3.prototype.reset = function reset() {\n      if (this.states) {\n        this.head = this.states.head;\n        this.tail = this.states.tail;\n        this.len = this.states.len;\n        this.states = this.states.next;\n      } else {\n        this.head = this.tail = new Op(noop, 0, 0);\n        this.len = 0;\n      }\n      return this;\n    };\n    Writer3.prototype.ldelim = function ldelim() {\n      var head = this.head, tail = this.tail, len = this.len;\n      this.reset().uint32(len);\n      if (len) {\n        this.tail.next = head.next;\n        this.tail = tail;\n        this.len += len;\n      }\n      return this;\n    };\n    Writer3.prototype.finish = function finish() {\n      var head = this.head.next, buf = this.constructor.alloc(this.len), pos = 0;\n      while (head) {\n        head.fn(head.val, buf, pos);\n        pos += head.len;\n        head = head.next;\n      }\n      return buf;\n    };\n    Writer3._configure = function(BufferWriter_) {\n      BufferWriter = BufferWriter_;\n      Writer3.create = create();\n      BufferWriter._configure();\n    };\n  }\n});\n\n// ../../node_modules/protobufjs/src/writer_buffer.js\nvar require_writer_buffer = __commonJS({\n  \"../../node_modules/protobufjs/src/writer_buffer.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = BufferWriter;\n    var Writer3 = require_writer();\n    (BufferWriter.prototype = Object.create(Writer3.prototype)).constructor = BufferWriter;\n    var util3 = require_minimal();\n    function BufferWriter() {\n      Writer3.call(this);\n    }\n    BufferWriter._configure = function() {\n      BufferWriter.alloc = util3._Buffer_allocUnsafe;\n      BufferWriter.writeBytesBuffer = util3.Buffer && util3.Buffer.prototype instanceof Uint8Array && util3.Buffer.prototype.set.name === \"set\" ? function writeBytesBuffer_set(val, buf, pos) {\n        buf.set(val, pos);\n      } : function writeBytesBuffer_copy(val, buf, pos) {\n        if (val.copy)\n          val.copy(buf, pos, 0, val.length);\n        else\n          for (var i = 0; i < val.length; )\n            buf[pos++] = val[i++];\n      };\n    };\n    BufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n      if (util3.isString(value))\n        value = util3._Buffer_from(value, \"base64\");\n      var len = value.length >>> 0;\n      this.uint32(len);\n      if (len)\n        this._push(BufferWriter.writeBytesBuffer, len, value);\n      return this;\n    };\n    function writeStringBuffer(val, buf, pos) {\n      if (val.length < 40)\n        util3.utf8.write(val, buf, pos);\n      else if (buf.utf8Write)\n        buf.utf8Write(val, pos);\n      else\n        buf.write(val, pos);\n    }\n    BufferWriter.prototype.string = function write_string_buffer(value) {\n      var len = util3.Buffer.byteLength(value);\n      this.uint32(len);\n      if (len)\n        this._push(writeStringBuffer, len, value);\n      return this;\n    };\n    BufferWriter._configure();\n  }\n});\n\n// ../../node_modules/protobufjs/src/reader.js\nvar require_reader = __commonJS({\n  \"../../node_modules/protobufjs/src/reader.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = Reader3;\n    var util3 = require_minimal();\n    var BufferReader;\n    var LongBits = util3.LongBits;\n    var utf8 = util3.utf8;\n    function indexOutOfRange(reader, writeLength) {\n      return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n    }\n    function Reader3(buffer) {\n      this.buf = buffer;\n      this.pos = 0;\n      this.len = buffer.length;\n    }\n    var create_array = typeof Uint8Array !== \"undefined\" ? function create_typed_array(buffer) {\n      if (buffer instanceof Uint8Array || Array.isArray(buffer))\n        return new Reader3(buffer);\n      throw Error(\"illegal buffer\");\n    } : function create_array2(buffer) {\n      if (Array.isArray(buffer))\n        return new Reader3(buffer);\n      throw Error(\"illegal buffer\");\n    };\n    var create = function create2() {\n      return util3.Buffer ? function create_buffer_setup(buffer) {\n        return (Reader3.create = function create_buffer(buffer2) {\n          return util3.Buffer.isBuffer(buffer2) ? new BufferReader(buffer2) : create_array(buffer2);\n        })(buffer);\n      } : create_array;\n    };\n    Reader3.create = create();\n    Reader3.prototype._slice = util3.Array.prototype.subarray || /* istanbul ignore next */\n    util3.Array.prototype.slice;\n    Reader3.prototype.uint32 = function read_uint32_setup() {\n      var value = 4294967295;\n      return function read_uint32() {\n        value = (this.buf[this.pos] & 127) >>> 0;\n        if (this.buf[this.pos++] < 128)\n          return value;\n        value = (value | (this.buf[this.pos] & 127) << 7) >>> 0;\n        if (this.buf[this.pos++] < 128)\n          return value;\n        value = (value | (this.buf[this.pos] & 127) << 14) >>> 0;\n        if (this.buf[this.pos++] < 128)\n          return value;\n        value = (value | (this.buf[this.pos] & 127) << 21) >>> 0;\n        if (this.buf[this.pos++] < 128)\n          return value;\n        value = (value | (this.buf[this.pos] & 15) << 28) >>> 0;\n        if (this.buf[this.pos++] < 128)\n          return value;\n        if ((this.pos += 5) > this.len) {\n          this.pos = this.len;\n          throw indexOutOfRange(this, 10);\n        }\n        return value;\n      };\n    }();\n    Reader3.prototype.int32 = function read_int32() {\n      return this.uint32() | 0;\n    };\n    Reader3.prototype.sint32 = function read_sint32() {\n      var value = this.uint32();\n      return value >>> 1 ^ -(value & 1) | 0;\n    };\n    function readLongVarint() {\n      var bits = new LongBits(0, 0);\n      var i = 0;\n      if (this.len - this.pos > 4) {\n        for (; i < 4; ++i) {\n          bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n          if (this.buf[this.pos++] < 128)\n            return bits;\n        }\n        bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n        bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n        if (this.buf[this.pos++] < 128)\n          return bits;\n        i = 0;\n      } else {\n        for (; i < 3; ++i) {\n          if (this.pos >= this.len)\n            throw indexOutOfRange(this);\n          bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n          if (this.buf[this.pos++] < 128)\n            return bits;\n        }\n        bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n        return bits;\n      }\n      if (this.len - this.pos > 4) {\n        for (; i < 5; ++i) {\n          bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n          if (this.buf[this.pos++] < 128)\n            return bits;\n        }\n      } else {\n        for (; i < 5; ++i) {\n          if (this.pos >= this.len)\n            throw indexOutOfRange(this);\n          bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n          if (this.buf[this.pos++] < 128)\n            return bits;\n        }\n      }\n      throw Error(\"invalid varint encoding\");\n    }\n    Reader3.prototype.bool = function read_bool() {\n      return this.uint32() !== 0;\n    };\n    function readFixed32_end(buf, end) {\n      return (buf[end - 4] | buf[end - 3] << 8 | buf[end - 2] << 16 | buf[end - 1] << 24) >>> 0;\n    }\n    Reader3.prototype.fixed32 = function read_fixed32() {\n      if (this.pos + 4 > this.len)\n        throw indexOutOfRange(this, 4);\n      return readFixed32_end(this.buf, this.pos += 4);\n    };\n    Reader3.prototype.sfixed32 = function read_sfixed32() {\n      if (this.pos + 4 > this.len)\n        throw indexOutOfRange(this, 4);\n      return readFixed32_end(this.buf, this.pos += 4) | 0;\n    };\n    function readFixed64() {\n      if (this.pos + 8 > this.len)\n        throw indexOutOfRange(this, 8);\n      return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n    }\n    Reader3.prototype.float = function read_float() {\n      if (this.pos + 4 > this.len)\n        throw indexOutOfRange(this, 4);\n      var value = util3.float.readFloatLE(this.buf, this.pos);\n      this.pos += 4;\n      return value;\n    };\n    Reader3.prototype.double = function read_double() {\n      if (this.pos + 8 > this.len)\n        throw indexOutOfRange(this, 4);\n      var value = util3.float.readDoubleLE(this.buf, this.pos);\n      this.pos += 8;\n      return value;\n    };\n    Reader3.prototype.bytes = function read_bytes() {\n      var length = this.uint32(), start = this.pos, end = this.pos + length;\n      if (end > this.len)\n        throw indexOutOfRange(this, length);\n      this.pos += length;\n      if (Array.isArray(this.buf))\n        return this.buf.slice(start, end);\n      return start === end ? new this.buf.constructor(0) : this._slice.call(this.buf, start, end);\n    };\n    Reader3.prototype.string = function read_string() {\n      var bytes = this.bytes();\n      return utf8.read(bytes, 0, bytes.length);\n    };\n    Reader3.prototype.skip = function skip(length) {\n      if (typeof length === \"number\") {\n        if (this.pos + length > this.len)\n          throw indexOutOfRange(this, length);\n        this.pos += length;\n      } else {\n        do {\n          if (this.pos >= this.len)\n            throw indexOutOfRange(this);\n        } while (this.buf[this.pos++] & 128);\n      }\n      return this;\n    };\n    Reader3.prototype.skipType = function(wireType) {\n      switch (wireType) {\n        case 0:\n          this.skip();\n          break;\n        case 1:\n          this.skip(8);\n          break;\n        case 2:\n          this.skip(this.uint32());\n          break;\n        case 3:\n          while ((wireType = this.uint32() & 7) !== 4) {\n            this.skipType(wireType);\n          }\n          break;\n        case 5:\n          this.skip(4);\n          break;\n        default:\n          throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n      }\n      return this;\n    };\n    Reader3._configure = function(BufferReader_) {\n      BufferReader = BufferReader_;\n      Reader3.create = create();\n      BufferReader._configure();\n      var fn = util3.Long ? \"toLong\" : (\n        /* istanbul ignore next */\n        \"toNumber\"\n      );\n      util3.merge(Reader3.prototype, {\n        int64: function read_int64() {\n          return readLongVarint.call(this)[fn](false);\n        },\n        uint64: function read_uint64() {\n          return readLongVarint.call(this)[fn](true);\n        },\n        sint64: function read_sint64() {\n          return readLongVarint.call(this).zzDecode()[fn](false);\n        },\n        fixed64: function read_fixed64() {\n          return readFixed64.call(this)[fn](true);\n        },\n        sfixed64: function read_sfixed64() {\n          return readFixed64.call(this)[fn](false);\n        }\n      });\n    };\n  }\n});\n\n// ../../node_modules/protobufjs/src/reader_buffer.js\nvar require_reader_buffer = __commonJS({\n  \"../../node_modules/protobufjs/src/reader_buffer.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = BufferReader;\n    var Reader3 = require_reader();\n    (BufferReader.prototype = Object.create(Reader3.prototype)).constructor = BufferReader;\n    var util3 = require_minimal();\n    function BufferReader(buffer) {\n      Reader3.call(this, buffer);\n    }\n    BufferReader._configure = function() {\n      if (util3.Buffer)\n        BufferReader.prototype._slice = util3.Buffer.prototype.slice;\n    };\n    BufferReader.prototype.string = function read_string_buffer() {\n      var len = this.uint32();\n      return this.buf.utf8Slice ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len)) : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n    };\n    BufferReader._configure();\n  }\n});\n\n// ../../node_modules/protobufjs/src/rpc/service.js\nvar require_service = __commonJS({\n  \"../../node_modules/protobufjs/src/rpc/service.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = Service;\n    var util3 = require_minimal();\n    (Service.prototype = Object.create(util3.EventEmitter.prototype)).constructor = Service;\n    function Service(rpcImpl, requestDelimited, responseDelimited) {\n      if (typeof rpcImpl !== \"function\")\n        throw TypeError(\"rpcImpl must be a function\");\n      util3.EventEmitter.call(this);\n      this.rpcImpl = rpcImpl;\n      this.requestDelimited = Boolean(requestDelimited);\n      this.responseDelimited = Boolean(responseDelimited);\n    }\n    Service.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n      if (!request)\n        throw TypeError(\"request must be specified\");\n      var self2 = this;\n      if (!callback)\n        return util3.asPromise(rpcCall, self2, method, requestCtor, responseCtor, request);\n      if (!self2.rpcImpl) {\n        setTimeout(function() {\n          callback(Error(\"already ended\"));\n        }, 0);\n        return void 0;\n      }\n      try {\n        return self2.rpcImpl(\n          method,\n          requestCtor[self2.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n          function rpcCallback(err, response) {\n            if (err) {\n              self2.emit(\"error\", err, method);\n              return callback(err);\n            }\n            if (response === null) {\n              self2.end(\n                /* endedByRPC */\n                true\n              );\n              return void 0;\n            }\n            if (!(response instanceof responseCtor)) {\n              try {\n                response = responseCtor[self2.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n              } catch (err2) {\n                self2.emit(\"error\", err2, method);\n                return callback(err2);\n              }\n            }\n            self2.emit(\"data\", response, method);\n            return callback(null, response);\n          }\n        );\n      } catch (err) {\n        self2.emit(\"error\", err, method);\n        setTimeout(function() {\n          callback(err);\n        }, 0);\n        return void 0;\n      }\n    };\n    Service.prototype.end = function end(endedByRPC) {\n      if (this.rpcImpl) {\n        if (!endedByRPC)\n          this.rpcImpl(null, null, null);\n        this.rpcImpl = null;\n        this.emit(\"end\").off();\n      }\n      return this;\n    };\n  }\n});\n\n// ../../node_modules/protobufjs/src/rpc.js\nvar require_rpc = __commonJS({\n  \"../../node_modules/protobufjs/src/rpc.js\"(exports2) {\n    \"use strict\";\n    var rpc = exports2;\n    rpc.Service = require_service();\n  }\n});\n\n// ../../node_modules/protobufjs/src/roots.js\nvar require_roots = __commonJS({\n  \"../../node_modules/protobufjs/src/roots.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = {};\n  }\n});\n\n// ../../node_modules/protobufjs/src/index-minimal.js\nvar require_index_minimal = __commonJS({\n  \"../../node_modules/protobufjs/src/index-minimal.js\"(exports2) {\n    \"use strict\";\n    var protobuf = exports2;\n    protobuf.build = \"minimal\";\n    protobuf.Writer = require_writer();\n    protobuf.BufferWriter = require_writer_buffer();\n    protobuf.Reader = require_reader();\n    protobuf.BufferReader = require_reader_buffer();\n    protobuf.util = require_minimal();\n    protobuf.rpc = require_rpc();\n    protobuf.roots = require_roots();\n    protobuf.configure = configure3;\n    function configure3() {\n      protobuf.util._configure();\n      protobuf.Writer._configure(protobuf.BufferWriter);\n      protobuf.Reader._configure(protobuf.BufferReader);\n    }\n    configure3();\n  }\n});\n\n// ../../node_modules/protobufjs/minimal.js\nvar require_minimal2 = __commonJS({\n  \"../../node_modules/protobufjs/minimal.js\"(exports2, module2) {\n    \"use strict\";\n    module2.exports = require_index_minimal();\n  }\n});\n\n// index.ts\nvar nakama_js_protobuf_exports = {};\n__export(nakama_js_protobuf_exports, {\n  WebSocketAdapterPb: () => WebSocketAdapterPb\n});\nmodule.exports = __toCommonJS(nakama_js_protobuf_exports);\n\n// rtapi/realtime.ts\nvar import_long2 = __toESM(require_long());\nvar import_minimal4 = __toESM(require_minimal2());\n\n// google/protobuf/timestamp.ts\nvar Long = __toESM(require_long());\nvar import_minimal = __toESM(require_minimal2());\nvar baseTimestamp = {\n  seconds: 0,\n  nanos: 0\n};\nfunction longToNumber(long) {\n  if (long.gt(Number.MAX_SAFE_INTEGER)) {\n    throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n  }\n  return long.toNumber();\n}\nvar Timestamp = {\n  encode(message, writer = import_minimal.Writer.create()) {\n    writer.uint32(8).int64(message.seconds);\n    writer.uint32(16).int32(message.nanos);\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof Uint8Array ? new import_minimal.Reader(input) : input;\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseTimestamp);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.seconds = longToNumber(reader.int64());\n          break;\n        case 2:\n          message.nanos = reader.int32();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseTimestamp);\n    if (object.seconds !== void 0 && object.seconds !== null) {\n      message.seconds = Number(object.seconds);\n    }\n    if (object.nanos !== void 0 && object.nanos !== null) {\n      message.nanos = Number(object.nanos);\n    }\n    return message;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseTimestamp);\n    if (object.seconds !== void 0 && object.seconds !== null) {\n      message.seconds = object.seconds;\n    }\n    if (object.nanos !== void 0 && object.nanos !== null) {\n      message.nanos = object.nanos;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.seconds !== void 0 && (obj.seconds = message.seconds);\n    message.nanos !== void 0 && (obj.nanos = message.nanos);\n    return obj;\n  }\n};\nif (import_minimal.util.Long !== Long) {\n  import_minimal.util.Long = Long;\n  (0, import_minimal.configure)();\n}\n\n// api/api.ts\nvar import_long = __toESM(require_long());\nvar import_minimal3 = __toESM(require_minimal2());\n\n// google/protobuf/wrappers.ts\nvar Long2 = __toESM(require_long());\nvar import_minimal2 = __toESM(require_minimal2());\nvar baseInt32Value = {\n  value: 0\n};\nvar baseBoolValue = {\n  value: false\n};\nvar baseStringValue = {\n  value: \"\"\n};\nvar Int32Value = {\n  encode(message, writer = import_minimal2.Writer.create()) {\n    writer.uint32(8).int32(message.value);\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof Uint8Array ? new import_minimal2.Reader(input) : input;\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseInt32Value);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.value = reader.int32();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseInt32Value);\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = Number(object.value);\n    }\n    return message;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseInt32Value);\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  }\n};\nvar BoolValue = {\n  encode(message, writer = import_minimal2.Writer.create()) {\n    writer.uint32(8).bool(message.value);\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof Uint8Array ? new import_minimal2.Reader(input) : input;\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseBoolValue);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.value = reader.bool();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseBoolValue);\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = Boolean(object.value);\n    }\n    return message;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseBoolValue);\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  }\n};\nvar StringValue = {\n  encode(message, writer = import_minimal2.Writer.create()) {\n    writer.uint32(10).string(message.value);\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof Uint8Array ? new import_minimal2.Reader(input) : input;\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStringValue);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.value = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStringValue);\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = String(object.value);\n    }\n    return message;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStringValue);\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  }\n};\nif (import_minimal2.util.Long !== Long2) {\n  import_minimal2.util.Long = Long2;\n  (0, import_minimal2.configure)();\n}\nvar windowBase64 = globalThis;\nvar atob = windowBase64.atob || ((b64) => Buffer.from(b64, \"base64\").toString(\"binary\"));\nvar btoa = windowBase64.btoa || ((bin) => Buffer.from(bin, \"binary\").toString(\"base64\"));\n\n// api/api.ts\nvar baseChannelMessage = {\n  channel_id: \"\",\n  message_id: \"\",\n  sender_id: \"\",\n  username: \"\",\n  content: \"\",\n  room_name: \"\",\n  group_id: \"\",\n  user_id_one: \"\",\n  user_id_two: \"\"\n};\nvar ChannelMessage = {\n  encode(message, writer = import_minimal3.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    if (message.message_id !== \"\") {\n      writer.uint32(18).string(message.message_id);\n    }\n    if (message.code !== void 0) {\n      Int32Value.encode(\n        { value: message.code },\n        writer.uint32(26).fork()\n      ).ldelim();\n    }\n    if (message.sender_id !== \"\") {\n      writer.uint32(34).string(message.sender_id);\n    }\n    if (message.username !== \"\") {\n      writer.uint32(42).string(message.username);\n    }\n    if (message.content !== \"\") {\n      writer.uint32(50).string(message.content);\n    }\n    if (message.create_time !== void 0) {\n      Timestamp.encode(\n        toTimestamp(message.create_time),\n        writer.uint32(58).fork()\n      ).ldelim();\n    }\n    if (message.update_time !== void 0) {\n      Timestamp.encode(\n        toTimestamp(message.update_time),\n        writer.uint32(66).fork()\n      ).ldelim();\n    }\n    if (message.persistent !== void 0) {\n      BoolValue.encode(\n        { value: message.persistent },\n        writer.uint32(74).fork()\n      ).ldelim();\n    }\n    if (message.room_name !== \"\") {\n      writer.uint32(82).string(message.room_name);\n    }\n    if (message.group_id !== \"\") {\n      writer.uint32(90).string(message.group_id);\n    }\n    if (message.user_id_one !== \"\") {\n      writer.uint32(98).string(message.user_id_one);\n    }\n    if (message.user_id_two !== \"\") {\n      writer.uint32(106).string(message.user_id_two);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal3.default.Reader ? input : new import_minimal3.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelMessage);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        case 2:\n          message.message_id = reader.string();\n          break;\n        case 3:\n          message.code = Int32Value.decode(reader, reader.uint32()).value;\n          break;\n        case 4:\n          message.sender_id = reader.string();\n          break;\n        case 5:\n          message.username = reader.string();\n          break;\n        case 6:\n          message.content = reader.string();\n          break;\n        case 7:\n          message.create_time = fromTimestamp(\n            Timestamp.decode(reader, reader.uint32())\n          );\n          break;\n        case 8:\n          message.update_time = fromTimestamp(\n            Timestamp.decode(reader, reader.uint32())\n          );\n          break;\n        case 9:\n          message.persistent = BoolValue.decode(reader, reader.uint32()).value;\n          break;\n        case 10:\n          message.room_name = reader.string();\n          break;\n        case 11:\n          message.group_id = reader.string();\n          break;\n        case 12:\n          message.user_id_one = reader.string();\n          break;\n        case 13:\n          message.user_id_two = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelMessage);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = String(object.message_id);\n    } else {\n      message.message_id = \"\";\n    }\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = Number(object.code);\n    } else {\n      message.code = void 0;\n    }\n    if (object.sender_id !== void 0 && object.sender_id !== null) {\n      message.sender_id = String(object.sender_id);\n    } else {\n      message.sender_id = \"\";\n    }\n    if (object.username !== void 0 && object.username !== null) {\n      message.username = String(object.username);\n    } else {\n      message.username = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = String(object.content);\n    } else {\n      message.content = \"\";\n    }\n    if (object.create_time !== void 0 && object.create_time !== null) {\n      message.create_time = fromJsonTimestamp(object.create_time);\n    } else {\n      message.create_time = void 0;\n    }\n    if (object.update_time !== void 0 && object.update_time !== null) {\n      message.update_time = fromJsonTimestamp(object.update_time);\n    } else {\n      message.update_time = void 0;\n    }\n    if (object.persistent !== void 0 && object.persistent !== null) {\n      message.persistent = Boolean(object.persistent);\n    } else {\n      message.persistent = void 0;\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = String(object.room_name);\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = String(object.group_id);\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = String(object.user_id_one);\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = String(object.user_id_two);\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    message.message_id !== void 0 && (obj.message_id = message.message_id);\n    message.code !== void 0 && (obj.code = message.code);\n    message.sender_id !== void 0 && (obj.sender_id = message.sender_id);\n    message.username !== void 0 && (obj.username = message.username);\n    message.content !== void 0 && (obj.content = message.content);\n    message.create_time !== void 0 && (obj.create_time = message.create_time.toISOString());\n    message.update_time !== void 0 && (obj.update_time = message.update_time.toISOString());\n    message.persistent !== void 0 && (obj.persistent = message.persistent);\n    message.room_name !== void 0 && (obj.room_name = message.room_name);\n    message.group_id !== void 0 && (obj.group_id = message.group_id);\n    message.user_id_one !== void 0 && (obj.user_id_one = message.user_id_one);\n    message.user_id_two !== void 0 && (obj.user_id_two = message.user_id_two);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelMessage);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = object.message_id;\n    } else {\n      message.message_id = \"\";\n    }\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = object.code;\n    } else {\n      message.code = void 0;\n    }\n    if (object.sender_id !== void 0 && object.sender_id !== null) {\n      message.sender_id = object.sender_id;\n    } else {\n      message.sender_id = \"\";\n    }\n    if (object.username !== void 0 && object.username !== null) {\n      message.username = object.username;\n    } else {\n      message.username = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = object.content;\n    } else {\n      message.content = \"\";\n    }\n    if (object.create_time !== void 0 && object.create_time !== null) {\n      message.create_time = object.create_time;\n    } else {\n      message.create_time = void 0;\n    }\n    if (object.update_time !== void 0 && object.update_time !== null) {\n      message.update_time = object.update_time;\n    } else {\n      message.update_time = void 0;\n    }\n    if (object.persistent !== void 0 && object.persistent !== null) {\n      message.persistent = object.persistent;\n    } else {\n      message.persistent = void 0;\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = object.room_name;\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = object.group_id;\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = object.user_id_one;\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = object.user_id_two;\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  }\n};\nvar baseNotification = {\n  id: \"\",\n  subject: \"\",\n  content: \"\",\n  code: 0,\n  sender_id: \"\",\n  persistent: false\n};\nvar Notification = {\n  encode(message, writer = import_minimal3.default.Writer.create()) {\n    if (message.id !== \"\") {\n      writer.uint32(10).string(message.id);\n    }\n    if (message.subject !== \"\") {\n      writer.uint32(18).string(message.subject);\n    }\n    if (message.content !== \"\") {\n      writer.uint32(26).string(message.content);\n    }\n    if (message.code !== 0) {\n      writer.uint32(32).int32(message.code);\n    }\n    if (message.sender_id !== \"\") {\n      writer.uint32(42).string(message.sender_id);\n    }\n    if (message.create_time !== void 0) {\n      Timestamp.encode(\n        toTimestamp(message.create_time),\n        writer.uint32(50).fork()\n      ).ldelim();\n    }\n    if (message.persistent === true) {\n      writer.uint32(56).bool(message.persistent);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal3.default.Reader ? input : new import_minimal3.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseNotification);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.id = reader.string();\n          break;\n        case 2:\n          message.subject = reader.string();\n          break;\n        case 3:\n          message.content = reader.string();\n          break;\n        case 4:\n          message.code = reader.int32();\n          break;\n        case 5:\n          message.sender_id = reader.string();\n          break;\n        case 6:\n          message.create_time = fromTimestamp(\n            Timestamp.decode(reader, reader.uint32())\n          );\n          break;\n        case 7:\n          message.persistent = reader.bool();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseNotification);\n    if (object.id !== void 0 && object.id !== null) {\n      message.id = String(object.id);\n    } else {\n      message.id = \"\";\n    }\n    if (object.subject !== void 0 && object.subject !== null) {\n      message.subject = String(object.subject);\n    } else {\n      message.subject = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = String(object.content);\n    } else {\n      message.content = \"\";\n    }\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = Number(object.code);\n    } else {\n      message.code = 0;\n    }\n    if (object.sender_id !== void 0 && object.sender_id !== null) {\n      message.sender_id = String(object.sender_id);\n    } else {\n      message.sender_id = \"\";\n    }\n    if (object.create_time !== void 0 && object.create_time !== null) {\n      message.create_time = fromJsonTimestamp(object.create_time);\n    } else {\n      message.create_time = void 0;\n    }\n    if (object.persistent !== void 0 && object.persistent !== null) {\n      message.persistent = Boolean(object.persistent);\n    } else {\n      message.persistent = false;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.id !== void 0 && (obj.id = message.id);\n    message.subject !== void 0 && (obj.subject = message.subject);\n    message.content !== void 0 && (obj.content = message.content);\n    message.code !== void 0 && (obj.code = message.code);\n    message.sender_id !== void 0 && (obj.sender_id = message.sender_id);\n    message.create_time !== void 0 && (obj.create_time = message.create_time.toISOString());\n    message.persistent !== void 0 && (obj.persistent = message.persistent);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseNotification);\n    if (object.id !== void 0 && object.id !== null) {\n      message.id = object.id;\n    } else {\n      message.id = \"\";\n    }\n    if (object.subject !== void 0 && object.subject !== null) {\n      message.subject = object.subject;\n    } else {\n      message.subject = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = object.content;\n    } else {\n      message.content = \"\";\n    }\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = object.code;\n    } else {\n      message.code = 0;\n    }\n    if (object.sender_id !== void 0 && object.sender_id !== null) {\n      message.sender_id = object.sender_id;\n    } else {\n      message.sender_id = \"\";\n    }\n    if (object.create_time !== void 0 && object.create_time !== null) {\n      message.create_time = object.create_time;\n    } else {\n      message.create_time = void 0;\n    }\n    if (object.persistent !== void 0 && object.persistent !== null) {\n      message.persistent = object.persistent;\n    } else {\n      message.persistent = false;\n    }\n    return message;\n  }\n};\nvar baseRpc = { id: \"\", payload: \"\", http_key: \"\" };\nvar Rpc = {\n  encode(message, writer = import_minimal3.default.Writer.create()) {\n    if (message.id !== \"\") {\n      writer.uint32(10).string(message.id);\n    }\n    if (message.payload !== \"\") {\n      writer.uint32(18).string(message.payload);\n    }\n    if (message.http_key !== \"\") {\n      writer.uint32(26).string(message.http_key);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal3.default.Reader ? input : new import_minimal3.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseRpc);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.id = reader.string();\n          break;\n        case 2:\n          message.payload = reader.string();\n          break;\n        case 3:\n          message.http_key = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseRpc);\n    if (object.id !== void 0 && object.id !== null) {\n      message.id = String(object.id);\n    } else {\n      message.id = \"\";\n    }\n    if (object.payload !== void 0 && object.payload !== null) {\n      message.payload = String(object.payload);\n    } else {\n      message.payload = \"\";\n    }\n    if (object.http_key !== void 0 && object.http_key !== null) {\n      message.http_key = String(object.http_key);\n    } else {\n      message.http_key = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.id !== void 0 && (obj.id = message.id);\n    message.payload !== void 0 && (obj.payload = message.payload);\n    message.http_key !== void 0 && (obj.http_key = message.http_key);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseRpc);\n    if (object.id !== void 0 && object.id !== null) {\n      message.id = object.id;\n    } else {\n      message.id = \"\";\n    }\n    if (object.payload !== void 0 && object.payload !== null) {\n      message.payload = object.payload;\n    } else {\n      message.payload = \"\";\n    }\n    if (object.http_key !== void 0 && object.http_key !== null) {\n      message.http_key = object.http_key;\n    } else {\n      message.http_key = \"\";\n    }\n    return message;\n  }\n};\nvar globalThis2 = (() => {\n  if (typeof globalThis2 !== \"undefined\")\n    return globalThis2;\n  if (typeof self !== \"undefined\")\n    return self;\n  if (typeof window !== \"undefined\")\n    return window;\n  if (typeof global !== \"undefined\")\n    return global;\n  throw \"Unable to locate global object\";\n})();\nfunction toTimestamp(date) {\n  const seconds = date.getTime() / 1e3;\n  const nanos = date.getTime() % 1e3 * 1e6;\n  return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n  let millis = t.seconds * 1e3;\n  millis += t.nanos / 1e6;\n  return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n  if (o instanceof Date) {\n    return o;\n  } else if (typeof o === \"string\") {\n    return new Date(o);\n  } else {\n    return fromTimestamp(Timestamp.fromJSON(o));\n  }\n}\nif (import_minimal3.default.util.Long !== import_long.default) {\n  import_minimal3.default.util.Long = import_long.default;\n  import_minimal3.default.configure();\n}\n\n// rtapi/realtime.ts\nvar baseEnvelope = { cid: \"\" };\nvar Envelope = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.cid !== \"\") {\n      writer.uint32(10).string(message.cid);\n    }\n    if (message.channel !== void 0) {\n      Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n    }\n    if (message.channel_join !== void 0) {\n      ChannelJoin.encode(\n        message.channel_join,\n        writer.uint32(26).fork()\n      ).ldelim();\n    }\n    if (message.channel_leave !== void 0) {\n      ChannelLeave.encode(\n        message.channel_leave,\n        writer.uint32(34).fork()\n      ).ldelim();\n    }\n    if (message.channel_message !== void 0) {\n      ChannelMessage.encode(\n        message.channel_message,\n        writer.uint32(42).fork()\n      ).ldelim();\n    }\n    if (message.channel_message_ack !== void 0) {\n      ChannelMessageAck.encode(\n        message.channel_message_ack,\n        writer.uint32(50).fork()\n      ).ldelim();\n    }\n    if (message.channel_message_send !== void 0) {\n      ChannelMessageSend.encode(\n        message.channel_message_send,\n        writer.uint32(58).fork()\n      ).ldelim();\n    }\n    if (message.channel_message_update !== void 0) {\n      ChannelMessageUpdate.encode(\n        message.channel_message_update,\n        writer.uint32(66).fork()\n      ).ldelim();\n    }\n    if (message.channel_message_remove !== void 0) {\n      ChannelMessageRemove.encode(\n        message.channel_message_remove,\n        writer.uint32(74).fork()\n      ).ldelim();\n    }\n    if (message.channel_presence_event !== void 0) {\n      ChannelPresenceEvent.encode(\n        message.channel_presence_event,\n        writer.uint32(82).fork()\n      ).ldelim();\n    }\n    if (message.error !== void 0) {\n      Error2.encode(message.error, writer.uint32(90).fork()).ldelim();\n    }\n    if (message.match !== void 0) {\n      Match.encode(message.match, writer.uint32(98).fork()).ldelim();\n    }\n    if (message.match_create !== void 0) {\n      MatchCreate.encode(\n        message.match_create,\n        writer.uint32(106).fork()\n      ).ldelim();\n    }\n    if (message.match_data !== void 0) {\n      MatchData.encode(message.match_data, writer.uint32(114).fork()).ldelim();\n    }\n    if (message.match_data_send !== void 0) {\n      MatchDataSend.encode(\n        message.match_data_send,\n        writer.uint32(122).fork()\n      ).ldelim();\n    }\n    if (message.match_join !== void 0) {\n      MatchJoin.encode(message.match_join, writer.uint32(130).fork()).ldelim();\n    }\n    if (message.match_leave !== void 0) {\n      MatchLeave.encode(\n        message.match_leave,\n        writer.uint32(138).fork()\n      ).ldelim();\n    }\n    if (message.match_presence_event !== void 0) {\n      MatchPresenceEvent.encode(\n        message.match_presence_event,\n        writer.uint32(146).fork()\n      ).ldelim();\n    }\n    if (message.matchmaker_add !== void 0) {\n      MatchmakerAdd.encode(\n        message.matchmaker_add,\n        writer.uint32(154).fork()\n      ).ldelim();\n    }\n    if (message.matchmaker_matched !== void 0) {\n      MatchmakerMatched.encode(\n        message.matchmaker_matched,\n        writer.uint32(162).fork()\n      ).ldelim();\n    }\n    if (message.matchmaker_remove !== void 0) {\n      MatchmakerRemove.encode(\n        message.matchmaker_remove,\n        writer.uint32(170).fork()\n      ).ldelim();\n    }\n    if (message.matchmaker_ticket !== void 0) {\n      MatchmakerTicket.encode(\n        message.matchmaker_ticket,\n        writer.uint32(178).fork()\n      ).ldelim();\n    }\n    if (message.notifications !== void 0) {\n      Notifications.encode(\n        message.notifications,\n        writer.uint32(186).fork()\n      ).ldelim();\n    }\n    if (message.rpc !== void 0) {\n      Rpc.encode(message.rpc, writer.uint32(194).fork()).ldelim();\n    }\n    if (message.status !== void 0) {\n      Status.encode(message.status, writer.uint32(202).fork()).ldelim();\n    }\n    if (message.status_follow !== void 0) {\n      StatusFollow.encode(\n        message.status_follow,\n        writer.uint32(210).fork()\n      ).ldelim();\n    }\n    if (message.status_presence_event !== void 0) {\n      StatusPresenceEvent.encode(\n        message.status_presence_event,\n        writer.uint32(218).fork()\n      ).ldelim();\n    }\n    if (message.status_unfollow !== void 0) {\n      StatusUnfollow.encode(\n        message.status_unfollow,\n        writer.uint32(226).fork()\n      ).ldelim();\n    }\n    if (message.status_update !== void 0) {\n      StatusUpdate.encode(\n        message.status_update,\n        writer.uint32(234).fork()\n      ).ldelim();\n    }\n    if (message.stream_data !== void 0) {\n      StreamData.encode(\n        message.stream_data,\n        writer.uint32(242).fork()\n      ).ldelim();\n    }\n    if (message.stream_presence_event !== void 0) {\n      StreamPresenceEvent.encode(\n        message.stream_presence_event,\n        writer.uint32(250).fork()\n      ).ldelim();\n    }\n    if (message.ping !== void 0) {\n      Ping.encode(message.ping, writer.uint32(258).fork()).ldelim();\n    }\n    if (message.pong !== void 0) {\n      Pong.encode(message.pong, writer.uint32(266).fork()).ldelim();\n    }\n    if (message.party !== void 0) {\n      Party.encode(message.party, writer.uint32(274).fork()).ldelim();\n    }\n    if (message.party_create !== void 0) {\n      PartyCreate.encode(\n        message.party_create,\n        writer.uint32(282).fork()\n      ).ldelim();\n    }\n    if (message.party_join !== void 0) {\n      PartyJoin.encode(message.party_join, writer.uint32(290).fork()).ldelim();\n    }\n    if (message.party_leave !== void 0) {\n      PartyLeave.encode(\n        message.party_leave,\n        writer.uint32(298).fork()\n      ).ldelim();\n    }\n    if (message.party_promote !== void 0) {\n      PartyPromote.encode(\n        message.party_promote,\n        writer.uint32(306).fork()\n      ).ldelim();\n    }\n    if (message.party_leader !== void 0) {\n      PartyLeader.encode(\n        message.party_leader,\n        writer.uint32(314).fork()\n      ).ldelim();\n    }\n    if (message.party_accept !== void 0) {\n      PartyAccept.encode(\n        message.party_accept,\n        writer.uint32(322).fork()\n      ).ldelim();\n    }\n    if (message.party_remove !== void 0) {\n      PartyRemove.encode(\n        message.party_remove,\n        writer.uint32(330).fork()\n      ).ldelim();\n    }\n    if (message.party_close !== void 0) {\n      PartyClose.encode(\n        message.party_close,\n        writer.uint32(338).fork()\n      ).ldelim();\n    }\n    if (message.party_join_request_list !== void 0) {\n      PartyJoinRequestList.encode(\n        message.party_join_request_list,\n        writer.uint32(346).fork()\n      ).ldelim();\n    }\n    if (message.party_join_request !== void 0) {\n      PartyJoinRequest.encode(\n        message.party_join_request,\n        writer.uint32(354).fork()\n      ).ldelim();\n    }\n    if (message.party_matchmaker_add !== void 0) {\n      PartyMatchmakerAdd.encode(\n        message.party_matchmaker_add,\n        writer.uint32(362).fork()\n      ).ldelim();\n    }\n    if (message.party_matchmaker_remove !== void 0) {\n      PartyMatchmakerRemove.encode(\n        message.party_matchmaker_remove,\n        writer.uint32(370).fork()\n      ).ldelim();\n    }\n    if (message.party_matchmaker_ticket !== void 0) {\n      PartyMatchmakerTicket.encode(\n        message.party_matchmaker_ticket,\n        writer.uint32(378).fork()\n      ).ldelim();\n    }\n    if (message.party_data !== void 0) {\n      PartyData.encode(message.party_data, writer.uint32(386).fork()).ldelim();\n    }\n    if (message.party_data_send !== void 0) {\n      PartyDataSend.encode(\n        message.party_data_send,\n        writer.uint32(394).fork()\n      ).ldelim();\n    }\n    if (message.party_presence_event !== void 0) {\n      PartyPresenceEvent.encode(\n        message.party_presence_event,\n        writer.uint32(402).fork()\n      ).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseEnvelope);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.cid = reader.string();\n          break;\n        case 2:\n          message.channel = Channel.decode(reader, reader.uint32());\n          break;\n        case 3:\n          message.channel_join = ChannelJoin.decode(reader, reader.uint32());\n          break;\n        case 4:\n          message.channel_leave = ChannelLeave.decode(reader, reader.uint32());\n          break;\n        case 5:\n          message.channel_message = ChannelMessage.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 6:\n          message.channel_message_ack = ChannelMessageAck.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 7:\n          message.channel_message_send = ChannelMessageSend.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 8:\n          message.channel_message_update = ChannelMessageUpdate.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 9:\n          message.channel_message_remove = ChannelMessageRemove.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 10:\n          message.channel_presence_event = ChannelPresenceEvent.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 11:\n          message.error = Error2.decode(reader, reader.uint32());\n          break;\n        case 12:\n          message.match = Match.decode(reader, reader.uint32());\n          break;\n        case 13:\n          message.match_create = MatchCreate.decode(reader, reader.uint32());\n          break;\n        case 14:\n          message.match_data = MatchData.decode(reader, reader.uint32());\n          break;\n        case 15:\n          message.match_data_send = MatchDataSend.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 16:\n          message.match_join = MatchJoin.decode(reader, reader.uint32());\n          break;\n        case 17:\n          message.match_leave = MatchLeave.decode(reader, reader.uint32());\n          break;\n        case 18:\n          message.match_presence_event = MatchPresenceEvent.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 19:\n          message.matchmaker_add = MatchmakerAdd.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 20:\n          message.matchmaker_matched = MatchmakerMatched.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 21:\n          message.matchmaker_remove = MatchmakerRemove.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 22:\n          message.matchmaker_ticket = MatchmakerTicket.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 23:\n          message.notifications = Notifications.decode(reader, reader.uint32());\n          break;\n        case 24:\n          message.rpc = Rpc.decode(reader, reader.uint32());\n          break;\n        case 25:\n          message.status = Status.decode(reader, reader.uint32());\n          break;\n        case 26:\n          message.status_follow = StatusFollow.decode(reader, reader.uint32());\n          break;\n        case 27:\n          message.status_presence_event = StatusPresenceEvent.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 28:\n          message.status_unfollow = StatusUnfollow.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 29:\n          message.status_update = StatusUpdate.decode(reader, reader.uint32());\n          break;\n        case 30:\n          message.stream_data = StreamData.decode(reader, reader.uint32());\n          break;\n        case 31:\n          message.stream_presence_event = StreamPresenceEvent.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 32:\n          message.ping = Ping.decode(reader, reader.uint32());\n          break;\n        case 33:\n          message.pong = Pong.decode(reader, reader.uint32());\n          break;\n        case 34:\n          message.party = Party.decode(reader, reader.uint32());\n          break;\n        case 35:\n          message.party_create = PartyCreate.decode(reader, reader.uint32());\n          break;\n        case 36:\n          message.party_join = PartyJoin.decode(reader, reader.uint32());\n          break;\n        case 37:\n          message.party_leave = PartyLeave.decode(reader, reader.uint32());\n          break;\n        case 38:\n          message.party_promote = PartyPromote.decode(reader, reader.uint32());\n          break;\n        case 39:\n          message.party_leader = PartyLeader.decode(reader, reader.uint32());\n          break;\n        case 40:\n          message.party_accept = PartyAccept.decode(reader, reader.uint32());\n          break;\n        case 41:\n          message.party_remove = PartyRemove.decode(reader, reader.uint32());\n          break;\n        case 42:\n          message.party_close = PartyClose.decode(reader, reader.uint32());\n          break;\n        case 43:\n          message.party_join_request_list = PartyJoinRequestList.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 44:\n          message.party_join_request = PartyJoinRequest.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 45:\n          message.party_matchmaker_add = PartyMatchmakerAdd.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 46:\n          message.party_matchmaker_remove = PartyMatchmakerRemove.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 47:\n          message.party_matchmaker_ticket = PartyMatchmakerTicket.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 48:\n          message.party_data = PartyData.decode(reader, reader.uint32());\n          break;\n        case 49:\n          message.party_data_send = PartyDataSend.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        case 50:\n          message.party_presence_event = PartyPresenceEvent.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseEnvelope);\n    if (object.cid !== void 0 && object.cid !== null) {\n      message.cid = String(object.cid);\n    } else {\n      message.cid = \"\";\n    }\n    if (object.channel !== void 0 && object.channel !== null) {\n      message.channel = Channel.fromJSON(object.channel);\n    } else {\n      message.channel = void 0;\n    }\n    if (object.channel_join !== void 0 && object.channel_join !== null) {\n      message.channel_join = ChannelJoin.fromJSON(object.channel_join);\n    } else {\n      message.channel_join = void 0;\n    }\n    if (object.channel_leave !== void 0 && object.channel_leave !== null) {\n      message.channel_leave = ChannelLeave.fromJSON(object.channel_leave);\n    } else {\n      message.channel_leave = void 0;\n    }\n    if (object.channel_message !== void 0 && object.channel_message !== null) {\n      message.channel_message = ChannelMessage.fromJSON(object.channel_message);\n    } else {\n      message.channel_message = void 0;\n    }\n    if (object.channel_message_ack !== void 0 && object.channel_message_ack !== null) {\n      message.channel_message_ack = ChannelMessageAck.fromJSON(\n        object.channel_message_ack\n      );\n    } else {\n      message.channel_message_ack = void 0;\n    }\n    if (object.channel_message_send !== void 0 && object.channel_message_send !== null) {\n      message.channel_message_send = ChannelMessageSend.fromJSON(\n        object.channel_message_send\n      );\n    } else {\n      message.channel_message_send = void 0;\n    }\n    if (object.channel_message_update !== void 0 && object.channel_message_update !== null) {\n      message.channel_message_update = ChannelMessageUpdate.fromJSON(\n        object.channel_message_update\n      );\n    } else {\n      message.channel_message_update = void 0;\n    }\n    if (object.channel_message_remove !== void 0 && object.channel_message_remove !== null) {\n      message.channel_message_remove = ChannelMessageRemove.fromJSON(\n        object.channel_message_remove\n      );\n    } else {\n      message.channel_message_remove = void 0;\n    }\n    if (object.channel_presence_event !== void 0 && object.channel_presence_event !== null) {\n      message.channel_presence_event = ChannelPresenceEvent.fromJSON(\n        object.channel_presence_event\n      );\n    } else {\n      message.channel_presence_event = void 0;\n    }\n    if (object.error !== void 0 && object.error !== null) {\n      message.error = Error2.fromJSON(object.error);\n    } else {\n      message.error = void 0;\n    }\n    if (object.match !== void 0 && object.match !== null) {\n      message.match = Match.fromJSON(object.match);\n    } else {\n      message.match = void 0;\n    }\n    if (object.match_create !== void 0 && object.match_create !== null) {\n      message.match_create = MatchCreate.fromJSON(object.match_create);\n    } else {\n      message.match_create = void 0;\n    }\n    if (object.match_data !== void 0 && object.match_data !== null) {\n      message.match_data = MatchData.fromJSON(object.match_data);\n    } else {\n      message.match_data = void 0;\n    }\n    if (object.match_data_send !== void 0 && object.match_data_send !== null) {\n      message.match_data_send = MatchDataSend.fromJSON(object.match_data_send);\n    } else {\n      message.match_data_send = void 0;\n    }\n    if (object.match_join !== void 0 && object.match_join !== null) {\n      message.match_join = MatchJoin.fromJSON(object.match_join);\n    } else {\n      message.match_join = void 0;\n    }\n    if (object.match_leave !== void 0 && object.match_leave !== null) {\n      message.match_leave = MatchLeave.fromJSON(object.match_leave);\n    } else {\n      message.match_leave = void 0;\n    }\n    if (object.match_presence_event !== void 0 && object.match_presence_event !== null) {\n      message.match_presence_event = MatchPresenceEvent.fromJSON(\n        object.match_presence_event\n      );\n    } else {\n      message.match_presence_event = void 0;\n    }\n    if (object.matchmaker_add !== void 0 && object.matchmaker_add !== null) {\n      message.matchmaker_add = MatchmakerAdd.fromJSON(object.matchmaker_add);\n    } else {\n      message.matchmaker_add = void 0;\n    }\n    if (object.matchmaker_matched !== void 0 && object.matchmaker_matched !== null) {\n      message.matchmaker_matched = MatchmakerMatched.fromJSON(\n        object.matchmaker_matched\n      );\n    } else {\n      message.matchmaker_matched = void 0;\n    }\n    if (object.matchmaker_remove !== void 0 && object.matchmaker_remove !== null) {\n      message.matchmaker_remove = MatchmakerRemove.fromJSON(\n        object.matchmaker_remove\n      );\n    } else {\n      message.matchmaker_remove = void 0;\n    }\n    if (object.matchmaker_ticket !== void 0 && object.matchmaker_ticket !== null) {\n      message.matchmaker_ticket = MatchmakerTicket.fromJSON(\n        object.matchmaker_ticket\n      );\n    } else {\n      message.matchmaker_ticket = void 0;\n    }\n    if (object.notifications !== void 0 && object.notifications !== null) {\n      message.notifications = Notifications.fromJSON(object.notifications);\n    } else {\n      message.notifications = void 0;\n    }\n    if (object.rpc !== void 0 && object.rpc !== null) {\n      message.rpc = Rpc.fromJSON(object.rpc);\n    } else {\n      message.rpc = void 0;\n    }\n    if (object.status !== void 0 && object.status !== null) {\n      message.status = Status.fromJSON(object.status);\n    } else {\n      message.status = void 0;\n    }\n    if (object.status_follow !== void 0 && object.status_follow !== null) {\n      message.status_follow = StatusFollow.fromJSON(object.status_follow);\n    } else {\n      message.status_follow = void 0;\n    }\n    if (object.status_presence_event !== void 0 && object.status_presence_event !== null) {\n      message.status_presence_event = StatusPresenceEvent.fromJSON(\n        object.status_presence_event\n      );\n    } else {\n      message.status_presence_event = void 0;\n    }\n    if (object.status_unfollow !== void 0 && object.status_unfollow !== null) {\n      message.status_unfollow = StatusUnfollow.fromJSON(object.status_unfollow);\n    } else {\n      message.status_unfollow = void 0;\n    }\n    if (object.status_update !== void 0 && object.status_update !== null) {\n      message.status_update = StatusUpdate.fromJSON(object.status_update);\n    } else {\n      message.status_update = void 0;\n    }\n    if (object.stream_data !== void 0 && object.stream_data !== null) {\n      message.stream_data = StreamData.fromJSON(object.stream_data);\n    } else {\n      message.stream_data = void 0;\n    }\n    if (object.stream_presence_event !== void 0 && object.stream_presence_event !== null) {\n      message.stream_presence_event = StreamPresenceEvent.fromJSON(\n        object.stream_presence_event\n      );\n    } else {\n      message.stream_presence_event = void 0;\n    }\n    if (object.ping !== void 0 && object.ping !== null) {\n      message.ping = Ping.fromJSON(object.ping);\n    } else {\n      message.ping = void 0;\n    }\n    if (object.pong !== void 0 && object.pong !== null) {\n      message.pong = Pong.fromJSON(object.pong);\n    } else {\n      message.pong = void 0;\n    }\n    if (object.party !== void 0 && object.party !== null) {\n      message.party = Party.fromJSON(object.party);\n    } else {\n      message.party = void 0;\n    }\n    if (object.party_create !== void 0 && object.party_create !== null) {\n      message.party_create = PartyCreate.fromJSON(object.party_create);\n    } else {\n      message.party_create = void 0;\n    }\n    if (object.party_join !== void 0 && object.party_join !== null) {\n      message.party_join = PartyJoin.fromJSON(object.party_join);\n    } else {\n      message.party_join = void 0;\n    }\n    if (object.party_leave !== void 0 && object.party_leave !== null) {\n      message.party_leave = PartyLeave.fromJSON(object.party_leave);\n    } else {\n      message.party_leave = void 0;\n    }\n    if (object.party_promote !== void 0 && object.party_promote !== null) {\n      message.party_promote = PartyPromote.fromJSON(object.party_promote);\n    } else {\n      message.party_promote = void 0;\n    }\n    if (object.party_leader !== void 0 && object.party_leader !== null) {\n      message.party_leader = PartyLeader.fromJSON(object.party_leader);\n    } else {\n      message.party_leader = void 0;\n    }\n    if (object.party_accept !== void 0 && object.party_accept !== null) {\n      message.party_accept = PartyAccept.fromJSON(object.party_accept);\n    } else {\n      message.party_accept = void 0;\n    }\n    if (object.party_remove !== void 0 && object.party_remove !== null) {\n      message.party_remove = PartyRemove.fromJSON(object.party_remove);\n    } else {\n      message.party_remove = void 0;\n    }\n    if (object.party_close !== void 0 && object.party_close !== null) {\n      message.party_close = PartyClose.fromJSON(object.party_close);\n    } else {\n      message.party_close = void 0;\n    }\n    if (object.party_join_request_list !== void 0 && object.party_join_request_list !== null) {\n      message.party_join_request_list = PartyJoinRequestList.fromJSON(\n        object.party_join_request_list\n      );\n    } else {\n      message.party_join_request_list = void 0;\n    }\n    if (object.party_join_request !== void 0 && object.party_join_request !== null) {\n      message.party_join_request = PartyJoinRequest.fromJSON(\n        object.party_join_request\n      );\n    } else {\n      message.party_join_request = void 0;\n    }\n    if (object.party_matchmaker_add !== void 0 && object.party_matchmaker_add !== null) {\n      message.party_matchmaker_add = PartyMatchmakerAdd.fromJSON(\n        object.party_matchmaker_add\n      );\n    } else {\n      message.party_matchmaker_add = void 0;\n    }\n    if (object.party_matchmaker_remove !== void 0 && object.party_matchmaker_remove !== null) {\n      message.party_matchmaker_remove = PartyMatchmakerRemove.fromJSON(\n        object.party_matchmaker_remove\n      );\n    } else {\n      message.party_matchmaker_remove = void 0;\n    }\n    if (object.party_matchmaker_ticket !== void 0 && object.party_matchmaker_ticket !== null) {\n      message.party_matchmaker_ticket = PartyMatchmakerTicket.fromJSON(\n        object.party_matchmaker_ticket\n      );\n    } else {\n      message.party_matchmaker_ticket = void 0;\n    }\n    if (object.party_data !== void 0 && object.party_data !== null) {\n      message.party_data = PartyData.fromJSON(object.party_data);\n    } else {\n      message.party_data = void 0;\n    }\n    if (object.party_data_send !== void 0 && object.party_data_send !== null) {\n      message.party_data_send = PartyDataSend.fromJSON(object.party_data_send);\n    } else {\n      message.party_data_send = void 0;\n    }\n    if (object.party_presence_event !== void 0 && object.party_presence_event !== null) {\n      message.party_presence_event = PartyPresenceEvent.fromJSON(\n        object.party_presence_event\n      );\n    } else {\n      message.party_presence_event = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.cid !== void 0 && (obj.cid = message.cid);\n    message.channel !== void 0 && (obj.channel = message.channel ? Channel.toJSON(message.channel) : void 0);\n    message.channel_join !== void 0 && (obj.channel_join = message.channel_join ? ChannelJoin.toJSON(message.channel_join) : void 0);\n    message.channel_leave !== void 0 && (obj.channel_leave = message.channel_leave ? ChannelLeave.toJSON(message.channel_leave) : void 0);\n    message.channel_message !== void 0 && (obj.channel_message = message.channel_message ? ChannelMessage.toJSON(message.channel_message) : void 0);\n    message.channel_message_ack !== void 0 && (obj.channel_message_ack = message.channel_message_ack ? ChannelMessageAck.toJSON(message.channel_message_ack) : void 0);\n    message.channel_message_send !== void 0 && (obj.channel_message_send = message.channel_message_send ? ChannelMessageSend.toJSON(message.channel_message_send) : void 0);\n    message.channel_message_update !== void 0 && (obj.channel_message_update = message.channel_message_update ? ChannelMessageUpdate.toJSON(message.channel_message_update) : void 0);\n    message.channel_message_remove !== void 0 && (obj.channel_message_remove = message.channel_message_remove ? ChannelMessageRemove.toJSON(message.channel_message_remove) : void 0);\n    message.channel_presence_event !== void 0 && (obj.channel_presence_event = message.channel_presence_event ? ChannelPresenceEvent.toJSON(message.channel_presence_event) : void 0);\n    message.error !== void 0 && (obj.error = message.error ? Error2.toJSON(message.error) : void 0);\n    message.match !== void 0 && (obj.match = message.match ? Match.toJSON(message.match) : void 0);\n    message.match_create !== void 0 && (obj.match_create = message.match_create ? MatchCreate.toJSON(message.match_create) : void 0);\n    message.match_data !== void 0 && (obj.match_data = message.match_data ? MatchData.toJSON(message.match_data) : void 0);\n    message.match_data_send !== void 0 && (obj.match_data_send = message.match_data_send ? MatchDataSend.toJSON(message.match_data_send) : void 0);\n    message.match_join !== void 0 && (obj.match_join = message.match_join ? MatchJoin.toJSON(message.match_join) : void 0);\n    message.match_leave !== void 0 && (obj.match_leave = message.match_leave ? MatchLeave.toJSON(message.match_leave) : void 0);\n    message.match_presence_event !== void 0 && (obj.match_presence_event = message.match_presence_event ? MatchPresenceEvent.toJSON(message.match_presence_event) : void 0);\n    message.matchmaker_add !== void 0 && (obj.matchmaker_add = message.matchmaker_add ? MatchmakerAdd.toJSON(message.matchmaker_add) : void 0);\n    message.matchmaker_matched !== void 0 && (obj.matchmaker_matched = message.matchmaker_matched ? MatchmakerMatched.toJSON(message.matchmaker_matched) : void 0);\n    message.matchmaker_remove !== void 0 && (obj.matchmaker_remove = message.matchmaker_remove ? MatchmakerRemove.toJSON(message.matchmaker_remove) : void 0);\n    message.matchmaker_ticket !== void 0 && (obj.matchmaker_ticket = message.matchmaker_ticket ? MatchmakerTicket.toJSON(message.matchmaker_ticket) : void 0);\n    message.notifications !== void 0 && (obj.notifications = message.notifications ? Notifications.toJSON(message.notifications) : void 0);\n    message.rpc !== void 0 && (obj.rpc = message.rpc ? Rpc.toJSON(message.rpc) : void 0);\n    message.status !== void 0 && (obj.status = message.status ? Status.toJSON(message.status) : void 0);\n    message.status_follow !== void 0 && (obj.status_follow = message.status_follow ? StatusFollow.toJSON(message.status_follow) : void 0);\n    message.status_presence_event !== void 0 && (obj.status_presence_event = message.status_presence_event ? StatusPresenceEvent.toJSON(message.status_presence_event) : void 0);\n    message.status_unfollow !== void 0 && (obj.status_unfollow = message.status_unfollow ? StatusUnfollow.toJSON(message.status_unfollow) : void 0);\n    message.status_update !== void 0 && (obj.status_update = message.status_update ? StatusUpdate.toJSON(message.status_update) : void 0);\n    message.stream_data !== void 0 && (obj.stream_data = message.stream_data ? StreamData.toJSON(message.stream_data) : void 0);\n    message.stream_presence_event !== void 0 && (obj.stream_presence_event = message.stream_presence_event ? StreamPresenceEvent.toJSON(message.stream_presence_event) : void 0);\n    message.ping !== void 0 && (obj.ping = message.ping ? Ping.toJSON(message.ping) : void 0);\n    message.pong !== void 0 && (obj.pong = message.pong ? Pong.toJSON(message.pong) : void 0);\n    message.party !== void 0 && (obj.party = message.party ? Party.toJSON(message.party) : void 0);\n    message.party_create !== void 0 && (obj.party_create = message.party_create ? PartyCreate.toJSON(message.party_create) : void 0);\n    message.party_join !== void 0 && (obj.party_join = message.party_join ? PartyJoin.toJSON(message.party_join) : void 0);\n    message.party_leave !== void 0 && (obj.party_leave = message.party_leave ? PartyLeave.toJSON(message.party_leave) : void 0);\n    message.party_promote !== void 0 && (obj.party_promote = message.party_promote ? PartyPromote.toJSON(message.party_promote) : void 0);\n    message.party_leader !== void 0 && (obj.party_leader = message.party_leader ? PartyLeader.toJSON(message.party_leader) : void 0);\n    message.party_accept !== void 0 && (obj.party_accept = message.party_accept ? PartyAccept.toJSON(message.party_accept) : void 0);\n    message.party_remove !== void 0 && (obj.party_remove = message.party_remove ? PartyRemove.toJSON(message.party_remove) : void 0);\n    message.party_close !== void 0 && (obj.party_close = message.party_close ? PartyClose.toJSON(message.party_close) : void 0);\n    message.party_join_request_list !== void 0 && (obj.party_join_request_list = message.party_join_request_list ? PartyJoinRequestList.toJSON(message.party_join_request_list) : void 0);\n    message.party_join_request !== void 0 && (obj.party_join_request = message.party_join_request ? PartyJoinRequest.toJSON(message.party_join_request) : void 0);\n    message.party_matchmaker_add !== void 0 && (obj.party_matchmaker_add = message.party_matchmaker_add ? PartyMatchmakerAdd.toJSON(message.party_matchmaker_add) : void 0);\n    message.party_matchmaker_remove !== void 0 && (obj.party_matchmaker_remove = message.party_matchmaker_remove ? PartyMatchmakerRemove.toJSON(message.party_matchmaker_remove) : void 0);\n    message.party_matchmaker_ticket !== void 0 && (obj.party_matchmaker_ticket = message.party_matchmaker_ticket ? PartyMatchmakerTicket.toJSON(message.party_matchmaker_ticket) : void 0);\n    message.party_data !== void 0 && (obj.party_data = message.party_data ? PartyData.toJSON(message.party_data) : void 0);\n    message.party_data_send !== void 0 && (obj.party_data_send = message.party_data_send ? PartyDataSend.toJSON(message.party_data_send) : void 0);\n    message.party_presence_event !== void 0 && (obj.party_presence_event = message.party_presence_event ? PartyPresenceEvent.toJSON(message.party_presence_event) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseEnvelope);\n    if (object.cid !== void 0 && object.cid !== null) {\n      message.cid = object.cid;\n    } else {\n      message.cid = \"\";\n    }\n    if (object.channel !== void 0 && object.channel !== null) {\n      message.channel = Channel.fromPartial(object.channel);\n    } else {\n      message.channel = void 0;\n    }\n    if (object.channel_join !== void 0 && object.channel_join !== null) {\n      message.channel_join = ChannelJoin.fromPartial(object.channel_join);\n    } else {\n      message.channel_join = void 0;\n    }\n    if (object.channel_leave !== void 0 && object.channel_leave !== null) {\n      message.channel_leave = ChannelLeave.fromPartial(object.channel_leave);\n    } else {\n      message.channel_leave = void 0;\n    }\n    if (object.channel_message !== void 0 && object.channel_message !== null) {\n      message.channel_message = ChannelMessage.fromPartial(\n        object.channel_message\n      );\n    } else {\n      message.channel_message = void 0;\n    }\n    if (object.channel_message_ack !== void 0 && object.channel_message_ack !== null) {\n      message.channel_message_ack = ChannelMessageAck.fromPartial(\n        object.channel_message_ack\n      );\n    } else {\n      message.channel_message_ack = void 0;\n    }\n    if (object.channel_message_send !== void 0 && object.channel_message_send !== null) {\n      message.channel_message_send = ChannelMessageSend.fromPartial(\n        object.channel_message_send\n      );\n    } else {\n      message.channel_message_send = void 0;\n    }\n    if (object.channel_message_update !== void 0 && object.channel_message_update !== null) {\n      message.channel_message_update = ChannelMessageUpdate.fromPartial(\n        object.channel_message_update\n      );\n    } else {\n      message.channel_message_update = void 0;\n    }\n    if (object.channel_message_remove !== void 0 && object.channel_message_remove !== null) {\n      message.channel_message_remove = ChannelMessageRemove.fromPartial(\n        object.channel_message_remove\n      );\n    } else {\n      message.channel_message_remove = void 0;\n    }\n    if (object.channel_presence_event !== void 0 && object.channel_presence_event !== null) {\n      message.channel_presence_event = ChannelPresenceEvent.fromPartial(\n        object.channel_presence_event\n      );\n    } else {\n      message.channel_presence_event = void 0;\n    }\n    if (object.error !== void 0 && object.error !== null) {\n      message.error = Error2.fromPartial(object.error);\n    } else {\n      message.error = void 0;\n    }\n    if (object.match !== void 0 && object.match !== null) {\n      message.match = Match.fromPartial(object.match);\n    } else {\n      message.match = void 0;\n    }\n    if (object.match_create !== void 0 && object.match_create !== null) {\n      message.match_create = MatchCreate.fromPartial(object.match_create);\n    } else {\n      message.match_create = void 0;\n    }\n    if (object.match_data !== void 0 && object.match_data !== null) {\n      message.match_data = MatchData.fromPartial(object.match_data);\n    } else {\n      message.match_data = void 0;\n    }\n    if (object.match_data_send !== void 0 && object.match_data_send !== null) {\n      message.match_data_send = MatchDataSend.fromPartial(\n        object.match_data_send\n      );\n    } else {\n      message.match_data_send = void 0;\n    }\n    if (object.match_join !== void 0 && object.match_join !== null) {\n      message.match_join = MatchJoin.fromPartial(object.match_join);\n    } else {\n      message.match_join = void 0;\n    }\n    if (object.match_leave !== void 0 && object.match_leave !== null) {\n      message.match_leave = MatchLeave.fromPartial(object.match_leave);\n    } else {\n      message.match_leave = void 0;\n    }\n    if (object.match_presence_event !== void 0 && object.match_presence_event !== null) {\n      message.match_presence_event = MatchPresenceEvent.fromPartial(\n        object.match_presence_event\n      );\n    } else {\n      message.match_presence_event = void 0;\n    }\n    if (object.matchmaker_add !== void 0 && object.matchmaker_add !== null) {\n      message.matchmaker_add = MatchmakerAdd.fromPartial(object.matchmaker_add);\n    } else {\n      message.matchmaker_add = void 0;\n    }\n    if (object.matchmaker_matched !== void 0 && object.matchmaker_matched !== null) {\n      message.matchmaker_matched = MatchmakerMatched.fromPartial(\n        object.matchmaker_matched\n      );\n    } else {\n      message.matchmaker_matched = void 0;\n    }\n    if (object.matchmaker_remove !== void 0 && object.matchmaker_remove !== null) {\n      message.matchmaker_remove = MatchmakerRemove.fromPartial(\n        object.matchmaker_remove\n      );\n    } else {\n      message.matchmaker_remove = void 0;\n    }\n    if (object.matchmaker_ticket !== void 0 && object.matchmaker_ticket !== null) {\n      message.matchmaker_ticket = MatchmakerTicket.fromPartial(\n        object.matchmaker_ticket\n      );\n    } else {\n      message.matchmaker_ticket = void 0;\n    }\n    if (object.notifications !== void 0 && object.notifications !== null) {\n      message.notifications = Notifications.fromPartial(object.notifications);\n    } else {\n      message.notifications = void 0;\n    }\n    if (object.rpc !== void 0 && object.rpc !== null) {\n      message.rpc = Rpc.fromPartial(object.rpc);\n    } else {\n      message.rpc = void 0;\n    }\n    if (object.status !== void 0 && object.status !== null) {\n      message.status = Status.fromPartial(object.status);\n    } else {\n      message.status = void 0;\n    }\n    if (object.status_follow !== void 0 && object.status_follow !== null) {\n      message.status_follow = StatusFollow.fromPartial(object.status_follow);\n    } else {\n      message.status_follow = void 0;\n    }\n    if (object.status_presence_event !== void 0 && object.status_presence_event !== null) {\n      message.status_presence_event = StatusPresenceEvent.fromPartial(\n        object.status_presence_event\n      );\n    } else {\n      message.status_presence_event = void 0;\n    }\n    if (object.status_unfollow !== void 0 && object.status_unfollow !== null) {\n      message.status_unfollow = StatusUnfollow.fromPartial(\n        object.status_unfollow\n      );\n    } else {\n      message.status_unfollow = void 0;\n    }\n    if (object.status_update !== void 0 && object.status_update !== null) {\n      message.status_update = StatusUpdate.fromPartial(object.status_update);\n    } else {\n      message.status_update = void 0;\n    }\n    if (object.stream_data !== void 0 && object.stream_data !== null) {\n      message.stream_data = StreamData.fromPartial(object.stream_data);\n    } else {\n      message.stream_data = void 0;\n    }\n    if (object.stream_presence_event !== void 0 && object.stream_presence_event !== null) {\n      message.stream_presence_event = StreamPresenceEvent.fromPartial(\n        object.stream_presence_event\n      );\n    } else {\n      message.stream_presence_event = void 0;\n    }\n    if (object.ping !== void 0 && object.ping !== null) {\n      message.ping = Ping.fromPartial(object.ping);\n    } else {\n      message.ping = void 0;\n    }\n    if (object.pong !== void 0 && object.pong !== null) {\n      message.pong = Pong.fromPartial(object.pong);\n    } else {\n      message.pong = void 0;\n    }\n    if (object.party !== void 0 && object.party !== null) {\n      message.party = Party.fromPartial(object.party);\n    } else {\n      message.party = void 0;\n    }\n    if (object.party_create !== void 0 && object.party_create !== null) {\n      message.party_create = PartyCreate.fromPartial(object.party_create);\n    } else {\n      message.party_create = void 0;\n    }\n    if (object.party_join !== void 0 && object.party_join !== null) {\n      message.party_join = PartyJoin.fromPartial(object.party_join);\n    } else {\n      message.party_join = void 0;\n    }\n    if (object.party_leave !== void 0 && object.party_leave !== null) {\n      message.party_leave = PartyLeave.fromPartial(object.party_leave);\n    } else {\n      message.party_leave = void 0;\n    }\n    if (object.party_promote !== void 0 && object.party_promote !== null) {\n      message.party_promote = PartyPromote.fromPartial(object.party_promote);\n    } else {\n      message.party_promote = void 0;\n    }\n    if (object.party_leader !== void 0 && object.party_leader !== null) {\n      message.party_leader = PartyLeader.fromPartial(object.party_leader);\n    } else {\n      message.party_leader = void 0;\n    }\n    if (object.party_accept !== void 0 && object.party_accept !== null) {\n      message.party_accept = PartyAccept.fromPartial(object.party_accept);\n    } else {\n      message.party_accept = void 0;\n    }\n    if (object.party_remove !== void 0 && object.party_remove !== null) {\n      message.party_remove = PartyRemove.fromPartial(object.party_remove);\n    } else {\n      message.party_remove = void 0;\n    }\n    if (object.party_close !== void 0 && object.party_close !== null) {\n      message.party_close = PartyClose.fromPartial(object.party_close);\n    } else {\n      message.party_close = void 0;\n    }\n    if (object.party_join_request_list !== void 0 && object.party_join_request_list !== null) {\n      message.party_join_request_list = PartyJoinRequestList.fromPartial(\n        object.party_join_request_list\n      );\n    } else {\n      message.party_join_request_list = void 0;\n    }\n    if (object.party_join_request !== void 0 && object.party_join_request !== null) {\n      message.party_join_request = PartyJoinRequest.fromPartial(\n        object.party_join_request\n      );\n    } else {\n      message.party_join_request = void 0;\n    }\n    if (object.party_matchmaker_add !== void 0 && object.party_matchmaker_add !== null) {\n      message.party_matchmaker_add = PartyMatchmakerAdd.fromPartial(\n        object.party_matchmaker_add\n      );\n    } else {\n      message.party_matchmaker_add = void 0;\n    }\n    if (object.party_matchmaker_remove !== void 0 && object.party_matchmaker_remove !== null) {\n      message.party_matchmaker_remove = PartyMatchmakerRemove.fromPartial(\n        object.party_matchmaker_remove\n      );\n    } else {\n      message.party_matchmaker_remove = void 0;\n    }\n    if (object.party_matchmaker_ticket !== void 0 && object.party_matchmaker_ticket !== null) {\n      message.party_matchmaker_ticket = PartyMatchmakerTicket.fromPartial(\n        object.party_matchmaker_ticket\n      );\n    } else {\n      message.party_matchmaker_ticket = void 0;\n    }\n    if (object.party_data !== void 0 && object.party_data !== null) {\n      message.party_data = PartyData.fromPartial(object.party_data);\n    } else {\n      message.party_data = void 0;\n    }\n    if (object.party_data_send !== void 0 && object.party_data_send !== null) {\n      message.party_data_send = PartyDataSend.fromPartial(\n        object.party_data_send\n      );\n    } else {\n      message.party_data_send = void 0;\n    }\n    if (object.party_presence_event !== void 0 && object.party_presence_event !== null) {\n      message.party_presence_event = PartyPresenceEvent.fromPartial(\n        object.party_presence_event\n      );\n    } else {\n      message.party_presence_event = void 0;\n    }\n    return message;\n  }\n};\nvar baseChannel = {\n  id: \"\",\n  room_name: \"\",\n  group_id: \"\",\n  user_id_one: \"\",\n  user_id_two: \"\"\n};\nvar Channel = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.id !== \"\") {\n      writer.uint32(10).string(message.id);\n    }\n    for (const v of message.presences) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    if (message.self !== void 0) {\n      UserPresence.encode(message.self, writer.uint32(26).fork()).ldelim();\n    }\n    if (message.room_name !== \"\") {\n      writer.uint32(34).string(message.room_name);\n    }\n    if (message.group_id !== \"\") {\n      writer.uint32(42).string(message.group_id);\n    }\n    if (message.user_id_one !== \"\") {\n      writer.uint32(50).string(message.user_id_one);\n    }\n    if (message.user_id_two !== \"\") {\n      writer.uint32(58).string(message.user_id_two);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannel);\n    message.presences = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.id = reader.string();\n          break;\n        case 2:\n          message.presences.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 3:\n          message.self = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 4:\n          message.room_name = reader.string();\n          break;\n        case 5:\n          message.group_id = reader.string();\n          break;\n        case 6:\n          message.user_id_one = reader.string();\n          break;\n        case 7:\n          message.user_id_two = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannel);\n    message.presences = [];\n    if (object.id !== void 0 && object.id !== null) {\n      message.id = String(object.id);\n    } else {\n      message.id = \"\";\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = UserPresence.fromJSON(object.self);\n    } else {\n      message.self = void 0;\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = String(object.room_name);\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = String(object.group_id);\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = String(object.user_id_one);\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = String(object.user_id_two);\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.id !== void 0 && (obj.id = message.id);\n    if (message.presences) {\n      obj.presences = message.presences.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.presences = [];\n    }\n    message.self !== void 0 && (obj.self = message.self ? UserPresence.toJSON(message.self) : void 0);\n    message.room_name !== void 0 && (obj.room_name = message.room_name);\n    message.group_id !== void 0 && (obj.group_id = message.group_id);\n    message.user_id_one !== void 0 && (obj.user_id_one = message.user_id_one);\n    message.user_id_two !== void 0 && (obj.user_id_two = message.user_id_two);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannel);\n    message.presences = [];\n    if (object.id !== void 0 && object.id !== null) {\n      message.id = object.id;\n    } else {\n      message.id = \"\";\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = UserPresence.fromPartial(object.self);\n    } else {\n      message.self = void 0;\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = object.room_name;\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = object.group_id;\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = object.user_id_one;\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = object.user_id_two;\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  }\n};\nvar baseChannelJoin = { target: \"\", type: 0 };\nvar ChannelJoin = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.target !== \"\") {\n      writer.uint32(10).string(message.target);\n    }\n    if (message.type !== 0) {\n      writer.uint32(16).int32(message.type);\n    }\n    if (message.persistence !== void 0) {\n      BoolValue.encode(\n        { value: message.persistence },\n        writer.uint32(26).fork()\n      ).ldelim();\n    }\n    if (message.hidden !== void 0) {\n      BoolValue.encode(\n        { value: message.hidden },\n        writer.uint32(34).fork()\n      ).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelJoin);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.target = reader.string();\n          break;\n        case 2:\n          message.type = reader.int32();\n          break;\n        case 3:\n          message.persistence = BoolValue.decode(reader, reader.uint32()).value;\n          break;\n        case 4:\n          message.hidden = BoolValue.decode(reader, reader.uint32()).value;\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelJoin);\n    if (object.target !== void 0 && object.target !== null) {\n      message.target = String(object.target);\n    } else {\n      message.target = \"\";\n    }\n    if (object.type !== void 0 && object.type !== null) {\n      message.type = Number(object.type);\n    } else {\n      message.type = 0;\n    }\n    if (object.persistence !== void 0 && object.persistence !== null) {\n      message.persistence = Boolean(object.persistence);\n    } else {\n      message.persistence = void 0;\n    }\n    if (object.hidden !== void 0 && object.hidden !== null) {\n      message.hidden = Boolean(object.hidden);\n    } else {\n      message.hidden = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.target !== void 0 && (obj.target = message.target);\n    message.type !== void 0 && (obj.type = message.type);\n    message.persistence !== void 0 && (obj.persistence = message.persistence);\n    message.hidden !== void 0 && (obj.hidden = message.hidden);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelJoin);\n    if (object.target !== void 0 && object.target !== null) {\n      message.target = object.target;\n    } else {\n      message.target = \"\";\n    }\n    if (object.type !== void 0 && object.type !== null) {\n      message.type = object.type;\n    } else {\n      message.type = 0;\n    }\n    if (object.persistence !== void 0 && object.persistence !== null) {\n      message.persistence = object.persistence;\n    } else {\n      message.persistence = void 0;\n    }\n    if (object.hidden !== void 0 && object.hidden !== null) {\n      message.hidden = object.hidden;\n    } else {\n      message.hidden = void 0;\n    }\n    return message;\n  }\n};\nvar baseChannelLeave = { channel_id: \"\" };\nvar ChannelLeave = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelLeave);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelLeave);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelLeave);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    return message;\n  }\n};\nvar baseChannelMessageAck = {\n  channel_id: \"\",\n  message_id: \"\",\n  username: \"\",\n  room_name: \"\",\n  group_id: \"\",\n  user_id_one: \"\",\n  user_id_two: \"\"\n};\nvar ChannelMessageAck = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    if (message.message_id !== \"\") {\n      writer.uint32(18).string(message.message_id);\n    }\n    if (message.code !== void 0) {\n      Int32Value.encode(\n        { value: message.code },\n        writer.uint32(26).fork()\n      ).ldelim();\n    }\n    if (message.username !== \"\") {\n      writer.uint32(34).string(message.username);\n    }\n    if (message.create_time !== void 0) {\n      Timestamp.encode(\n        toTimestamp2(message.create_time),\n        writer.uint32(42).fork()\n      ).ldelim();\n    }\n    if (message.update_time !== void 0) {\n      Timestamp.encode(\n        toTimestamp2(message.update_time),\n        writer.uint32(50).fork()\n      ).ldelim();\n    }\n    if (message.persistent !== void 0) {\n      BoolValue.encode(\n        { value: message.persistent },\n        writer.uint32(58).fork()\n      ).ldelim();\n    }\n    if (message.room_name !== \"\") {\n      writer.uint32(66).string(message.room_name);\n    }\n    if (message.group_id !== \"\") {\n      writer.uint32(74).string(message.group_id);\n    }\n    if (message.user_id_one !== \"\") {\n      writer.uint32(82).string(message.user_id_one);\n    }\n    if (message.user_id_two !== \"\") {\n      writer.uint32(90).string(message.user_id_two);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelMessageAck);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        case 2:\n          message.message_id = reader.string();\n          break;\n        case 3:\n          message.code = Int32Value.decode(reader, reader.uint32()).value;\n          break;\n        case 4:\n          message.username = reader.string();\n          break;\n        case 5:\n          message.create_time = fromTimestamp2(\n            Timestamp.decode(reader, reader.uint32())\n          );\n          break;\n        case 6:\n          message.update_time = fromTimestamp2(\n            Timestamp.decode(reader, reader.uint32())\n          );\n          break;\n        case 7:\n          message.persistent = BoolValue.decode(reader, reader.uint32()).value;\n          break;\n        case 8:\n          message.room_name = reader.string();\n          break;\n        case 9:\n          message.group_id = reader.string();\n          break;\n        case 10:\n          message.user_id_one = reader.string();\n          break;\n        case 11:\n          message.user_id_two = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelMessageAck);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = String(object.message_id);\n    } else {\n      message.message_id = \"\";\n    }\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = Number(object.code);\n    } else {\n      message.code = void 0;\n    }\n    if (object.username !== void 0 && object.username !== null) {\n      message.username = String(object.username);\n    } else {\n      message.username = \"\";\n    }\n    if (object.create_time !== void 0 && object.create_time !== null) {\n      message.create_time = fromJsonTimestamp2(object.create_time);\n    } else {\n      message.create_time = void 0;\n    }\n    if (object.update_time !== void 0 && object.update_time !== null) {\n      message.update_time = fromJsonTimestamp2(object.update_time);\n    } else {\n      message.update_time = void 0;\n    }\n    if (object.persistent !== void 0 && object.persistent !== null) {\n      message.persistent = Boolean(object.persistent);\n    } else {\n      message.persistent = void 0;\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = String(object.room_name);\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = String(object.group_id);\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = String(object.user_id_one);\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = String(object.user_id_two);\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    message.message_id !== void 0 && (obj.message_id = message.message_id);\n    message.code !== void 0 && (obj.code = message.code);\n    message.username !== void 0 && (obj.username = message.username);\n    message.create_time !== void 0 && (obj.create_time = message.create_time.toISOString());\n    message.update_time !== void 0 && (obj.update_time = message.update_time.toISOString());\n    message.persistent !== void 0 && (obj.persistent = message.persistent);\n    message.room_name !== void 0 && (obj.room_name = message.room_name);\n    message.group_id !== void 0 && (obj.group_id = message.group_id);\n    message.user_id_one !== void 0 && (obj.user_id_one = message.user_id_one);\n    message.user_id_two !== void 0 && (obj.user_id_two = message.user_id_two);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelMessageAck);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = object.message_id;\n    } else {\n      message.message_id = \"\";\n    }\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = object.code;\n    } else {\n      message.code = void 0;\n    }\n    if (object.username !== void 0 && object.username !== null) {\n      message.username = object.username;\n    } else {\n      message.username = \"\";\n    }\n    if (object.create_time !== void 0 && object.create_time !== null) {\n      message.create_time = object.create_time;\n    } else {\n      message.create_time = void 0;\n    }\n    if (object.update_time !== void 0 && object.update_time !== null) {\n      message.update_time = object.update_time;\n    } else {\n      message.update_time = void 0;\n    }\n    if (object.persistent !== void 0 && object.persistent !== null) {\n      message.persistent = object.persistent;\n    } else {\n      message.persistent = void 0;\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = object.room_name;\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = object.group_id;\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = object.user_id_one;\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = object.user_id_two;\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  }\n};\nvar baseChannelMessageSend = { channel_id: \"\", content: \"\" };\nvar ChannelMessageSend = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    if (message.content !== \"\") {\n      writer.uint32(18).string(message.content);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelMessageSend);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        case 2:\n          message.content = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelMessageSend);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = String(object.content);\n    } else {\n      message.content = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    message.content !== void 0 && (obj.content = message.content);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelMessageSend);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = object.content;\n    } else {\n      message.content = \"\";\n    }\n    return message;\n  }\n};\nvar baseChannelMessageUpdate = {\n  channel_id: \"\",\n  message_id: \"\",\n  content: \"\"\n};\nvar ChannelMessageUpdate = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    if (message.message_id !== \"\") {\n      writer.uint32(18).string(message.message_id);\n    }\n    if (message.content !== \"\") {\n      writer.uint32(26).string(message.content);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelMessageUpdate);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        case 2:\n          message.message_id = reader.string();\n          break;\n        case 3:\n          message.content = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelMessageUpdate);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = String(object.message_id);\n    } else {\n      message.message_id = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = String(object.content);\n    } else {\n      message.content = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    message.message_id !== void 0 && (obj.message_id = message.message_id);\n    message.content !== void 0 && (obj.content = message.content);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelMessageUpdate);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = object.message_id;\n    } else {\n      message.message_id = \"\";\n    }\n    if (object.content !== void 0 && object.content !== null) {\n      message.content = object.content;\n    } else {\n      message.content = \"\";\n    }\n    return message;\n  }\n};\nvar baseChannelMessageRemove = { channel_id: \"\", message_id: \"\" };\nvar ChannelMessageRemove = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    if (message.message_id !== \"\") {\n      writer.uint32(18).string(message.message_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelMessageRemove);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        case 2:\n          message.message_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelMessageRemove);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = String(object.message_id);\n    } else {\n      message.message_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    message.message_id !== void 0 && (obj.message_id = message.message_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelMessageRemove);\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.message_id !== void 0 && object.message_id !== null) {\n      message.message_id = object.message_id;\n    } else {\n      message.message_id = \"\";\n    }\n    return message;\n  }\n};\nvar baseChannelPresenceEvent = {\n  channel_id: \"\",\n  room_name: \"\",\n  group_id: \"\",\n  user_id_one: \"\",\n  user_id_two: \"\"\n};\nvar ChannelPresenceEvent = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.channel_id !== \"\") {\n      writer.uint32(10).string(message.channel_id);\n    }\n    for (const v of message.joins) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    for (const v of message.leaves) {\n      UserPresence.encode(v, writer.uint32(26).fork()).ldelim();\n    }\n    if (message.room_name !== \"\") {\n      writer.uint32(34).string(message.room_name);\n    }\n    if (message.group_id !== \"\") {\n      writer.uint32(42).string(message.group_id);\n    }\n    if (message.user_id_one !== \"\") {\n      writer.uint32(50).string(message.user_id_one);\n    }\n    if (message.user_id_two !== \"\") {\n      writer.uint32(58).string(message.user_id_two);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseChannelPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.channel_id = reader.string();\n          break;\n        case 2:\n          message.joins.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 3:\n          message.leaves.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 4:\n          message.room_name = reader.string();\n          break;\n        case 5:\n          message.group_id = reader.string();\n          break;\n        case 6:\n          message.user_id_one = reader.string();\n          break;\n        case 7:\n          message.user_id_two = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseChannelPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = String(object.channel_id);\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = String(object.room_name);\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = String(object.group_id);\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = String(object.user_id_one);\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = String(object.user_id_two);\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.channel_id !== void 0 && (obj.channel_id = message.channel_id);\n    if (message.joins) {\n      obj.joins = message.joins.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.joins = [];\n    }\n    if (message.leaves) {\n      obj.leaves = message.leaves.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.leaves = [];\n    }\n    message.room_name !== void 0 && (obj.room_name = message.room_name);\n    message.group_id !== void 0 && (obj.group_id = message.group_id);\n    message.user_id_one !== void 0 && (obj.user_id_one = message.user_id_one);\n    message.user_id_two !== void 0 && (obj.user_id_two = message.user_id_two);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseChannelPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.channel_id !== void 0 && object.channel_id !== null) {\n      message.channel_id = object.channel_id;\n    } else {\n      message.channel_id = \"\";\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.room_name !== void 0 && object.room_name !== null) {\n      message.room_name = object.room_name;\n    } else {\n      message.room_name = \"\";\n    }\n    if (object.group_id !== void 0 && object.group_id !== null) {\n      message.group_id = object.group_id;\n    } else {\n      message.group_id = \"\";\n    }\n    if (object.user_id_one !== void 0 && object.user_id_one !== null) {\n      message.user_id_one = object.user_id_one;\n    } else {\n      message.user_id_one = \"\";\n    }\n    if (object.user_id_two !== void 0 && object.user_id_two !== null) {\n      message.user_id_two = object.user_id_two;\n    } else {\n      message.user_id_two = \"\";\n    }\n    return message;\n  }\n};\nvar baseError = { code: 0, message: \"\" };\nvar Error2 = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.code !== 0) {\n      writer.uint32(8).int32(message.code);\n    }\n    if (message.message !== \"\") {\n      writer.uint32(18).string(message.message);\n    }\n    Object.entries(message.context).forEach(([key, value]) => {\n      Error_ContextEntry.encode(\n        { key, value },\n        writer.uint32(26).fork()\n      ).ldelim();\n    });\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseError);\n    message.context = {};\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.code = reader.int32();\n          break;\n        case 2:\n          message.message = reader.string();\n          break;\n        case 3:\n          const entry3 = Error_ContextEntry.decode(reader, reader.uint32());\n          if (entry3.value !== void 0) {\n            message.context[entry3.key] = entry3.value;\n          }\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseError);\n    message.context = {};\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = Number(object.code);\n    } else {\n      message.code = 0;\n    }\n    if (object.message !== void 0 && object.message !== null) {\n      message.message = String(object.message);\n    } else {\n      message.message = \"\";\n    }\n    if (object.context !== void 0 && object.context !== null) {\n      Object.entries(object.context).forEach(([key, value]) => {\n        message.context[key] = String(value);\n      });\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.code !== void 0 && (obj.code = message.code);\n    message.message !== void 0 && (obj.message = message.message);\n    obj.context = {};\n    if (message.context) {\n      Object.entries(message.context).forEach(([k, v]) => {\n        obj.context[k] = v;\n      });\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseError);\n    message.context = {};\n    if (object.code !== void 0 && object.code !== null) {\n      message.code = object.code;\n    } else {\n      message.code = 0;\n    }\n    if (object.message !== void 0 && object.message !== null) {\n      message.message = object.message;\n    } else {\n      message.message = \"\";\n    }\n    if (object.context !== void 0 && object.context !== null) {\n      Object.entries(object.context).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.context[key] = String(value);\n        }\n      });\n    }\n    return message;\n  }\n};\nvar baseError_ContextEntry = { key: \"\", value: \"\" };\nvar Error_ContextEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== \"\") {\n      writer.uint32(18).string(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseError_ContextEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseError_ContextEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = String(object.value);\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseError_ContextEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  }\n};\nvar baseMatch = { match_id: \"\", authoritative: false, size: 0 };\nvar Match = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.match_id !== \"\") {\n      writer.uint32(10).string(message.match_id);\n    }\n    if (message.authoritative === true) {\n      writer.uint32(16).bool(message.authoritative);\n    }\n    if (message.label !== void 0) {\n      StringValue.encode(\n        { value: message.label },\n        writer.uint32(26).fork()\n      ).ldelim();\n    }\n    if (message.size !== 0) {\n      writer.uint32(32).int32(message.size);\n    }\n    for (const v of message.presences) {\n      UserPresence.encode(v, writer.uint32(42).fork()).ldelim();\n    }\n    if (message.self !== void 0) {\n      UserPresence.encode(message.self, writer.uint32(50).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatch);\n    message.presences = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.match_id = reader.string();\n          break;\n        case 2:\n          message.authoritative = reader.bool();\n          break;\n        case 3:\n          message.label = StringValue.decode(reader, reader.uint32()).value;\n          break;\n        case 4:\n          message.size = reader.int32();\n          break;\n        case 5:\n          message.presences.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 6:\n          message.self = UserPresence.decode(reader, reader.uint32());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatch);\n    message.presences = [];\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.authoritative !== void 0 && object.authoritative !== null) {\n      message.authoritative = Boolean(object.authoritative);\n    } else {\n      message.authoritative = false;\n    }\n    if (object.label !== void 0 && object.label !== null) {\n      message.label = String(object.label);\n    } else {\n      message.label = void 0;\n    }\n    if (object.size !== void 0 && object.size !== null) {\n      message.size = Number(object.size);\n    } else {\n      message.size = 0;\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = UserPresence.fromJSON(object.self);\n    } else {\n      message.self = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    message.authoritative !== void 0 && (obj.authoritative = message.authoritative);\n    message.label !== void 0 && (obj.label = message.label);\n    message.size !== void 0 && (obj.size = message.size);\n    if (message.presences) {\n      obj.presences = message.presences.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.presences = [];\n    }\n    message.self !== void 0 && (obj.self = message.self ? UserPresence.toJSON(message.self) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatch);\n    message.presences = [];\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.authoritative !== void 0 && object.authoritative !== null) {\n      message.authoritative = object.authoritative;\n    } else {\n      message.authoritative = false;\n    }\n    if (object.label !== void 0 && object.label !== null) {\n      message.label = object.label;\n    } else {\n      message.label = void 0;\n    }\n    if (object.size !== void 0 && object.size !== null) {\n      message.size = object.size;\n    } else {\n      message.size = 0;\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = UserPresence.fromPartial(object.self);\n    } else {\n      message.self = void 0;\n    }\n    return message;\n  }\n};\nvar baseMatchCreate = {};\nvar MatchCreate = {\n  encode(_, writer = import_minimal4.default.Writer.create()) {\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchCreate);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(_) {\n    const message = __spreadValues({}, baseMatchCreate);\n    return message;\n  },\n  toJSON(_) {\n    const obj = {};\n    return obj;\n  },\n  fromPartial(_) {\n    const message = __spreadValues({}, baseMatchCreate);\n    return message;\n  }\n};\nvar baseMatchData = { match_id: \"\", op_code: 0, reliable: false };\nvar MatchData = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.match_id !== \"\") {\n      writer.uint32(10).string(message.match_id);\n    }\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(18).fork()).ldelim();\n    }\n    if (message.op_code !== 0) {\n      writer.uint32(24).int64(message.op_code);\n    }\n    if (message.data.length !== 0) {\n      writer.uint32(34).bytes(message.data);\n    }\n    if (message.reliable === true) {\n      writer.uint32(40).bool(message.reliable);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchData);\n    message.data = new Uint8Array();\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.match_id = reader.string();\n          break;\n        case 2:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 3:\n          message.op_code = longToNumber2(reader.int64());\n          break;\n        case 4:\n          message.data = reader.bytes();\n          break;\n        case 5:\n          message.reliable = reader.bool();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchData);\n    message.data = new Uint8Array();\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = Number(object.op_code);\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = bytesFromBase64(object.data);\n    }\n    if (object.reliable !== void 0 && object.reliable !== null) {\n      message.reliable = Boolean(object.reliable);\n    } else {\n      message.reliable = false;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    message.op_code !== void 0 && (obj.op_code = message.op_code);\n    message.data !== void 0 && (obj.data = base64FromBytes(\n      message.data !== void 0 ? message.data : new Uint8Array()\n    ));\n    message.reliable !== void 0 && (obj.reliable = message.reliable);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchData);\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = object.op_code;\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = object.data;\n    } else {\n      message.data = new Uint8Array();\n    }\n    if (object.reliable !== void 0 && object.reliable !== null) {\n      message.reliable = object.reliable;\n    } else {\n      message.reliable = false;\n    }\n    return message;\n  }\n};\nvar baseMatchDataSend = { match_id: \"\", op_code: 0, reliable: false };\nvar MatchDataSend = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.match_id !== \"\") {\n      writer.uint32(10).string(message.match_id);\n    }\n    if (message.op_code !== 0) {\n      writer.uint32(16).int64(message.op_code);\n    }\n    if (message.data.length !== 0) {\n      writer.uint32(26).bytes(message.data);\n    }\n    for (const v of message.presences) {\n      UserPresence.encode(v, writer.uint32(34).fork()).ldelim();\n    }\n    if (message.reliable === true) {\n      writer.uint32(40).bool(message.reliable);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchDataSend);\n    message.presences = [];\n    message.data = new Uint8Array();\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.match_id = reader.string();\n          break;\n        case 2:\n          message.op_code = longToNumber2(reader.int64());\n          break;\n        case 3:\n          message.data = reader.bytes();\n          break;\n        case 4:\n          message.presences.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 5:\n          message.reliable = reader.bool();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchDataSend);\n    message.presences = [];\n    message.data = new Uint8Array();\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = Number(object.op_code);\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = bytesFromBase64(object.data);\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.reliable !== void 0 && object.reliable !== null) {\n      message.reliable = Boolean(object.reliable);\n    } else {\n      message.reliable = false;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    message.op_code !== void 0 && (obj.op_code = message.op_code);\n    message.data !== void 0 && (obj.data = base64FromBytes(\n      message.data !== void 0 ? message.data : new Uint8Array()\n    ));\n    if (message.presences) {\n      obj.presences = message.presences.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.presences = [];\n    }\n    message.reliable !== void 0 && (obj.reliable = message.reliable);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchDataSend);\n    message.presences = [];\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = object.op_code;\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = object.data;\n    } else {\n      message.data = new Uint8Array();\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.reliable !== void 0 && object.reliable !== null) {\n      message.reliable = object.reliable;\n    } else {\n      message.reliable = false;\n    }\n    return message;\n  }\n};\nvar baseMatchJoin = {};\nvar MatchJoin = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.match_id !== void 0) {\n      writer.uint32(10).string(message.match_id);\n    }\n    if (message.token !== void 0) {\n      writer.uint32(18).string(message.token);\n    }\n    Object.entries(message.metadata).forEach(([key, value]) => {\n      MatchJoin_MetadataEntry.encode(\n        { key, value },\n        writer.uint32(26).fork()\n      ).ldelim();\n    });\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchJoin);\n    message.metadata = {};\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.match_id = reader.string();\n          break;\n        case 2:\n          message.token = reader.string();\n          break;\n        case 3:\n          const entry3 = MatchJoin_MetadataEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry3.value !== void 0) {\n            message.metadata[entry3.key] = entry3.value;\n          }\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchJoin);\n    message.metadata = {};\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = void 0;\n    }\n    if (object.token !== void 0 && object.token !== null) {\n      message.token = String(object.token);\n    } else {\n      message.token = void 0;\n    }\n    if (object.metadata !== void 0 && object.metadata !== null) {\n      Object.entries(object.metadata).forEach(([key, value]) => {\n        message.metadata[key] = String(value);\n      });\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    message.token !== void 0 && (obj.token = message.token);\n    obj.metadata = {};\n    if (message.metadata) {\n      Object.entries(message.metadata).forEach(([k, v]) => {\n        obj.metadata[k] = v;\n      });\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchJoin);\n    message.metadata = {};\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = void 0;\n    }\n    if (object.token !== void 0 && object.token !== null) {\n      message.token = object.token;\n    } else {\n      message.token = void 0;\n    }\n    if (object.metadata !== void 0 && object.metadata !== null) {\n      Object.entries(object.metadata).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.metadata[key] = String(value);\n        }\n      });\n    }\n    return message;\n  }\n};\nvar baseMatchJoin_MetadataEntry = { key: \"\", value: \"\" };\nvar MatchJoin_MetadataEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== \"\") {\n      writer.uint32(18).string(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchJoin_MetadataEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchJoin_MetadataEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = String(object.value);\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchJoin_MetadataEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  }\n};\nvar baseMatchLeave = { match_id: \"\" };\nvar MatchLeave = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.match_id !== \"\") {\n      writer.uint32(10).string(message.match_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchLeave);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.match_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchLeave);\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchLeave);\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = \"\";\n    }\n    return message;\n  }\n};\nvar baseMatchPresenceEvent = { match_id: \"\" };\nvar MatchPresenceEvent = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.match_id !== \"\") {\n      writer.uint32(10).string(message.match_id);\n    }\n    for (const v of message.joins) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    for (const v of message.leaves) {\n      UserPresence.encode(v, writer.uint32(26).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.match_id = reader.string();\n          break;\n        case 2:\n          message.joins.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 3:\n          message.leaves.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    if (message.joins) {\n      obj.joins = message.joins.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.joins = [];\n    }\n    if (message.leaves) {\n      obj.leaves = message.leaves.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.leaves = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = \"\";\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar baseMatchmakerAdd = { min_count: 0, max_count: 0, query: \"\" };\nvar MatchmakerAdd = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.min_count !== 0) {\n      writer.uint32(8).int32(message.min_count);\n    }\n    if (message.max_count !== 0) {\n      writer.uint32(16).int32(message.max_count);\n    }\n    if (message.query !== \"\") {\n      writer.uint32(26).string(message.query);\n    }\n    Object.entries(message.string_properties).forEach(([key, value]) => {\n      MatchmakerAdd_StringPropertiesEntry.encode(\n        { key, value },\n        writer.uint32(34).fork()\n      ).ldelim();\n    });\n    Object.entries(message.numeric_properties).forEach(([key, value]) => {\n      MatchmakerAdd_NumericPropertiesEntry.encode(\n        { key, value },\n        writer.uint32(42).fork()\n      ).ldelim();\n    });\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerAdd);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.min_count = reader.int32();\n          break;\n        case 2:\n          message.max_count = reader.int32();\n          break;\n        case 3:\n          message.query = reader.string();\n          break;\n        case 4:\n          const entry4 = MatchmakerAdd_StringPropertiesEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry4.value !== void 0) {\n            message.string_properties[entry4.key] = entry4.value;\n          }\n          break;\n        case 5:\n          const entry5 = MatchmakerAdd_NumericPropertiesEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry5.value !== void 0) {\n            message.numeric_properties[entry5.key] = entry5.value;\n          }\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerAdd);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    if (object.min_count !== void 0 && object.min_count !== null) {\n      message.min_count = Number(object.min_count);\n    } else {\n      message.min_count = 0;\n    }\n    if (object.max_count !== void 0 && object.max_count !== null) {\n      message.max_count = Number(object.max_count);\n    } else {\n      message.max_count = 0;\n    }\n    if (object.query !== void 0 && object.query !== null) {\n      message.query = String(object.query);\n    } else {\n      message.query = \"\";\n    }\n    if (object.string_properties !== void 0 && object.string_properties !== null) {\n      Object.entries(object.string_properties).forEach(([key, value]) => {\n        message.string_properties[key] = String(value);\n      });\n    }\n    if (object.numeric_properties !== void 0 && object.numeric_properties !== null) {\n      Object.entries(object.numeric_properties).forEach(([key, value]) => {\n        message.numeric_properties[key] = Number(value);\n      });\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.min_count !== void 0 && (obj.min_count = message.min_count);\n    message.max_count !== void 0 && (obj.max_count = message.max_count);\n    message.query !== void 0 && (obj.query = message.query);\n    obj.string_properties = {};\n    if (message.string_properties) {\n      Object.entries(message.string_properties).forEach(([k, v]) => {\n        obj.string_properties[k] = v;\n      });\n    }\n    obj.numeric_properties = {};\n    if (message.numeric_properties) {\n      Object.entries(message.numeric_properties).forEach(([k, v]) => {\n        obj.numeric_properties[k] = v;\n      });\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerAdd);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    if (object.min_count !== void 0 && object.min_count !== null) {\n      message.min_count = object.min_count;\n    } else {\n      message.min_count = 0;\n    }\n    if (object.max_count !== void 0 && object.max_count !== null) {\n      message.max_count = object.max_count;\n    } else {\n      message.max_count = 0;\n    }\n    if (object.query !== void 0 && object.query !== null) {\n      message.query = object.query;\n    } else {\n      message.query = \"\";\n    }\n    if (object.string_properties !== void 0 && object.string_properties !== null) {\n      Object.entries(object.string_properties).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.string_properties[key] = String(value);\n        }\n      });\n    }\n    if (object.numeric_properties !== void 0 && object.numeric_properties !== null) {\n      Object.entries(object.numeric_properties).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.numeric_properties[key] = Number(value);\n        }\n      });\n    }\n    return message;\n  }\n};\nvar baseMatchmakerAdd_StringPropertiesEntry = { key: \"\", value: \"\" };\nvar MatchmakerAdd_StringPropertiesEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== \"\") {\n      writer.uint32(18).string(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerAdd_StringPropertiesEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerAdd_StringPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = String(object.value);\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerAdd_StringPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  }\n};\nvar baseMatchmakerAdd_NumericPropertiesEntry = { key: \"\", value: 0 };\nvar MatchmakerAdd_NumericPropertiesEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== 0) {\n      writer.uint32(17).double(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerAdd_NumericPropertiesEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.double();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerAdd_NumericPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = Number(object.value);\n    } else {\n      message.value = 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerAdd_NumericPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = 0;\n    }\n    return message;\n  }\n};\nvar baseMatchmakerMatched = { ticket: \"\" };\nvar MatchmakerMatched = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.ticket !== \"\") {\n      writer.uint32(10).string(message.ticket);\n    }\n    if (message.match_id !== void 0) {\n      writer.uint32(18).string(message.match_id);\n    }\n    if (message.token !== void 0) {\n      writer.uint32(26).string(message.token);\n    }\n    for (const v of message.users) {\n      MatchmakerMatched_MatchmakerUser.encode(\n        v,\n        writer.uint32(34).fork()\n      ).ldelim();\n    }\n    if (message.self !== void 0) {\n      MatchmakerMatched_MatchmakerUser.encode(\n        message.self,\n        writer.uint32(42).fork()\n      ).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerMatched);\n    message.users = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.ticket = reader.string();\n          break;\n        case 2:\n          message.match_id = reader.string();\n          break;\n        case 3:\n          message.token = reader.string();\n          break;\n        case 4:\n          message.users.push(\n            MatchmakerMatched_MatchmakerUser.decode(reader, reader.uint32())\n          );\n          break;\n        case 5:\n          message.self = MatchmakerMatched_MatchmakerUser.decode(\n            reader,\n            reader.uint32()\n          );\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched);\n    message.users = [];\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = String(object.ticket);\n    } else {\n      message.ticket = \"\";\n    }\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = String(object.match_id);\n    } else {\n      message.match_id = void 0;\n    }\n    if (object.token !== void 0 && object.token !== null) {\n      message.token = String(object.token);\n    } else {\n      message.token = void 0;\n    }\n    if (object.users !== void 0 && object.users !== null) {\n      for (const e of object.users) {\n        message.users.push(MatchmakerMatched_MatchmakerUser.fromJSON(e));\n      }\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = MatchmakerMatched_MatchmakerUser.fromJSON(object.self);\n    } else {\n      message.self = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.ticket !== void 0 && (obj.ticket = message.ticket);\n    message.match_id !== void 0 && (obj.match_id = message.match_id);\n    message.token !== void 0 && (obj.token = message.token);\n    if (message.users) {\n      obj.users = message.users.map(\n        (e) => e ? MatchmakerMatched_MatchmakerUser.toJSON(e) : void 0\n      );\n    } else {\n      obj.users = [];\n    }\n    message.self !== void 0 && (obj.self = message.self ? MatchmakerMatched_MatchmakerUser.toJSON(message.self) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched);\n    message.users = [];\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = object.ticket;\n    } else {\n      message.ticket = \"\";\n    }\n    if (object.match_id !== void 0 && object.match_id !== null) {\n      message.match_id = object.match_id;\n    } else {\n      message.match_id = void 0;\n    }\n    if (object.token !== void 0 && object.token !== null) {\n      message.token = object.token;\n    } else {\n      message.token = void 0;\n    }\n    if (object.users !== void 0 && object.users !== null) {\n      for (const e of object.users) {\n        message.users.push(MatchmakerMatched_MatchmakerUser.fromPartial(e));\n      }\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = MatchmakerMatched_MatchmakerUser.fromPartial(object.self);\n    } else {\n      message.self = void 0;\n    }\n    return message;\n  }\n};\nvar baseMatchmakerMatched_MatchmakerUser = { party_id: \"\" };\nvar MatchmakerMatched_MatchmakerUser = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(10).fork()).ldelim();\n    }\n    if (message.party_id !== \"\") {\n      writer.uint32(18).string(message.party_id);\n    }\n    Object.entries(message.string_properties).forEach(([key, value]) => {\n      MatchmakerMatched_MatchmakerUser_StringPropertiesEntry.encode(\n        { key, value },\n        writer.uint32(42).fork()\n      ).ldelim();\n    });\n    Object.entries(message.numeric_properties).forEach(([key, value]) => {\n      MatchmakerMatched_MatchmakerUser_NumericPropertiesEntry.encode(\n        { key, value },\n        writer.uint32(50).fork()\n      ).ldelim();\n    });\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 2:\n          message.party_id = reader.string();\n          break;\n        case 5:\n          const entry5 = MatchmakerMatched_MatchmakerUser_StringPropertiesEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry5.value !== void 0) {\n            message.string_properties[entry5.key] = entry5.value;\n          }\n          break;\n        case 6:\n          const entry6 = MatchmakerMatched_MatchmakerUser_NumericPropertiesEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry6.value !== void 0) {\n            message.numeric_properties[entry6.key] = entry6.value;\n          }\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.string_properties !== void 0 && object.string_properties !== null) {\n      Object.entries(object.string_properties).forEach(([key, value]) => {\n        message.string_properties[key] = String(value);\n      });\n    }\n    if (object.numeric_properties !== void 0 && object.numeric_properties !== null) {\n      Object.entries(object.numeric_properties).forEach(([key, value]) => {\n        message.numeric_properties[key] = Number(value);\n      });\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    obj.string_properties = {};\n    if (message.string_properties) {\n      Object.entries(message.string_properties).forEach(([k, v]) => {\n        obj.string_properties[k] = v;\n      });\n    }\n    obj.numeric_properties = {};\n    if (message.numeric_properties) {\n      Object.entries(message.numeric_properties).forEach(([k, v]) => {\n        obj.numeric_properties[k] = v;\n      });\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.string_properties !== void 0 && object.string_properties !== null) {\n      Object.entries(object.string_properties).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.string_properties[key] = String(value);\n        }\n      });\n    }\n    if (object.numeric_properties !== void 0 && object.numeric_properties !== null) {\n      Object.entries(object.numeric_properties).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.numeric_properties[key] = Number(value);\n        }\n      });\n    }\n    return message;\n  }\n};\nvar baseMatchmakerMatched_MatchmakerUser_StringPropertiesEntry = {\n  key: \"\",\n  value: \"\"\n};\nvar MatchmakerMatched_MatchmakerUser_StringPropertiesEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== \"\") {\n      writer.uint32(18).string(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser_StringPropertiesEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser_StringPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = String(object.value);\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser_StringPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  }\n};\nvar baseMatchmakerMatched_MatchmakerUser_NumericPropertiesEntry = {\n  key: \"\",\n  value: 0\n};\nvar MatchmakerMatched_MatchmakerUser_NumericPropertiesEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== 0) {\n      writer.uint32(17).double(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser_NumericPropertiesEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.double();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser_NumericPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = Number(object.value);\n    } else {\n      message.value = 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerMatched_MatchmakerUser_NumericPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = 0;\n    }\n    return message;\n  }\n};\nvar baseMatchmakerRemove = { ticket: \"\" };\nvar MatchmakerRemove = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.ticket !== \"\") {\n      writer.uint32(10).string(message.ticket);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerRemove);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.ticket = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerRemove);\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = String(object.ticket);\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.ticket !== void 0 && (obj.ticket = message.ticket);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerRemove);\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = object.ticket;\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  }\n};\nvar baseMatchmakerTicket = { ticket: \"\" };\nvar MatchmakerTicket = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.ticket !== \"\") {\n      writer.uint32(10).string(message.ticket);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseMatchmakerTicket);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.ticket = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseMatchmakerTicket);\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = String(object.ticket);\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.ticket !== void 0 && (obj.ticket = message.ticket);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseMatchmakerTicket);\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = object.ticket;\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  }\n};\nvar baseNotifications = {};\nvar Notifications = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    for (const v of message.notifications) {\n      Notification.encode(v, writer.uint32(10).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseNotifications);\n    message.notifications = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.notifications.push(\n            Notification.decode(reader, reader.uint32())\n          );\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseNotifications);\n    message.notifications = [];\n    if (object.notifications !== void 0 && object.notifications !== null) {\n      for (const e of object.notifications) {\n        message.notifications.push(Notification.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    if (message.notifications) {\n      obj.notifications = message.notifications.map(\n        (e) => e ? Notification.toJSON(e) : void 0\n      );\n    } else {\n      obj.notifications = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseNotifications);\n    message.notifications = [];\n    if (object.notifications !== void 0 && object.notifications !== null) {\n      for (const e of object.notifications) {\n        message.notifications.push(Notification.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar baseParty = { party_id: \"\", open: false, max_size: 0 };\nvar Party = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.open === true) {\n      writer.uint32(16).bool(message.open);\n    }\n    if (message.max_size !== 0) {\n      writer.uint32(24).int32(message.max_size);\n    }\n    if (message.self !== void 0) {\n      UserPresence.encode(message.self, writer.uint32(34).fork()).ldelim();\n    }\n    if (message.leader !== void 0) {\n      UserPresence.encode(message.leader, writer.uint32(42).fork()).ldelim();\n    }\n    for (const v of message.presences) {\n      UserPresence.encode(v, writer.uint32(50).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseParty);\n    message.presences = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.open = reader.bool();\n          break;\n        case 3:\n          message.max_size = reader.int32();\n          break;\n        case 4:\n          message.self = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 5:\n          message.leader = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 6:\n          message.presences.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseParty);\n    message.presences = [];\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.open !== void 0 && object.open !== null) {\n      message.open = Boolean(object.open);\n    } else {\n      message.open = false;\n    }\n    if (object.max_size !== void 0 && object.max_size !== null) {\n      message.max_size = Number(object.max_size);\n    } else {\n      message.max_size = 0;\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = UserPresence.fromJSON(object.self);\n    } else {\n      message.self = void 0;\n    }\n    if (object.leader !== void 0 && object.leader !== null) {\n      message.leader = UserPresence.fromJSON(object.leader);\n    } else {\n      message.leader = void 0;\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.open !== void 0 && (obj.open = message.open);\n    message.max_size !== void 0 && (obj.max_size = message.max_size);\n    message.self !== void 0 && (obj.self = message.self ? UserPresence.toJSON(message.self) : void 0);\n    message.leader !== void 0 && (obj.leader = message.leader ? UserPresence.toJSON(message.leader) : void 0);\n    if (message.presences) {\n      obj.presences = message.presences.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.presences = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseParty);\n    message.presences = [];\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.open !== void 0 && object.open !== null) {\n      message.open = object.open;\n    } else {\n      message.open = false;\n    }\n    if (object.max_size !== void 0 && object.max_size !== null) {\n      message.max_size = object.max_size;\n    } else {\n      message.max_size = 0;\n    }\n    if (object.self !== void 0 && object.self !== null) {\n      message.self = UserPresence.fromPartial(object.self);\n    } else {\n      message.self = void 0;\n    }\n    if (object.leader !== void 0 && object.leader !== null) {\n      message.leader = UserPresence.fromPartial(object.leader);\n    } else {\n      message.leader = void 0;\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar basePartyCreate = { open: false, max_size: 0 };\nvar PartyCreate = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.open === true) {\n      writer.uint32(8).bool(message.open);\n    }\n    if (message.max_size !== 0) {\n      writer.uint32(16).int32(message.max_size);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyCreate);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.open = reader.bool();\n          break;\n        case 2:\n          message.max_size = reader.int32();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyCreate);\n    if (object.open !== void 0 && object.open !== null) {\n      message.open = Boolean(object.open);\n    } else {\n      message.open = false;\n    }\n    if (object.max_size !== void 0 && object.max_size !== null) {\n      message.max_size = Number(object.max_size);\n    } else {\n      message.max_size = 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.open !== void 0 && (obj.open = message.open);\n    message.max_size !== void 0 && (obj.max_size = message.max_size);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyCreate);\n    if (object.open !== void 0 && object.open !== null) {\n      message.open = object.open;\n    } else {\n      message.open = false;\n    }\n    if (object.max_size !== void 0 && object.max_size !== null) {\n      message.max_size = object.max_size;\n    } else {\n      message.max_size = 0;\n    }\n    return message;\n  }\n};\nvar basePartyJoin = { party_id: \"\" };\nvar PartyJoin = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyJoin);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyJoin);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyJoin);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyLeave = { party_id: \"\" };\nvar PartyLeave = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyLeave);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyLeave);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyLeave);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyPromote = { party_id: \"\" };\nvar PartyPromote = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(18).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyPromote);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyPromote);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyPromote);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  }\n};\nvar basePartyLeader = { party_id: \"\" };\nvar PartyLeader = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(18).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyLeader);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyLeader);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyLeader);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  }\n};\nvar basePartyAccept = { party_id: \"\" };\nvar PartyAccept = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(18).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyAccept);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyAccept);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyAccept);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  }\n};\nvar basePartyRemove = { party_id: \"\" };\nvar PartyRemove = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(18).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyRemove);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyRemove);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyRemove);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    return message;\n  }\n};\nvar basePartyClose = { party_id: \"\" };\nvar PartyClose = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyClose);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyClose);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyClose);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyJoinRequestList = { party_id: \"\" };\nvar PartyJoinRequestList = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyJoinRequestList);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyJoinRequestList);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyJoinRequestList);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyJoinRequest = { party_id: \"\" };\nvar PartyJoinRequest = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    for (const v of message.presences) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyJoinRequest);\n    message.presences = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.presences.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyJoinRequest);\n    message.presences = [];\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    if (message.presences) {\n      obj.presences = message.presences.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.presences = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyJoinRequest);\n    message.presences = [];\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar basePartyMatchmakerAdd = {\n  party_id: \"\",\n  min_count: 0,\n  max_count: 0,\n  query: \"\"\n};\nvar PartyMatchmakerAdd = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.min_count !== 0) {\n      writer.uint32(16).int32(message.min_count);\n    }\n    if (message.max_count !== 0) {\n      writer.uint32(24).int32(message.max_count);\n    }\n    if (message.query !== \"\") {\n      writer.uint32(34).string(message.query);\n    }\n    Object.entries(message.string_properties).forEach(([key, value]) => {\n      PartyMatchmakerAdd_StringPropertiesEntry.encode(\n        { key, value },\n        writer.uint32(42).fork()\n      ).ldelim();\n    });\n    Object.entries(message.numeric_properties).forEach(([key, value]) => {\n      PartyMatchmakerAdd_NumericPropertiesEntry.encode(\n        { key, value },\n        writer.uint32(50).fork()\n      ).ldelim();\n    });\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyMatchmakerAdd);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.min_count = reader.int32();\n          break;\n        case 3:\n          message.max_count = reader.int32();\n          break;\n        case 4:\n          message.query = reader.string();\n          break;\n        case 5:\n          const entry5 = PartyMatchmakerAdd_StringPropertiesEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry5.value !== void 0) {\n            message.string_properties[entry5.key] = entry5.value;\n          }\n          break;\n        case 6:\n          const entry6 = PartyMatchmakerAdd_NumericPropertiesEntry.decode(\n            reader,\n            reader.uint32()\n          );\n          if (entry6.value !== void 0) {\n            message.numeric_properties[entry6.key] = entry6.value;\n          }\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyMatchmakerAdd);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.min_count !== void 0 && object.min_count !== null) {\n      message.min_count = Number(object.min_count);\n    } else {\n      message.min_count = 0;\n    }\n    if (object.max_count !== void 0 && object.max_count !== null) {\n      message.max_count = Number(object.max_count);\n    } else {\n      message.max_count = 0;\n    }\n    if (object.query !== void 0 && object.query !== null) {\n      message.query = String(object.query);\n    } else {\n      message.query = \"\";\n    }\n    if (object.string_properties !== void 0 && object.string_properties !== null) {\n      Object.entries(object.string_properties).forEach(([key, value]) => {\n        message.string_properties[key] = String(value);\n      });\n    }\n    if (object.numeric_properties !== void 0 && object.numeric_properties !== null) {\n      Object.entries(object.numeric_properties).forEach(([key, value]) => {\n        message.numeric_properties[key] = Number(value);\n      });\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.min_count !== void 0 && (obj.min_count = message.min_count);\n    message.max_count !== void 0 && (obj.max_count = message.max_count);\n    message.query !== void 0 && (obj.query = message.query);\n    obj.string_properties = {};\n    if (message.string_properties) {\n      Object.entries(message.string_properties).forEach(([k, v]) => {\n        obj.string_properties[k] = v;\n      });\n    }\n    obj.numeric_properties = {};\n    if (message.numeric_properties) {\n      Object.entries(message.numeric_properties).forEach(([k, v]) => {\n        obj.numeric_properties[k] = v;\n      });\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyMatchmakerAdd);\n    message.string_properties = {};\n    message.numeric_properties = {};\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.min_count !== void 0 && object.min_count !== null) {\n      message.min_count = object.min_count;\n    } else {\n      message.min_count = 0;\n    }\n    if (object.max_count !== void 0 && object.max_count !== null) {\n      message.max_count = object.max_count;\n    } else {\n      message.max_count = 0;\n    }\n    if (object.query !== void 0 && object.query !== null) {\n      message.query = object.query;\n    } else {\n      message.query = \"\";\n    }\n    if (object.string_properties !== void 0 && object.string_properties !== null) {\n      Object.entries(object.string_properties).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.string_properties[key] = String(value);\n        }\n      });\n    }\n    if (object.numeric_properties !== void 0 && object.numeric_properties !== null) {\n      Object.entries(object.numeric_properties).forEach(([key, value]) => {\n        if (value !== void 0) {\n          message.numeric_properties[key] = Number(value);\n        }\n      });\n    }\n    return message;\n  }\n};\nvar basePartyMatchmakerAdd_StringPropertiesEntry = {\n  key: \"\",\n  value: \"\"\n};\nvar PartyMatchmakerAdd_StringPropertiesEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== \"\") {\n      writer.uint32(18).string(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyMatchmakerAdd_StringPropertiesEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyMatchmakerAdd_StringPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = String(object.value);\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyMatchmakerAdd_StringPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyMatchmakerAdd_NumericPropertiesEntry = {\n  key: \"\",\n  value: 0\n};\nvar PartyMatchmakerAdd_NumericPropertiesEntry = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.key !== \"\") {\n      writer.uint32(10).string(message.key);\n    }\n    if (message.value !== 0) {\n      writer.uint32(17).double(message.value);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyMatchmakerAdd_NumericPropertiesEntry);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.key = reader.string();\n          break;\n        case 2:\n          message.value = reader.double();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyMatchmakerAdd_NumericPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = String(object.key);\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = Number(object.value);\n    } else {\n      message.value = 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.key !== void 0 && (obj.key = message.key);\n    message.value !== void 0 && (obj.value = message.value);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyMatchmakerAdd_NumericPropertiesEntry);\n    if (object.key !== void 0 && object.key !== null) {\n      message.key = object.key;\n    } else {\n      message.key = \"\";\n    }\n    if (object.value !== void 0 && object.value !== null) {\n      message.value = object.value;\n    } else {\n      message.value = 0;\n    }\n    return message;\n  }\n};\nvar basePartyMatchmakerRemove = { party_id: \"\", ticket: \"\" };\nvar PartyMatchmakerRemove = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.ticket !== \"\") {\n      writer.uint32(18).string(message.ticket);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyMatchmakerRemove);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.ticket = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyMatchmakerRemove);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = String(object.ticket);\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.ticket !== void 0 && (obj.ticket = message.ticket);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyMatchmakerRemove);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = object.ticket;\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyMatchmakerTicket = { party_id: \"\", ticket: \"\" };\nvar PartyMatchmakerTicket = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.ticket !== \"\") {\n      writer.uint32(18).string(message.ticket);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyMatchmakerTicket);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.ticket = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyMatchmakerTicket);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = String(object.ticket);\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.ticket !== void 0 && (obj.ticket = message.ticket);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyMatchmakerTicket);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.ticket !== void 0 && object.ticket !== null) {\n      message.ticket = object.ticket;\n    } else {\n      message.ticket = \"\";\n    }\n    return message;\n  }\n};\nvar basePartyData = { party_id: \"\", op_code: 0 };\nvar PartyData = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.presence !== void 0) {\n      UserPresence.encode(message.presence, writer.uint32(18).fork()).ldelim();\n    }\n    if (message.op_code !== 0) {\n      writer.uint32(24).int64(message.op_code);\n    }\n    if (message.data.length !== 0) {\n      writer.uint32(34).bytes(message.data);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyData);\n    message.data = new Uint8Array();\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.presence = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 3:\n          message.op_code = longToNumber2(reader.int64());\n          break;\n        case 4:\n          message.data = reader.bytes();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyData);\n    message.data = new Uint8Array();\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromJSON(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = Number(object.op_code);\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = bytesFromBase64(object.data);\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.presence !== void 0 && (obj.presence = message.presence ? UserPresence.toJSON(message.presence) : void 0);\n    message.op_code !== void 0 && (obj.op_code = message.op_code);\n    message.data !== void 0 && (obj.data = base64FromBytes(\n      message.data !== void 0 ? message.data : new Uint8Array()\n    ));\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyData);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.presence !== void 0 && object.presence !== null) {\n      message.presence = UserPresence.fromPartial(object.presence);\n    } else {\n      message.presence = void 0;\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = object.op_code;\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = object.data;\n    } else {\n      message.data = new Uint8Array();\n    }\n    return message;\n  }\n};\nvar basePartyDataSend = { party_id: \"\", op_code: 0 };\nvar PartyDataSend = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    if (message.op_code !== 0) {\n      writer.uint32(16).int64(message.op_code);\n    }\n    if (message.data.length !== 0) {\n      writer.uint32(26).bytes(message.data);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyDataSend);\n    message.data = new Uint8Array();\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.op_code = longToNumber2(reader.int64());\n          break;\n        case 3:\n          message.data = reader.bytes();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyDataSend);\n    message.data = new Uint8Array();\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = Number(object.op_code);\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = bytesFromBase64(object.data);\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    message.op_code !== void 0 && (obj.op_code = message.op_code);\n    message.data !== void 0 && (obj.data = base64FromBytes(\n      message.data !== void 0 ? message.data : new Uint8Array()\n    ));\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyDataSend);\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.op_code !== void 0 && object.op_code !== null) {\n      message.op_code = object.op_code;\n    } else {\n      message.op_code = 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = object.data;\n    } else {\n      message.data = new Uint8Array();\n    }\n    return message;\n  }\n};\nvar basePartyPresenceEvent = { party_id: \"\" };\nvar PartyPresenceEvent = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.party_id !== \"\") {\n      writer.uint32(10).string(message.party_id);\n    }\n    for (const v of message.joins) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    for (const v of message.leaves) {\n      UserPresence.encode(v, writer.uint32(26).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePartyPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.party_id = reader.string();\n          break;\n        case 2:\n          message.joins.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 3:\n          message.leaves.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, basePartyPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = String(object.party_id);\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.party_id !== void 0 && (obj.party_id = message.party_id);\n    if (message.joins) {\n      obj.joins = message.joins.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.joins = [];\n    }\n    if (message.leaves) {\n      obj.leaves = message.leaves.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.leaves = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, basePartyPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.party_id !== void 0 && object.party_id !== null) {\n      message.party_id = object.party_id;\n    } else {\n      message.party_id = \"\";\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar basePing = {};\nvar Ping = {\n  encode(_, writer = import_minimal4.default.Writer.create()) {\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePing);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(_) {\n    const message = __spreadValues({}, basePing);\n    return message;\n  },\n  toJSON(_) {\n    const obj = {};\n    return obj;\n  },\n  fromPartial(_) {\n    const message = __spreadValues({}, basePing);\n    return message;\n  }\n};\nvar basePong = {};\nvar Pong = {\n  encode(_, writer = import_minimal4.default.Writer.create()) {\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, basePong);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(_) {\n    const message = __spreadValues({}, basePong);\n    return message;\n  },\n  toJSON(_) {\n    const obj = {};\n    return obj;\n  },\n  fromPartial(_) {\n    const message = __spreadValues({}, basePong);\n    return message;\n  }\n};\nvar baseStatus = {};\nvar Status = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    for (const v of message.presences) {\n      UserPresence.encode(v, writer.uint32(10).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStatus);\n    message.presences = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.presences.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStatus);\n    message.presences = [];\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    if (message.presences) {\n      obj.presences = message.presences.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.presences = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStatus);\n    message.presences = [];\n    if (object.presences !== void 0 && object.presences !== null) {\n      for (const e of object.presences) {\n        message.presences.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar baseStatusFollow = { user_ids: \"\", usernames: \"\" };\nvar StatusFollow = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    for (const v of message.user_ids) {\n      writer.uint32(10).string(v);\n    }\n    for (const v of message.usernames) {\n      writer.uint32(18).string(v);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStatusFollow);\n    message.user_ids = [];\n    message.usernames = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.user_ids.push(reader.string());\n          break;\n        case 2:\n          message.usernames.push(reader.string());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStatusFollow);\n    message.user_ids = [];\n    message.usernames = [];\n    if (object.user_ids !== void 0 && object.user_ids !== null) {\n      for (const e of object.user_ids) {\n        message.user_ids.push(String(e));\n      }\n    }\n    if (object.usernames !== void 0 && object.usernames !== null) {\n      for (const e of object.usernames) {\n        message.usernames.push(String(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    if (message.user_ids) {\n      obj.user_ids = message.user_ids.map((e) => e);\n    } else {\n      obj.user_ids = [];\n    }\n    if (message.usernames) {\n      obj.usernames = message.usernames.map((e) => e);\n    } else {\n      obj.usernames = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStatusFollow);\n    message.user_ids = [];\n    message.usernames = [];\n    if (object.user_ids !== void 0 && object.user_ids !== null) {\n      for (const e of object.user_ids) {\n        message.user_ids.push(e);\n      }\n    }\n    if (object.usernames !== void 0 && object.usernames !== null) {\n      for (const e of object.usernames) {\n        message.usernames.push(e);\n      }\n    }\n    return message;\n  }\n};\nvar baseStatusPresenceEvent = {};\nvar StatusPresenceEvent = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    for (const v of message.joins) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    for (const v of message.leaves) {\n      UserPresence.encode(v, writer.uint32(26).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStatusPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 2:\n          message.joins.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 3:\n          message.leaves.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStatusPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    if (message.joins) {\n      obj.joins = message.joins.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.joins = [];\n    }\n    if (message.leaves) {\n      obj.leaves = message.leaves.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.leaves = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStatusPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar baseStatusUnfollow = { user_ids: \"\" };\nvar StatusUnfollow = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    for (const v of message.user_ids) {\n      writer.uint32(10).string(v);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStatusUnfollow);\n    message.user_ids = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.user_ids.push(reader.string());\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStatusUnfollow);\n    message.user_ids = [];\n    if (object.user_ids !== void 0 && object.user_ids !== null) {\n      for (const e of object.user_ids) {\n        message.user_ids.push(String(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    if (message.user_ids) {\n      obj.user_ids = message.user_ids.map((e) => e);\n    } else {\n      obj.user_ids = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStatusUnfollow);\n    message.user_ids = [];\n    if (object.user_ids !== void 0 && object.user_ids !== null) {\n      for (const e of object.user_ids) {\n        message.user_ids.push(e);\n      }\n    }\n    return message;\n  }\n};\nvar baseStatusUpdate = {};\nvar StatusUpdate = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.status !== void 0) {\n      StringValue.encode(\n        { value: message.status },\n        writer.uint32(10).fork()\n      ).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStatusUpdate);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.status = StringValue.decode(reader, reader.uint32()).value;\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStatusUpdate);\n    if (object.status !== void 0 && object.status !== null) {\n      message.status = String(object.status);\n    } else {\n      message.status = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.status !== void 0 && (obj.status = message.status);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStatusUpdate);\n    if (object.status !== void 0 && object.status !== null) {\n      message.status = object.status;\n    } else {\n      message.status = void 0;\n    }\n    return message;\n  }\n};\nvar baseStream = { mode: 0, subject: \"\", subcontext: \"\", label: \"\" };\nvar Stream = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.mode !== 0) {\n      writer.uint32(8).int32(message.mode);\n    }\n    if (message.subject !== \"\") {\n      writer.uint32(18).string(message.subject);\n    }\n    if (message.subcontext !== \"\") {\n      writer.uint32(26).string(message.subcontext);\n    }\n    if (message.label !== \"\") {\n      writer.uint32(34).string(message.label);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStream);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.mode = reader.int32();\n          break;\n        case 2:\n          message.subject = reader.string();\n          break;\n        case 3:\n          message.subcontext = reader.string();\n          break;\n        case 4:\n          message.label = reader.string();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStream);\n    if (object.mode !== void 0 && object.mode !== null) {\n      message.mode = Number(object.mode);\n    } else {\n      message.mode = 0;\n    }\n    if (object.subject !== void 0 && object.subject !== null) {\n      message.subject = String(object.subject);\n    } else {\n      message.subject = \"\";\n    }\n    if (object.subcontext !== void 0 && object.subcontext !== null) {\n      message.subcontext = String(object.subcontext);\n    } else {\n      message.subcontext = \"\";\n    }\n    if (object.label !== void 0 && object.label !== null) {\n      message.label = String(object.label);\n    } else {\n      message.label = \"\";\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.mode !== void 0 && (obj.mode = message.mode);\n    message.subject !== void 0 && (obj.subject = message.subject);\n    message.subcontext !== void 0 && (obj.subcontext = message.subcontext);\n    message.label !== void 0 && (obj.label = message.label);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStream);\n    if (object.mode !== void 0 && object.mode !== null) {\n      message.mode = object.mode;\n    } else {\n      message.mode = 0;\n    }\n    if (object.subject !== void 0 && object.subject !== null) {\n      message.subject = object.subject;\n    } else {\n      message.subject = \"\";\n    }\n    if (object.subcontext !== void 0 && object.subcontext !== null) {\n      message.subcontext = object.subcontext;\n    } else {\n      message.subcontext = \"\";\n    }\n    if (object.label !== void 0 && object.label !== null) {\n      message.label = object.label;\n    } else {\n      message.label = \"\";\n    }\n    return message;\n  }\n};\nvar baseStreamData = { data: \"\", reliable: false };\nvar StreamData = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.stream !== void 0) {\n      Stream.encode(message.stream, writer.uint32(10).fork()).ldelim();\n    }\n    if (message.sender !== void 0) {\n      UserPresence.encode(message.sender, writer.uint32(18).fork()).ldelim();\n    }\n    if (message.data !== \"\") {\n      writer.uint32(26).string(message.data);\n    }\n    if (message.reliable === true) {\n      writer.uint32(32).bool(message.reliable);\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStreamData);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.stream = Stream.decode(reader, reader.uint32());\n          break;\n        case 2:\n          message.sender = UserPresence.decode(reader, reader.uint32());\n          break;\n        case 3:\n          message.data = reader.string();\n          break;\n        case 4:\n          message.reliable = reader.bool();\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStreamData);\n    if (object.stream !== void 0 && object.stream !== null) {\n      message.stream = Stream.fromJSON(object.stream);\n    } else {\n      message.stream = void 0;\n    }\n    if (object.sender !== void 0 && object.sender !== null) {\n      message.sender = UserPresence.fromJSON(object.sender);\n    } else {\n      message.sender = void 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = String(object.data);\n    } else {\n      message.data = \"\";\n    }\n    if (object.reliable !== void 0 && object.reliable !== null) {\n      message.reliable = Boolean(object.reliable);\n    } else {\n      message.reliable = false;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.stream !== void 0 && (obj.stream = message.stream ? Stream.toJSON(message.stream) : void 0);\n    message.sender !== void 0 && (obj.sender = message.sender ? UserPresence.toJSON(message.sender) : void 0);\n    message.data !== void 0 && (obj.data = message.data);\n    message.reliable !== void 0 && (obj.reliable = message.reliable);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStreamData);\n    if (object.stream !== void 0 && object.stream !== null) {\n      message.stream = Stream.fromPartial(object.stream);\n    } else {\n      message.stream = void 0;\n    }\n    if (object.sender !== void 0 && object.sender !== null) {\n      message.sender = UserPresence.fromPartial(object.sender);\n    } else {\n      message.sender = void 0;\n    }\n    if (object.data !== void 0 && object.data !== null) {\n      message.data = object.data;\n    } else {\n      message.data = \"\";\n    }\n    if (object.reliable !== void 0 && object.reliable !== null) {\n      message.reliable = object.reliable;\n    } else {\n      message.reliable = false;\n    }\n    return message;\n  }\n};\nvar baseStreamPresenceEvent = {};\nvar StreamPresenceEvent = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.stream !== void 0) {\n      Stream.encode(message.stream, writer.uint32(10).fork()).ldelim();\n    }\n    for (const v of message.joins) {\n      UserPresence.encode(v, writer.uint32(18).fork()).ldelim();\n    }\n    for (const v of message.leaves) {\n      UserPresence.encode(v, writer.uint32(26).fork()).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseStreamPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.stream = Stream.decode(reader, reader.uint32());\n          break;\n        case 2:\n          message.joins.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        case 3:\n          message.leaves.push(UserPresence.decode(reader, reader.uint32()));\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseStreamPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.stream !== void 0 && object.stream !== null) {\n      message.stream = Stream.fromJSON(object.stream);\n    } else {\n      message.stream = void 0;\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromJSON(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromJSON(e));\n      }\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.stream !== void 0 && (obj.stream = message.stream ? Stream.toJSON(message.stream) : void 0);\n    if (message.joins) {\n      obj.joins = message.joins.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.joins = [];\n    }\n    if (message.leaves) {\n      obj.leaves = message.leaves.map(\n        (e) => e ? UserPresence.toJSON(e) : void 0\n      );\n    } else {\n      obj.leaves = [];\n    }\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseStreamPresenceEvent);\n    message.joins = [];\n    message.leaves = [];\n    if (object.stream !== void 0 && object.stream !== null) {\n      message.stream = Stream.fromPartial(object.stream);\n    } else {\n      message.stream = void 0;\n    }\n    if (object.joins !== void 0 && object.joins !== null) {\n      for (const e of object.joins) {\n        message.joins.push(UserPresence.fromPartial(e));\n      }\n    }\n    if (object.leaves !== void 0 && object.leaves !== null) {\n      for (const e of object.leaves) {\n        message.leaves.push(UserPresence.fromPartial(e));\n      }\n    }\n    return message;\n  }\n};\nvar baseUserPresence = {\n  user_id: \"\",\n  session_id: \"\",\n  username: \"\",\n  persistence: false\n};\nvar UserPresence = {\n  encode(message, writer = import_minimal4.default.Writer.create()) {\n    if (message.user_id !== \"\") {\n      writer.uint32(10).string(message.user_id);\n    }\n    if (message.session_id !== \"\") {\n      writer.uint32(18).string(message.session_id);\n    }\n    if (message.username !== \"\") {\n      writer.uint32(26).string(message.username);\n    }\n    if (message.persistence === true) {\n      writer.uint32(32).bool(message.persistence);\n    }\n    if (message.status !== void 0) {\n      StringValue.encode(\n        { value: message.status },\n        writer.uint32(42).fork()\n      ).ldelim();\n    }\n    return writer;\n  },\n  decode(input, length) {\n    const reader = input instanceof import_minimal4.default.Reader ? input : new import_minimal4.default.Reader(input);\n    let end = length === void 0 ? reader.len : reader.pos + length;\n    const message = __spreadValues({}, baseUserPresence);\n    while (reader.pos < end) {\n      const tag = reader.uint32();\n      switch (tag >>> 3) {\n        case 1:\n          message.user_id = reader.string();\n          break;\n        case 2:\n          message.session_id = reader.string();\n          break;\n        case 3:\n          message.username = reader.string();\n          break;\n        case 4:\n          message.persistence = reader.bool();\n          break;\n        case 5:\n          message.status = StringValue.decode(reader, reader.uint32()).value;\n          break;\n        default:\n          reader.skipType(tag & 7);\n          break;\n      }\n    }\n    return message;\n  },\n  fromJSON(object) {\n    const message = __spreadValues({}, baseUserPresence);\n    if (object.user_id !== void 0 && object.user_id !== null) {\n      message.user_id = String(object.user_id);\n    } else {\n      message.user_id = \"\";\n    }\n    if (object.session_id !== void 0 && object.session_id !== null) {\n      message.session_id = String(object.session_id);\n    } else {\n      message.session_id = \"\";\n    }\n    if (object.username !== void 0 && object.username !== null) {\n      message.username = String(object.username);\n    } else {\n      message.username = \"\";\n    }\n    if (object.persistence !== void 0 && object.persistence !== null) {\n      message.persistence = Boolean(object.persistence);\n    } else {\n      message.persistence = false;\n    }\n    if (object.status !== void 0 && object.status !== null) {\n      message.status = String(object.status);\n    } else {\n      message.status = void 0;\n    }\n    return message;\n  },\n  toJSON(message) {\n    const obj = {};\n    message.user_id !== void 0 && (obj.user_id = message.user_id);\n    message.session_id !== void 0 && (obj.session_id = message.session_id);\n    message.username !== void 0 && (obj.username = message.username);\n    message.persistence !== void 0 && (obj.persistence = message.persistence);\n    message.status !== void 0 && (obj.status = message.status);\n    return obj;\n  },\n  fromPartial(object) {\n    const message = __spreadValues({}, baseUserPresence);\n    if (object.user_id !== void 0 && object.user_id !== null) {\n      message.user_id = object.user_id;\n    } else {\n      message.user_id = \"\";\n    }\n    if (object.session_id !== void 0 && object.session_id !== null) {\n      message.session_id = object.session_id;\n    } else {\n      message.session_id = \"\";\n    }\n    if (object.username !== void 0 && object.username !== null) {\n      message.username = object.username;\n    } else {\n      message.username = \"\";\n    }\n    if (object.persistence !== void 0 && object.persistence !== null) {\n      message.persistence = object.persistence;\n    } else {\n      message.persistence = false;\n    }\n    if (object.status !== void 0 && object.status !== null) {\n      message.status = object.status;\n    } else {\n      message.status = void 0;\n    }\n    return message;\n  }\n};\nvar globalThis3 = (() => {\n  if (typeof globalThis3 !== \"undefined\")\n    return globalThis3;\n  if (typeof self !== \"undefined\")\n    return self;\n  if (typeof window !== \"undefined\")\n    return window;\n  if (typeof global !== \"undefined\")\n    return global;\n  throw \"Unable to locate global object\";\n})();\nvar atob2 = globalThis3.atob || ((b64) => globalThis3.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n  const bin = atob2(b64);\n  const arr = new Uint8Array(bin.length);\n  for (let i = 0; i < bin.length; ++i) {\n    arr[i] = bin.charCodeAt(i);\n  }\n  return arr;\n}\nvar btoa2 = globalThis3.btoa || ((bin) => globalThis3.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n  const bin = [];\n  for (let i = 0; i < arr.byteLength; ++i) {\n    bin.push(String.fromCharCode(arr[i]));\n  }\n  return btoa2(bin.join(\"\"));\n}\nfunction toTimestamp2(date) {\n  const seconds = date.getTime() / 1e3;\n  const nanos = date.getTime() % 1e3 * 1e6;\n  return { seconds, nanos };\n}\nfunction fromTimestamp2(t) {\n  let millis = t.seconds * 1e3;\n  millis += t.nanos / 1e6;\n  return new Date(millis);\n}\nfunction fromJsonTimestamp2(o) {\n  if (o instanceof Date) {\n    return o;\n  } else if (typeof o === \"string\") {\n    return new Date(o);\n  } else {\n    return fromTimestamp2(Timestamp.fromJSON(o));\n  }\n}\nfunction longToNumber2(long) {\n  if (long.gt(Number.MAX_SAFE_INTEGER)) {\n    throw new globalThis3.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n  }\n  return long.toNumber();\n}\nif (import_minimal4.default.util.Long !== import_long2.default) {\n  import_minimal4.default.util.Long = import_long2.default;\n  import_minimal4.default.configure();\n}\n\n// web_socket_adapter_pb.ts\nvar WebSocketAdapterPb = class {\n  constructor() {\n  }\n  get onClose() {\n    return this._socket.onclose;\n  }\n  set onClose(value) {\n    this._socket.onclose = value;\n  }\n  get onError() {\n    return this._socket.onerror;\n  }\n  set onError(value) {\n    this._socket.onerror = value;\n  }\n  get onMessage() {\n    return this._socket.onmessage;\n  }\n  set onMessage(value) {\n    if (value) {\n      this._socket.onmessage = (evt) => {\n        const buffer = evt.data;\n        const uintBuffer = new Uint8Array(buffer);\n        const envelope = Envelope.decode(uintBuffer);\n        if (envelope.channel_message) {\n          if (envelope.channel_message.code == void 0) {\n            envelope.channel_message.code = 0;\n          }\n          if (envelope.channel_message.persistent == void 0) {\n            envelope.channel_message.persistent = false;\n          }\n        }\n        value(envelope);\n      };\n    } else {\n      value = null;\n    }\n  }\n  get onOpen() {\n    return this._socket.onopen;\n  }\n  set onOpen(value) {\n    this._socket.onopen = value;\n  }\n  isOpen() {\n    var _a;\n    return ((_a = this._socket) == null ? void 0 : _a.readyState) == WebSocket.OPEN;\n  }\n  close() {\n    this._socket.close();\n    this._socket = void 0;\n  }\n  connect(scheme, host, port, createStatus, token) {\n    const url = `${scheme}${host}:${port}/ws?lang=en&status=${encodeURIComponent(createStatus.toString())}&token=${encodeURIComponent(token)}&format=protobuf`;\n    this._socket = new WebSocket(url);\n    this._socket.binaryType = \"arraybuffer\";\n  }\n  send(msg) {\n    if (msg.match_data_send) {\n      let payload = msg.match_data_send.data;\n      if (typeof payload == \"string\") {\n        msg.match_data_send.data = new TextEncoder().encode(payload);\n      }\n    } else if (msg.party_data_send) {\n      let payload = msg.party_data_send.data;\n      if (typeof payload == \"string\") {\n        msg.party_data_send.data = new TextEncoder().encode(payload);\n      }\n    }\n    const envelopeWriter = Envelope.encode(Envelope.fromPartial(msg));\n    const encodedMsg = envelopeWriter.finish();\n    this._socket.send(encodedMsg);\n  }\n};\n"]}