{"mappings":";;kxBAAA,IAAAA,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAEAA,GAAO,QAAU,SAAoBC,EAAQC,EAASC,EAAQ,CAK5D,IAAIC,EAAO,IAAIH,EAAO,WAAWE,CAAM,EAEnCE,EAAUH,EAAQ,QAClBI,EAAYJ,EAAQ,UACpBK,EAAeL,EAAQ,aACvBM,EAAYN,EAAQ,UACpBO,EAAeP,EAAQ,aACvBQ,EAAYR,EAAQ,UACpBS,GAAkBT,EAAQ,gBAC1BU,GAAkBV,EAAQ,gBAC1BW,GAAWX,EAAQ,SACnBY,GAAYZ,EAAQ,UACpBa,GAAgBb,EAAQ,cACxBc,GAAWd,EAAQ,SACnBe,GAAef,EAAQ,aACvBgB,GAAkBhB,EAAQ,gBAC1BiB,GAAUjB,EAAQ,QAClBkB,GAAalB,EAAQ,WAErBmB,GAAiBnB,EAAQ,eACzBoB,EAAsBpB,EAAQ,oBAC9BqB,GAAwBrB,EAAQ,sBAChCsB,GAAwBtB,EAAQ,sBAChCuB,GAAkBvB,EAAQ,gBAC1BwB,EAAuBxB,EAAQ,qBAC/ByB,GAAyBzB,EAAQ,uBACjC0B,GAAyB1B,EAAQ,uBAEjC2B,EAAiB3B,EAAQ,eACzB4B,GAAsB5B,EAAQ,oBAC9B6B,EAAiB7B,EAAQ,eACzB8B,GAAsB9B,EAAQ,oBAE9B+B,GAAuB/B,EAAQ,qBAE/BgC,EAAehC,EAAQ,aACvBiC,GAAgBjC,EAAQ,cACxBkC,GAAgBlC,EAAQ,cACxBmC,GAAoBnC,EAAQ,kBAE5BoC,GAAYpC,EAAQ,UAEpBqC,GAAMtC,EAAO,KAAK,IAOlBuC,EAAS,EACTC,EAAc,EACdC,GAAO,EAUX,SAASC,GAAOC,EAAO,CAMrB,IALAA,EAAQA,EAAQ,EAEhBJ,EAAS,EACTC,EAAcG,GAENJ,EAAS,IAAMC,EAAc,KACnCC,GAAOG,GAAUzC,EAAKoC,CAAM,EAAI,GAAG,EAAEpC,EAAKoC,CAAM,EAAI,CAAC,EAAI,EAEpD,GAAAE,GAAO,GAAK,KAAjB,CAKF,OAAOA,GAAO,CAChB,CAIA,SAASI,EAAaC,EAAG,CAGvB,OAFAA,EAAIA,EAAI,IAEDP,EAAS,IAAMO,EAAI,GAAM,IAAMN,EAAc,GAC3C,EAGF,CACT,CAEA,SAASO,EAAYD,EAAG,CACtB,OAAAA,EAAIA,EAAI,EAGL3C,EAAK2C,EAAI,CAAC,GAAK,EAAK3C,EAAM2C,EAAI,EAAK,CAAC,EACnC,CACN,CAEA,SAASE,GAAYF,EAAG,CACtB,OAAAA,EAAIA,EAAI,EAGL3C,EAAK2C,EAAI,CAAC,GAAK,GAAO3C,EAAM2C,EAAI,EAAK,CAAC,GAAK,GAAO3C,EAAM2C,EAAI,EAAK,CAAC,GAAK,EAAK3C,EAAM2C,EAAI,EAAK,CAAC,EAC3F,CACN,CAIA,SAASG,EAAOC,EAAO,CACrB,OAAAA,EAAQA,EAAQ,EAEhB9C,EAAQ8C,EAAQ,CAAC,EAEjBX,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASY,GAAUD,EAAO,CAGxB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTzC,EAAQD,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAAC,EAElCA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASa,GAAWF,EAAO,CAGzB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTzC,EACE2C,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASc,GAAWH,EAAO,CAGzB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTxC,EACE0C,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASe,GAAWJ,EAAO,CAGzB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTtC,EACEwC,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASgB,EAAOL,EAAO,CACrB,OAAAA,EAAQA,EAAQ,EAEhB9C,EAAS,IAAO8C,EAAQ,GAAM,GAAM,CAAC,EAErCX,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASiB,GAAUN,EAAO,CAGxB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTzC,EACG,IAAMD,EAAMoC,EAAS,EAAK,CAAC,EAAI,GAAM,CACxC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASkB,GAAWP,EAAO,CACzBA,EAAQA,EAAQ,EAEhB,IAAIQ,EAAM,EAEV,OAAIb,EAAY,CAAC,EAAI,EACZ,GAGTa,EAAMX,EAAYR,EAAS,EAAK,CAAC,EAAI,EACrCnC,EAAS,IAAMsD,EAAM,GAAM,CAAC,EAE5BnB,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASoB,GAAWT,EAAO,CAGzB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTvC,EACEyC,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASqB,GAAWV,EAAO,CAGzB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTrC,EACEuC,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASsB,EAAaX,EAAO,CAC3BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNC,EAAO,EAGX,OADAA,EAAQd,EAAQ,GAAM,EAClBL,EAAYmB,EAAO,CAAC,EAAI,EACnB,GAGTF,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAMyB,EAAO,GAAM,EAE1CpC,EAAekC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASE,GAAef,EAAO,CAC7BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNG,EAAS,EAUb,OARIrB,EAAY,CAAC,EAAI,IAIrBqB,EAAS/D,EAAMoC,EAAS,EAAK,CAAC,EAAI,EAClCuB,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAM2B,EAAS,GAAM,EAExCrB,EAAaqB,EAAS,EAAK,CAAC,EAAI,GAC3B,GAGTtC,EAAekC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASI,GAAgBjB,EAAO,CAC9BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNG,EAAS,EAWb,OATIrB,EAAY,CAAC,EAAI,IAIrBqB,EAASnB,EAAYR,EAAS,EAAK,CAAC,EAAI,EACxCuB,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAM2B,EAAS,GAAM,EAGxCrB,EAAaqB,EAAS,EAAK,CAAC,EAAI,GAC3B,GAGTtC,EAAekC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASK,GAAgBlB,EAAO,CAC9BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNG,EAAS,EAWb,OATIrB,EAAY,CAAC,EAAI,IAIrBqB,EAASlB,GAAYT,EAAS,EAAK,CAAC,EAAI,EACxCuB,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAM2B,EAAS,GAAM,EAGxCrB,EAAaqB,EAAS,EAAK,CAAC,EAAI,GAC3B,GAGTtC,EAAekC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASM,GAAgBnB,EAAO,CAE9B,OAAAA,EAAQA,EAAQ,EAET,CACT,CAEA,SAASoB,GAAmBpB,EAAO,CACjC,OAAAA,EAAQA,EAAQ,EAEhBrB,GAAoB,EAEpBU,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASgC,EAAarB,EAAO,CAC3BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNC,EAAO,EAIX,OAFAA,EAAQd,EAAQ,GAAM,EAElBL,EAAYmB,EAAO,CAAC,EAAI,EACnB,GAGTF,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAMyB,EAAO,GAAM,EAE1ClC,EAAegC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASS,GAAetB,EAAO,CAC7BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNG,EAAS,EAUb,OARIrB,EAAY,CAAC,EAAI,IAIrBqB,EAAS/D,EAAMoC,EAAS,EAAK,CAAC,EAAI,EAClCuB,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAM2B,EAAS,GAAM,EAExCrB,EAAaqB,EAAS,EAAK,CAAC,EAAI,GAC3B,GAGTpC,EAAegC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASU,GAAgBvB,EAAO,CAC9BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNG,EAAS,EAUb,OARIrB,EAAY,CAAC,EAAI,IAIrBqB,EAASnB,EAAYR,EAAS,EAAK,CAAC,EAAI,EACxCuB,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAM2B,EAAS,GAAM,EAExCrB,EAAaqB,EAAS,EAAK,CAAC,EAAI,GAC3B,GAGTpC,EAAegC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASW,GAAgBxB,EAAO,CAC9BA,EAAQA,EAAQ,EAEhB,IAAIY,EAAQ,EACRC,EAAM,EACNG,EAAS,EAUb,OARIrB,EAAY,CAAC,EAAI,IAIrBqB,EAASlB,GAAYT,EAAS,EAAK,CAAC,EAAI,EACxCuB,EAASvB,EAAS,EAAK,EACvBwB,GAASxB,EAAS,EAAK,IAAM2B,EAAS,GAAM,EAExCrB,EAAaqB,EAAS,EAAK,CAAC,EAAI,GAC3B,GAGTpC,EAAegC,EAAQ,EAAGC,EAAM,CAAC,EAEjCxB,EAASwB,EAAM,EAER,EACT,CAEA,SAASY,GAAgBzB,EAAO,CAE9B,OAAAA,EAAQA,EAAQ,EAET,CACT,CAEA,SAAS0B,GAAmB1B,EAAO,CACjC,OAAAA,EAAQA,EAAQ,EAEhBnB,GAAoB,EAEpBQ,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASsC,EAAO3B,EAAO,CACrB,OAAAA,EAAQA,EAAQ,EAEhB7B,EAAqB6B,EAAQ,IAAO,CAAC,EAErCX,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASuC,GAAS5B,EAAO,CAGvB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTxB,EAAoBlB,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAAC,EAE9CA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASwC,GAAU7B,EAAO,CAGxB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTxB,EACE0B,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASyC,GAAU9B,EAAO,CAGxB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTvB,GACEyB,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS0C,GAAU/B,EAAO,CAGxB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTtB,GACEwB,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS2C,GAAahC,EAAO,CAC3B,OAAAA,EAAQA,EAAQ,EAEhB9B,GAAe,EAEfmB,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAAS4C,EAAKjC,EAAO,CACnBA,EAAQA,EAAQ,EAEhB,IAAIc,EAAO,EAIX,OAFAA,EAAQd,EAAQ,IAAO,EAEnBL,EAAYmB,EAAO,CAAC,EAAI,EACnB,GAGTvC,EAAqBuC,EAAO,CAAC,EAE7BzB,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS6C,GAAOlC,EAAO,CAGrB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTpB,EAAqBtB,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAAC,EAE/CA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS8C,GAAQnC,EAAO,CAGtB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTpB,EACEsB,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS+C,GAAQpC,EAAO,CAGtB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTnB,GACEqB,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASgD,GAAQrC,EAAO,CAGtB,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTlB,GACEoB,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAASiD,GAAWtC,EAAO,CACzB,OAAAA,EAAQA,EAAQ,EAEhB1B,GAAgB,EAEhBe,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASkD,EAAWvC,EAAO,CACzB,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAciB,EAAQ,IAAK,EAAK,CAAC,EAEjCX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASmD,GAAgBxC,EAAO,CAC9B,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASoD,GAAgBzC,EAAO,CAC9B,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASqD,GAAU1C,EAAO,CACxB,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASsD,GAAkB3C,EAAO,CAChC,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASuD,EAAgB5C,EAAO,CAC9B,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAciB,EAAQ,IAAK,EAAK,CAAC,EAEjCX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASwD,GAAgB7C,EAAO,CAC9B,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAASyD,GAAY9C,EAAO,CAC1B,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAAS0D,GAAY/C,EAAO,CAC1B,OAAAA,EAAQA,EAAQ,EAEhBjB,EAAaiB,EAAQ,CAAC,EAEtBX,EAAUA,EAAS,EAAI,EAEhB,CACT,CAEA,SAAS2D,GAAYhD,EAAO,CAG1B,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTZ,EAAa9B,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAAC,EAEvCA,EAAUA,EAAS,EAAI,EAEhB,EACT,CAEA,SAAS4D,GAAYjD,EAAO,CAG1B,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTZ,EACEc,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAI,EAEhB,EACT,CAEA,SAAS6D,GAAYlD,EAAO,CAG1B,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTX,GACEa,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAI,EAEhB,EACT,CAEA,SAAS8D,GAAYnD,EAAO,CAG1B,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTV,GACEY,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,EAC/BQ,EAAYR,EAAS,EAAK,CAAC,EAAI,CACjC,EAEAA,EAAUA,EAAS,EAAI,EAEhB,EACT,CAEA,SAAS+D,EAAmBpD,EAAO,CACjC,OAAAA,EAAQA,EAAQ,EAEhBlB,IAAuBkB,EAAQ,GAAK,IAAO,CAAC,EAE5CX,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASgE,GAAcrD,EAAO,CAC5B,OAAAA,EAAQA,EAAQ,EAEhBrC,GAAU,EAEV0B,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASiE,GAAatD,EAAO,CAC3B,OAAAA,EAAQA,EAAQ,EAEhBtC,GAAS,EAET2B,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASkE,GAAavD,EAAO,CAC3B,OAAAA,EAAQA,EAAQ,EAEhBnC,GAAS,EAETwB,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASmE,GAAkBxD,EAAO,CAChC,OAAAA,EAAQA,EAAQ,EAEhBpC,GAAc,EAEdyB,EAAUA,EAAS,EAAK,EAEjB,CACT,CAEA,SAASoE,GAAazD,EAAO,CAG3B,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTb,GAAqB7B,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAAC,EAE/CA,EAAUA,EAAS,EAAM,EAElB,EACT,CAEA,SAASqE,GAAmB1D,EAAO,CACjCA,EAAQA,EAAQ,EAEhB,IAAI2D,EAAI,EACJC,EAAI,EACJC,EAAO,EACPC,EAAM,EACNC,EAAO,EACPC,GAAI,EACR,OAAIrE,EAAY,CAAC,EAAI,EACZ,GAGTgE,EAAI1G,EAAMoC,EAAS,EAAK,CAAC,EAAI,EAC7BuE,EAAI3G,EAAMoC,EAAS,EAAK,CAAC,EAAI,GAExBsE,EAAI,GAAK,MACZE,EAAO,IAGTC,EAAM,IAAIH,EAAI,GAAK,MAAS,GAC5BI,EAAO,IAAKJ,EAAI,GAAK,IAAS,EAAKC,GAE/B,CAACE,GAAO,EACVvG,EAAU,EACP,CAACsG,EAAQ,qBAA0B,CAACE,EACtC,EACQ,CAACD,GAAO,GACb,CAACD,GAAQ,EACP,CAACE,EAAO,EACV/F,GAAQ,EAERF,GAAa,EAGX,CAACiG,EAAO,EACV9F,GAAW,EAEXF,GAAgB,EAIpBR,EAAU,EACR,CAACsG,EAAOzE,GAAI,EAAI,EAAE,CAAC0E,EAAM,GAAK,EAAI,EAAE,KAASC,GAC9C,EAGH1E,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS4E,GAAqBjE,EAAO,CAGnC,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTnC,GACEP,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAC3B,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS6E,GAAqBlE,EAAO,CAGnC,OAFAA,EAAQA,EAAQ,EAEZL,EAAY,CAAC,EAAI,EACZ,GAGTlC,GACER,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,EACzBpC,EAAMoC,EAAS,EAAK,CAAC,EAAI,CAC3B,EAEAA,EAAUA,EAAS,EAAK,EAEjB,EACT,CAEA,SAAS8E,EAAOnE,EAAO,CACrB,OAAAA,EAAQA,EAAQ,EAET,CACT,CAEA,SAASoE,GAAOpE,EAAO,CACrB,OAAAA,EAAQA,EAAQ,EAEhBb,GAAU,EAEVE,EAAUA,EAAS,EAAK,EAEjB,CACT,CAIA,IAAIK,GAAY,CAEdK,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAE,GAEAC,GAEAC,GAEAC,GACA+D,EACAA,EACAA,EACAA,EAEA9D,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,GAEAC,GAEAE,GAEAC,GACAyD,EACAA,EACAA,EACAA,EAEAxD,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAI,GAEAE,GAEAC,GAEAC,GACAgD,EACAA,EACAA,EAEA/C,GAEAC,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,GAEAC,GAEAC,GAEAC,GAEA0C,EACAA,EACAA,EACAzC,GAEAC,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,GAEAC,GAEAC,GAEAC,GAEAoC,EACAA,EACAA,EACAnC,GAEAC,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,GAEAC,GAEAC,GAEAC,GACA8B,EACAA,EACAA,EAEA7B,GAEAC,EAEAA,EAEAA,EAEAA,EAEAA,EAEAA,EAEAK,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAA,EACAA,EACAA,EAEAI,GACAC,GACAC,GACAC,GACAgB,EACAA,EACAA,EACAA,EAEAf,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,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","names":["require_decoder_asm","__commonJSMin","exports","module","stdlib","foreign","buffer","heap","pushInt","pushInt32","pushInt32Neg","pushInt64","pushInt64Neg","pushFloat","pushFloatSingle","pushFloatDouble","pushTrue","pushFalse","pushUndefined","pushNull","pushInfinity","pushInfinityNeg","pushNaN","pushNaNNeg","pushArrayStart","pushArrayStartFixed","pushArrayStartFixed32","pushArrayStartFixed64","pushObjectStart","pushObjectStartFixed","pushObjectStartFixed32","pushObjectStartFixed64","pushByteString","pushByteStringStart","pushUtf8String","pushUtf8StringStart","pushSimpleUnassigned","pushTagStart","pushTagStart4","pushTagStart8","pushTagUnassigned","pushBreak","pow","offset","inputLength","code","parse","input","jumpTable","checkOffset","n","readUInt16","readUInt32","INT_P","octet","UINT_P_8","UINT_P_16","UINT_P_32","UINT_P_64","INT_N","UINT_N_8","UINT_N_16","val","UINT_N_32","UINT_N_64","BYTE_STRING","start","end","step","BYTE_STRING_8","length","BYTE_STRING_16","BYTE_STRING_32","BYTE_STRING_64","BYTE_STRING_BREAK","UTF8_STRING","UTF8_STRING_8","UTF8_STRING_16","UTF8_STRING_32","UTF8_STRING_64","UTF8_STRING_BREAK","ARRAY","ARRAY_8","ARRAY_16","ARRAY_32","ARRAY_64","ARRAY_BREAK","MAP","MAP_8","MAP_16","MAP_32","MAP_64","MAP_BREAK","TAG_KNOWN","TAG_BIGNUM_POS","TAG_BIGNUM_NEG","TAG_FRAC","TAG_BIGNUM_FLOAT","TAG_UNASSIGNED","TAG_BASE64_URL","TAG_BASE64","TAG_BASE16","TAG_MORE_1","TAG_MORE_2","TAG_MORE_4","TAG_MORE_8","SIMPLE_UNASSIGNED","SIMPLE_FALSE","SIMPLE_TRUE","SIMPLE_NULL","SIMPLE_UNDEFINED","SIMPLE_BYTE","SIMPLE_FLOAT_HALF","f","g","sign","exp","mant","r","SIMPLE_FLOAT_SINGLE","SIMPLE_FLOAT_DOUBLE","ERROR","BREAK","require_constants","__commonJSMin","exports","Bignumber","require_utils","__commonJSMin","exports","Buffer","Bignumber","constants","SHIFT32","SHIFT16","MAX_SAFE_HIGH","buf","exp","mant","sign","toHex","n","len","res","i","obj","keys","length","f","g","f1","f2","g1","g2","half","u32","u","s16","a","b","lenA","lenB","x","count","require_simple","__commonJSMin","exports","module","constants","MT","SIMPLE","SYMS","Simple","_Simple","value","gen","obj","val","hasParent","require_tagged","__commonJSMin","exports","module","Tagged","_Tagged","tag","value","err","gen","converters","er","f","error","require_decoder","__commonJSMin","exports","module","Buffer","ieee754","Bignumber","parser","utils","c","Simple","Tagged","URL","Decoder","_Decoder","opts","val","v","p","hasChildren","obj","type","len","tagNumber","value","typ","arr","raw","start","end","f","g","f1","f2","g1","g2","a","b","d","e","h","len1","len2","len3","len4","tag","input","code","enc","require_diagnose","__commonJSMin","exports","module","Buffer","Decoder","utils","Diagnose","_Diagnose","tagNumber","value","val","f","g","f1","f2","g1","g2","fl","a","b","c","d","e","h","raw","len","start","end","arr","map","list","collectObject","obj","input","enc","acc","key","require_encoder","__commonJSMin","exports","module","Buffer","URL","Bignumber","utils","constants","MT","NUMBYTES","SHIFT32","SYMS","TAG","HALF","FLOAT","DOUBLE","TRUE","FALSE","UNDEFINED","NULL","MAXINT_BN","BUF_NAN","BUF_INF_NEG","BUF_INF_POS","toType","obj","Encoder","_Encoder","options","addTypes","len","type","fun","old","val","method","half","b2","b4","mt","orig","m","gen","j","tag","x","str","buf","dec","slide","i","f","keys","keyLength","k","map","a","typ","result","resultLength","resultMethod","offset","size","res","index","length","tmp","o","enc","require_src","__commonJSMin","exports","cjsm","Diagnose","Decoder","Encoder","Simple","Tagged","decodeAll","decodeFirst","diagnose","encode","decode","leveldb","endpoint_default"],"sources":["../esm/npm/borc@2.1.2/node_modules/borc/src/decoder.asm.js","../esm/npm/borc@2.1.2/node_modules/borc/src/constants.js","../esm/npm/borc@2.1.2/node_modules/borc/src/utils.js","../esm/npm/borc@2.1.2/node_modules/borc/src/simple.js","../esm/npm/borc@2.1.2/node_modules/borc/src/tagged.js","../esm/npm/borc@2.1.2/node_modules/borc/src/decoder.js","../esm/npm/borc@2.1.2/node_modules/borc/src/diagnose.js","../esm/npm/borc@2.1.2/node_modules/borc/src/encoder.js","../esm/npm/borc@2.1.2/node_modules/borc/src/index.js","endpoint.js"],"sourcesContent":["/* eslint-disable */\n\nmodule.exports = function decodeAsm (stdlib, foreign, buffer) {\n  'use asm'\n\n  // -- Imports\n\n  var heap = new stdlib.Uint8Array(buffer)\n  // var log = foreign.log\n  var pushInt = foreign.pushInt\n  var pushInt32 = foreign.pushInt32\n  var pushInt32Neg = foreign.pushInt32Neg\n  var pushInt64 = foreign.pushInt64\n  var pushInt64Neg = foreign.pushInt64Neg\n  var pushFloat = foreign.pushFloat\n  var pushFloatSingle = foreign.pushFloatSingle\n  var pushFloatDouble = foreign.pushFloatDouble\n  var pushTrue = foreign.pushTrue\n  var pushFalse = foreign.pushFalse\n  var pushUndefined = foreign.pushUndefined\n  var pushNull = foreign.pushNull\n  var pushInfinity = foreign.pushInfinity\n  var pushInfinityNeg = foreign.pushInfinityNeg\n  var pushNaN = foreign.pushNaN\n  var pushNaNNeg = foreign.pushNaNNeg\n\n  var pushArrayStart = foreign.pushArrayStart\n  var pushArrayStartFixed = foreign.pushArrayStartFixed\n  var pushArrayStartFixed32 = foreign.pushArrayStartFixed32\n  var pushArrayStartFixed64 = foreign.pushArrayStartFixed64\n  var pushObjectStart = foreign.pushObjectStart\n  var pushObjectStartFixed = foreign.pushObjectStartFixed\n  var pushObjectStartFixed32 = foreign.pushObjectStartFixed32\n  var pushObjectStartFixed64 = foreign.pushObjectStartFixed64\n\n  var pushByteString = foreign.pushByteString\n  var pushByteStringStart = foreign.pushByteStringStart\n  var pushUtf8String = foreign.pushUtf8String\n  var pushUtf8StringStart = foreign.pushUtf8StringStart\n\n  var pushSimpleUnassigned = foreign.pushSimpleUnassigned\n\n  var pushTagStart = foreign.pushTagStart\n  var pushTagStart4 = foreign.pushTagStart4\n  var pushTagStart8 = foreign.pushTagStart8\n  var pushTagUnassigned = foreign.pushTagUnassigned\n\n  var pushBreak = foreign.pushBreak\n\n  var pow = stdlib.Math.pow\n\n  // -- Constants\n\n\n  // -- Mutable Variables\n\n  var offset = 0\n  var inputLength = 0\n  var code = 0\n\n  // Decode a cbor string represented as Uint8Array\n  // which is allocated on the heap from 0 to inputLength\n  //\n  // input - Int\n  //\n  // Returns Code - Int,\n  // Success = 0\n  // Error \u003e 0\n  function parse (input) {\n    input = input | 0\n\n    offset = 0\n    inputLength = input\n\n    while ((offset | 0) \u003c (inputLength | 0)) {\n      code = jumpTable[heap[offset] \u0026 255](heap[offset] | 0) | 0\n\n      if ((code | 0) \u003e 0) {\n        break\n      }\n    }\n\n    return code | 0\n  }\n\n  // -- Helper Function\n\n  function checkOffset (n) {\n    n = n | 0\n\n    if ((((offset | 0) + (n | 0)) | 0) \u003c (inputLength | 0)) {\n      return 0\n    }\n\n    return 1\n  }\n\n  function readUInt16 (n) {\n    n = n | 0\n\n    return (\n      (heap[n | 0] \u003c\u003c 8) | heap[(n + 1) | 0]\n    ) | 0\n  }\n\n  function readUInt32 (n) {\n    n = n | 0\n\n    return (\n      (heap[n | 0] \u003c\u003c 24) | (heap[(n + 1) | 0] \u003c\u003c 16) | (heap[(n + 2) | 0] \u003c\u003c 8) | heap[(n + 3) | 0]\n    ) | 0\n  }\n\n  // -- Initial Byte Handlers\n\n  function INT_P (octet) {\n    octet = octet | 0\n\n    pushInt(octet | 0)\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function UINT_P_8 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    pushInt(heap[(offset + 1) | 0] | 0)\n\n    offset = (offset + 2) | 0\n\n    return 0\n  }\n\n  function UINT_P_16 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    pushInt(\n      readUInt16((offset + 1) | 0) | 0\n    )\n\n    offset = (offset + 3) | 0\n\n    return 0\n  }\n\n  function UINT_P_32 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    pushInt32(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0\n    )\n\n    offset = (offset + 5) | 0\n\n    return 0\n  }\n\n  function UINT_P_64 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(8) | 0) {\n      return 1\n    }\n\n    pushInt64(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0,\n      readUInt16((offset + 5) | 0) | 0,\n      readUInt16((offset + 7) | 0) | 0\n    )\n\n    offset = (offset + 9) | 0\n\n    return 0\n  }\n\n  function INT_N (octet) {\n    octet = octet | 0\n\n    pushInt((-1 - ((octet - 32) | 0)) | 0)\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function UINT_N_8 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    pushInt(\n      (-1 - (heap[(offset + 1) | 0] | 0)) | 0\n    )\n\n    offset = (offset + 2) | 0\n\n    return 0\n  }\n\n  function UINT_N_16 (octet) {\n    octet = octet | 0\n\n    var val = 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    val = readUInt16((offset + 1) | 0) | 0\n    pushInt((-1 - (val | 0)) | 0)\n\n    offset = (offset + 3) | 0\n\n    return 0\n  }\n\n  function UINT_N_32 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    pushInt32Neg(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0\n    )\n\n    offset = (offset + 5) | 0\n\n    return 0\n  }\n\n  function UINT_N_64 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(8) | 0) {\n      return 1\n    }\n\n    pushInt64Neg(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0,\n      readUInt16((offset + 5) | 0) | 0,\n      readUInt16((offset + 7) | 0) | 0\n    )\n\n    offset = (offset + 9) | 0\n\n    return 0\n  }\n\n  function BYTE_STRING (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var step = 0\n\n    step = (octet - 64) | 0\n    if (checkOffset(step | 0) | 0) {\n      return 1\n    }\n\n    start = (offset + 1) | 0\n    end = (((offset + 1) | 0) + (step | 0)) | 0\n\n    pushByteString(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function BYTE_STRING_8 (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var length = 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    length = heap[(offset + 1) | 0] | 0\n    start = (offset + 2) | 0\n    end = (((offset + 2) | 0) + (length | 0)) | 0\n\n    if (checkOffset((length + 1) | 0) | 0) {\n      return 1\n    }\n\n    pushByteString(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function BYTE_STRING_16 (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var length = 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    length = readUInt16((offset + 1) | 0) | 0\n    start = (offset + 3) | 0\n    end = (((offset + 3) | 0) + (length | 0)) | 0\n\n\n    if (checkOffset((length + 2) | 0) | 0) {\n      return 1\n    }\n\n    pushByteString(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function BYTE_STRING_32 (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var length = 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    length = readUInt32((offset + 1) | 0) | 0\n    start = (offset + 5) | 0\n    end = (((offset + 5) | 0) + (length | 0)) | 0\n\n\n    if (checkOffset((length + 4) | 0) | 0) {\n      return 1\n    }\n\n    pushByteString(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function BYTE_STRING_64 (octet) {\n    // NOT IMPLEMENTED\n    octet = octet | 0\n\n    return 1\n  }\n\n  function BYTE_STRING_BREAK (octet) {\n    octet = octet | 0\n\n    pushByteStringStart()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function UTF8_STRING (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var step = 0\n\n    step = (octet - 96) | 0\n\n    if (checkOffset(step | 0) | 0) {\n      return 1\n    }\n\n    start = (offset + 1) | 0\n    end = (((offset + 1) | 0) + (step | 0)) | 0\n\n    pushUtf8String(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function UTF8_STRING_8 (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var length = 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    length = heap[(offset + 1) | 0] | 0\n    start = (offset + 2) | 0\n    end = (((offset + 2) | 0) + (length | 0)) | 0\n\n    if (checkOffset((length + 1) | 0) | 0) {\n      return 1\n    }\n\n    pushUtf8String(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function UTF8_STRING_16 (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var length = 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    length = readUInt16((offset + 1) | 0) | 0\n    start = (offset + 3) | 0\n    end = (((offset + 3) | 0) + (length | 0)) | 0\n\n    if (checkOffset((length + 2) | 0) | 0) {\n      return 1\n    }\n\n    pushUtf8String(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function UTF8_STRING_32 (octet) {\n    octet = octet | 0\n\n    var start = 0\n    var end = 0\n    var length = 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    length = readUInt32((offset + 1) | 0) | 0\n    start = (offset + 5) | 0\n    end = (((offset + 5) | 0) + (length | 0)) | 0\n\n    if (checkOffset((length + 4) | 0) | 0) {\n      return 1\n    }\n\n    pushUtf8String(start | 0, end | 0)\n\n    offset = end | 0\n\n    return 0\n  }\n\n  function UTF8_STRING_64 (octet) {\n    // NOT IMPLEMENTED\n    octet = octet | 0\n\n    return 1\n  }\n\n  function UTF8_STRING_BREAK (octet) {\n    octet = octet | 0\n\n    pushUtf8StringStart()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function ARRAY (octet) {\n    octet = octet | 0\n\n    pushArrayStartFixed((octet - 128) | 0)\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function ARRAY_8 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    pushArrayStartFixed(heap[(offset + 1) | 0] | 0)\n\n    offset = (offset + 2) | 0\n\n    return 0\n  }\n\n  function ARRAY_16 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    pushArrayStartFixed(\n      readUInt16((offset + 1) | 0) | 0\n    )\n\n    offset = (offset + 3) | 0\n\n    return 0\n  }\n\n  function ARRAY_32 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    pushArrayStartFixed32(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0\n    )\n\n    offset = (offset + 5) | 0\n\n    return 0\n  }\n\n  function ARRAY_64 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(8) | 0) {\n      return 1\n    }\n\n    pushArrayStartFixed64(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0,\n      readUInt16((offset + 5) | 0) | 0,\n      readUInt16((offset + 7) | 0) | 0\n    )\n\n    offset = (offset + 9) | 0\n\n    return 0\n  }\n\n  function ARRAY_BREAK (octet) {\n    octet = octet | 0\n\n    pushArrayStart()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function MAP (octet) {\n    octet = octet | 0\n\n    var step = 0\n\n    step = (octet - 160) | 0\n\n    if (checkOffset(step | 0) | 0) {\n      return 1\n    }\n\n    pushObjectStartFixed(step | 0)\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function MAP_8 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    pushObjectStartFixed(heap[(offset + 1) | 0] | 0)\n\n    offset = (offset + 2) | 0\n\n    return 0\n  }\n\n  function MAP_16 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    pushObjectStartFixed(\n      readUInt16((offset + 1) | 0) | 0\n    )\n\n    offset = (offset + 3) | 0\n\n    return 0\n  }\n\n  function MAP_32 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    pushObjectStartFixed32(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0\n    )\n\n    offset = (offset + 5) | 0\n\n    return 0\n  }\n\n  function MAP_64 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(8) | 0) {\n      return 1\n    }\n\n    pushObjectStartFixed64(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0,\n      readUInt16((offset + 5) | 0) | 0,\n      readUInt16((offset + 7) | 0) | 0\n    )\n\n    offset = (offset + 9) | 0\n\n    return 0\n  }\n\n  function MAP_BREAK (octet) {\n    octet = octet | 0\n\n    pushObjectStart()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function TAG_KNOWN (octet) {\n    octet = octet | 0\n\n    pushTagStart((octet - 192| 0) | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_BIGNUM_POS (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_BIGNUM_NEG (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_FRAC (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_BIGNUM_FLOAT (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_UNASSIGNED (octet) {\n    octet = octet | 0\n\n    pushTagStart((octet - 192| 0) | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_BASE64_URL (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_BASE64 (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_BASE16 (octet) {\n    octet = octet | 0\n\n    pushTagStart(octet | 0)\n\n    offset = (offset + 1 | 0)\n\n    return 0\n  }\n\n  function TAG_MORE_1 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    pushTagStart(heap[(offset + 1) | 0] | 0)\n\n    offset = (offset + 2 | 0)\n\n    return 0\n  }\n\n  function TAG_MORE_2 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    pushTagStart(\n      readUInt16((offset + 1) | 0) | 0\n    )\n\n    offset = (offset + 3 | 0)\n\n    return 0\n  }\n\n  function TAG_MORE_4 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    pushTagStart4(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0\n    )\n\n    offset = (offset + 5 | 0)\n\n    return 0\n  }\n\n  function TAG_MORE_8 (octet) {\n    octet = octet | 0\n\n    if (checkOffset(8) | 0) {\n      return 1\n    }\n\n    pushTagStart8(\n      readUInt16((offset + 1) | 0) | 0,\n      readUInt16((offset + 3) | 0) | 0,\n      readUInt16((offset + 5) | 0) | 0,\n      readUInt16((offset + 7) | 0) | 0\n    )\n\n    offset = (offset + 9 | 0)\n\n    return 0\n  }\n\n  function SIMPLE_UNASSIGNED (octet) {\n    octet = octet | 0\n\n    pushSimpleUnassigned(((octet | 0) - 224) | 0)\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function SIMPLE_FALSE (octet) {\n    octet = octet | 0\n\n    pushFalse()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function SIMPLE_TRUE (octet) {\n    octet = octet | 0\n\n    pushTrue()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function SIMPLE_NULL (octet) {\n    octet = octet | 0\n\n    pushNull()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function SIMPLE_UNDEFINED (octet) {\n    octet = octet | 0\n\n    pushUndefined()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  function SIMPLE_BYTE (octet) {\n    octet = octet | 0\n\n    if (checkOffset(1) | 0) {\n      return 1\n    }\n\n    pushSimpleUnassigned(heap[(offset + 1) | 0] | 0)\n\n    offset = (offset + 2)  | 0\n\n    return 0\n  }\n\n  function SIMPLE_FLOAT_HALF (octet) {\n    octet = octet | 0\n\n    var f = 0\n    var g = 0\n    var sign = 1.0\n    var exp = 0.0\n    var mant = 0.0\n    var r = 0.0\n    if (checkOffset(2) | 0) {\n      return 1\n    }\n\n    f = heap[(offset + 1) | 0] | 0\n    g = heap[(offset + 2) | 0] | 0\n\n    if ((f | 0) \u0026 0x80) {\n      sign = -1.0\n    }\n\n    exp = +(((f | 0) \u0026 0x7C) \u003e\u003e 2)\n    mant = +((((f | 0) \u0026 0x03) \u003c\u003c 8) | g)\n\n    if (+exp == 0.0) {\n      pushFloat(+(\n        (+sign) * +5.9604644775390625e-8 * (+mant)\n      ))\n    } else if (+exp == 31.0) {\n      if (+sign == 1.0) {\n        if (+mant \u003e 0.0) {\n          pushNaN()\n        } else {\n          pushInfinity()\n        }\n      } else {\n        if (+mant \u003e 0.0) {\n          pushNaNNeg()\n        } else {\n          pushInfinityNeg()\n        }\n      }\n    } else {\n      pushFloat(+(\n        +sign * pow(+2, +(+exp - 25.0)) * +(1024.0 + mant)\n      ))\n    }\n\n    offset = (offset + 3) | 0\n\n    return 0\n  }\n\n  function SIMPLE_FLOAT_SINGLE (octet) {\n    octet = octet | 0\n\n    if (checkOffset(4) | 0) {\n      return 1\n    }\n\n    pushFloatSingle(\n      heap[(offset + 1) | 0] | 0,\n      heap[(offset + 2) | 0] | 0,\n      heap[(offset + 3) | 0] | 0,\n      heap[(offset + 4) | 0] | 0\n    )\n\n    offset = (offset + 5) | 0\n\n    return 0\n  }\n\n  function SIMPLE_FLOAT_DOUBLE (octet) {\n    octet = octet | 0\n\n    if (checkOffset(8) | 0) {\n      return 1\n    }\n\n    pushFloatDouble(\n      heap[(offset + 1) | 0] | 0,\n      heap[(offset + 2) | 0] | 0,\n      heap[(offset + 3) | 0] | 0,\n      heap[(offset + 4) | 0] | 0,\n      heap[(offset + 5) | 0] | 0,\n      heap[(offset + 6) | 0] | 0,\n      heap[(offset + 7) | 0] | 0,\n      heap[(offset + 8) | 0] | 0\n    )\n\n    offset = (offset + 9) | 0\n\n    return 0\n  }\n\n  function ERROR (octet) {\n    octet = octet | 0\n\n    return 1\n  }\n\n  function BREAK (octet) {\n    octet = octet | 0\n\n    pushBreak()\n\n    offset = (offset + 1) | 0\n\n    return 0\n  }\n\n  // -- Jump Table\n\n  var jumpTable = [\n    // Integer 0x00..0x17 (0..23)\n    INT_P, // 0x00\n    INT_P, // 0x01\n    INT_P, // 0x02\n    INT_P, // 0x03\n    INT_P, // 0x04\n    INT_P, // 0x05\n    INT_P, // 0x06\n    INT_P, // 0x07\n    INT_P, // 0x08\n    INT_P, // 0x09\n    INT_P, // 0x0A\n    INT_P, // 0x0B\n    INT_P, // 0x0C\n    INT_P, // 0x0D\n    INT_P, // 0x0E\n    INT_P, // 0x0F\n    INT_P, // 0x10\n    INT_P, // 0x11\n    INT_P, // 0x12\n    INT_P, // 0x13\n    INT_P, // 0x14\n    INT_P, // 0x15\n    INT_P, // 0x16\n    INT_P, // 0x17\n    // Unsigned integer (one-byte uint8_t follows)\n    UINT_P_8, // 0x18\n    // Unsigned integer (two-byte uint16_t follows)\n    UINT_P_16, // 0x19\n    // Unsigned integer (four-byte uint32_t follows)\n    UINT_P_32, // 0x1a\n    // Unsigned integer (eight-byte uint64_t follows)\n    UINT_P_64, // 0x1b\n    ERROR, // 0x1c\n    ERROR, // 0x1d\n    ERROR, // 0x1e\n    ERROR, // 0x1f\n    // Negative integer -1-0x00..-1-0x17 (-1..-24)\n    INT_N, // 0x20\n    INT_N, // 0x21\n    INT_N, // 0x22\n    INT_N, // 0x23\n    INT_N, // 0x24\n    INT_N, // 0x25\n    INT_N, // 0x26\n    INT_N, // 0x27\n    INT_N, // 0x28\n    INT_N, // 0x29\n    INT_N, // 0x2A\n    INT_N, // 0x2B\n    INT_N, // 0x2C\n    INT_N, // 0x2D\n    INT_N, // 0x2E\n    INT_N, // 0x2F\n    INT_N, // 0x30\n    INT_N, // 0x31\n    INT_N, // 0x32\n    INT_N, // 0x33\n    INT_N, // 0x34\n    INT_N, // 0x35\n    INT_N, // 0x36\n    INT_N, // 0x37\n    // Negative integer -1-n (one-byte uint8_t for n follows)\n    UINT_N_8, // 0x38\n    // Negative integer -1-n (two-byte uint16_t for n follows)\n    UINT_N_16, // 0x39\n    // Negative integer -1-n (four-byte uint32_t for nfollows)\n    UINT_N_32, // 0x3a\n    // Negative integer -1-n (eight-byte uint64_t for n follows)\n    UINT_N_64, // 0x3b\n    ERROR, // 0x3c\n    ERROR, // 0x3d\n    ERROR, // 0x3e\n    ERROR, // 0x3f\n    // byte string (0x00..0x17 bytes follow)\n    BYTE_STRING, // 0x40\n    BYTE_STRING, // 0x41\n    BYTE_STRING, // 0x42\n    BYTE_STRING, // 0x43\n    BYTE_STRING, // 0x44\n    BYTE_STRING, // 0x45\n    BYTE_STRING, // 0x46\n    BYTE_STRING, // 0x47\n    BYTE_STRING, // 0x48\n    BYTE_STRING, // 0x49\n    BYTE_STRING, // 0x4A\n    BYTE_STRING, // 0x4B\n    BYTE_STRING, // 0x4C\n    BYTE_STRING, // 0x4D\n    BYTE_STRING, // 0x4E\n    BYTE_STRING, // 0x4F\n    BYTE_STRING, // 0x50\n    BYTE_STRING, // 0x51\n    BYTE_STRING, // 0x52\n    BYTE_STRING, // 0x53\n    BYTE_STRING, // 0x54\n    BYTE_STRING, // 0x55\n    BYTE_STRING, // 0x56\n    BYTE_STRING, // 0x57\n    // byte string (one-byte uint8_t for n, and then n bytes follow)\n    BYTE_STRING_8, // 0x58\n    // byte string (two-byte uint16_t for n, and then n bytes follow)\n    BYTE_STRING_16, // 0x59\n    // byte string (four-byte uint32_t for n, and then n bytes follow)\n    BYTE_STRING_32, // 0x5a\n    // byte string (eight-byte uint64_t for n, and then n bytes follow)\n    BYTE_STRING_64, // 0x5b\n    ERROR, // 0x5c\n    ERROR, // 0x5d\n    ERROR, // 0x5e\n    // byte string, byte strings follow, terminated by \"break\"\n    BYTE_STRING_BREAK, // 0x5f\n    // UTF-8 string (0x00..0x17 bytes follow)\n    UTF8_STRING, // 0x60\n    UTF8_STRING, // 0x61\n    UTF8_STRING, // 0x62\n    UTF8_STRING, // 0x63\n    UTF8_STRING, // 0x64\n    UTF8_STRING, // 0x65\n    UTF8_STRING, // 0x66\n    UTF8_STRING, // 0x67\n    UTF8_STRING, // 0x68\n    UTF8_STRING, // 0x69\n    UTF8_STRING, // 0x6A\n    UTF8_STRING, // 0x6B\n    UTF8_STRING, // 0x6C\n    UTF8_STRING, // 0x6D\n    UTF8_STRING, // 0x6E\n    UTF8_STRING, // 0x6F\n    UTF8_STRING, // 0x70\n    UTF8_STRING, // 0x71\n    UTF8_STRING, // 0x72\n    UTF8_STRING, // 0x73\n    UTF8_STRING, // 0x74\n    UTF8_STRING, // 0x75\n    UTF8_STRING, // 0x76\n    UTF8_STRING, // 0x77\n    // UTF-8 string (one-byte uint8_t for n, and then n bytes follow)\n    UTF8_STRING_8, // 0x78\n    // UTF-8 string (two-byte uint16_t for n, and then n bytes follow)\n    UTF8_STRING_16, // 0x79\n    // UTF-8 string (four-byte uint32_t for n, and then n bytes follow)\n    UTF8_STRING_32, // 0x7a\n    // UTF-8 string (eight-byte uint64_t for n, and then n bytes follow)\n    UTF8_STRING_64, // 0x7b\n    // UTF-8 string, UTF-8 strings follow, terminated by \"break\"\n    ERROR, // 0x7c\n    ERROR, // 0x7d\n    ERROR, // 0x7e\n    UTF8_STRING_BREAK, // 0x7f\n    // array (0x00..0x17 data items follow)\n    ARRAY, // 0x80\n    ARRAY, // 0x81\n    ARRAY, // 0x82\n    ARRAY, // 0x83\n    ARRAY, // 0x84\n    ARRAY, // 0x85\n    ARRAY, // 0x86\n    ARRAY, // 0x87\n    ARRAY, // 0x88\n    ARRAY, // 0x89\n    ARRAY, // 0x8A\n    ARRAY, // 0x8B\n    ARRAY, // 0x8C\n    ARRAY, // 0x8D\n    ARRAY, // 0x8E\n    ARRAY, // 0x8F\n    ARRAY, // 0x90\n    ARRAY, // 0x91\n    ARRAY, // 0x92\n    ARRAY, // 0x93\n    ARRAY, // 0x94\n    ARRAY, // 0x95\n    ARRAY, // 0x96\n    ARRAY, // 0x97\n    // array (one-byte uint8_t fo, and then n data items follow)\n    ARRAY_8, // 0x98\n    // array (two-byte uint16_t for n, and then n data items follow)\n    ARRAY_16, // 0x99\n    // array (four-byte uint32_t for n, and then n data items follow)\n    ARRAY_32, // 0x9a\n    // array (eight-byte uint64_t for n, and then n data items follow)\n    ARRAY_64, // 0x9b\n    // array, data items follow, terminated by \"break\"\n    ERROR, // 0x9c\n    ERROR, // 0x9d\n    ERROR, // 0x9e\n    ARRAY_BREAK, // 0x9f\n    // map (0x00..0x17 pairs of data items follow)\n    MAP, // 0xa0\n    MAP, // 0xa1\n    MAP, // 0xa2\n    MAP, // 0xa3\n    MAP, // 0xa4\n    MAP, // 0xa5\n    MAP, // 0xa6\n    MAP, // 0xa7\n    MAP, // 0xa8\n    MAP, // 0xa9\n    MAP, // 0xaA\n    MAP, // 0xaB\n    MAP, // 0xaC\n    MAP, // 0xaD\n    MAP, // 0xaE\n    MAP, // 0xaF\n    MAP, // 0xb0\n    MAP, // 0xb1\n    MAP, // 0xb2\n    MAP, // 0xb3\n    MAP, // 0xb4\n    MAP, // 0xb5\n    MAP, // 0xb6\n    MAP, // 0xb7\n    // map (one-byte uint8_t for n, and then n pairs of data items follow)\n    MAP_8, // 0xb8\n    // map (two-byte uint16_t for n, and then n pairs of data items follow)\n    MAP_16, // 0xb9\n    // map (four-byte uint32_t for n, and then n pairs of data items follow)\n    MAP_32, // 0xba\n    // map (eight-byte uint64_t for n, and then n pairs of data items follow)\n    MAP_64, // 0xbb\n    ERROR, // 0xbc\n    ERROR, // 0xbd\n    ERROR, // 0xbe\n    // map, pairs of data items follow, terminated by \"break\"\n    MAP_BREAK, // 0xbf\n    // Text-based date/time (data item follows; see Section 2.4.1)\n    TAG_KNOWN, // 0xc0\n    // Epoch-based date/time (data item follows; see Section 2.4.1)\n    TAG_KNOWN, // 0xc1\n    // Positive bignum (data item \"byte string\" follows)\n    TAG_KNOWN, // 0xc2\n    // Negative bignum (data item \"byte string\" follows)\n    TAG_KNOWN, // 0xc3\n    // Decimal Fraction (data item \"array\" follows; see Section 2.4.3)\n    TAG_KNOWN, // 0xc4\n    // Bigfloat (data item \"array\" follows; see Section 2.4.3)\n    TAG_KNOWN, // 0xc5\n    // (tagged item)\n    TAG_UNASSIGNED, // 0xc6\n    TAG_UNASSIGNED, // 0xc7\n    TAG_UNASSIGNED, // 0xc8\n    TAG_UNASSIGNED, // 0xc9\n    TAG_UNASSIGNED, // 0xca\n    TAG_UNASSIGNED, // 0xcb\n    TAG_UNASSIGNED, // 0xcc\n    TAG_UNASSIGNED, // 0xcd\n    TAG_UNASSIGNED, // 0xce\n    TAG_UNASSIGNED, // 0xcf\n    TAG_UNASSIGNED, // 0xd0\n    TAG_UNASSIGNED, // 0xd1\n    TAG_UNASSIGNED, // 0xd2\n    TAG_UNASSIGNED, // 0xd3\n    TAG_UNASSIGNED, // 0xd4\n    // Expected Conversion (data item follows; see Section 2.4.4.2)\n    TAG_UNASSIGNED, // 0xd5\n    TAG_UNASSIGNED, // 0xd6\n    TAG_UNASSIGNED, // 0xd7\n    // (more tagged items, 1/2/4/8 bytes and then a data item follow)\n    TAG_MORE_1, // 0xd8\n    TAG_MORE_2, // 0xd9\n    TAG_MORE_4, // 0xda\n    TAG_MORE_8, // 0xdb\n    ERROR, // 0xdc\n    ERROR, // 0xdd\n    ERROR, // 0xde\n    ERROR, // 0xdf\n    // (simple value)\n    SIMPLE_UNASSIGNED, // 0xe0\n    SIMPLE_UNASSIGNED, // 0xe1\n    SIMPLE_UNASSIGNED, // 0xe2\n    SIMPLE_UNASSIGNED, // 0xe3\n    SIMPLE_UNASSIGNED, // 0xe4\n    SIMPLE_UNASSIGNED, // 0xe5\n    SIMPLE_UNASSIGNED, // 0xe6\n    SIMPLE_UNASSIGNED, // 0xe7\n    SIMPLE_UNASSIGNED, // 0xe8\n    SIMPLE_UNASSIGNED, // 0xe9\n    SIMPLE_UNASSIGNED, // 0xea\n    SIMPLE_UNASSIGNED, // 0xeb\n    SIMPLE_UNASSIGNED, // 0xec\n    SIMPLE_UNASSIGNED, // 0xed\n    SIMPLE_UNASSIGNED, // 0xee\n    SIMPLE_UNASSIGNED, // 0xef\n    SIMPLE_UNASSIGNED, // 0xf0\n    SIMPLE_UNASSIGNED, // 0xf1\n    SIMPLE_UNASSIGNED, // 0xf2\n    SIMPLE_UNASSIGNED, // 0xf3\n    // False\n    SIMPLE_FALSE, // 0xf4\n    // True\n    SIMPLE_TRUE, // 0xf5\n    // Null\n    SIMPLE_NULL, // 0xf6\n    // Undefined\n    SIMPLE_UNDEFINED, // 0xf7\n    // (simple value, one byte follows)\n    SIMPLE_BYTE, // 0xf8\n    // Half-Precision Float (two-byte IEEE 754)\n    SIMPLE_FLOAT_HALF, // 0xf9\n    // Single-Precision Float (four-byte IEEE 754)\n    SIMPLE_FLOAT_SINGLE, // 0xfa\n    // Double-Precision Float (eight-byte IEEE 754)\n    SIMPLE_FLOAT_DOUBLE, // 0xfb\n    ERROR, // 0xfc\n    ERROR, // 0xfd\n    ERROR, // 0xfe\n    // \"break\" stop code\n    BREAK // 0xff\n  ]\n\n  // --\n\n  return {\n    parse: parse\n  }\n}\n","'use strict'\n\nconst Bignumber = require('bignumber.js').BigNumber\n\nexports.MT = {\n  POS_INT: 0,\n  NEG_INT: 1,\n  BYTE_STRING: 2,\n  UTF8_STRING: 3,\n  ARRAY: 4,\n  MAP: 5,\n  TAG: 6,\n  SIMPLE_FLOAT: 7\n}\n\nexports.TAG = {\n  DATE_STRING: 0,\n  DATE_EPOCH: 1,\n  POS_BIGINT: 2,\n  NEG_BIGINT: 3,\n  DECIMAL_FRAC: 4,\n  BIGFLOAT: 5,\n  BASE64URL_EXPECTED: 21,\n  BASE64_EXPECTED: 22,\n  BASE16_EXPECTED: 23,\n  CBOR: 24,\n  URI: 32,\n  BASE64URL: 33,\n  BASE64: 34,\n  REGEXP: 35,\n  MIME: 36\n}\n\nexports.NUMBYTES = {\n  ZERO: 0,\n  ONE: 24,\n  TWO: 25,\n  FOUR: 26,\n  EIGHT: 27,\n  INDEFINITE: 31\n}\n\nexports.SIMPLE = {\n  FALSE: 20,\n  TRUE: 21,\n  NULL: 22,\n  UNDEFINED: 23\n}\n\nexports.SYMS = {\n  NULL: Symbol('null'),\n  UNDEFINED: Symbol('undef'),\n  PARENT: Symbol('parent'),\n  BREAK: Symbol('break'),\n  STREAM: Symbol('stream')\n}\n\nexports.SHIFT32 = Math.pow(2, 32)\nexports.SHIFT16 = Math.pow(2, 16)\n\nexports.MAX_SAFE_HIGH = 0x1fffff\nexports.NEG_ONE = new Bignumber(-1)\nexports.TEN = new Bignumber(10)\nexports.TWO = new Bignumber(2)\n\nexports.PARENT = {\n  ARRAY: 0,\n  OBJECT: 1,\n  MAP: 2,\n  TAG: 3,\n  BYTE_STRING: 4,\n  UTF8_STRING: 5\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst constants = require('./constants')\nconst SHIFT32 = constants.SHIFT32\nconst SHIFT16 = constants.SHIFT16\nconst MAX_SAFE_HIGH = 0x1fffff\n\nexports.parseHalf = function parseHalf (buf) {\n  var exp, mant, sign\n  sign = buf[0] \u0026 0x80 ? -1 : 1\n  exp = (buf[0] \u0026 0x7C) \u003e\u003e 2\n  mant = ((buf[0] \u0026 0x03) \u003c\u003c 8) | buf[1]\n  if (!exp) {\n    return sign * 5.9604644775390625e-8 * mant\n  } else if (exp === 0x1f) {\n    return sign * (mant ? 0 / 0 : 2e308)\n  } else {\n    return sign * Math.pow(2, exp - 25) * (1024 + mant)\n  }\n}\n\nfunction toHex (n) {\n  if (n \u003c 16) {\n    return '0' + n.toString(16)\n  }\n\n  return n.toString(16)\n}\n\nexports.arrayBufferToBignumber = function (buf) {\n  const len = buf.byteLength\n  let res = ''\n  for (let i = 0; i \u003c len; i++) {\n    res += toHex(buf[i])\n  }\n\n  return new Bignumber(res, 16)\n}\n\n// convert an Object into a Map\nexports.buildMap = (obj) =\u003e {\n  const res = new Map()\n  const keys = Object.keys(obj)\n  const length = keys.length\n  for (let i = 0; i \u003c length; i++) {\n    res.set(keys[i], obj[keys[i]])\n  }\n  return res\n}\n\nexports.buildInt32 = (f, g) =\u003e {\n  return f * SHIFT16 + g\n}\n\nexports.buildInt64 = (f1, f2, g1, g2) =\u003e {\n  const f = exports.buildInt32(f1, f2)\n  const g = exports.buildInt32(g1, g2)\n\n  if (f \u003e MAX_SAFE_HIGH) {\n    return new Bignumber(f).times(SHIFT32).plus(g)\n  } else {\n    return (f * SHIFT32) + g\n  }\n}\n\nexports.writeHalf = function writeHalf (buf, half) {\n  // assume 0, -0, NaN, Infinity, and -Infinity have already been caught\n\n  // HACK: everyone settle in.  This isn't going to be pretty.\n  // Translate cn-cbor's C code (from Carsten Borman):\n\n  // uint32_t be32;\n  // uint16_t be16, u16;\n  // union {\n  //   float f;\n  //   uint32_t u;\n  // } u32;\n  // u32.f = float_val;\n\n  const u32 = Buffer.allocUnsafe(4)\n  u32.writeFloatBE(half, 0)\n  const u = u32.readUInt32BE(0)\n\n  // if ((u32.u \u0026 0x1FFF) == 0) { /* worth trying half */\n\n  // hildjj: If the lower 13 bits are 0, we won't lose anything in the conversion\n  if ((u \u0026 0x1FFF) !== 0) {\n    return false\n  }\n\n  //   int s16 = (u32.u \u003e\u003e 16) \u0026 0x8000;\n  //   int exp = (u32.u \u003e\u003e 23) \u0026 0xff;\n  //   int mant = u32.u \u0026 0x7fffff;\n\n  var s16 = (u \u003e\u003e 16) \u0026 0x8000 // top bit is sign\n  const exp = (u \u003e\u003e 23) \u0026 0xff // then 5 bits of exponent\n  const mant = u \u0026 0x7fffff\n\n  //   if (exp == 0 \u0026\u0026 mant == 0)\n  //     ;              /* 0.0, -0.0 */\n\n  // hildjj: zeros already handled.  Assert if you don't believe me.\n\n  //   else if (exp \u003e= 113 \u0026\u0026 exp \u003c= 142) /* normalized */\n  //     s16 += ((exp - 112) \u003c\u003c 10) + (mant \u003e\u003e 13);\n  if ((exp \u003e= 113) \u0026\u0026 (exp \u003c= 142)) {\n    s16 += ((exp - 112) \u003c\u003c 10) + (mant \u003e\u003e 13)\n\n  //   else if (exp \u003e= 103 \u0026\u0026 exp \u003c 113) { /* denorm, exp16 = 0 */\n  //     if (mant \u0026 ((1 \u003c\u003c (126 - exp)) - 1))\n  //       goto float32;         /* loss of precision */\n  //     s16 += ((mant + 0x800000) \u003e\u003e (126 - exp));\n  } else if ((exp \u003e= 103) \u0026\u0026 (exp \u003c 113)) {\n    if (mant \u0026 ((1 \u003c\u003c (126 - exp)) - 1)) {\n      return false\n    }\n    s16 += ((mant + 0x800000) \u003e\u003e (126 - exp))\n\n    //   } else if (exp == 255 \u0026\u0026 mant == 0) { /* Inf */\n    //     s16 += 0x7c00;\n\n    // hildjj: Infinity already handled\n\n  //   } else\n  //     goto float32;           /* loss of range */\n  } else {\n    return false\n  }\n\n  //   ensure_writable(3);\n  //   u16 = s16;\n  //   be16 = hton16p((const uint8_t*)\u0026u16);\n  buf.writeUInt16BE(s16, 0)\n  return true\n}\n\nexports.keySorter = function (a, b) {\n  var lenA = a[0].byteLength\n  var lenB = b[0].byteLength\n\n  if (lenA \u003e lenB) {\n    return 1\n  }\n\n  if (lenB \u003e lenA) {\n    return -1\n  }\n\n  return a[0].compare(b[0])\n}\n\n// Adapted from http://www.2ality.com/2012/03/signedzero.html\nexports.isNegativeZero = (x) =\u003e {\n  return x === 0 \u0026\u0026 (1 / x \u003c 0)\n}\n\nexports.nextPowerOf2 = (n) =\u003e {\n  let count = 0\n  // First n in the below condition is for\n  // the case where n is 0\n  if (n \u0026\u0026 !(n \u0026 (n - 1))) {\n    return n\n  }\n\n  while (n !== 0) {\n    n \u003e\u003e= 1\n    count += 1\n  }\n\n  return 1 \u003c\u003c count\n}\n","'use strict'\n\nconst constants = require('./constants')\nconst MT = constants.MT\nconst SIMPLE = constants.SIMPLE\nconst SYMS = constants.SYMS\n\n/**\n * A CBOR Simple Value that does not map onto a known constant.\n */\nclass Simple {\n  /**\n   * Creates an instance of Simple.\n   *\n   * @param {integer} value - the simple value's integer value\n   */\n  constructor (value) {\n    if (typeof value !== 'number') {\n      throw new Error('Invalid Simple type: ' + (typeof value))\n    }\n    if ((value \u003c 0) || (value \u003e 255) || ((value | 0) !== value)) {\n      throw new Error('value must be a small positive integer: ' + value)\n    }\n    this.value = value\n  }\n\n  /**\n   * Debug string for simple value\n   *\n   * @returns {string} simple(value)\n   */\n  toString () {\n    return 'simple(' + this.value + ')'\n  }\n\n  /**\n   * Debug string for simple value\n   *\n   * @returns {string} simple(value)\n   */\n  inspect () {\n    return 'simple(' + this.value + ')'\n  }\n\n  /**\n   * Push the simple value onto the CBOR stream\n   *\n   * @param {cbor.Encoder} gen The generator to push onto\n   * @returns {number}\n   */\n  encodeCBOR (gen) {\n    return gen._pushInt(this.value, MT.SIMPLE_FLOAT)\n  }\n\n  /**\n   * Is the given object a Simple?\n   *\n   * @param {any} obj - object to test\n   * @returns {bool} - is it Simple?\n   */\n  static isSimple (obj) {\n    return obj instanceof Simple\n  }\n\n  /**\n   * Decode from the CBOR additional information into a JavaScript value.\n   * If the CBOR item has no parent, return a \"safe\" symbol instead of\n   * `null` or `undefined`, so that the value can be passed through a\n   * stream in object mode.\n   *\n   * @param {Number} val - the CBOR additional info to convert\n   * @param {bool} hasParent - Does the CBOR item have a parent?\n   * @returns {(null|undefined|Boolean|Symbol)} - the decoded value\n   */\n  static decode (val, hasParent) {\n    if (hasParent == null) {\n      hasParent = true\n    }\n    switch (val) {\n      case SIMPLE.FALSE:\n        return false\n      case SIMPLE.TRUE:\n        return true\n      case SIMPLE.NULL:\n        if (hasParent) {\n          return null\n        } else {\n          return SYMS.NULL\n        }\n      case SIMPLE.UNDEFINED:\n        if (hasParent) {\n          return undefined\n        } else {\n          return SYMS.UNDEFINED\n        }\n      case -1:\n        if (!hasParent) {\n          throw new Error('Invalid BREAK')\n        }\n        return SYMS.BREAK\n      default:\n        return new Simple(val)\n    }\n  }\n}\n\nmodule.exports = Simple\n","'use strict'\n\n/**\n * A CBOR tagged item, where the tag does not have semantics specified at the\n * moment, or those semantics threw an error during parsing. Typically this will\n * be an extension point you're not yet expecting.\n */\nclass Tagged {\n  /**\n   * Creates an instance of Tagged.\n   *\n   * @param {Number} tag - the number of the tag\n   * @param {any} value - the value inside the tag\n   * @param {Error} err - the error that was thrown parsing the tag, or null\n   */\n  constructor (tag, value, err) {\n    this.tag = tag\n    this.value = value\n    this.err = err\n    if (typeof this.tag !== 'number') {\n      throw new Error('Invalid tag type (' + (typeof this.tag) + ')')\n    }\n    if ((this.tag \u003c 0) || ((this.tag | 0) !== this.tag)) {\n      throw new Error('Tag must be a positive integer: ' + this.tag)\n    }\n  }\n\n  /**\n   * Convert to a String\n   *\n   * @returns {String} string of the form '1(2)'\n   */\n  toString () {\n    return `${this.tag}(${JSON.stringify(this.value)})`\n  }\n\n  /**\n   * Push the simple value onto the CBOR stream\n   *\n   * @param {cbor.Encoder} gen The generator to push onto\n   * @returns {number}\n   */\n  encodeCBOR (gen) {\n    gen._pushTag(this.tag)\n    return gen.pushAny(this.value)\n  }\n\n  /**\n   * If we have a converter for this type, do the conversion.  Some converters\n   * are built-in.  Additional ones can be passed in.  If you want to remove\n   * a built-in converter, pass a converter in whose value is 'null' instead\n   * of a function.\n   *\n   * @param {Object} converters - keys in the object are a tag number, the value\n   *   is a function that takes the decoded CBOR and returns a JavaScript value\n   *   of the appropriate type.  Throw an exception in the function on errors.\n   * @returns {any} - the converted item\n   */\n  convert (converters) {\n    var er, f\n    f = converters != null ? converters[this.tag] : undefined\n    if (typeof f !== 'function') {\n      f = Tagged['_tag' + this.tag]\n      if (typeof f !== 'function') {\n        return this\n      }\n    }\n    try {\n      return f.call(Tagged, this.value)\n    } catch (error) {\n      er = error\n      this.err = er\n      return this\n    }\n  }\n}\n\nmodule.exports = Tagged\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst ieee754 = require('ieee754')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst parser = require('./decoder.asm')\nconst utils = require('./utils')\nconst c = require('./constants')\nconst Simple = require('./simple')\nconst Tagged = require('./tagged')\nconst { URL } = require('iso-url')\n\n/**\n * Transform binary cbor data into JavaScript objects.\n */\nclass Decoder {\n  /**\n   * @param {Object} [opts={}]\n   * @param {number} [opts.size=65536] - Size of the allocated heap.\n   */\n  constructor (opts) {\n    opts = opts || {}\n\n    if (!opts.size || opts.size \u003c 0x10000) {\n      opts.size = 0x10000\n    } else {\n      // Ensure the size is a power of 2\n      opts.size = utils.nextPowerOf2(opts.size)\n    }\n\n    // Heap use to share the input with the parser\n    this._heap = new ArrayBuffer(opts.size)\n    this._heap8 = new Uint8Array(this._heap)\n    this._buffer = Buffer.from(this._heap)\n\n    this._reset()\n\n    // Known tags\n    this._knownTags = Object.assign({\n      0: (val) =\u003e new Date(val),\n      1: (val) =\u003e new Date(val * 1000),\n      2: (val) =\u003e utils.arrayBufferToBignumber(val),\n      3: (val) =\u003e c.NEG_ONE.minus(utils.arrayBufferToBignumber(val)),\n      4: (v) =\u003e {\n        // const v = new Uint8Array(val)\n        return c.TEN.pow(v[0]).times(v[1])\n      },\n      5: (v) =\u003e {\n        // const v = new Uint8Array(val)\n        return c.TWO.pow(v[0]).times(v[1])\n      },\n      32: (val) =\u003e new URL(val),\n      35: (val) =\u003e new RegExp(val)\n    }, opts.tags)\n\n    // Initialize asm based parser\n    this.parser = parser(global, {\n      // eslint-disable-next-line no-console\n      log: console.log.bind(console),\n      pushInt: this.pushInt.bind(this),\n      pushInt32: this.pushInt32.bind(this),\n      pushInt32Neg: this.pushInt32Neg.bind(this),\n      pushInt64: this.pushInt64.bind(this),\n      pushInt64Neg: this.pushInt64Neg.bind(this),\n      pushFloat: this.pushFloat.bind(this),\n      pushFloatSingle: this.pushFloatSingle.bind(this),\n      pushFloatDouble: this.pushFloatDouble.bind(this),\n      pushTrue: this.pushTrue.bind(this),\n      pushFalse: this.pushFalse.bind(this),\n      pushUndefined: this.pushUndefined.bind(this),\n      pushNull: this.pushNull.bind(this),\n      pushInfinity: this.pushInfinity.bind(this),\n      pushInfinityNeg: this.pushInfinityNeg.bind(this),\n      pushNaN: this.pushNaN.bind(this),\n      pushNaNNeg: this.pushNaNNeg.bind(this),\n      pushArrayStart: this.pushArrayStart.bind(this),\n      pushArrayStartFixed: this.pushArrayStartFixed.bind(this),\n      pushArrayStartFixed32: this.pushArrayStartFixed32.bind(this),\n      pushArrayStartFixed64: this.pushArrayStartFixed64.bind(this),\n      pushObjectStart: this.pushObjectStart.bind(this),\n      pushObjectStartFixed: this.pushObjectStartFixed.bind(this),\n      pushObjectStartFixed32: this.pushObjectStartFixed32.bind(this),\n      pushObjectStartFixed64: this.pushObjectStartFixed64.bind(this),\n      pushByteString: this.pushByteString.bind(this),\n      pushByteStringStart: this.pushByteStringStart.bind(this),\n      pushUtf8String: this.pushUtf8String.bind(this),\n      pushUtf8StringStart: this.pushUtf8StringStart.bind(this),\n      pushSimpleUnassigned: this.pushSimpleUnassigned.bind(this),\n      pushTagUnassigned: this.pushTagUnassigned.bind(this),\n      pushTagStart: this.pushTagStart.bind(this),\n      pushTagStart4: this.pushTagStart4.bind(this),\n      pushTagStart8: this.pushTagStart8.bind(this),\n      pushBreak: this.pushBreak.bind(this)\n    }, this._heap)\n  }\n\n  get _depth () {\n    return this._parents.length\n  }\n\n  get _currentParent () {\n    return this._parents[this._depth - 1]\n  }\n\n  get _ref () {\n    return this._currentParent.ref\n  }\n\n  // Finish the current parent\n  _closeParent () {\n    var p = this._parents.pop()\n\n    if (p.length \u003e 0) {\n      throw new Error(`Missing ${p.length} elements`)\n    }\n\n    switch (p.type) {\n      case c.PARENT.TAG:\n        this._push(\n          this.createTag(p.ref[0], p.ref[1])\n        )\n        break\n      case c.PARENT.BYTE_STRING:\n        this._push(this.createByteString(p.ref, p.length))\n        break\n      case c.PARENT.UTF8_STRING:\n        this._push(this.createUtf8String(p.ref, p.length))\n        break\n      case c.PARENT.MAP:\n        if (p.values % 2 \u003e 0) {\n          throw new Error('Odd number of elements in the map')\n        }\n        this._push(this.createMap(p.ref, p.length))\n        break\n      case c.PARENT.OBJECT:\n        if (p.values % 2 \u003e 0) {\n          throw new Error('Odd number of elements in the map')\n        }\n        this._push(this.createObject(p.ref, p.length))\n        break\n      case c.PARENT.ARRAY:\n        this._push(this.createArray(p.ref, p.length))\n        break\n      default:\n        break\n    }\n\n    if (this._currentParent \u0026\u0026 this._currentParent.type === c.PARENT.TAG) {\n      this._dec()\n    }\n  }\n\n  // Reduce the expected length of the current parent by one\n  _dec () {\n    const p = this._currentParent\n    // The current parent does not know the epxected child length\n\n    if (p.length \u003c 0) {\n      return\n    }\n\n    p.length--\n\n    // All children were seen, we can close the current parent\n    if (p.length === 0) {\n      this._closeParent()\n    }\n  }\n\n  // Push any value to the current parent\n  _push (val, hasChildren) {\n    const p = this._currentParent\n    p.values++\n\n    switch (p.type) {\n      case c.PARENT.ARRAY:\n      case c.PARENT.BYTE_STRING:\n      case c.PARENT.UTF8_STRING:\n        if (p.length \u003e -1) {\n          this._ref[this._ref.length - p.length] = val\n        } else {\n          this._ref.push(val)\n        }\n        this._dec()\n        break\n      case c.PARENT.OBJECT:\n        if (p.tmpKey != null) {\n          this._ref[p.tmpKey] = val\n          p.tmpKey = null\n          this._dec()\n        } else {\n          p.tmpKey = val\n\n          if (typeof p.tmpKey !== 'string') {\n            // too bad, convert to a Map\n            p.type = c.PARENT.MAP\n            p.ref = utils.buildMap(p.ref)\n          }\n        }\n        break\n      case c.PARENT.MAP:\n        if (p.tmpKey != null) {\n          this._ref.set(p.tmpKey, val)\n          p.tmpKey = null\n          this._dec()\n        } else {\n          p.tmpKey = val\n        }\n        break\n      case c.PARENT.TAG:\n        this._ref.push(val)\n        if (!hasChildren) {\n          this._dec()\n        }\n        break\n      default:\n        throw new Error('Unknown parent type')\n    }\n  }\n\n  // Create a new parent in the parents list\n  _createParent (obj, type, len) {\n    this._parents[this._depth] = {\n      type: type,\n      length: len,\n      ref: obj,\n      values: 0,\n      tmpKey: null\n    }\n  }\n\n  // Reset all state back to the beginning, also used for initiatlization\n  _reset () {\n    this._res = []\n    this._parents = [{\n      type: c.PARENT.ARRAY,\n      length: -1,\n      ref: this._res,\n      values: 0,\n      tmpKey: null\n    }]\n  }\n\n  // -- Interface to customize deoding behaviour\n  createTag (tagNumber, value) {\n    const typ = this._knownTags[tagNumber]\n\n    if (!typ) {\n      return new Tagged(tagNumber, value)\n    }\n\n    return typ(value)\n  }\n\n  createMap (obj, len) {\n    return obj\n  }\n\n  createObject (obj, len) {\n    return obj\n  }\n\n  createArray (arr, len) {\n    return arr\n  }\n\n  createByteString (raw, len) {\n    return Buffer.concat(raw)\n  }\n\n  createByteStringFromHeap (start, end) {\n    if (start === end) {\n      return Buffer.alloc(0)\n    }\n\n    return Buffer.from(this._heap.slice(start, end))\n  }\n\n  createInt (val) {\n    return val\n  }\n\n  createInt32 (f, g) {\n    return utils.buildInt32(f, g)\n  }\n\n  createInt64 (f1, f2, g1, g2) {\n    return utils.buildInt64(f1, f2, g1, g2)\n  }\n\n  createFloat (val) {\n    return val\n  }\n\n  createFloatSingle (a, b, c, d) {\n    return ieee754.read([a, b, c, d], 0, false, 23, 4)\n  }\n\n  createFloatDouble (a, b, c, d, e, f, g, h) {\n    return ieee754.read([a, b, c, d, e, f, g, h], 0, false, 52, 8)\n  }\n\n  createInt32Neg (f, g) {\n    return -1 - utils.buildInt32(f, g)\n  }\n\n  createInt64Neg (f1, f2, g1, g2) {\n    const f = utils.buildInt32(f1, f2)\n    const g = utils.buildInt32(g1, g2)\n\n    if (f \u003e c.MAX_SAFE_HIGH) {\n      return c.NEG_ONE.minus(new Bignumber(f).times(c.SHIFT32).plus(g))\n    }\n\n    return -1 - ((f * c.SHIFT32) + g)\n  }\n\n  createTrue () {\n    return true\n  }\n\n  createFalse () {\n    return false\n  }\n\n  createNull () {\n    return null\n  }\n\n  createUndefined () {\n    return undefined\n  }\n\n  createInfinity () {\n    return Infinity\n  }\n\n  createInfinityNeg () {\n    return -Infinity\n  }\n\n  createNaN () {\n    return NaN\n  }\n\n  createNaNNeg () {\n    return -NaN\n  }\n\n  createUtf8String (raw, len) {\n    return raw.join('')\n  }\n\n  createUtf8StringFromHeap (start, end) {\n    if (start === end) {\n      return ''\n    }\n\n    return this._buffer.toString('utf8', start, end)\n  }\n\n  createSimpleUnassigned (val) {\n    return new Simple(val)\n  }\n\n  // -- Interface for decoder.asm.js\n\n  pushInt (val) {\n    this._push(this.createInt(val))\n  }\n\n  pushInt32 (f, g) {\n    this._push(this.createInt32(f, g))\n  }\n\n  pushInt64 (f1, f2, g1, g2) {\n    this._push(this.createInt64(f1, f2, g1, g2))\n  }\n\n  pushFloat (val) {\n    this._push(this.createFloat(val))\n  }\n\n  pushFloatSingle (a, b, c, d) {\n    this._push(this.createFloatSingle(a, b, c, d))\n  }\n\n  pushFloatDouble (a, b, c, d, e, f, g, h) {\n    this._push(this.createFloatDouble(a, b, c, d, e, f, g, h))\n  }\n\n  pushInt32Neg (f, g) {\n    this._push(this.createInt32Neg(f, g))\n  }\n\n  pushInt64Neg (f1, f2, g1, g2) {\n    this._push(this.createInt64Neg(f1, f2, g1, g2))\n  }\n\n  pushTrue () {\n    this._push(this.createTrue())\n  }\n\n  pushFalse () {\n    this._push(this.createFalse())\n  }\n\n  pushNull () {\n    this._push(this.createNull())\n  }\n\n  pushUndefined () {\n    this._push(this.createUndefined())\n  }\n\n  pushInfinity () {\n    this._push(this.createInfinity())\n  }\n\n  pushInfinityNeg () {\n    this._push(this.createInfinityNeg())\n  }\n\n  pushNaN () {\n    this._push(this.createNaN())\n  }\n\n  pushNaNNeg () {\n    this._push(this.createNaNNeg())\n  }\n\n  pushArrayStart () {\n    this._createParent([], c.PARENT.ARRAY, -1)\n  }\n\n  pushArrayStartFixed (len) {\n    this._createArrayStartFixed(len)\n  }\n\n  pushArrayStartFixed32 (len1, len2) {\n    const len = utils.buildInt32(len1, len2)\n    this._createArrayStartFixed(len)\n  }\n\n  pushArrayStartFixed64 (len1, len2, len3, len4) {\n    const len = utils.buildInt64(len1, len2, len3, len4)\n    this._createArrayStartFixed(len)\n  }\n\n  pushObjectStart () {\n    this._createObjectStartFixed(-1)\n  }\n\n  pushObjectStartFixed (len) {\n    this._createObjectStartFixed(len)\n  }\n\n  pushObjectStartFixed32 (len1, len2) {\n    const len = utils.buildInt32(len1, len2)\n    this._createObjectStartFixed(len)\n  }\n\n  pushObjectStartFixed64 (len1, len2, len3, len4) {\n    const len = utils.buildInt64(len1, len2, len3, len4)\n    this._createObjectStartFixed(len)\n  }\n\n  pushByteStringStart () {\n    this._parents[this._depth] = {\n      type: c.PARENT.BYTE_STRING,\n      length: -1,\n      ref: [],\n      values: 0,\n      tmpKey: null\n    }\n  }\n\n  pushByteString (start, end) {\n    this._push(this.createByteStringFromHeap(start, end))\n  }\n\n  pushUtf8StringStart () {\n    this._parents[this._depth] = {\n      type: c.PARENT.UTF8_STRING,\n      length: -1,\n      ref: [],\n      values: 0,\n      tmpKey: null\n    }\n  }\n\n  pushUtf8String (start, end) {\n    this._push(this.createUtf8StringFromHeap(start, end))\n  }\n\n  pushSimpleUnassigned (val) {\n    this._push(this.createSimpleUnassigned(val))\n  }\n\n  pushTagStart (tag) {\n    this._parents[this._depth] = {\n      type: c.PARENT.TAG,\n      length: 1,\n      ref: [tag]\n    }\n  }\n\n  pushTagStart4 (f, g) {\n    this.pushTagStart(utils.buildInt32(f, g))\n  }\n\n  pushTagStart8 (f1, f2, g1, g2) {\n    this.pushTagStart(utils.buildInt64(f1, f2, g1, g2))\n  }\n\n  pushTagUnassigned (tagNumber) {\n    this._push(this.createTag(tagNumber))\n  }\n\n  pushBreak () {\n    if (this._currentParent.length \u003e -1) {\n      throw new Error('Unexpected break')\n    }\n\n    this._closeParent()\n  }\n\n  _createObjectStartFixed (len) {\n    if (len === 0) {\n      this._push(this.createObject({}))\n      return\n    }\n\n    this._createParent({}, c.PARENT.OBJECT, len)\n  }\n\n  _createArrayStartFixed (len) {\n    if (len === 0) {\n      this._push(this.createArray([]))\n      return\n    }\n\n    this._createParent(new Array(len), c.PARENT.ARRAY, len)\n  }\n\n  _decode (input) {\n    if (input.byteLength === 0) {\n      throw new Error('Input too short')\n    }\n\n    this._reset()\n    this._heap8.set(input)\n    const code = this.parser.parse(input.byteLength)\n\n    if (this._depth \u003e 1) {\n      while (this._currentParent.length === 0) {\n        this._closeParent()\n      }\n      if (this._depth \u003e 1) {\n        throw new Error('Undeterminated nesting')\n      }\n    }\n\n    if (code \u003e 0) {\n      throw new Error('Failed to parse')\n    }\n\n    if (this._res.length === 0) {\n      throw new Error('No valid result')\n    }\n  }\n\n  // -- Public Interface\n\n  decodeFirst (input) {\n    this._decode(input)\n\n    return this._res[0]\n  }\n\n  decodeAll (input) {\n    this._decode(input)\n\n    return this._res\n  }\n\n  /**\n   * Decode the first cbor object.\n   *\n   * @param {Buffer|string} input\n   * @param {string} [enc='hex'] - Encoding used if a string is passed.\n   * @returns {*}\n   */\n  static decode (input, enc) {\n    if (typeof input === 'string') {\n      input = Buffer.from(input, enc || 'hex')\n    }\n\n    const dec = new Decoder({ size: input.length })\n    return dec.decodeFirst(input)\n  }\n\n  /**\n   * Decode all cbor objects.\n   *\n   * @param {Buffer|string} input\n   * @param {string} [enc='hex'] - Encoding used if a string is passed.\n   * @returns {Array\u003c*\u003e}\n   */\n  static decodeAll (input, enc) {\n    if (typeof input === 'string') {\n      input = Buffer.from(input, enc || 'hex')\n    }\n\n    const dec = new Decoder({ size: input.length })\n    return dec.decodeAll(input)\n  }\n}\n\nDecoder.decodeFirst = Decoder.decode\n\nmodule.exports = Decoder\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Decoder = require('./decoder')\nconst utils = require('./utils')\n\n/**\n * Output the diagnostic format from a stream of CBOR bytes.\n *\n */\nclass Diagnose extends Decoder {\n  createTag (tagNumber, value) {\n    return `${tagNumber}(${value})`\n  }\n\n  createInt (val) {\n    return super.createInt(val).toString()\n  }\n\n  createInt32 (f, g) {\n    return super.createInt32(f, g).toString()\n  }\n\n  createInt64 (f1, f2, g1, g2) {\n    return super.createInt64(f1, f2, g1, g2).toString()\n  }\n\n  createInt32Neg (f, g) {\n    return super.createInt32Neg(f, g).toString()\n  }\n\n  createInt64Neg (f1, f2, g1, g2) {\n    return super.createInt64Neg(f1, f2, g1, g2).toString()\n  }\n\n  createTrue () {\n    return 'true'\n  }\n\n  createFalse () {\n    return 'false'\n  }\n\n  createFloat (val) {\n    const fl = super.createFloat(val)\n    if (utils.isNegativeZero(val)) {\n      return '-0_1'\n    }\n\n    return `${fl}_1`\n  }\n\n  createFloatSingle (a, b, c, d) {\n    const fl = super.createFloatSingle(a, b, c, d)\n    return `${fl}_2`\n  }\n\n  createFloatDouble (a, b, c, d, e, f, g, h) {\n    const fl = super.createFloatDouble(a, b, c, d, e, f, g, h)\n    return `${fl}_3`\n  }\n\n  createByteString (raw, len) {\n    const val = raw.join(', ')\n\n    if (len === -1) {\n      return `(_ ${val})`\n    }\n    return `h'${val}`\n  }\n\n  createByteStringFromHeap (start, end) {\n    const val = (Buffer.from(\n      super.createByteStringFromHeap(start, end)\n    )).toString('hex')\n\n    return `h'${val}'`\n  }\n\n  createInfinity () {\n    return 'Infinity_1'\n  }\n\n  createInfinityNeg () {\n    return '-Infinity_1'\n  }\n\n  createNaN () {\n    return 'NaN_1'\n  }\n\n  createNaNNeg () {\n    return '-NaN_1'\n  }\n\n  createNull () {\n    return 'null'\n  }\n\n  createUndefined () {\n    return 'undefined'\n  }\n\n  createSimpleUnassigned (val) {\n    return `simple(${val})`\n  }\n\n  createArray (arr, len) {\n    const val = super.createArray(arr, len)\n\n    if (len === -1) {\n      // indefinite\n      return `[_ ${val.join(', ')}]`\n    }\n\n    return `[${val.join(', ')}]`\n  }\n\n  createMap (map, len) {\n    const val = super.createMap(map)\n    const list = Array.from(val.keys())\n      .reduce(collectObject(val), '')\n\n    if (len === -1) {\n      return `{_ ${list}}`\n    }\n\n    return `{${list}}`\n  }\n\n  createObject (obj, len) {\n    const val = super.createObject(obj)\n    const map = Object.keys(val)\n      .reduce(collectObject(val), '')\n\n    if (len === -1) {\n      return `{_ ${map}}`\n    }\n\n    return `{${map}}`\n  }\n\n  createUtf8String (raw, len) {\n    const val = raw.join(', ')\n\n    if (len === -1) {\n      return `(_ ${val})`\n    }\n\n    return `\"${val}\"`\n  }\n\n  createUtf8StringFromHeap (start, end) {\n    const val = (Buffer.from(\n      super.createUtf8StringFromHeap(start, end)\n    )).toString('utf8')\n\n    return `\"${val}\"`\n  }\n\n  static diagnose (input, enc) {\n    if (typeof input === 'string') {\n      input = Buffer.from(input, enc || 'hex')\n    }\n\n    const dec = new Diagnose()\n    return dec.decodeFirst(input)\n  }\n}\n\nmodule.exports = Diagnose\n\nfunction collectObject (val) {\n  return (acc, key) =\u003e {\n    if (acc) {\n      return `${acc}, ${key}: ${val[key]}`\n    }\n    return `${key}: ${val[key]}`\n  }\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst { URL } = require('iso-url')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst utils = require('./utils')\nconst constants = require('./constants')\nconst MT = constants.MT\nconst NUMBYTES = constants.NUMBYTES\nconst SHIFT32 = constants.SHIFT32\nconst SYMS = constants.SYMS\nconst TAG = constants.TAG\nconst HALF = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.NUMBYTES.TWO\nconst FLOAT = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.NUMBYTES.FOUR\nconst DOUBLE = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.NUMBYTES.EIGHT\nconst TRUE = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.SIMPLE.TRUE\nconst FALSE = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.SIMPLE.FALSE\nconst UNDEFINED = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.SIMPLE.UNDEFINED\nconst NULL = (constants.MT.SIMPLE_FLOAT \u003c\u003c 5) | constants.SIMPLE.NULL\n\nconst MAXINT_BN = new Bignumber('0x20000000000000')\nconst BUF_NAN = Buffer.from('f97e00', 'hex')\nconst BUF_INF_NEG = Buffer.from('f9fc00', 'hex')\nconst BUF_INF_POS = Buffer.from('f97c00', 'hex')\n\nfunction toType (obj) {\n  // [object Type]\n  // --------8---1\n  return ({}).toString.call(obj).slice(8, -1)\n}\n\n/**\n * Transform JavaScript values into CBOR bytes\n *\n */\nclass Encoder {\n  /**\n   * @param {Object} [options={}]\n   * @param {function(Buffer)} options.stream\n   */\n  constructor (options) {\n    options = options || {}\n\n    this.streaming = typeof options.stream === 'function'\n    this.onData = options.stream\n\n    this.semanticTypes = [\n      [URL, this._pushUrl],\n      [Bignumber, this._pushBigNumber]\n    ]\n\n    const addTypes = options.genTypes || []\n    const len = addTypes.length\n    for (let i = 0; i \u003c len; i++) {\n      this.addSemanticType(\n        addTypes[i][0],\n        addTypes[i][1]\n      )\n    }\n\n    this._reset()\n  }\n\n  addSemanticType (type, fun) {\n    const len = this.semanticTypes.length\n    for (let i = 0; i \u003c len; i++) {\n      const typ = this.semanticTypes[i][0]\n      if (typ === type) {\n        const old = this.semanticTypes[i][1]\n        this.semanticTypes[i][1] = fun\n        return old\n      }\n    }\n    this.semanticTypes.push([type, fun])\n    return null\n  }\n\n  push (val) {\n    if (!val) {\n      return true\n    }\n\n    this.result[this.offset] = val\n    this.resultMethod[this.offset] = 0\n    this.resultLength[this.offset] = val.length\n    this.offset++\n\n    if (this.streaming) {\n      this.onData(this.finalize())\n    }\n\n    return true\n  }\n\n  pushWrite (val, method, len) {\n    this.result[this.offset] = val\n    this.resultMethod[this.offset] = method\n    this.resultLength[this.offset] = len\n    this.offset++\n\n    if (this.streaming) {\n      this.onData(this.finalize())\n    }\n\n    return true\n  }\n\n  _pushUInt8 (val) {\n    return this.pushWrite(val, 1, 1)\n  }\n\n  _pushUInt16BE (val) {\n    return this.pushWrite(val, 2, 2)\n  }\n\n  _pushUInt32BE (val) {\n    return this.pushWrite(val, 3, 4)\n  }\n\n  _pushDoubleBE (val) {\n    return this.pushWrite(val, 4, 8)\n  }\n\n  _pushNaN () {\n    return this.push(BUF_NAN)\n  }\n\n  _pushInfinity (obj) {\n    const half = (obj \u003c 0) ? BUF_INF_NEG : BUF_INF_POS\n    return this.push(half)\n  }\n\n  _pushFloat (obj) {\n    const b2 = Buffer.allocUnsafe(2)\n\n    if (utils.writeHalf(b2, obj)) {\n      if (utils.parseHalf(b2) === obj) {\n        return this._pushUInt8(HALF) \u0026\u0026 this.push(b2)\n      }\n    }\n\n    const b4 = Buffer.allocUnsafe(4)\n    b4.writeFloatBE(obj, 0)\n    if (b4.readFloatBE(0) === obj) {\n      return this._pushUInt8(FLOAT) \u0026\u0026 this.push(b4)\n    }\n\n    return this._pushUInt8(DOUBLE) \u0026\u0026 this._pushDoubleBE(obj)\n  }\n\n  _pushInt (obj, mt, orig) {\n    const m = mt \u003c\u003c 5\n    if (obj \u003c 24) {\n      return this._pushUInt8(m | obj)\n    }\n\n    if (obj \u003c= 0xff) {\n      return this._pushUInt8(m | NUMBYTES.ONE) \u0026\u0026 this._pushUInt8(obj)\n    }\n\n    if (obj \u003c= 0xffff) {\n      return this._pushUInt8(m | NUMBYTES.TWO) \u0026\u0026 this._pushUInt16BE(obj)\n    }\n\n    if (obj \u003c= 0xffffffff) {\n      return this._pushUInt8(m | NUMBYTES.FOUR) \u0026\u0026 this._pushUInt32BE(obj)\n    }\n\n    if (obj \u003c= Number.MAX_SAFE_INTEGER) {\n      return this._pushUInt8(m | NUMBYTES.EIGHT) \u0026\u0026\n        this._pushUInt32BE(Math.floor(obj / SHIFT32)) \u0026\u0026\n        this._pushUInt32BE(obj % SHIFT32)\n    }\n\n    if (mt === MT.NEG_INT) {\n      return this._pushFloat(orig)\n    }\n\n    return this._pushFloat(obj)\n  }\n\n  _pushIntNum (obj) {\n    if (obj \u003c 0) {\n      return this._pushInt(-obj - 1, MT.NEG_INT, obj)\n    } else {\n      return this._pushInt(obj, MT.POS_INT)\n    }\n  }\n\n  _pushNumber (obj) {\n    switch (false) {\n      case (obj === obj): // eslint-disable-line\n        return this._pushNaN(obj)\n      case isFinite(obj):\n        return this._pushInfinity(obj)\n      case ((obj % 1) !== 0):\n        return this._pushIntNum(obj)\n      default:\n        return this._pushFloat(obj)\n    }\n  }\n\n  _pushString (obj) {\n    const len = Buffer.byteLength(obj, 'utf8')\n    return this._pushInt(len, MT.UTF8_STRING) \u0026\u0026 this.pushWrite(obj, 5, len)\n  }\n\n  _pushBoolean (obj) {\n    return this._pushUInt8(obj ? TRUE : FALSE)\n  }\n\n  _pushUndefined (obj) {\n    return this._pushUInt8(UNDEFINED)\n  }\n\n  _pushArray (gen, obj) {\n    const len = obj.length\n    if (!gen._pushInt(len, MT.ARRAY)) {\n      return false\n    }\n    for (let j = 0; j \u003c len; j++) {\n      if (!gen.pushAny(obj[j])) {\n        return false\n      }\n    }\n    return true\n  }\n\n  _pushTag (tag) {\n    return this._pushInt(tag, MT.TAG)\n  }\n\n  _pushDate (gen, obj) {\n    // Round date, to get seconds since 1970-01-01 00:00:00 as defined in\n    // Sec. 2.4.1 and get a possibly more compact encoding. Note that it is\n    // still allowed to encode fractions of seconds which can be achieved by\n    // changing overwriting the encode function for Date objects.\n    return gen._pushTag(TAG.DATE_EPOCH) \u0026\u0026 gen.pushAny(Math.round(obj / 1000))\n  }\n\n  _pushBuffer (gen, obj) {\n    return gen._pushInt(obj.length, MT.BYTE_STRING) \u0026\u0026 gen.push(obj)\n  }\n\n  _pushNoFilter (gen, obj) {\n    return gen._pushBuffer(gen, obj.slice())\n  }\n\n  _pushRegexp (gen, obj) {\n    return gen._pushTag(TAG.REGEXP) \u0026\u0026 gen.pushAny(obj.source)\n  }\n\n  _pushSet (gen, obj) {\n    if (!gen._pushInt(obj.size, MT.ARRAY)) {\n      return false\n    }\n    for (const x of obj) {\n      if (!gen.pushAny(x)) {\n        return false\n      }\n    }\n    return true\n  }\n\n  _pushUrl (gen, obj) {\n    return gen._pushTag(TAG.URI) \u0026\u0026 gen.pushAny(obj.format())\n  }\n\n  _pushBigint (obj) {\n    let tag = TAG.POS_BIGINT\n    if (obj.isNegative()) {\n      obj = obj.negated().minus(1)\n      tag = TAG.NEG_BIGINT\n    }\n    let str = obj.toString(16)\n    if (str.length % 2) {\n      str = '0' + str\n    }\n    const buf = Buffer.from(str, 'hex')\n    return this._pushTag(tag) \u0026\u0026 this._pushBuffer(this, buf)\n  }\n\n  _pushBigNumber (gen, obj) {\n    if (obj.isNaN()) {\n      return gen._pushNaN()\n    }\n    if (!obj.isFinite()) {\n      return gen._pushInfinity(obj.isNegative() ? -Infinity : Infinity)\n    }\n    if (obj.isInteger()) {\n      return gen._pushBigint(obj)\n    }\n    if (!(gen._pushTag(TAG.DECIMAL_FRAC) \u0026\u0026\n      gen._pushInt(2, MT.ARRAY))) {\n      return false\n    }\n\n    const dec = obj.decimalPlaces()\n    const slide = obj.multipliedBy(new Bignumber(10).pow(dec))\n    if (!gen._pushIntNum(-dec)) {\n      return false\n    }\n    if (slide.abs().isLessThan(MAXINT_BN)) {\n      return gen._pushIntNum(slide.toNumber())\n    } else {\n      return gen._pushBigint(slide)\n    }\n  }\n\n  _pushMap (gen, obj) {\n    if (!gen._pushInt(obj.size, MT.MAP)) {\n      return false\n    }\n\n    return this._pushRawMap(\n      obj.size,\n      Array.from(obj)\n    )\n  }\n\n  _pushObject (obj) {\n    if (!obj) {\n      return this._pushUInt8(NULL)\n    }\n\n    var len = this.semanticTypes.length\n    for (var i = 0; i \u003c len; i++) {\n      if (obj instanceof this.semanticTypes[i][0]) {\n        return this.semanticTypes[i][1].call(obj, this, obj)\n      }\n    }\n\n    var f = obj.encodeCBOR\n    if (typeof f === 'function') {\n      return f.call(obj, this)\n    }\n\n    var keys = Object.keys(obj)\n    var keyLength = keys.length\n    if (!this._pushInt(keyLength, MT.MAP)) {\n      return false\n    }\n\n    return this._pushRawMap(\n      keyLength,\n      keys.map((k) =\u003e [k, obj[k]])\n    )\n  }\n\n  _pushRawMap (len, map) {\n    // Sort keys for canoncialization\n    // 1. encode key\n    // 2. shorter key comes before longer key\n    // 3. same length keys are sorted with lower\n    //    byte value before higher\n\n    map = map.map(function (a) {\n      a[0] = Encoder.encode(a[0])\n      return a\n    }).sort(utils.keySorter)\n\n    for (var j = 0; j \u003c len; j++) {\n      if (!this.push(map[j][0])) {\n        return false\n      }\n\n      if (!this.pushAny(map[j][1])) {\n        return false\n      }\n    }\n\n    return true\n  }\n\n  /**\n   * Alias for `.pushAny`\n   *\n   * @param {*} obj\n   * @returns {boolean} true on success\n   */\n  write (obj) {\n    return this.pushAny(obj)\n  }\n\n  /**\n   * Push any supported type onto the encoded stream\n   *\n   * @param {any} obj\n   * @returns {boolean} true on success\n   */\n  pushAny (obj) {\n    var typ = toType(obj)\n\n    switch (typ) {\n      case 'Number':\n        return this._pushNumber(obj)\n      case 'String':\n        return this._pushString(obj)\n      case 'Boolean':\n        return this._pushBoolean(obj)\n      case 'Object':\n        return this._pushObject(obj)\n      case 'Array':\n        return this._pushArray(this, obj)\n      case 'Uint8Array':\n        return this._pushBuffer(this, Buffer.isBuffer(obj) ? obj : Buffer.from(obj))\n      case 'Null':\n        return this._pushUInt8(NULL)\n      case 'Undefined':\n        return this._pushUndefined(obj)\n      case 'Map':\n        return this._pushMap(this, obj)\n      case 'Set':\n        return this._pushSet(this, obj)\n      case 'URL':\n        return this._pushUrl(this, obj)\n      case 'BigNumber':\n        return this._pushBigNumber(this, obj)\n      case 'Date':\n        return this._pushDate(this, obj)\n      case 'RegExp':\n        return this._pushRegexp(this, obj)\n      case 'Symbol':\n        switch (obj) {\n          case SYMS.NULL:\n            return this._pushObject(null)\n          case SYMS.UNDEFINED:\n            return this._pushUndefined(undefined)\n          // TODO: Add pluggable support for other symbols\n          default:\n            throw new Error('Unknown symbol: ' + obj.toString())\n        }\n      default:\n        throw new Error('Unknown type: ' + typeof obj + ', ' + (obj ? obj.toString() : ''))\n    }\n  }\n\n  finalize () {\n    if (this.offset === 0) {\n      return null\n    }\n\n    var result = this.result\n    var resultLength = this.resultLength\n    var resultMethod = this.resultMethod\n    var offset = this.offset\n\n    // Determine the size of the buffer\n    var size = 0\n    var i = 0\n\n    for (; i \u003c offset; i++) {\n      size += resultLength[i]\n    }\n\n    var res = Buffer.allocUnsafe(size)\n    var index = 0\n    var length = 0\n\n    // Write the content into the result buffer\n    for (i = 0; i \u003c offset; i++) {\n      length = resultLength[i]\n\n      switch (resultMethod[i]) {\n        case 0:\n          result[i].copy(res, index)\n          break\n        case 1:\n          res.writeUInt8(result[i], index, true)\n          break\n        case 2:\n          res.writeUInt16BE(result[i], index, true)\n          break\n        case 3:\n          res.writeUInt32BE(result[i], index, true)\n          break\n        case 4:\n          res.writeDoubleBE(result[i], index, true)\n          break\n        case 5:\n          res.write(result[i], index, length, 'utf8')\n          break\n        default:\n          throw new Error('unkown method')\n      }\n\n      index += length\n    }\n\n    var tmp = res\n\n    this._reset()\n\n    return tmp\n  }\n\n  _reset () {\n    this.result = []\n    this.resultMethod = []\n    this.resultLength = []\n    this.offset = 0\n  }\n\n  /**\n   * Encode the given value\n   * @param {*} o\n   * @returns {Buffer}\n   */\n  static encode (o) {\n    const enc = new Encoder()\n    const ret = enc.pushAny(o)\n    if (!ret) {\n      throw new Error('Failed to encode input')\n    }\n\n    return enc.finalize()\n  }\n}\n\nmodule.exports = Encoder\n","'use strict'\n\n// exports.Commented = require('./commented')\nexports.Diagnose = require('./diagnose')\nexports.Decoder = require('./decoder')\nexports.Encoder = require('./encoder')\nexports.Simple = require('./simple')\nexports.Tagged = require('./tagged')\n\n// exports.comment = exports.Commented.comment\nexports.decodeAll = exports.Decoder.decodeAll\nexports.decodeFirst = exports.Decoder.decodeFirst\nexports.diagnose = exports.Diagnose.diagnose\nexports.encode = exports.Encoder.encode\nexports.decode = exports.Decoder.decode\n\nexports.leveldb = {\n  decode: exports.Decoder.decodeAll,\n  encode: exports.Encoder.encode,\n  buffer: true,\n  name: 'cbor'\n}\n","import * as cjsm from \"borc\";export const { Diagnose,Decoder,Encoder,Simple,Tagged,decodeAll,decodeFirst,diagnose,encode,decode,leveldb } = cjsm;export default cjsm.default ?? cjsm;"],"version":3}
