{"version":3,"sources":["../../../node_modules/.bun/data-uri-to-buffer@4.0.1/node_modules/data-uri-to-buffer/src/index.ts","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/errors/base.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/errors/fetch-error.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/body.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/headers.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is-redirect.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/response.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/utils/get-search.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/utils/referrer.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/request.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/errors/abort-error.js","../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/index.js"],"names":["Buffer","types","INTERNALS","deprecate","formatUrl","response","http","Stream","pump","PassThrough"],"mappings":";;;;;;;;;;;;;AAaM,SAAU,gBAAgB,GAAA,EAAW;AAC1C,EAAA,IAAI,CAAC,SAAA,CAAU,IAAA,CAAK,GAAG,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,UACT,kEAAkE,CAAA;;AAKpE,EAAA,GAAA,GAAM,GAAA,CAAI,OAAA,CAAQ,QAAA,EAAU,EAAE,CAAA;AAG9B,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AAClC,EAAA,IAAI,UAAA,KAAe,EAAA,IAAM,UAAA,IAAc,CAAA,EAAG;AACzC,IAAA,MAAM,IAAI,UAAU,qBAAqB,CAAA;;AAI1C,EAAA,MAAM,OAAO,GAAA,CAAI,SAAA,CAAU,GAAG,UAAU,CAAA,CAAE,MAAM,GAAG,CAAA;AAEnD,EAAA,IAAI,OAAA,GAAU,EAAA;AACd,EAAA,IAAI,MAAA,GAAS,KAAA;AACb,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,CAAC,CAAA,IAAK,YAAA;AACxB,EAAA,IAAI,QAAA,GAAW,IAAA;AACf,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACrC,IAAA,IAAI,IAAA,CAAK,CAAC,CAAA,KAAM,QAAA,EAAU;AACzB,MAAA,MAAA,GAAS,IAAA;AACA,IAAA,CAAA,MAAA,IAAA,IAAA,CAAK,CAAC,CAAA,EAAG;AAClB,MAAA,QAAA,IAAY,CAAA,CAAA,EAAM,IAAA,CAAK,CAAC,CAAC,CAAA,CAAA;AACzB,MAAA,IAAI,KAAK,CAAC,CAAA,CAAE,OAAA,CAAQ,UAAU,MAAM,CAAA,EAAG;AACtC,QAAA,OAAA,GAAU,IAAA,CAAK,CAAC,CAAA,CAAE,SAAA,CAAU,CAAC,CAAA;;;;AAKhC,EAAA,IAAI,CAAC,IAAA,CAAK,CAAC,CAAA,IAAK,CAAC,QAAQ,MAAA,EAAQ;AAChC,IAAA,QAAA,IAAY,mBAAA;AACZ,IAAA,OAAA,GAAU,UAAA;;AAIX,EAAA,MAAM,QAAA,GAAW,SAAS,QAAA,GAAW,OAAA;AACrC,EAAA,MAAM,OAAO,QAAA,CAAS,GAAA,CAAI,SAAA,CAAU,UAAA,GAAa,CAAC,CAAC,CAAA;AACnD,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,QAAQ,CAAA;AAGzC,EAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AACd,EAAA,MAAA,CAAO,QAAA,GAAW,QAAA;AAGlB,EAAA,MAAA,CAAO,OAAA,GAAU,OAAA;AAEjB,EAAA,OAAO,MAAA;AACR;AAEA,IAAA,YAAA,GAAe,eAAA;;;ACnER,IAAM,cAAA,GAAN,cAA6B,KAAA,CAAM;AAAA,EACzC,WAAA,CAAY,SAAS,IAAA,EAAM;AAC1B,IAAA,KAAA,CAAM,OAAO,CAAA;AAEb,IAAA,KAAA,CAAM,iBAAA,CAAkB,IAAA,EAAM,IAAA,CAAK,WAAW,CAAA;AAE9C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACb;AAAA,EAEA,IAAI,IAAA,GAAO;AACV,IAAA,OAAO,KAAK,WAAA,CAAY,IAAA;AAAA,EACzB;AAAA,EAEA,KAAK,MAAA,CAAO,WAAW,CAAA,GAAI;AAC1B,IAAA,OAAO,KAAK,WAAA,CAAY,IAAA;AAAA,EACzB;AACD,CAAA;;;ACNO,IAAM,UAAA,GAAN,cAAyB,cAAA,CAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9C,WAAA,CAAY,OAAA,EAAS,IAAA,EAAM,WAAA,EAAa;AACvC,IAAA,KAAA,CAAM,SAAS,IAAI,CAAA;AAEnB,IAAA,IAAI,WAAA,EAAa;AAEhB,MAAA,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,GAAQ,WAAA,CAAY,IAAA;AACrC,MAAA,IAAA,CAAK,iBAAiB,WAAA,CAAY,OAAA;AAAA,IACnC;AAAA,EACD;AACD;;;ACnBA,IAAM,OAAO,MAAA,CAAO,WAAA;AAQb,IAAM,wBAAwB,CAAA,MAAA,KAAU;AAC9C,EAAA,OACC,OAAO,MAAA,KAAW,QAAA,IAClB,OAAO,OAAO,MAAA,KAAW,UAAA,IACzB,OAAO,MAAA,CAAO,MAAA,KAAW,UAAA,IACzB,OAAO,MAAA,CAAO,QAAQ,UAAA,IACtB,OAAO,MAAA,CAAO,MAAA,KAAW,UAAA,IACzB,OAAO,MAAA,CAAO,GAAA,KAAQ,cACtB,OAAO,MAAA,CAAO,GAAA,KAAQ,UAAA,IACtB,OAAO,MAAA,CAAO,IAAA,KAAS,UAAA,IACvB,MAAA,CAAO,IAAI,CAAA,KAAM,iBAAA;AAEnB,CAAA;AAOO,IAAM,SAAS,CAAA,MAAA,KAAU;AAC/B,EAAA,OACC,MAAA,IACA,OAAO,MAAA,KAAW,QAAA,IAClB,OAAO,OAAO,WAAA,KAAgB,UAAA,IAC9B,OAAO,MAAA,CAAO,IAAA,KAAS,QAAA,IACvB,OAAO,MAAA,CAAO,MAAA,KAAW,UAAA,IACzB,OAAO,MAAA,CAAO,WAAA,KAAgB,cAC9B,eAAA,CAAgB,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA;AAEnC,CAAA;AAOO,IAAM,gBAAgB,CAAA,MAAA,KAAU;AACtC,EAAA,OACC,OAAO,WAAW,QAAA,KACjB,MAAA,CAAO,IAAI,CAAA,KAAM,aAAA,IACjB,MAAA,CAAO,IAAI,CAAA,KAAM,aAAA,CAAA;AAGpB,CAAA;AAUO,IAAM,mBAAA,GAAsB,CAAC,WAAA,EAAa,QAAA,KAAa;AAC7D,EAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,QAAQ,CAAA,CAAE,QAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,WAAW,CAAA,CAAE,QAAA;AAElC,EAAA,OAAO,SAAS,IAAA,IAAQ,IAAA,CAAK,QAAA,CAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AACjD,CAAA;AASO,IAAM,cAAA,GAAiB,CAAC,WAAA,EAAa,QAAA,KAAa;AACxD,EAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,QAAQ,CAAA,CAAE,QAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,WAAW,CAAA,CAAE,QAAA;AAElC,EAAA,OAAO,IAAA,KAAS,IAAA;AACjB,CAAA;;;ACpEA,IAAM,QAAA,GAAW,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA;AAC1C,IAAM,SAAA,0BAAmB,gBAAgB,CAAA;AAWzC,IAAqB,OAArB,MAA0B;AAAA,EACzB,YAAY,IAAA,EAAM;AAAA,IACjB,IAAA,GAAO;AAAA,GACR,GAAI,EAAC,EAAG;AACP,IAAA,IAAI,QAAA,GAAW,IAAA;AAEf,IAAA,IAAI,SAAS,IAAA,EAAM;AAElB,MAAA,IAAA,GAAO,IAAA;AAAA,IACR,CAAA,MAAA,IAAW,qBAAA,CAAsB,IAAI,CAAA,EAAG;AAEvC,MAAA,IAAA,GAAOA,QAAAA,CAAO,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,CAAA;AAAA,IACnC,CAAA,MAAA,IAAW,MAAA,CAAO,IAAI,CAAA,EAAG,CAEzB,MAAA,IAAWA,QAAAA,CAAO,QAAA,CAAS,IAAI,CAAA,EAAG,CAElC,MAAA,IAAW,KAAA,CAAM,gBAAA,CAAiB,IAAI,CAAA,EAAG;AAExC,MAAA,IAAA,GAAOA,QAAAA,CAAO,KAAK,IAAI,CAAA;AAAA,IACxB,CAAA,MAAA,IAAW,WAAA,CAAY,MAAA,CAAO,IAAI,CAAA,EAAG;AAEpC,MAAA,IAAA,GAAOA,SAAO,IAAA,CAAK,IAAA,CAAK,QAAQ,IAAA,CAAK,UAAA,EAAY,KAAK,UAAU,CAAA;AAAA,IACjE,CAAA,MAAA,IAAW,gBAAgB,MAAA,EAAQ,CAEnC,MAAA,IAAW,gBAAgB,QAAA,EAAU;AAEpC,MAAA,IAAA,GAAO,eAAe,IAAI,CAAA;AAC1B,MAAA,QAAA,GAAW,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAAA,IAClC,CAAA,MAAO;AAGN,MAAA,IAAA,GAAOA,QAAAA,CAAO,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,IAChC;AAEA,IAAA,IAAI,MAAA,GAAS,IAAA;AAEb,IAAA,IAAIA,QAAAA,CAAO,QAAA,CAAS,IAAI,CAAA,EAAG;AAC1B,MAAA,MAAA,GAAS,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,IACnC,CAAA,MAAA,IAAW,MAAA,CAAO,IAAI,CAAA,EAAG;AACxB,MAAA,MAAA,GAAS,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA;AAAA,IAC5C;AAEA,IAAA,IAAA,CAAK,SAAS,CAAA,GAAI;AAAA,MACjB,IAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAW,KAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACR;AACA,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAEZ,IAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC3B,MAAA,IAAA,CAAK,EAAA,CAAG,SAAS,CAAA,MAAA,KAAU;AAC1B,QAAA,MAAM,KAAA,GAAQ,MAAA,YAAkB,cAAA,GAC/B,MAAA,GACA,IAAI,UAAA,CAAW,CAAA,4CAAA,EAA+C,IAAA,CAAK,GAAG,CAAA,EAAA,EAAK,MAAA,CAAO,OAAO,CAAA,CAAA,EAAI,UAAU,MAAM,CAAA;AAC9G,QAAA,IAAA,CAAK,SAAS,EAAE,KAAA,GAAQ,KAAA;AAAA,MACzB,CAAC,CAAA;AAAA,IACF;AAAA,EACD;AAAA,EAEA,IAAI,IAAA,GAAO;AACV,IAAA,OAAO,IAAA,CAAK,SAAS,CAAA,CAAE,MAAA;AAAA,EACxB;AAAA,EAEA,IAAI,QAAA,GAAW;AACd,IAAA,OAAO,IAAA,CAAK,SAAS,CAAA,CAAE,SAAA;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,WAAA,GAAc;AACnB,IAAA,MAAM,EAAC,MAAA,EAAQ,UAAA,EAAY,YAAU,GAAI,MAAM,YAAY,IAAI,CAAA;AAC/D,IAAA,OAAO,MAAA,CAAO,KAAA,CAAM,UAAA,EAAY,UAAA,GAAa,UAAU,CAAA;AAAA,EACxD;AAAA,EAEA,MAAM,QAAA,GAAW;AAChB,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA;AAE1C,IAAA,IAAI,EAAA,CAAG,UAAA,CAAW,mCAAmC,CAAA,EAAG;AACvD,MAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAC9B,MAAA,MAAM,aAAa,IAAI,eAAA,CAAgB,MAAM,IAAA,CAAK,MAAM,CAAA;AAExD,MAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK,UAAA,EAAY;AACvC,QAAA,QAAA,CAAS,MAAA,CAAO,MAAM,KAAK,CAAA;AAAA,MAC5B;AAEA,MAAA,OAAO,QAAA;AAAA,IACR;AAEA,IAAA,MAAM,EAAC,UAAA,EAAU,GAAI,MAAM,OAAO,iCAA6B,CAAA;AAC/D,IAAA,OAAO,UAAA,CAAW,IAAA,CAAK,IAAA,EAAM,EAAE,CAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IAAA,GAAO;AACZ,IAAA,MAAM,KAAM,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,OAAA,CAAQ,IAAI,cAAc,CAAA,IAAO,IAAA,CAAK,SAAS,EAAE,IAAA,IAAQ,IAAA,CAAK,SAAS,CAAA,CAAE,KAAK,IAAA,IAAS,EAAA;AACxH,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,WAAA,EAAY;AAEnC,IAAA,OAAO,IAAI,kBAAA,CAAK,CAAC,GAAG,CAAA,EAAG;AAAA,MACtB,IAAA,EAAM;AAAA,KACN,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IAAA,GAAO;AACZ,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,IAAA,EAAK;AAC7B,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IAAA,GAAO;AACZ,IAAA,MAAM,MAAA,GAAS,MAAM,WAAA,CAAY,IAAI,CAAA;AACrC,IAAA,OAAO,IAAI,WAAA,EAAY,CAAE,MAAA,CAAO,MAAM,CAAA;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA,GAAS;AACR,IAAA,OAAO,YAAY,IAAI,CAAA;AAAA,EACxB;AACD,CAAA;AAEA,IAAA,CAAK,UAAU,MAAA,GAAS,SAAA,CAAU,KAAK,SAAA,CAAU,MAAA,EAAQ,sEAA0E,mBAAmB,CAAA;AAGtJ,MAAA,CAAO,gBAAA,CAAiB,KAAK,SAAA,EAAW;AAAA,EACvC,IAAA,EAAM,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACvB,QAAA,EAAU,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC3B,WAAA,EAAa,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC9B,IAAA,EAAM,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACvB,IAAA,EAAM,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACvB,IAAA,EAAM,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACvB,IAAA,EAAM,EAAC,GAAA,EAAK,SAAA;AAAA,IAAU,MAAM;AAAA,IAAC,CAAA;AAAA,IAC5B,wEAAA;AAAA,IACA;AAAA,GAAiE;AACnE,CAAC,CAAA;AASD,eAAe,YAAY,IAAA,EAAM;AAChC,EAAA,IAAI,IAAA,CAAK,SAAS,CAAA,CAAE,SAAA,EAAW;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,uBAAA,EAA0B,IAAA,CAAK,GAAG,CAAA,CAAE,CAAA;AAAA,EACzD;AAEA,EAAA,IAAA,CAAK,SAAS,EAAE,SAAA,GAAY,IAAA;AAE5B,EAAA,IAAI,IAAA,CAAK,SAAS,CAAA,CAAE,KAAA,EAAO;AAC1B,IAAA,MAAM,IAAA,CAAK,SAAS,CAAA,CAAE,KAAA;AAAA,EACvB;AAEA,EAAA,MAAM,EAAC,MAAI,GAAI,IAAA;AAGf,EAAA,IAAI,SAAS,IAAA,EAAM;AAClB,IAAA,OAAOA,QAAAA,CAAO,MAAM,CAAC,CAAA;AAAA,EACtB;AAGA,EAAA,IAAI,EAAE,gBAAgB,MAAA,CAAA,EAAS;AAC9B,IAAA,OAAOA,QAAAA,CAAO,MAAM,CAAC,CAAA;AAAA,EACtB;AAIA,EAAA,MAAM,QAAQ,EAAC;AACf,EAAA,IAAI,UAAA,GAAa,CAAA;AAEjB,EAAA,IAAI;AACH,IAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC/B,MAAA,IAAI,KAAK,IAAA,GAAO,CAAA,IAAK,aAAa,KAAA,CAAM,MAAA,GAAS,KAAK,IAAA,EAAM;AAC3D,QAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAG,CAAA,aAAA,EAAgB,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,UAAU,CAAA;AAC/F,QAAA,IAAA,CAAK,QAAQ,KAAK,CAAA;AAClB,QAAA,MAAM,KAAA;AAAA,MACP;AAEA,MAAA,UAAA,IAAc,KAAA,CAAM,MAAA;AACpB,MAAA,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,IACjB;AAAA,EACD,SAAS,KAAA,EAAO;AACf,IAAA,MAAM,MAAA,GAAS,KAAA,YAAiB,cAAA,GAAiB,KAAA,GAAQ,IAAI,UAAA,CAAW,CAAA,4CAAA,EAA+C,IAAA,CAAK,GAAG,CAAA,EAAA,EAAK,KAAA,CAAM,OAAO,CAAA,CAAA,EAAI,UAAU,KAAK,CAAA;AACpK,IAAA,MAAM,MAAA;AAAA,EACP;AAEA,EAAA,IAAI,KAAK,aAAA,KAAkB,IAAA,IAAQ,IAAA,CAAK,cAAA,CAAe,UAAU,IAAA,EAAM;AACtE,IAAA,IAAI;AACH,MAAA,IAAI,MAAM,KAAA,CAAM,CAAA,CAAA,KAAK,OAAO,CAAA,KAAM,QAAQ,CAAA,EAAG;AAC5C,QAAA,OAAOA,QAAAA,CAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,MAClC;AAEA,MAAA,OAAOA,QAAAA,CAAO,MAAA,CAAO,KAAA,EAAO,UAAU,CAAA;AAAA,IACvC,SAAS,KAAA,EAAO;AACf,MAAA,MAAM,IAAI,UAAA,CAAW,CAAA,+CAAA,EAAkD,IAAA,CAAK,GAAG,KAAK,KAAA,CAAM,OAAO,CAAA,CAAA,EAAI,QAAA,EAAU,KAAK,CAAA;AAAA,IACrH;AAAA,EACD,CAAA,MAAO;AACN,IAAA,MAAM,IAAI,UAAA,CAAW,CAAA,yDAAA,EAA4D,IAAA,CAAK,GAAG,CAAA,CAAE,CAAA;AAAA,EAC5F;AACD;AASO,IAAM,KAAA,GAAQ,CAAC,QAAA,EAAU,aAAA,KAAkB;AACjD,EAAA,IAAI,EAAA;AACJ,EAAA,IAAI,EAAA;AACJ,EAAA,IAAI,EAAC,IAAA,EAAI,GAAI,QAAA,CAAS,SAAS,CAAA;AAG/B,EAAA,IAAI,SAAS,QAAA,EAAU;AACtB,IAAA,MAAM,IAAI,MAAM,oCAAoC,CAAA;AAAA,EACrD;AAIA,EAAA,IAAK,IAAA,YAAgB,MAAA,IAAY,OAAO,IAAA,CAAK,gBAAgB,UAAA,EAAa;AAEzE,IAAA,EAAA,GAAK,IAAI,WAAA,CAAY,EAAC,aAAA,EAAc,CAAA;AACpC,IAAA,EAAA,GAAK,IAAI,WAAA,CAAY,EAAC,aAAA,EAAc,CAAA;AACpC,IAAA,IAAA,CAAK,KAAK,EAAE,CAAA;AACZ,IAAA,IAAA,CAAK,KAAK,EAAE,CAAA;AAEZ,IAAA,QAAA,CAAS,SAAS,EAAE,MAAA,GAAS,EAAA;AAC7B,IAAA,IAAA,GAAO,EAAA;AAAA,EACR;AAEA,EAAA,OAAO,IAAA;AACR,CAAA;AAEA,IAAM,0BAAA,GAA6B,SAAA;AAAA,EAClC,CAAA,IAAA,KAAQ,KAAK,WAAA,EAAY;AAAA,EACzB,2FAAA;AAAA,EACA;AACD,CAAA;AAYO,IAAM,kBAAA,GAAqB,CAAC,IAAA,EAAM,OAAA,KAAY;AAEpD,EAAA,IAAI,SAAS,IAAA,EAAM;AAClB,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC7B,IAAA,OAAO,0BAAA;AAAA,EACR;AAGA,EAAA,IAAI,qBAAA,CAAsB,IAAI,CAAA,EAAG;AAChC,IAAA,OAAO,iDAAA;AAAA,EACR;AAGA,EAAA,IAAI,MAAA,CAAO,IAAI,CAAA,EAAG;AACjB,IAAA,OAAO,KAAK,IAAA,IAAQ,IAAA;AAAA,EACrB;AAGA,EAAA,IAAIA,QAAAA,CAAO,QAAA,CAAS,IAAI,CAAA,IAAK,KAAA,CAAM,gBAAA,CAAiB,IAAI,CAAA,IAAK,WAAA,CAAY,MAAA,CAAO,IAAI,CAAA,EAAG;AACtF,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,IAAI,gBAAgB,QAAA,EAAU;AAC7B,IAAA,OAAO,CAAA,8BAAA,EAAiC,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAQ,CAAA,CAAA;AAAA,EACpE;AAGA,EAAA,IAAI,IAAA,IAAQ,OAAO,IAAA,CAAK,WAAA,KAAgB,UAAA,EAAY;AACnD,IAAA,OAAO,CAAA,6BAAA,EAAgC,0BAAA,CAA2B,IAAI,CAAC,CAAA,CAAA;AAAA,EACxE;AAGA,EAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC3B,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,OAAO,0BAAA;AACR,CAAA;AAWO,IAAM,gBAAgB,CAAA,OAAA,KAAW;AACvC,EAAA,MAAM,EAAC,IAAA,EAAI,GAAI,OAAA,CAAQ,SAAS,CAAA;AAGhC,EAAA,IAAI,SAAS,IAAA,EAAM;AAClB,IAAA,OAAO,CAAA;AAAA,EACR;AAGA,EAAA,IAAI,MAAA,CAAO,IAAI,CAAA,EAAG;AACjB,IAAA,OAAO,IAAA,CAAK,IAAA;AAAA,EACb;AAGA,EAAA,IAAIA,QAAAA,CAAO,QAAA,CAAS,IAAI,CAAA,EAAG;AAC1B,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACb;AAGA,EAAA,IAAI,IAAA,IAAQ,OAAO,IAAA,CAAK,aAAA,KAAkB,UAAA,EAAY;AACrD,IAAA,OAAO,KAAK,cAAA,IAAkB,IAAA,CAAK,gBAAe,GAAI,IAAA,CAAK,eAAc,GAAI,IAAA;AAAA,EAC9E;AAGA,EAAA,OAAO,IAAA;AACR,CAAA;AASO,IAAM,aAAA,GAAgB,OAAO,IAAA,EAAM,EAAC,MAAI,KAAM;AACpD,EAAA,IAAI,SAAS,IAAA,EAAM;AAElB,IAAA,IAAA,CAAK,GAAA,EAAI;AAAA,EACV,CAAA,MAAO;AAEN,IAAA,MAAM,QAAA,CAAS,MAAM,IAAI,CAAA;AAAA,EAC1B;AACD,CAAA;AClYA,IAAM,qBAAqB,OAAO,IAAA,CAAK,uBAAuB,UAAA,GAC7D,IAAA,CAAK,qBACL,CAAA,IAAA,KAAQ;AACP,EAAA,IAAI,CAAC,yBAAA,CAA0B,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1C,IAAA,MAAM,KAAA,GAAQ,IAAI,SAAA,CAAU,CAAA,wCAAA,EAA2C,IAAI,CAAA,CAAA,CAAG,CAAA;AAC9E,IAAA,MAAA,CAAO,eAAe,KAAA,EAAO,MAAA,EAAQ,EAAC,KAAA,EAAO,0BAAyB,CAAA;AACtE,IAAA,MAAM,KAAA;AAAA,EACP;AACD,CAAA;AAGD,IAAM,mBAAA,GAAsB,OAAO,IAAA,CAAK,mBAAA,KAAwB,aAC/D,IAAA,CAAK,mBAAA,GACL,CAAC,IAAA,EAAM,KAAA,KAAU;AAChB,EAAA,IAAI,iCAAA,CAAkC,IAAA,CAAK,KAAK,CAAA,EAAG;AAClD,IAAA,MAAM,KAAA,GAAQ,IAAI,SAAA,CAAU,CAAA,sCAAA,EAAyC,IAAI,CAAA,EAAA,CAAI,CAAA;AAC7E,IAAA,MAAA,CAAO,eAAe,KAAA,EAAO,MAAA,EAAQ,EAAC,KAAA,EAAO,oBAAmB,CAAA;AAChE,IAAA,MAAM,KAAA;AAAA,EACP;AACD,CAAA;AAcD,IAAqB,OAAA,GAArB,MAAqB,QAAA,SAAgB,eAAA,CAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpD,YAAY,IAAA,EAAM;AAGjB,IAAA,IAAI,SAAS,EAAC;AACd,IAAA,IAAI,gBAAgB,QAAA,EAAS;AAC5B,MAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,MAAA,KAAA,MAAW,CAAC,IAAA,EAAM,MAAM,KAAK,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,EAAG;AACjD,QAAA,MAAA,CAAO,IAAA,CAAK,GAAG,MAAA,CAAO,GAAA,CAAI,WAAS,CAAC,IAAA,EAAM,KAAK,CAAC,CAAC,CAAA;AAAA,MAClD;AAAA,IACD,CAAA,MAAA,IAAW,QAAQ,IAAA,EAAM,CAEzB,MAAA,IAAW,OAAO,IAAA,KAAS,QAAA,IAAY,CAACC,KAAAA,CAAM,gBAAA,CAAiB,IAAI,CAAA,EAAG;AACrE,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA;AAEnC,MAAA,IAAI,UAAU,IAAA,EAAM;AAEnB,QAAA,MAAA,CAAO,IAAA,CAAK,GAAG,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,MACpC,CAAA,MAAO;AACN,QAAA,IAAI,OAAO,WAAW,UAAA,EAAY;AACjC,UAAA,MAAM,IAAI,UAAU,+BAA+B,CAAA;AAAA,QACpD;AAIA,QAAA,MAAA,GAAS,CAAC,GAAG,IAAI,CAAA,CACf,IAAI,CAAA,IAAA,KAAQ;AACZ,UAAA,IACC,OAAO,IAAA,KAAS,QAAA,IAAYA,KAAAA,CAAM,gBAAA,CAAiB,IAAI,CAAA,EACtD;AACD,YAAA,MAAM,IAAI,UAAU,6CAA6C,CAAA;AAAA,UAClE;AAEA,UAAA,OAAO,CAAC,GAAG,IAAI,CAAA;AAAA,QAChB,CAAC,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ;AACd,UAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AACtB,YAAA,MAAM,IAAI,UAAU,6CAA6C,CAAA;AAAA,UAClE;AAEA,UAAA,OAAO,CAAC,GAAG,IAAI,CAAA;AAAA,QAChB,CAAC,CAAA;AAAA,MACH;AAAA,IACD,CAAA,MAAO;AACN,MAAA,MAAM,IAAI,UAAU,sIAAyI,CAAA;AAAA,IAC9J;AAGA,IAAA,MAAA,GACC,MAAA,CAAO,SAAS,CAAA,GACf,MAAA,CAAO,IAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AAC7B,MAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,MAAA,mBAAA,CAAoB,IAAA,EAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AACvC,MAAA,OAAO,CAAC,OAAO,IAAI,CAAA,CAAE,aAAY,EAAG,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,IAClD,CAAC,CAAA,GACD,MAAA;AAEF,IAAA,KAAA,CAAM,MAAM,CAAA;AAIZ,IAAA,OAAO,IAAI,MAAM,IAAA,EAAM;AAAA,MACtB,GAAA,CAAI,MAAA,EAAQ,CAAA,EAAG,QAAA,EAAU;AACxB,QAAA,QAAQ,CAAA;AAAG,UACV,KAAK,QAAA;AAAA,UACL,KAAK,KAAA;AACJ,YAAA,OAAO,CAAC,MAAM,KAAA,KAAU;AACvB,cAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,cAAA,mBAAA,CAAoB,IAAA,EAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AACvC,cAAA,OAAO,eAAA,CAAgB,SAAA,CAAU,CAAC,CAAA,CAAE,IAAA;AAAA,gBACnC,MAAA;AAAA,gBACA,MAAA,CAAO,IAAI,CAAA,CAAE,WAAA,EAAY;AAAA,gBACzB,OAAO,KAAK;AAAA,eACb;AAAA,YACD,CAAA;AAAA,UAED,KAAK,QAAA;AAAA,UACL,KAAK,KAAA;AAAA,UACL,KAAK,QAAA;AACJ,YAAA,OAAO,CAAA,IAAA,KAAQ;AACd,cAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,cAAA,OAAO,eAAA,CAAgB,SAAA,CAAU,CAAC,CAAA,CAAE,IAAA;AAAA,gBACnC,MAAA;AAAA,gBACA,MAAA,CAAO,IAAI,CAAA,CAAE,WAAA;AAAY,eAC1B;AAAA,YACD,CAAA;AAAA,UAED,KAAK,MAAA;AACJ,YAAA,OAAO,MAAM;AACZ,cAAA,MAAA,CAAO,IAAA,EAAK;AACZ,cAAA,OAAO,IAAI,IAAI,eAAA,CAAgB,SAAA,CAAU,KAAK,IAAA,CAAK,MAAM,CAAC,CAAA,CAAE,IAAA,EAAK;AAAA,YAClE,CAAA;AAAA,UAED;AACC,YAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,CAAA,EAAG,QAAQ,CAAA;AAAA;AACxC,MACD;AAAA,KACA,CAAA;AAAA,EAEF;AAAA,EAEA,KAAK,MAAA,CAAO,WAAW,CAAA,GAAI;AAC1B,IAAA,OAAO,KAAK,WAAA,CAAY,IAAA;AAAA,EACzB;AAAA,EAEA,QAAA,GAAW;AACV,IAAA,OAAO,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,EAC3C;AAAA,EAEA,IAAI,IAAA,EAAM;AACT,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,IAAI,CAAA;AAC/B,IAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACxB,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,IAAI,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAC5B,IAAA,IAAI,qBAAA,CAAsB,IAAA,CAAK,IAAI,CAAA,EAAG;AACrC,MAAA,KAAA,GAAQ,MAAM,WAAA,EAAY;AAAA,IAC3B;AAEA,IAAA,OAAO,KAAA;AAAA,EACR;AAAA,EAEA,OAAA,CAAQ,QAAA,EAAU,OAAA,GAAU,MAAA,EAAW;AACtC,IAAA,KAAA,MAAW,IAAA,IAAQ,IAAA,CAAK,IAAA,EAAK,EAAG;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,QAAA,EAAU,OAAA,EAAS,CAAC,IAAA,CAAK,IAAI,IAAI,CAAA,EAAG,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,IAC9D;AAAA,EACD;AAAA,EAEA,CAAE,MAAA,GAAS;AACV,IAAA,KAAA,MAAW,IAAA,IAAQ,IAAA,CAAK,IAAA,EAAK,EAAG;AAC/B,MAAA,MAAM,IAAA,CAAK,IAAI,IAAI,CAAA;AAAA,IACpB;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,CAAE,OAAA,GAAU;AACX,IAAA,KAAA,MAAW,IAAA,IAAQ,IAAA,CAAK,IAAA,EAAK,EAAG;AAC/B,MAAA,MAAM,CAAC,IAAA,EAAM,IAAA,CAAK,GAAA,CAAI,IAAI,CAAC,CAAA;AAAA,IAC5B;AAAA,EACD;AAAA,EAEA,CAAC,MAAA,CAAO,QAAQ,CAAA,GAAI;AACnB,IAAA,OAAO,KAAK,OAAA,EAAQ;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,GAAA,GAAM;AACL,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,CAAC,MAAA,EAAQ,GAAA,KAAQ;AAC/C,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA;AAC7B,MAAA,OAAO,MAAA;AAAA,IACR,CAAA,EAAG,EAAE,CAAA;AAAA,EACN;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAC,MAAA,CAAO,GAAA,CAAI,4BAA4B,CAAC,CAAA,GAAI;AAC5C,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,CAAC,MAAA,EAAQ,GAAA,KAAQ;AAC/C,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA;AAG9B,MAAA,IAAI,QAAQ,MAAA,EAAQ;AACnB,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA;AAAA,MACvB,CAAA,MAAO;AACN,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA,CAAO,SAAS,CAAA,GAAI,MAAA,GAAS,OAAO,CAAC,CAAA;AAAA,MACpD;AAEA,MAAA,OAAO,MAAA;AAAA,IACR,CAAA,EAAG,EAAE,CAAA;AAAA,EACN;AACD;AAMA,MAAA,CAAO,gBAAA;AAAA,EACN,OAAA,CAAQ,SAAA;AAAA,EACR,CAAC,OAAO,SAAA,EAAW,SAAA,EAAW,QAAQ,CAAA,CAAE,MAAA,CAAO,CAAC,MAAA,EAAQ,QAAA,KAAa;AACpE,IAAA,MAAA,CAAO,QAAQ,CAAA,GAAI,EAAC,UAAA,EAAY,IAAA,EAAI;AACpC,IAAA,OAAO,MAAA;AAAA,EACR,CAAA,EAAG,EAAE;AACN,CAAA;AAOO,SAAS,cAAA,CAAe,OAAA,GAAU,EAAC,EAAG;AAC5C,EAAA,OAAO,IAAI,OAAA;AAAA,IACV,QAEE,MAAA,CAAO,CAAC,MAAA,EAAQ,KAAA,EAAO,OAAO,KAAA,KAAU;AACxC,MAAA,IAAI,KAAA,GAAQ,MAAM,CAAA,EAAG;AACpB,QAAA,MAAA,CAAO,KAAK,KAAA,CAAM,KAAA,CAAM,KAAA,EAAO,KAAA,GAAQ,CAAC,CAAC,CAAA;AAAA,MAC1C;AAEA,MAAA,OAAO,MAAA;AAAA,IACR,CAAA,EAAG,EAAE,CAAA,CACJ,OAAO,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AAC1B,MAAA,IAAI;AACH,QAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,QAAA,mBAAA,CAAoB,IAAA,EAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AACvC,QAAA,OAAO,IAAA;AAAA,MACR,CAAA,CAAA,MAAQ;AACP,QAAA,OAAO,KAAA;AAAA,MACR;AAAA,IACD,CAAC;AAAA,GAEH;AACD;;;AC1QA,IAAM,cAAA,uBAAqB,GAAA,CAAI,CAAC,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAQjD,IAAM,aAAa,CAAA,IAAA,KAAQ;AACjC,EAAA,OAAO,cAAA,CAAe,IAAI,IAAI,CAAA;AAC/B;;;ACAA,IAAMC,UAAAA,0BAAmB,oBAAoB,CAAA;AAW7C,IAAqB,QAAA,GAArB,MAAqB,SAAA,SAAiB,IAAA,CAAK;AAAA,EAC1C,WAAA,CAAY,IAAA,GAAO,IAAA,EAAM,OAAA,GAAU,EAAC,EAAG;AACtC,IAAA,KAAA,CAAM,MAAM,OAAO,CAAA;AAGnB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAU,IAAA,GAAO,QAAQ,MAAA,GAAS,GAAA;AAEzD,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AAE3C,IAAA,IAAI,SAAS,IAAA,IAAQ,CAAC,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,EAAG;AAClD,MAAA,MAAM,WAAA,GAAc,kBAAA,CAAmB,IAAA,EAAM,IAAI,CAAA;AACjD,MAAA,IAAI,WAAA,EAAa;AAChB,QAAA,OAAA,CAAQ,MAAA,CAAO,gBAAgB,WAAW,CAAA;AAAA,MAC3C;AAAA,IACD;AAEA,IAAA,IAAA,CAAKA,UAAS,CAAA,GAAI;AAAA,MACjB,IAAA,EAAM,SAAA;AAAA,MACN,KAAK,OAAA,CAAQ,GAAA;AAAA,MACb,MAAA;AAAA,MACA,UAAA,EAAY,QAAQ,UAAA,IAAc,EAAA;AAAA,MAClC,OAAA;AAAA,MACA,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,eAAe,OAAA,CAAQ;AAAA,KACxB;AAAA,EACD;AAAA,EAEA,IAAI,IAAA,GAAO;AACV,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,IAAA;AAAA,EACxB;AAAA,EAEA,IAAI,GAAA,GAAM;AACT,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,GAAA,IAAO,EAAA;AAAA,EAC/B;AAAA,EAEA,IAAI,MAAA,GAAS;AACZ,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,MAAA;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,EAAA,GAAK;AACR,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,MAAA,IAAU,OAAO,IAAA,CAAKA,UAAS,EAAE,MAAA,GAAS,GAAA;AAAA,EAClE;AAAA,EAEA,IAAI,UAAA,GAAa;AAChB,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,OAAA,GAAU,CAAA;AAAA,EAClC;AAAA,EAEA,IAAI,UAAA,GAAa;AAChB,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,UAAA;AAAA,EACxB;AAAA,EAEA,IAAI,OAAA,GAAU;AACb,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,OAAA;AAAA,EACxB;AAAA,EAEA,IAAI,aAAA,GAAgB;AACnB,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,aAAA;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAA,GAAQ;AACP,IAAA,OAAO,IAAI,SAAA,CAAS,KAAA,CAAM,IAAA,EAAM,IAAA,CAAK,aAAa,CAAA,EAAG;AAAA,MACpD,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,KAAK,IAAA,CAAK,GAAA;AAAA,MACV,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,eAAe,IAAA,CAAK;AAAA,KACpB,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,QAAA,CAAS,GAAA,EAAK,MAAA,GAAS,GAAA,EAAK;AAClC,IAAA,IAAI,CAAC,UAAA,CAAW,MAAM,CAAA,EAAG;AACxB,MAAA,MAAM,IAAI,WAAW,iEAAiE,CAAA;AAAA,IACvF;AAEA,IAAA,OAAO,IAAI,UAAS,IAAA,EAAM;AAAA,MACzB,OAAA,EAAS;AAAA,QACR,QAAA,EAAU,IAAI,GAAA,CAAI,GAAG,EAAE,QAAA;AAAS,OACjC;AAAA,MACA;AAAA,KACA,CAAA;AAAA,EACF;AAAA,EAEA,OAAO,KAAA,GAAQ;AACd,IAAA,MAAM,QAAA,GAAW,IAAI,SAAA,CAAS,IAAA,EAAM,EAAC,MAAA,EAAQ,CAAA,EAAG,UAAA,EAAY,EAAA,EAAG,CAAA;AAC/D,IAAA,QAAA,CAASA,UAAS,EAAE,IAAA,GAAO,OAAA;AAC3B,IAAA,OAAO,QAAA;AAAA,EACR;AAAA,EAEA,OAAO,IAAA,CAAK,IAAA,GAAO,MAAA,EAAW,IAAA,GAAO,EAAC,EAAG;AACxC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AAEhC,IAAA,IAAI,SAAS,MAAA,EAAW;AACvB,MAAA,MAAM,IAAI,UAAU,+BAA+B,CAAA;AAAA,IACpD;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAA,IAAQ,KAAK,OAAO,CAAA;AAEhD,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,EAAG;AACjC,MAAA,OAAA,CAAQ,GAAA,CAAI,gBAAgB,kBAAkB,CAAA;AAAA,IAC/C;AAEA,IAAA,OAAO,IAAI,UAAS,IAAA,EAAM;AAAA,MACzB,GAAG,IAAA;AAAA,MACH;AAAA,KACA,CAAA;AAAA,EACF;AAAA,EAEA,KAAK,MAAA,CAAO,WAAW,CAAA,GAAI;AAC1B,IAAA,OAAO,UAAA;AAAA,EACR;AACD;AAEA,MAAA,CAAO,gBAAA,CAAiB,SAAS,SAAA,EAAW;AAAA,EAC3C,IAAA,EAAM,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACvB,GAAA,EAAK,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACtB,MAAA,EAAQ,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACzB,EAAA,EAAI,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACrB,UAAA,EAAY,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC7B,UAAA,EAAY,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC7B,OAAA,EAAS,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC1B,KAAA,EAAO,EAAC,UAAA,EAAY,IAAA;AACrB,CAAC,CAAA;;;AC/JM,IAAM,YAAY,CAAA,SAAA,KAAa;AACrC,EAAA,IAAI,UAAU,MAAA,EAAQ;AACrB,IAAA,OAAO,SAAA,CAAU,MAAA;AAAA,EAClB;AAEA,EAAA,MAAM,UAAA,GAAa,SAAA,CAAU,IAAA,CAAK,MAAA,GAAS,CAAA;AAC3C,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,KAAS,SAAA,CAAU,KAAK,UAAU,CAAA,KAAM,MAAM,GAAA,GAAM,EAAA,CAAA;AAC3E,EAAA,OAAO,UAAU,IAAA,CAAK,UAAA,GAAa,KAAK,MAAM,CAAA,KAAM,MAAM,GAAA,GAAM,EAAA;AACjE,CAAA;ACSO,SAAS,yBAAA,CAA0B,GAAA,EAAK,UAAA,GAAa,KAAA,EAAO;AAElE,EAAA,IAAI,OAAO,IAAA,EAAM;AAChB,IAAA,OAAO,aAAA;AAAA,EACR;AAEA,EAAA,GAAA,GAAM,IAAI,IAAI,GAAG,CAAA;AAGjB,EAAA,IAAI,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC9C,IAAA,OAAO,aAAA;AAAA,EACR;AAGA,EAAA,GAAA,CAAI,QAAA,GAAW,EAAA;AAIf,EAAA,GAAA,CAAI,QAAA,GAAW,EAAA;AAIf,EAAA,GAAA,CAAI,IAAA,GAAO,EAAA;AAGX,EAAA,IAAI,UAAA,EAAY;AAGf,IAAA,GAAA,CAAI,QAAA,GAAW,EAAA;AAIf,IAAA,GAAA,CAAI,MAAA,GAAS,EAAA;AAAA,EACd;AAGA,EAAA,OAAO,GAAA;AACR;AAKO,IAAM,cAAA,uBAAqB,GAAA,CAAI;AAAA,EACrC,EAAA;AAAA,EACA,aAAA;AAAA,EACA,4BAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,0BAAA;AAAA,EACA,iCAAA;AAAA,EACA;AACD,CAAC,CAAA;AAKM,IAAM,uBAAA,GAA0B,iCAAA;AAOhC,SAAS,uBAAuB,cAAA,EAAgB;AACtD,EAAA,IAAI,CAAC,cAAA,CAAe,GAAA,CAAI,cAAc,CAAA,EAAG;AACxC,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,wBAAA,EAA2B,cAAc,CAAA,CAAE,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,cAAA;AACR;AAOO,SAAS,+BAA+B,GAAA,EAAK;AAQnD,EAAA,IAAI,eAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,EAAG;AACvC,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,IAAA,CAAK,OAAA,CAAQ,eAAe,EAAE,CAAA;AACjD,EAAA,MAAM,aAAA,GAAgB,KAAK,MAAM,CAAA;AAEjC,EAAA,IAAI,aAAA,KAAkB,CAAA,IAAK,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA,EAAG;AACjD,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,IAAI,aAAA,KAAkB,CAAA,IAAK,kCAAA,CAAmC,IAAA,CAAK,MAAM,CAAA,EAAG;AAC3E,IAAA,OAAO,IAAA;AAAA,EACR;AAKA,EAAA,IAAI,IAAI,IAAA,KAAS,WAAA,IAAe,IAAI,IAAA,CAAK,QAAA,CAAS,YAAY,CAAA,EAAG;AAChE,IAAA,OAAO,KAAA;AAAA,EACR;AAGA,EAAA,IAAI,GAAA,CAAI,aAAa,OAAA,EAAS;AAC7B,IAAA,OAAO,IAAA;AAAA,EACR;AASA,EAAA,OAAO,KAAA;AACR;AAOO,SAAS,4BAA4B,GAAA,EAAK;AAEhD,EAAA,IAAI,wBAAA,CAAyB,IAAA,CAAK,GAAG,CAAA,EAAG;AACvC,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,IAAI,GAAA,CAAI,aAAa,OAAA,EAAS;AAC7B,IAAA,OAAO,IAAA;AAAA,EACR;AAKA,EAAA,IAAI,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC9C,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,OAAO,+BAA+B,GAAG,CAAA;AAC1C;AA0BO,SAAS,0BAA0B,OAAA,EAAS,EAAC,qBAAqB,sBAAA,EAAsB,GAAI,EAAC,EAAG;AAMtG,EAAA,IAAI,OAAA,CAAQ,QAAA,KAAa,aAAA,IAAiB,OAAA,CAAQ,mBAAmB,EAAA,EAAI;AACxE,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,MAAM,SAAS,OAAA,CAAQ,cAAA;AAMvB,EAAA,IAAI,OAAA,CAAQ,aAAa,cAAA,EAAgB;AACxC,IAAA,OAAO,aAAA;AAAA,EACR;AAGA,EAAA,MAAM,iBAAiB,OAAA,CAAQ,QAAA;AAG/B,EAAA,IAAI,WAAA,GAAc,0BAA0B,cAAc,CAAA;AAI1D,EAAA,IAAI,cAAA,GAAiB,yBAAA,CAA0B,cAAA,EAAgB,IAAI,CAAA;AAInE,EAAA,IAAI,WAAA,CAAY,QAAA,EAAS,CAAE,MAAA,GAAS,IAAA,EAAM;AACzC,IAAA,WAAA,GAAc,cAAA;AAAA,EACf;AAMA,EAAA,IAAI,mBAAA,EAAqB;AACxB,IAAA,WAAA,GAAc,oBAAoB,WAAW,CAAA;AAAA,EAC9C;AAEA,EAAA,IAAI,sBAAA,EAAwB;AAC3B,IAAA,cAAA,GAAiB,uBAAuB,cAAc,CAAA;AAAA,EACvD;AAGA,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AAEtC,EAAA,QAAQ,MAAA;AAAQ,IACf,KAAK,aAAA;AACJ,MAAA,OAAO,aAAA;AAAA,IAER,KAAK,QAAA;AACJ,MAAA,OAAO,cAAA;AAAA,IAER,KAAK,YAAA;AACJ,MAAA,OAAO,WAAA;AAAA,IAER,KAAK,eAAA;AAGJ,MAAA,IAAI,4BAA4B,WAAW,CAAA,IAAK,CAAC,2BAAA,CAA4B,UAAU,CAAA,EAAG;AACzF,QAAA,OAAO,aAAA;AAAA,MACR;AAGA,MAAA,OAAO,eAAe,QAAA,EAAS;AAAA,IAEhC,KAAK,iCAAA;AAGJ,MAAA,IAAI,WAAA,CAAY,MAAA,KAAW,UAAA,CAAW,MAAA,EAAQ;AAC7C,QAAA,OAAO,WAAA;AAAA,MACR;AAIA,MAAA,IAAI,4BAA4B,WAAW,CAAA,IAAK,CAAC,2BAAA,CAA4B,UAAU,CAAA,EAAG;AACzF,QAAA,OAAO,aAAA;AAAA,MACR;AAGA,MAAA,OAAO,cAAA;AAAA,IAER,KAAK,aAAA;AAGJ,MAAA,IAAI,WAAA,CAAY,MAAA,KAAW,UAAA,CAAW,MAAA,EAAQ;AAC7C,QAAA,OAAO,WAAA;AAAA,MACR;AAGA,MAAA,OAAO,aAAA;AAAA,IAER,KAAK,0BAAA;AAGJ,MAAA,IAAI,WAAA,CAAY,MAAA,KAAW,UAAA,CAAW,MAAA,EAAQ;AAC7C,QAAA,OAAO,WAAA;AAAA,MACR;AAGA,MAAA,OAAO,cAAA;AAAA,IAER,KAAK,4BAAA;AAGJ,MAAA,IAAI,4BAA4B,WAAW,CAAA,IAAK,CAAC,2BAAA,CAA4B,UAAU,CAAA,EAAG;AACzF,QAAA,OAAO,aAAA;AAAA,MACR;AAGA,MAAA,OAAO,WAAA;AAAA,IAER;AACC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,wBAAA,EAA2B,MAAM,CAAA,CAAE,CAAA;AAAA;AAE1D;AAOO,SAAS,8BAA8B,OAAA,EAAS;AAGtD,EAAA,MAAM,gBAAgB,OAAA,CAAQ,GAAA,CAAI,iBAAiB,CAAA,IAAK,EAAA,EAAI,MAAM,QAAQ,CAAA;AAG1E,EAAA,IAAI,MAAA,GAAS,EAAA;AAMb,EAAA,KAAA,MAAW,SAAS,YAAA,EAAc;AACjC,IAAA,IAAI,KAAA,IAAS,cAAA,CAAe,GAAA,CAAI,KAAK,CAAA,EAAG;AACvC,MAAA,MAAA,GAAS,KAAA;AAAA,IACV;AAAA,EACD;AAGA,EAAA,OAAO,MAAA;AACR;;;ACjUA,IAAMA,UAAAA,0BAAmB,mBAAmB,CAAA;AAQ5C,IAAM,YAAY,CAAA,MAAA,KAAU;AAC3B,EAAA,OACC,OAAO,MAAA,KAAW,QAAA,IAClB,OAAO,MAAA,CAAOA,UAAS,CAAA,KAAM,QAAA;AAE/B,CAAA;AAEA,IAAM,aAAA,GAAgBC,SAAAA;AAAA,EAAU,MAAM;AAAA,EAAC,CAAA;AAAA,EACtC,8DAAA;AAAA,EACA;AAAgE,CAAA;AAWjE,IAAqB,OAAA,GAArB,MAAqB,QAAA,SAAgB,IAAA,CAAK;AAAA,EACzC,WAAA,CAAY,KAAA,EAAO,IAAA,GAAO,EAAC,EAAG;AAC7B,IAAA,IAAI,SAAA;AAGJ,IAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACrB,MAAA,SAAA,GAAY,IAAI,GAAA,CAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IAC9B,CAAA,MAAO;AACN,MAAA,SAAA,GAAY,IAAI,IAAI,KAAK,CAAA;AACzB,MAAA,KAAA,GAAQ,EAAC;AAAA,IACV;AAEA,IAAA,IAAI,SAAA,CAAU,QAAA,KAAa,EAAA,IAAM,SAAA,CAAU,aAAa,EAAA,EAAI;AAC3D,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,EAAG,SAAS,CAAA,qCAAA,CAAuC,CAAA;AAAA,IACxE;AAEA,IAAA,IAAI,MAAA,GAAS,IAAA,CAAK,MAAA,IAAU,KAAA,CAAM,MAAA,IAAU,KAAA;AAC5C,IAAA,IAAI,uCAAA,CAAwC,IAAA,CAAK,MAAM,CAAA,EAAG;AACzD,MAAA,MAAA,GAAS,OAAO,WAAA,EAAY;AAAA,IAC7B;AAEA,IAAA,IAAI,CAAC,SAAA,CAAU,IAAI,CAAA,IAAK,UAAU,IAAA,EAAM;AACvC,MAAA,aAAA,EAAc;AAAA,IACf;AAGA,IAAA,IAAA,CAAK,IAAA,CAAK,IAAA,IAAQ,IAAA,IAAS,SAAA,CAAU,KAAK,CAAA,IAAK,KAAA,CAAM,IAAA,KAAS,IAAA,MAC5D,MAAA,KAAW,KAAA,IAAS,MAAA,KAAW,MAAA,CAAA,EAAS;AACzC,MAAA,MAAM,IAAI,UAAU,+CAA+C,CAAA;AAAA,IACpE;AAEA,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,IAAA,GACtB,IAAA,CAAK,IAAA,GACJ,SAAA,CAAU,KAAK,CAAA,IAAK,KAAA,CAAM,IAAA,KAAS,IAAA,GACnC,KAAA,CAAM,KAAK,CAAA,GACX,IAAA;AAEF,IAAA,KAAA,CAAM,SAAA,EAAW;AAAA,MAChB,IAAA,EAAM,IAAA,CAAK,IAAA,IAAQ,KAAA,CAAM,IAAA,IAAQ;AAAA,KACjC,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAA,CAAK,WAAW,KAAA,CAAM,OAAA,IAAW,EAAE,CAAA;AAE/D,IAAA,IAAI,cAAc,IAAA,IAAQ,CAAC,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,EAAG;AACvD,MAAA,MAAM,WAAA,GAAc,kBAAA,CAAmB,SAAA,EAAW,IAAI,CAAA;AACtD,MAAA,IAAI,WAAA,EAAa;AAChB,QAAA,OAAA,CAAQ,GAAA,CAAI,gBAAgB,WAAW,CAAA;AAAA,MACxC;AAAA,IACD;AAEA,IAAA,IAAI,MAAA,GAAS,SAAA,CAAU,KAAK,CAAA,GAC3B,MAAM,MAAA,GACN,IAAA;AACD,IAAA,IAAI,YAAY,IAAA,EAAM;AACrB,MAAA,MAAA,GAAS,IAAA,CAAK,MAAA;AAAA,IACf;AAGA,IAAA,IAAI,MAAA,IAAU,IAAA,IAAQ,CAAC,aAAA,CAAc,MAAM,CAAA,EAAG;AAC7C,MAAA,MAAM,IAAI,UAAU,gEAAgE,CAAA;AAAA,IACrF;AAIA,IAAA,IAAI,WAAW,IAAA,CAAK,QAAA,IAAY,IAAA,GAAO,KAAA,CAAM,WAAW,IAAA,CAAK,QAAA;AAC7D,IAAA,IAAI,aAAa,EAAA,EAAI;AAEpB,MAAA,QAAA,GAAW,aAAA;AAAA,IACZ,WAAW,QAAA,EAAU;AAEpB,MAAA,MAAM,cAAA,GAAiB,IAAI,GAAA,CAAI,QAAQ,CAAA;AAEvC,MAAA,QAAA,GAAW,uBAAA,CAAwB,IAAA,CAAK,cAAc,CAAA,GAAI,QAAA,GAAW,cAAA;AAAA,IACtE,CAAA,MAAO;AACN,MAAA,QAAA,GAAW,MAAA;AAAA,IACZ;AAEA,IAAA,IAAA,CAAKD,UAAS,CAAA,GAAI;AAAA,MACjB,MAAA;AAAA,MACA,QAAA,EAAU,IAAA,CAAK,QAAA,IAAY,KAAA,CAAM,QAAA,IAAY,QAAA;AAAA,MAC7C,OAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD;AAGA,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,MAAA,KAAW,MAAA,GAAa,KAAA,CAAM,WAAW,MAAA,GAAY,EAAA,GAAK,KAAA,CAAM,MAAA,GAAU,IAAA,CAAK,MAAA;AAClG,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,KAAa,MAAA,GAAa,KAAA,CAAM,aAAa,MAAA,GAAY,IAAA,GAAO,KAAA,CAAM,QAAA,GAAY,IAAA,CAAK,QAAA;AAC5G,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,OAAA,IAAW,KAAA,CAAM,OAAA,IAAW,CAAA;AAChD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,IAAS,KAAA,CAAM,KAAA;AACjC,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,aAAA,IAAiB,KAAA,CAAM,aAAA,IAAiB,KAAA;AAClE,IAAA,IAAA,CAAK,kBAAA,GAAqB,IAAA,CAAK,kBAAA,IAAsB,KAAA,CAAM,kBAAA,IAAsB,KAAA;AAIjF,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,cAAA,IAAkB,KAAA,CAAM,cAAA,IAAkB,EAAA;AAAA,EACtE;AAAA;AAAA,EAGA,IAAI,MAAA,GAAS;AACZ,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,MAAA;AAAA,EACxB;AAAA;AAAA,EAGA,IAAI,GAAA,GAAM;AACT,IAAA,OAAOE,MAAA,CAAU,IAAA,CAAKF,UAAS,CAAA,CAAE,SAAS,CAAA;AAAA,EAC3C;AAAA;AAAA,EAGA,IAAI,OAAA,GAAU;AACb,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,OAAA;AAAA,EACxB;AAAA,EAEA,IAAI,QAAA,GAAW;AACd,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,QAAA;AAAA,EACxB;AAAA;AAAA,EAGA,IAAI,MAAA,GAAS;AACZ,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,MAAA;AAAA,EACxB;AAAA;AAAA,EAGA,IAAI,QAAA,GAAW;AACd,IAAA,IAAI,IAAA,CAAKA,UAAS,CAAA,CAAE,QAAA,KAAa,aAAA,EAAe;AAC/C,MAAA,OAAO,EAAA;AAAA,IACR;AAEA,IAAA,IAAI,IAAA,CAAKA,UAAS,CAAA,CAAE,QAAA,KAAa,QAAA,EAAU;AAC1C,MAAA,OAAO,cAAA;AAAA,IACR;AAEA,IAAA,IAAI,IAAA,CAAKA,UAAS,CAAA,CAAE,QAAA,EAAU;AAC7B,MAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,QAAA,CAAS,QAAA,EAAS;AAAA,IAC1C;AAEA,IAAA,OAAO,MAAA;AAAA,EACR;AAAA,EAEA,IAAI,cAAA,GAAiB;AACpB,IAAA,OAAO,IAAA,CAAKA,UAAS,CAAA,CAAE,cAAA;AAAA,EACxB;AAAA,EAEA,IAAI,eAAe,cAAA,EAAgB;AAClC,IAAA,IAAA,CAAKA,UAAS,CAAA,CAAE,cAAA,GAAiB,sBAAA,CAAuB,cAAc,CAAA;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAA,GAAQ;AACP,IAAA,OAAO,IAAI,SAAQ,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,KAAK,MAAA,CAAO,WAAW,CAAA,GAAI;AAC1B,IAAA,OAAO,SAAA;AAAA,EACR;AACD;AAEA,MAAA,CAAO,gBAAA,CAAiB,QAAQ,SAAA,EAAW;AAAA,EAC1C,MAAA,EAAQ,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACzB,GAAA,EAAK,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACtB,OAAA,EAAS,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC1B,QAAA,EAAU,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC3B,KAAA,EAAO,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACxB,MAAA,EAAQ,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EACzB,QAAA,EAAU,EAAC,UAAA,EAAY,IAAA,EAAI;AAAA,EAC3B,cAAA,EAAgB,EAAC,UAAA,EAAY,IAAA;AAC9B,CAAC,CAAA;AAQM,IAAM,wBAAwB,CAAA,OAAA,KAAW;AAC/C,EAAA,MAAM,EAAC,SAAA,EAAS,GAAI,OAAA,CAAQA,UAAS,CAAA;AACrC,EAAA,MAAM,UAAU,IAAI,OAAA,CAAQ,OAAA,CAAQA,UAAS,EAAE,OAAO,CAAA;AAGtD,EAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC3B,IAAA,OAAA,CAAQ,GAAA,CAAI,UAAU,KAAK,CAAA;AAAA,EAC5B;AAGA,EAAA,IAAI,kBAAA,GAAqB,IAAA;AACzB,EAAA,IAAI,QAAQ,IAAA,KAAS,IAAA,IAAQ,gBAAgB,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClE,IAAA,kBAAA,GAAqB,GAAA;AAAA,EACtB;AAEA,EAAA,IAAI,OAAA,CAAQ,SAAS,IAAA,EAAM;AAC1B,IAAA,MAAM,UAAA,GAAa,cAAc,OAAO,CAAA;AAExC,IAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,CAAC,MAAA,CAAO,KAAA,CAAM,UAAU,CAAA,EAAG;AAChE,MAAA,kBAAA,GAAqB,OAAO,UAAU,CAAA;AAAA,IACvC;AAAA,EACD;AAEA,EAAA,IAAI,kBAAA,EAAoB;AACvB,IAAA,OAAA,CAAQ,GAAA,CAAI,kBAAkB,kBAAkB,CAAA;AAAA,EACjD;AAKA,EAAA,IAAI,OAAA,CAAQ,mBAAmB,EAAA,EAAI;AAClC,IAAA,OAAA,CAAQ,cAAA,GAAiB,uBAAA;AAAA,EAC1B;AAKA,EAAA,IAAI,OAAA,CAAQ,QAAA,IAAY,OAAA,CAAQ,QAAA,KAAa,aAAA,EAAe;AAC3D,IAAA,OAAA,CAAQA,UAAS,CAAA,CAAE,QAAA,GAAW,yBAAA,CAA0B,OAAO,CAAA;AAAA,EAChE,CAAA,MAAO;AACN,IAAA,OAAA,CAAQA,UAAS,EAAE,QAAA,GAAW,aAAA;AAAA,EAC/B;AAKA,EAAA,IAAI,OAAA,CAAQA,UAAS,CAAA,CAAE,QAAA,YAAoB,GAAA,EAAK;AAC/C,IAAA,OAAA,CAAQ,GAAA,CAAI,SAAA,EAAW,OAAA,CAAQ,QAAQ,CAAA;AAAA,EACxC;AAGA,EAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,YAAY,CAAA,EAAG;AAC/B,IAAA,OAAA,CAAQ,GAAA,CAAI,cAAc,YAAY,CAAA;AAAA,EACvC;AAGA,EAAA,IAAI,QAAQ,QAAA,IAAY,CAAC,OAAA,CAAQ,GAAA,CAAI,iBAAiB,CAAA,EAAG;AACxD,IAAA,OAAA,CAAQ,GAAA,CAAI,mBAAmB,mBAAmB,CAAA;AAAA,EACnD;AAEA,EAAA,IAAI,EAAC,OAAK,GAAI,OAAA;AACd,EAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAChC,IAAA,KAAA,GAAQ,MAAM,SAAS,CAAA;AAAA,EACxB;AAKA,EAAA,MAAM,MAAA,GAAS,UAAU,SAAS,CAAA;AAIlC,EAAA,MAAM,OAAA,GAAU;AAAA;AAAA,IAEf,IAAA,EAAM,UAAU,QAAA,GAAW,MAAA;AAAA;AAAA,IAE3B,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,SAAS,OAAA,iBAAQ,MAAA,CAAO,GAAA,CAAI,4BAA4B,CAAC,CAAA,EAAE;AAAA,IAC3D,oBAAoB,OAAA,CAAQ,kBAAA;AAAA,IAC5B;AAAA,GACD;AAEA,EAAA,OAAO;AAAA;AAAA,IAEN,SAAA;AAAA,IACA;AAAA,GACD;AACD,CAAA;;;ACnTO,IAAM,UAAA,GAAN,cAAyB,cAAA,CAAe;AAAA,EAC9C,WAAA,CAAY,OAAA,EAAS,IAAA,GAAO,SAAA,EAAW;AACtC,IAAA,KAAA,CAAM,SAAS,IAAI,CAAA;AAAA,EACpB;AACD;;;AC6BA,IAAM,mCAAmB,IAAI,GAAA,CAAI,CAAC,OAAA,EAAS,OAAA,EAAS,QAAQ,CAAC,CAAA;AAS7D,eAAO,KAAA,CAA6B,KAAK,QAAA,EAAU;AAClD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AAEvC,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,GAAA,EAAK,QAAQ,CAAA;AACzC,IAAA,MAAM,EAAC,SAAA,EAAW,OAAA,EAAO,GAAI,sBAAsB,OAAO,CAAA;AAC1D,IAAA,IAAI,CAAC,gBAAA,CAAiB,GAAA,CAAI,SAAA,CAAU,QAAQ,CAAA,EAAG;AAC9C,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,uBAAA,EAA0B,GAAG,CAAA,cAAA,EAAiB,SAAA,CAAU,QAAA,CAAS,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAC5H;AAEA,IAAA,IAAI,SAAA,CAAU,aAAa,OAAA,EAAS;AACnC,MAAA,MAAM,IAAA,GAAO,YAAA,CAAgB,OAAA,CAAQ,GAAG,CAAA;AACxC,MAAA,MAAMG,SAAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,EAAC,OAAA,EAAS,EAAC,cAAA,EAAgB,IAAA,CAAK,QAAA,EAAQ,EAAE,CAAA;AAC9E,MAAA,OAAA,CAAQA,SAAQ,CAAA;AAChB,MAAA;AAAA,IACD;AAGA,IAAA,MAAM,IAAA,GAAA,CAAQ,SAAA,CAAU,QAAA,KAAa,QAAA,GAAW,QAAQC,IAAAA,EAAM,OAAA;AAC9D,IAAA,MAAM,EAAC,QAAM,GAAI,OAAA;AACjB,IAAA,IAAI,QAAA,GAAW,IAAA;AAEf,IAAA,MAAM,QAAQ,MAAM;AACnB,MAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,4BAA4B,CAAA;AACzD,MAAA,MAAA,CAAO,KAAK,CAAA;AACZ,MAAA,IAAI,OAAA,CAAQ,IAAA,IAAQ,OAAA,CAAQ,IAAA,YAAgBC,OAAO,QAAA,EAAU;AAC5D,QAAA,OAAA,CAAQ,IAAA,CAAK,QAAQ,KAAK,CAAA;AAAA,MAC3B;AAEA,MAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,CAAS,IAAA,EAAM;AAChC,QAAA;AAAA,MACD;AAEA,MAAA,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,KAAK,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,IAAI,MAAA,IAAU,OAAO,OAAA,EAAS;AAC7B,MAAA,KAAA,EAAM;AACN,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,mBAAmB,MAAM;AAC9B,MAAA,KAAA,EAAM;AACN,MAAA,QAAA,EAAS;AAAA,IACV,CAAA;AAGA,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,QAAA,IAAY,OAAO,CAAA;AAEnD,IAAA,IAAI,MAAA,EAAQ;AACX,MAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,gBAAgB,CAAA;AAAA,IAClD;AAEA,IAAA,MAAM,WAAW,MAAM;AACtB,MAAA,QAAA,CAAS,KAAA,EAAM;AACf,MAAA,IAAI,MAAA,EAAQ;AACX,QAAA,MAAA,CAAO,mBAAA,CAAoB,SAAS,gBAAgB,CAAA;AAAA,MACrD;AAAA,IACD,CAAA;AAEA,IAAA,QAAA,CAAS,EAAA,CAAG,SAAS,CAAA,KAAA,KAAS;AAC7B,MAAA,MAAA,CAAO,IAAI,UAAA,CAAW,CAAA,WAAA,EAAc,OAAA,CAAQ,GAAG,CAAA,iBAAA,EAAoB,KAAA,CAAM,OAAO,CAAA,CAAA,EAAI,QAAA,EAAU,KAAK,CAAC,CAAA;AACpG,MAAA,QAAA,EAAS;AAAA,IACV,CAAC,CAAA;AAED,IAAA,mCAAA,CAAoC,UAAU,CAAA,KAAA,KAAS;AACtD,MAAA,IAAI,QAAA,IAAY,SAAS,IAAA,EAAM;AAC9B,QAAA,QAAA,CAAS,IAAA,CAAK,QAAQ,KAAK,CAAA;AAAA,MAC5B;AAAA,IACD,CAAC,CAAA;AAGD,IAAA,IAAI,OAAA,CAAQ,UAAU,KAAA,EAAO;AAG5B,MAAA,QAAA,CAAS,EAAA,CAAG,UAAU,CAAA,CAAA,KAAK;AAC1B,QAAA,IAAI,oBAAA;AACJ,QAAA,CAAA,CAAE,eAAA,CAAgB,OAAO,MAAM;AAC9B,UAAA,oBAAA,GAAuB,CAAA,CAAE,YAAA;AAAA,QAC1B,CAAC,CAAA;AACD,QAAA,CAAA,CAAE,eAAA,CAAgB,SAAS,CAAA,QAAA,KAAY;AAEtC,UAAA,IAAI,QAAA,IAAY,oBAAA,GAAuB,CAAA,CAAE,YAAA,IAAgB,CAAC,QAAA,EAAU;AACnE,YAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,iBAAiB,CAAA;AACzC,YAAA,KAAA,CAAM,IAAA,GAAO,4BAAA;AACb,YAAA,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,KAAK,CAAA;AAAA,UAClC;AAAA,QACD,CAAC,CAAA;AAAA,MACF,CAAC,CAAA;AAAA,IACF;AAEA,IAAA,QAAA,CAAS,EAAA,CAAG,YAAY,CAAA,SAAA,KAAa;AACpC,MAAA,QAAA,CAAS,WAAW,CAAC,CAAA;AACrB,MAAA,MAAM,OAAA,GAAU,cAAA,CAAe,SAAA,CAAU,UAAU,CAAA;AAGnD,MAAA,IAAI,UAAA,CAAW,SAAA,CAAU,UAAU,CAAA,EAAG;AAErC,QAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA;AAGvC,QAAA,IAAI,WAAA,GAAc,IAAA;AAClB,QAAA,IAAI;AACH,UAAA,WAAA,GAAc,aAAa,IAAA,GAAO,IAAA,GAAO,IAAI,GAAA,CAAI,QAAA,EAAU,QAAQ,GAAG,CAAA;AAAA,QACvE,CAAA,CAAA,MAAQ;AAIP,UAAA,IAAI,OAAA,CAAQ,aAAa,QAAA,EAAU;AAClC,YAAA,MAAA,CAAO,IAAI,UAAA,CAAW,CAAA,qDAAA,EAAwD,QAAQ,CAAA,CAAA,EAAI,kBAAkB,CAAC,CAAA;AAC7G,YAAA,QAAA,EAAS;AACT,YAAA;AAAA,UACD;AAAA,QACD;AAGA,QAAA,QAAQ,QAAQ,QAAA;AAAU,UACzB,KAAK,OAAA;AACJ,YAAA,MAAA,CAAO,IAAI,UAAA,CAAW,CAAA,uEAAA,EAA0E,QAAQ,GAAG,CAAA,CAAA,EAAI,aAAa,CAAC,CAAA;AAC7H,YAAA,QAAA,EAAS;AACT,YAAA;AAAA,UACD,KAAK,QAAA;AAEJ,YAAA;AAAA,UACD,KAAK,QAAA,EAAU;AAEd,YAAA,IAAI,gBAAgB,IAAA,EAAM;AACzB,cAAA;AAAA,YACD;AAGA,YAAA,IAAI,OAAA,CAAQ,OAAA,IAAW,OAAA,CAAQ,MAAA,EAAQ;AACtC,cAAA,MAAA,CAAO,IAAI,UAAA,CAAW,CAAA,6BAAA,EAAgC,QAAQ,GAAG,CAAA,CAAA,EAAI,cAAc,CAAC,CAAA;AACpF,cAAA,QAAA,EAAS;AACT,cAAA;AAAA,YACD;AAIA,YAAA,MAAM,cAAA,GAAiB;AAAA,cACtB,OAAA,EAAS,IAAI,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AAAA,cACpC,QAAQ,OAAA,CAAQ,MAAA;AAAA,cAChB,OAAA,EAAS,QAAQ,OAAA,GAAU,CAAA;AAAA,cAC3B,OAAO,OAAA,CAAQ,KAAA;AAAA,cACf,UAAU,OAAA,CAAQ,QAAA;AAAA,cAClB,QAAQ,OAAA,CAAQ,MAAA;AAAA,cAChB,IAAA,EAAM,MAAM,OAAO,CAAA;AAAA,cACnB,QAAQ,OAAA,CAAQ,MAAA;AAAA,cAChB,MAAM,OAAA,CAAQ,IAAA;AAAA,cACd,UAAU,OAAA,CAAQ,QAAA;AAAA,cAClB,gBAAgB,OAAA,CAAQ;AAAA,aACzB;AAWA,YAAA,IAAI,CAAC,mBAAA,CAAoB,OAAA,CAAQ,GAAA,EAAK,WAAW,CAAA,IAAK,CAAC,cAAA,CAAe,OAAA,CAAQ,GAAA,EAAK,WAAW,CAAA,EAAG;AAChG,cAAA,KAAA,MAAW,QAAQ,CAAC,eAAA,EAAiB,kBAAA,EAAoB,QAAA,EAAU,SAAS,CAAA,EAAG;AAC9E,gBAAA,cAAA,CAAe,OAAA,CAAQ,OAAO,IAAI,CAAA;AAAA,cACnC;AAAA,YACD;AAGA,YAAA,IAAI,SAAA,CAAU,eAAe,GAAA,IAAO,OAAA,CAAQ,QAAQ,QAAA,CAAS,IAAA,YAAgBA,OAAO,QAAA,EAAU;AAC7F,cAAA,MAAA,CAAO,IAAI,UAAA,CAAW,0DAAA,EAA4D,sBAAsB,CAAC,CAAA;AACzG,cAAA,QAAA,EAAS;AACT,cAAA;AAAA,YACD;AAGA,YAAA,IAAI,SAAA,CAAU,UAAA,KAAe,GAAA,IAAA,CAAS,SAAA,CAAU,UAAA,KAAe,GAAA,IAAO,SAAA,CAAU,UAAA,KAAe,GAAA,KAAQ,OAAA,CAAQ,MAAA,KAAW,MAAA,EAAS;AAClI,cAAA,cAAA,CAAe,MAAA,GAAS,KAAA;AACxB,cAAA,cAAA,CAAe,IAAA,GAAO,MAAA;AACtB,cAAA,cAAA,CAAe,OAAA,CAAQ,OAAO,gBAAgB,CAAA;AAAA,YAC/C;AAGA,YAAA,MAAM,sBAAA,GAAyB,8BAA8B,OAAO,CAAA;AACpE,YAAA,IAAI,sBAAA,EAAwB;AAC3B,cAAA,cAAA,CAAe,cAAA,GAAiB,sBAAA;AAAA,YACjC;AAGA,YAAA,OAAA,CAAQ,MAAM,IAAI,OAAA,CAAQ,WAAA,EAAa,cAAc,CAAC,CAAC,CAAA;AACvD,YAAA,QAAA,EAAS;AACT,YAAA;AAAA,UACD;AAAA,UAEA;AACC,YAAA,OAAO,OAAO,IAAI,SAAA,CAAU,oBAAoB,OAAA,CAAQ,QAAQ,2CAA2C,CAAC,CAAA;AAAA;AAC9G,MACD;AAGA,MAAA,IAAI,MAAA,EAAQ;AACX,QAAA,SAAA,CAAU,IAAA,CAAK,OAAO,MAAM;AAC3B,UAAA,MAAA,CAAO,mBAAA,CAAoB,SAAS,gBAAgB,CAAA;AAAA,QACrD,CAAC,CAAA;AAAA,MACF;AAEA,MAAA,IAAI,OAAOC,UAAA,CAAK,SAAA,EAAW,IAAIC,WAAAA,IAAe,CAAA,KAAA,KAAS;AACtD,QAAA,IAAI,KAAA,EAAO;AACV,UAAA,MAAA,CAAO,KAAK,CAAA;AAAA,QACb;AAAA,MACD,CAAC,CAAA;AAGD,MAAA,IAAI,OAAA,CAAQ,UAAU,QAAA,EAAU;AAC/B,QAAA,SAAA,CAAU,EAAA,CAAG,WAAW,gBAAgB,CAAA;AAAA,MACzC;AAEA,MAAA,MAAM,eAAA,GAAkB;AAAA,QACvB,KAAK,OAAA,CAAQ,GAAA;AAAA,QACb,QAAQ,SAAA,CAAU,UAAA;AAAA,QAClB,YAAY,SAAA,CAAU,aAAA;AAAA,QACtB,OAAA;AAAA,QACA,MAAM,OAAA,CAAQ,IAAA;AAAA,QACd,SAAS,OAAA,CAAQ,OAAA;AAAA,QACjB,eAAe,OAAA,CAAQ;AAAA,OACxB;AAGA,MAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,GAAA,CAAI,kBAAkB,CAAA;AAU9C,MAAA,IAAI,CAAC,OAAA,CAAQ,QAAA,IAAY,OAAA,CAAQ,MAAA,KAAW,MAAA,IAAU,OAAA,KAAY,IAAA,IAAQ,SAAA,CAAU,UAAA,KAAe,GAAA,IAAO,SAAA,CAAU,eAAe,GAAA,EAAK;AACvI,QAAA,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA;AAC7C,QAAA,OAAA,CAAQ,QAAQ,CAAA;AAChB,QAAA;AAAA,MACD;AAOA,MAAA,MAAM,WAAA,GAAc;AAAA,QACnB,OAAO,IAAA,CAAK,YAAA;AAAA,QACZ,aAAa,IAAA,CAAK;AAAA,OACnB;AAGA,MAAA,IAAI,OAAA,KAAY,MAAA,IAAU,OAAA,KAAY,QAAA,EAAU;AAC/C,QAAA,IAAA,GAAOD,WAAK,IAAA,EAAM,IAAA,CAAK,YAAA,CAAa,WAAW,GAAG,CAAA,KAAA,KAAS;AAC1D,UAAA,IAAI,KAAA,EAAO;AACV,YAAA,MAAA,CAAO,KAAK,CAAA;AAAA,UACb;AAAA,QACD,CAAC,CAAA;AACD,QAAA,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA;AAC7C,QAAA,OAAA,CAAQ,QAAQ,CAAA;AAChB,QAAA;AAAA,MACD;AAGA,MAAA,IAAI,OAAA,KAAY,SAAA,IAAa,OAAA,KAAY,WAAA,EAAa;AAGrD,QAAA,MAAM,MAAMA,UAAA,CAAK,SAAA,EAAW,IAAIC,WAAAA,IAAe,CAAA,KAAA,KAAS;AACvD,UAAA,IAAI,KAAA,EAAO;AACV,YAAA,MAAA,CAAO,KAAK,CAAA;AAAA,UACb;AAAA,QACD,CAAC,CAAA;AACD,QAAA,GAAA,CAAI,IAAA,CAAK,QAAQ,CAAA,KAAA,KAAS;AAEzB,UAAA,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,GAAI,EAAA,MAAU,CAAA,EAAM;AAC/B,YAAA,IAAA,GAAOD,UAAA,CAAK,IAAA,EAAM,IAAA,CAAK,aAAA,IAAiB,CAAA,KAAA,KAAS;AAChD,cAAA,IAAI,KAAA,EAAO;AACV,gBAAA,MAAA,CAAO,KAAK,CAAA;AAAA,cACb;AAAA,YACD,CAAC,CAAA;AAAA,UACF,CAAA,MAAO;AACN,YAAA,IAAA,GAAOA,UAAA,CAAK,IAAA,EAAM,IAAA,CAAK,gBAAA,IAAoB,CAAA,KAAA,KAAS;AACnD,cAAA,IAAI,KAAA,EAAO;AACV,gBAAA,MAAA,CAAO,KAAK,CAAA;AAAA,cACb;AAAA,YACD,CAAC,CAAA;AAAA,UACF;AAEA,UAAA,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA;AAC7C,UAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA,QACjB,CAAC,CAAA;AACD,QAAA,GAAA,CAAI,IAAA,CAAK,OAAO,MAAM;AAGrB,UAAA,IAAI,CAAC,QAAA,EAAU;AACd,YAAA,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA;AAC7C,YAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA,UACjB;AAAA,QACD,CAAC,CAAA;AACD,QAAA;AAAA,MACD;AAGA,MAAA,IAAI,YAAY,IAAA,EAAM;AACrB,QAAA,IAAA,GAAOA,UAAA,CAAK,IAAA,EAAM,IAAA,CAAK,sBAAA,IAA0B,CAAA,KAAA,KAAS;AACzD,UAAA,IAAI,KAAA,EAAO;AACV,YAAA,MAAA,CAAO,KAAK,CAAA;AAAA,UACb;AAAA,QACD,CAAC,CAAA;AACD,QAAA,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA;AAC7C,QAAA,OAAA,CAAQ,QAAQ,CAAA;AAChB,QAAA;AAAA,MACD;AAGA,MAAA,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA;AAC7C,MAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACjB,CAAC,CAAA;AAGD,IAAA,aAAA,CAAc,QAAA,EAAU,OAAO,CAAA,CAAE,KAAA,CAAM,MAAM,CAAA;AAAA,EAC9C,CAAC,CAAA;AACF;AAEA,SAAS,mCAAA,CAAoC,SAAS,aAAA,EAAe;AACpE,EAAA,MAAM,UAAA,GAAaR,QAAAA,CAAO,IAAA,CAAK,WAAW,CAAA;AAE1C,EAAA,IAAI,iBAAA,GAAoB,KAAA;AACxB,EAAA,IAAI,uBAAA,GAA0B,KAAA;AAC9B,EAAA,IAAI,aAAA;AAEJ,EAAA,OAAA,CAAQ,EAAA,CAAG,YAAY,CAAA,QAAA,KAAY;AAClC,IAAA,MAAM,EAAC,SAAO,GAAI,QAAA;AAClB,IAAA,iBAAA,GAAoB,QAAQ,mBAAmB,CAAA,KAAM,SAAA,IAAa,CAAC,QAAQ,gBAAgB,CAAA;AAAA,EAC5F,CAAC,CAAA;AAED,EAAA,OAAA,CAAQ,EAAA,CAAG,UAAU,CAAA,MAAA,KAAU;AAC9B,IAAA,MAAM,gBAAgB,MAAM;AAC3B,MAAA,IAAI,iBAAA,IAAqB,CAAC,uBAAA,EAAyB;AAClD,QAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,iBAAiB,CAAA;AACzC,QAAA,KAAA,CAAM,IAAA,GAAO,4BAAA;AACb,QAAA,aAAA,CAAc,KAAK,CAAA;AAAA,MACpB;AAAA,IACD,CAAA;AAEA,IAAA,MAAM,SAAS,CAAA,GAAA,KAAO;AACrB,MAAA,uBAAA,GAA0BA,SAAO,OAAA,CAAQ,GAAA,CAAI,MAAM,EAAE,CAAA,EAAG,UAAU,CAAA,KAAM,CAAA;AAGxE,MAAA,IAAI,CAAC,2BAA2B,aAAA,EAAe;AAC9C,QAAA,uBAAA,GACCA,QAAAA,CAAO,QAAQ,aAAA,CAAc,KAAA,CAAM,EAAE,CAAA,EAAG,UAAA,CAAW,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,MAAM,CAAA,IACpEA,QAAAA,CAAO,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,EAAE,GAAG,UAAA,CAAW,KAAA,CAAM,CAAC,CAAC,CAAA,KAAM,CAAA;AAAA,MAEzD;AAEA,MAAA,aAAA,GAAgB,GAAA;AAAA,IACjB,CAAA;AAEA,IAAA,MAAA,CAAO,eAAA,CAAgB,SAAS,aAAa,CAAA;AAC7C,IAAA,MAAA,CAAO,EAAA,CAAG,QAAQ,MAAM,CAAA;AAExB,IAAA,OAAA,CAAQ,EAAA,CAAG,SAAS,MAAM;AACzB,MAAA,MAAA,CAAO,cAAA,CAAe,SAAS,aAAa,CAAA;AAC5C,MAAA,MAAA,CAAO,cAAA,CAAe,QAAQ,MAAM,CAAA;AAAA,IACrC,CAAC,CAAA;AAAA,EACF,CAAC,CAAA;AACF","file":"src-VZPBI2BW.mjs","sourcesContent":["export interface MimeBuffer extends Buffer {\n\ttype: string;\n\ttypeFull: string;\n\tcharset: string;\n}\n\n/**\n * Returns a `Buffer` instance from the given data URI `uri`.\n *\n * @param {String} uri Data URI to turn into a Buffer instance\n * @returns {Buffer} Buffer instance from Data URI\n * @api public\n */\nexport function dataUriToBuffer(uri: string): MimeBuffer {\n\tif (!/^data:/i.test(uri)) {\n\t\tthrow new TypeError(\n\t\t\t'`uri` does not appear to be a Data URI (must begin with \"data:\")'\n\t\t);\n\t}\n\n\t// strip newlines\n\turi = uri.replace(/\\r?\\n/g, '');\n\n\t// split the URI up into the \"metadata\" and the \"data\" portions\n\tconst firstComma = uri.indexOf(',');\n\tif (firstComma === -1 || firstComma <= 4) {\n\t\tthrow new TypeError('malformed data: URI');\n\t}\n\n\t// remove the \"data:\" scheme and parse the metadata\n\tconst meta = uri.substring(5, firstComma).split(';');\n\n\tlet charset = '';\n\tlet base64 = false;\n\tconst type = meta[0] || 'text/plain';\n\tlet typeFull = type;\n\tfor (let i = 1; i < meta.length; i++) {\n\t\tif (meta[i] === 'base64') {\n\t\t\tbase64 = true;\n\t\t} else if(meta[i]) {\n\t\t\ttypeFull += `;${  meta[i]}`;\n\t\t\tif (meta[i].indexOf('charset=') === 0) {\n\t\t\t\tcharset = meta[i].substring(8);\n\t\t\t}\n\t\t}\n\t}\n\t// defaults to US-ASCII only if type is not provided\n\tif (!meta[0] && !charset.length) {\n\t\ttypeFull += ';charset=US-ASCII';\n\t\tcharset = 'US-ASCII';\n\t}\n\n\t// get the encoded data portion and decode URI-encoded chars\n\tconst encoding = base64 ? 'base64' : 'ascii';\n\tconst data = unescape(uri.substring(firstComma + 1));\n\tconst buffer = Buffer.from(data, encoding) as MimeBuffer;\n\n\t// set `.type` and `.typeFull` properties to MIME type\n\tbuffer.type = type;\n\tbuffer.typeFull = typeFull;\n\n\t// set the `.charset` property\n\tbuffer.charset = charset;\n\n\treturn buffer;\n}\n\nexport default dataUriToBuffer;\n","export class FetchBaseError extends Error {\n\tconstructor(message, type) {\n\t\tsuper(message);\n\t\t// Hide custom error implementation details from end-users\n\t\tError.captureStackTrace(this, this.constructor);\n\n\t\tthis.type = type;\n\t}\n\n\tget name() {\n\t\treturn this.constructor.name;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n}\n","\nimport {FetchBaseError} from './base.js';\n\n/**\n * @typedef {{ address?: string, code: string, dest?: string, errno: number, info?: object, message: string, path?: string, port?: number, syscall: string}} SystemError\n*/\n\n/**\n * FetchError interface for operational errors\n */\nexport class FetchError extends FetchBaseError {\n\t/**\n\t * @param  {string} message -      Error message for human\n\t * @param  {string} [type] -        Error type for machine\n\t * @param  {SystemError} [systemError] - For Node.js system error\n\t */\n\tconstructor(message, type, systemError) {\n\t\tsuper(message, type);\n\t\t// When err.type is `system`, err.erroredSysCall contains system error and err.code contains system error code\n\t\tif (systemError) {\n\t\t\t// eslint-disable-next-line no-multi-assign\n\t\t\tthis.code = this.errno = systemError.code;\n\t\t\tthis.erroredSysCall = systemError.syscall;\n\t\t}\n\t}\n}\n","/**\n * Is.js\n *\n * Object type checks.\n */\n\nconst NAME = Symbol.toStringTag;\n\n/**\n * Check if `obj` is a URLSearchParams object\n * ref: https://github.com/node-fetch/node-fetch/issues/296#issuecomment-307598143\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isURLSearchParameters = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return  Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return  Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return  Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return  Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param   Mixed   instance       Response or Request instance\n * @param   String  highWaterMark  highWaterMark for both PassThrough body streams\n * @return  Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise<void>}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record<string, string> | Iterable<readonly [string, string]> | Iterable<Iterable<string>>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record<ByteString, ByteString>\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence<sequence<ByteString>> or record<ByteString, ByteString>)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record<string, string[]>}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return  Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url    The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response}    A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tstatic json(data = undefined, init = {}) {\n\t\tconst body = JSON.stringify(data);\n\n\t\tif (body === undefined) {\n\t\t\tthrow new TypeError('data is not JSON serializable');\n\t\t}\n\n\t\tconst headers = new Headers(init && init.headers);\n\n\t\tif (!headers.has('content-type')) {\n\t\t\theaders.set('content-type', 'application/json');\n\t\t}\n\n\t\treturn new Response(body, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions.  We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t//    origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t//    referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t//    policy considerations in the interests of minimizing data leakage. For example, the user\n\t//    agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t//    string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t//    potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t//    return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t//    potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t//    return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t//    return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t//    potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t//    and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t//    string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param  {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param   Mixed   input  Url or Request instance\n * @param   Object  init   Custom options\n * @return  Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return  Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// >  and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param   {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param   {*} [options_] - Fetch options\n * @return  {Promise<import('./response').default>}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n"]}