@reown/appkit-cdn 1.8.15-viem-upgrade.0 → 1.8.15-viem-upgrade-2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ConstantsUtil-DSO-aT76.js +24 -0
- package/dist/ConstantsUtil-DSO-aT76.js.map +1 -0
- package/dist/ExchangeController-D7JbbTDN.js +265 -0
- package/dist/ExchangeController-D7JbbTDN.js.map +1 -0
- package/dist/HelpersUtil-BfwO5f4J.js +141 -0
- package/dist/HelpersUtil-BfwO5f4J.js.map +1 -0
- package/dist/NavigationUtil-Ci15WS4K.js +9 -0
- package/dist/NavigationUtil-Ci15WS4K.js.map +1 -0
- package/dist/PhArrowCircleDown-B41iUlWV.js +74 -0
- package/dist/PhArrowCircleDown-B41iUlWV.js.map +1 -0
- package/dist/PhArrowClockwise-BY8u5n41.js +74 -0
- package/dist/PhArrowClockwise-BY8u5n41.js.map +1 -0
- package/dist/PhArrowDown-ClD8GZ65.js +74 -0
- package/dist/PhArrowDown-ClD8GZ65.js.map +1 -0
- package/dist/PhArrowLeft-B8MXUz60.js +74 -0
- package/dist/PhArrowLeft-B8MXUz60.js.map +1 -0
- package/dist/PhArrowRight-Cewa_Slb.js +74 -0
- package/dist/PhArrowRight-Cewa_Slb.js.map +1 -0
- package/dist/PhArrowSquareOut-whgWh-lD.js +74 -0
- package/dist/PhArrowSquareOut-whgWh-lD.js.map +1 -0
- package/dist/PhArrowUp-B1HXBxie.js +74 -0
- package/dist/PhArrowUp-B1HXBxie.js.map +1 -0
- package/dist/PhArrowUpRight-CfFYe4FP.js +74 -0
- package/dist/PhArrowUpRight-CfFYe4FP.js.map +1 -0
- package/dist/PhArrowsClockwise-gL1Gkrtx.js +74 -0
- package/dist/PhArrowsClockwise-gL1Gkrtx.js.map +1 -0
- package/dist/PhArrowsDownUp-BqUEdUQr.js +74 -0
- package/dist/PhArrowsDownUp-BqUEdUQr.js.map +1 -0
- package/dist/PhArrowsLeftRight-BlZU63eY.js +74 -0
- package/dist/PhArrowsLeftRight-BlZU63eY.js.map +1 -0
- package/dist/PhBank-gbg_jlI7.js +74 -0
- package/dist/PhBank-gbg_jlI7.js.map +1 -0
- package/dist/PhBrowser-CMlD-YJw.js +74 -0
- package/dist/PhBrowser-CMlD-YJw.js.map +1 -0
- package/dist/PhCaretDown-3agTO8Jp.js +74 -0
- package/dist/PhCaretDown-3agTO8Jp.js.map +1 -0
- package/dist/PhCaretLeft-_MTni7Z5.js +74 -0
- package/dist/PhCaretLeft-_MTni7Z5.js.map +1 -0
- package/dist/PhCaretRight-Ci9fAHPG.js +74 -0
- package/dist/PhCaretRight-Ci9fAHPG.js.map +1 -0
- package/dist/PhCaretUp-vFG4Fame.js +74 -0
- package/dist/PhCaretUp-vFG4Fame.js.map +1 -0
- package/dist/PhCheck-mChGK6K_.js +74 -0
- package/dist/PhCheck-mChGK6K_.js.map +1 -0
- package/dist/PhCircleHalf-DZ7-vfxf.js +74 -0
- package/dist/PhCircleHalf-DZ7-vfxf.js.map +1 -0
- package/dist/PhClock-Bc5XWXb6.js +74 -0
- package/dist/PhClock-Bc5XWXb6.js.map +1 -0
- package/dist/PhCompass-Cu2MB-55.js +74 -0
- package/dist/PhCompass-Cu2MB-55.js.map +1 -0
- package/dist/PhCopy-BGUjyTts.js +74 -0
- package/dist/PhCopy-BGUjyTts.js.map +1 -0
- package/dist/PhCreditCard-vxFWID4B.js +74 -0
- package/dist/PhCreditCard-vxFWID4B.js.map +1 -0
- package/dist/PhCurrencyDollar-BfOoDhJr.js +74 -0
- package/dist/PhCurrencyDollar-BfOoDhJr.js.map +1 -0
- package/dist/PhDesktop-Cq6jwzbS.js +74 -0
- package/dist/PhDesktop-Cq6jwzbS.js.map +1 -0
- package/dist/PhDeviceMobile-BCtTp6jj.js +74 -0
- package/dist/PhDeviceMobile-BCtTp6jj.js.map +1 -0
- package/dist/PhDotsThree-BGgD-WIO.js +74 -0
- package/dist/PhDotsThree-BGgD-WIO.js.map +1 -0
- package/dist/PhEnvelope-CQiV0-zG.js +74 -0
- package/dist/PhEnvelope-CQiV0-zG.js.map +1 -0
- package/dist/PhFunnelSimple-BHGtxTNf.js +74 -0
- package/dist/PhFunnelSimple-BHGtxTNf.js.map +1 -0
- package/dist/PhGlobe-Q8oVkf6X.js +74 -0
- package/dist/PhGlobe-Q8oVkf6X.js.map +1 -0
- package/dist/PhIdentificationCard-Cz9LzvVR.js +74 -0
- package/dist/PhIdentificationCard-Cz9LzvVR.js.map +1 -0
- package/dist/PhImage-CP5_qKk-.js +74 -0
- package/dist/PhImage-CP5_qKk-.js.map +1 -0
- package/dist/PhInfo-CTlE1X9Z.js +74 -0
- package/dist/PhInfo-CTlE1X9Z.js.map +1 -0
- package/dist/PhLightbulb-CcLpnAAb.js +74 -0
- package/dist/PhLightbulb-CcLpnAAb.js.map +1 -0
- package/dist/PhMagnifyingGlass-n58GUAck.js +74 -0
- package/dist/PhMagnifyingGlass-n58GUAck.js.map +1 -0
- package/dist/PhPaperPlaneRight-C0sf2XV8.js +74 -0
- package/dist/PhPaperPlaneRight-C0sf2XV8.js.map +1 -0
- package/dist/PhPlus-BJxvt7Uc.js +74 -0
- package/dist/PhPlus-BJxvt7Uc.js.map +1 -0
- package/dist/PhPower-BvktxO2-.js +74 -0
- package/dist/PhPower-BvktxO2-.js.map +1 -0
- package/dist/PhPuzzlePiece-CDDyUPYo.js +74 -0
- package/dist/PhPuzzlePiece-CDDyUPYo.js.map +1 -0
- package/dist/PhQrCode-BlGI8529.js +74 -0
- package/dist/PhQrCode-BlGI8529.js.map +1 -0
- package/dist/PhQuestion-DGZj6iDZ.js +74 -0
- package/dist/PhQuestion-DGZj6iDZ.js.map +1 -0
- package/dist/PhQuestionMark-CTmeI7MQ.js +74 -0
- package/dist/PhQuestionMark-CTmeI7MQ.js.map +1 -0
- package/dist/PhSealCheck-BSlqkxnH.js +74 -0
- package/dist/PhSealCheck-BSlqkxnH.js.map +1 -0
- package/dist/PhSignOut-CEXxlRk3.js +74 -0
- package/dist/PhSignOut-CEXxlRk3.js.map +1 -0
- package/dist/PhSpinner-Do1pY8fG.js +74 -0
- package/dist/PhSpinner-Do1pY8fG.js.map +1 -0
- package/dist/PhTrash-JNKavmpg.js +74 -0
- package/dist/PhTrash-JNKavmpg.js.map +1 -0
- package/dist/PhUser-BW7E-xYg.js +74 -0
- package/dist/PhUser-BW7E-xYg.js.map +1 -0
- package/dist/PhVault-mzxUgBYN.js +74 -0
- package/dist/PhVault-mzxUgBYN.js.map +1 -0
- package/dist/PhWallet-BR9JThKU.js +74 -0
- package/dist/PhWallet-BR9JThKU.js.map +1 -0
- package/dist/PhWarning-DxuQ70WM.js +74 -0
- package/dist/PhWarning-DxuQ70WM.js.map +1 -0
- package/dist/PhWarningCircle-DCI0JC1F.js +74 -0
- package/dist/PhWarningCircle-DCI0JC1F.js.map +1 -0
- package/dist/PhX-CWNXqpGn.js +74 -0
- package/dist/PhX-CWNXqpGn.js.map +1 -0
- package/dist/SwapController-B9-o3mQi.js +684 -0
- package/dist/SwapController-B9-o3mQi.js.map +1 -0
- package/dist/WebCryptoP256-C3tULCeM.js +3306 -0
- package/dist/WebCryptoP256-C3tULCeM.js.map +1 -0
- package/dist/add-D30MIcu9.js +20 -0
- package/dist/add-D30MIcu9.js.map +1 -0
- package/dist/all-wallets-C80If_mR.js +11 -0
- package/dist/all-wallets-C80If_mR.js.map +1 -0
- package/dist/app-store-BmykKf9Z.js +22 -0
- package/dist/app-store-BmykKf9Z.js.map +1 -0
- package/dist/appkit-8yrMZRW-.js +122304 -0
- package/dist/appkit-8yrMZRW-.js.map +1 -0
- package/dist/appkit.js +11 -0
- package/dist/appkit.js.map +1 -0
- package/dist/apple-Dj3k73U9.js +23 -0
- package/dist/apple-Dj3k73U9.js.map +1 -0
- package/dist/arrow-bottom-circle-BChVBNAj.js +16 -0
- package/dist/arrow-bottom-circle-BChVBNAj.js.map +1 -0
- package/dist/arrow-bottom-yR02zZ81.js +13 -0
- package/dist/arrow-bottom-yR02zZ81.js.map +1 -0
- package/dist/arrow-left-Cee83VTx.js +13 -0
- package/dist/arrow-left-Cee83VTx.js.map +1 -0
- package/dist/arrow-right-DQ18mteW.js +13 -0
- package/dist/arrow-right-DQ18mteW.js.map +1 -0
- package/dist/arrow-top-B6s5gNau.js +13 -0
- package/dist/arrow-top-B6s5gNau.js.map +1 -0
- package/dist/async-directive-CMZZt7_p.js +73 -0
- package/dist/async-directive-CMZZt7_p.js.map +1 -0
- package/dist/bank-CbtVBu5E.js +19 -0
- package/dist/bank-CbtVBu5E.js.map +1 -0
- package/dist/basic-DgeOYTPN.js +4914 -0
- package/dist/basic-DgeOYTPN.js.map +1 -0
- package/dist/browser-5XoTmr4n.js +1991 -0
- package/dist/browser-5XoTmr4n.js.map +1 -0
- package/dist/browser-DKlNidhn.js +19 -0
- package/dist/browser-DKlNidhn.js.map +1 -0
- package/dist/card-SMLX2mqy.js +19 -0
- package/dist/card-SMLX2mqy.js.map +1 -0
- package/dist/ccip-CelHgeHp.js +164 -0
- package/dist/ccip-CelHgeHp.js.map +1 -0
- package/dist/checkmark-BFaipJhW.js +16 -0
- package/dist/checkmark-BFaipJhW.js.map +1 -0
- package/dist/checkmark-bold-Bo-g2gCt.js +13 -0
- package/dist/checkmark-bold-Bo-g2gCt.js.map +1 -0
- package/dist/chevron-bottom-CLdpL1_U.js +13 -0
- package/dist/chevron-bottom-CLdpL1_U.js.map +1 -0
- package/dist/chevron-left-BMatzLVm.js +13 -0
- package/dist/chevron-left-BMatzLVm.js.map +1 -0
- package/dist/chevron-right-2QBn-njW.js +13 -0
- package/dist/chevron-right-2QBn-njW.js.map +1 -0
- package/dist/chevron-top-3JfkBBnK.js +13 -0
- package/dist/chevron-top-3JfkBBnK.js.map +1 -0
- package/dist/chrome-store-zmrzd-ux.js +66 -0
- package/dist/chrome-store-zmrzd-ux.js.map +1 -0
- package/dist/class-map-k3nlzPqR.js +101 -0
- package/dist/class-map-k3nlzPqR.js.map +1 -0
- package/dist/clock-CwBvHRGi.js +13 -0
- package/dist/clock-CwBvHRGi.js.map +1 -0
- package/dist/close-DGwKhnz2.js +13 -0
- package/dist/close-DGwKhnz2.js.map +1 -0
- package/dist/clsx.m-D57qXwfE.js +21 -0
- package/dist/clsx.m-D57qXwfE.js.map +1 -0
- package/dist/coinPlaceholder-Bjl3yxih.js +13 -0
- package/dist/coinPlaceholder-Bjl3yxih.js.map +1 -0
- package/dist/compass-Ci53Xt_m.js +13 -0
- package/dist/compass-Ci53Xt_m.js.map +1 -0
- package/dist/copy-DEV1V6UY.js +20 -0
- package/dist/copy-DEV1V6UY.js.map +1 -0
- package/dist/core-C57n14fz.js +16288 -0
- package/dist/core-C57n14fz.js.map +1 -0
- package/dist/cursor-aZqnhG2b.js +8 -0
- package/dist/cursor-aZqnhG2b.js.map +1 -0
- package/dist/cursor-transparent-B1JSDQ4k.js +17 -0
- package/dist/cursor-transparent-B1JSDQ4k.js.map +1 -0
- package/dist/data-capture-4tu-_Un-.js +549 -0
- package/dist/data-capture-4tu-_Un-.js.map +1 -0
- package/dist/desktop-CYHnO2jB.js +14 -0
- package/dist/desktop-CYHnO2jB.js.map +1 -0
- package/dist/disconnect-Bort8PHj.js +13 -0
- package/dist/disconnect-Bort8PHj.js.map +1 -0
- package/dist/discord-DC76-391.js +22 -0
- package/dist/discord-DC76-391.js.map +1 -0
- package/dist/email-CetCpugE.js +421 -0
- package/dist/email-CetCpugE.js.map +1 -0
- package/dist/embedded-wallet-DGmopvFw.js +952 -0
- package/dist/embedded-wallet-DGmopvFw.js.map +1 -0
- package/dist/etherscan-CM1VXVi8.js +11 -0
- package/dist/etherscan-CM1VXVi8.js.map +1 -0
- package/dist/exclamation-triangle-C2EQS3zg.js +9 -0
- package/dist/exclamation-triangle-C2EQS3zg.js.map +1 -0
- package/dist/extension-CrQTWCzR.js +13 -0
- package/dist/extension-CrQTWCzR.js.map +1 -0
- package/dist/external-link-C-HaFB9S.js +13 -0
- package/dist/external-link-C-HaFB9S.js.map +1 -0
- package/dist/facebook-vNJNGTyY.js +31 -0
- package/dist/facebook-vNJNGTyY.js.map +1 -0
- package/dist/farcaster-BojA8Y3Q.js +17 -0
- package/dist/farcaster-BojA8Y3Q.js.map +1 -0
- package/dist/features-BqXSc1qT.js +319 -0
- package/dist/features-BqXSc1qT.js.map +1 -0
- package/dist/filters-CPcSdM3I.js +13 -0
- package/dist/filters-CPcSdM3I.js.map +1 -0
- package/dist/github-lRHD4KBY.js +23 -0
- package/dist/github-lRHD4KBY.js.map +1 -0
- package/dist/google-CxxvUUsR.js +23 -0
- package/dist/google-CxxvUUsR.js.map +1 -0
- package/dist/hashTypedData-CGPAwUvI.js +259 -0
- package/dist/hashTypedData-CGPAwUvI.js.map +1 -0
- package/dist/help-circle-YHj9O9n4.js +17 -0
- package/dist/help-circle-YHj9O9n4.js.map +1 -0
- package/dist/id-BbzMFdj1.js +17 -0
- package/dist/id-BbzMFdj1.js.map +1 -0
- package/dist/if-defined-G2Q1ofvJ.js +11 -0
- package/dist/if-defined-G2Q1ofvJ.js.map +1 -0
- package/dist/image-BXTuNWmr.js +9 -0
- package/dist/image-BXTuNWmr.js.map +1 -0
- package/dist/index-21QOMdJE.js +984 -0
- package/dist/index-21QOMdJE.js.map +1 -0
- package/dist/index-51p9LM0s.js +218 -0
- package/dist/index-51p9LM0s.js.map +1 -0
- package/dist/index-ALlvRvBi.js +3987 -0
- package/dist/index-ALlvRvBi.js.map +1 -0
- package/dist/index-B6tCHS_j.js +120 -0
- package/dist/index-B6tCHS_j.js.map +1 -0
- package/dist/index-B9IUGIqh.js +211 -0
- package/dist/index-B9IUGIqh.js.map +1 -0
- package/dist/index-BFKYwgq3.js +7488 -0
- package/dist/index-BFKYwgq3.js.map +1 -0
- package/dist/index-BPB7fVHQ.js +281 -0
- package/dist/index-BPB7fVHQ.js.map +1 -0
- package/dist/index-BdRMG5oJ.js +126 -0
- package/dist/index-BdRMG5oJ.js.map +1 -0
- package/dist/index-Bowi-aBJ.js +147 -0
- package/dist/index-Bowi-aBJ.js.map +1 -0
- package/dist/index-BpOoitMw.js +131 -0
- package/dist/index-BpOoitMw.js.map +1 -0
- package/dist/index-BqCjN5Bk.js +124 -0
- package/dist/index-BqCjN5Bk.js.map +1 -0
- package/dist/index-Bv2Jkp0T.js +967 -0
- package/dist/index-Bv2Jkp0T.js.map +1 -0
- package/dist/index-C2tJFA0B.js +1372 -0
- package/dist/index-C2tJFA0B.js.map +1 -0
- package/dist/index-C3h1bsiv.js +109 -0
- package/dist/index-C3h1bsiv.js.map +1 -0
- package/dist/index-CFC2NxJ5.js +180 -0
- package/dist/index-CFC2NxJ5.js.map +1 -0
- package/dist/index-CG2tDcOE.js +182 -0
- package/dist/index-CG2tDcOE.js.map +1 -0
- package/dist/index-CM8qnUNO.js +181 -0
- package/dist/index-CM8qnUNO.js.map +1 -0
- package/dist/index-CNivx0yI.js +1178 -0
- package/dist/index-CNivx0yI.js.map +1 -0
- package/dist/index-CStkjfQQ.js +521 -0
- package/dist/index-CStkjfQQ.js.map +1 -0
- package/dist/index-CV3sK6gH.js +7258 -0
- package/dist/index-CV3sK6gH.js.map +1 -0
- package/dist/index-CZkzO2fh.js +70 -0
- package/dist/index-CZkzO2fh.js.map +1 -0
- package/dist/index-Ce3DzdHE.js +520 -0
- package/dist/index-Ce3DzdHE.js.map +1 -0
- package/dist/index-CgVqanW1.js +611 -0
- package/dist/index-CgVqanW1.js.map +1 -0
- package/dist/index-Ci6Y519l.js +249 -0
- package/dist/index-Ci6Y519l.js.map +1 -0
- package/dist/index-CnpO-uMV.js +62 -0
- package/dist/index-CnpO-uMV.js.map +1 -0
- package/dist/index-Cs_Ue1li.js +9530 -0
- package/dist/index-Cs_Ue1li.js.map +1 -0
- package/dist/index-CzIN86Z6.js +52 -0
- package/dist/index-CzIN86Z6.js.map +1 -0
- package/dist/index-DGrOD_Uk.js +136 -0
- package/dist/index-DGrOD_Uk.js.map +1 -0
- package/dist/index-DQgrdARk.js +198 -0
- package/dist/index-DQgrdARk.js.map +1 -0
- package/dist/index-DUrjw7B_.js +92 -0
- package/dist/index-DUrjw7B_.js.map +1 -0
- package/dist/index-DYvUtH2H.js +198 -0
- package/dist/index-DYvUtH2H.js.map +1 -0
- package/dist/index-DjlKuTuO.js +1582 -0
- package/dist/index-DjlKuTuO.js.map +1 -0
- package/dist/index-DrdtZOyM.js +286 -0
- package/dist/index-DrdtZOyM.js.map +1 -0
- package/dist/index-Dt1IUAIj.js +716 -0
- package/dist/index-Dt1IUAIj.js.map +1 -0
- package/dist/index-DvmMzzVa.js +18322 -0
- package/dist/index-DvmMzzVa.js.map +1 -0
- package/dist/index-DzZOIbsR.js +147 -0
- package/dist/index-DzZOIbsR.js.map +1 -0
- package/dist/index-ENsIYRhz.js +542 -0
- package/dist/index-ENsIYRhz.js.map +1 -0
- package/dist/index-QqIUi-wY.js +2402 -0
- package/dist/index-QqIUi-wY.js.map +1 -0
- package/dist/index-SlVjFZvp.js +110 -0
- package/dist/index-SlVjFZvp.js.map +1 -0
- package/dist/index-VKogKIsA.js +985 -0
- package/dist/index-VKogKIsA.js.map +1 -0
- package/dist/index-bd39Gizk.js +153 -0
- package/dist/index-bd39Gizk.js.map +1 -0
- package/dist/index-ciqjpb4e.js +73 -0
- package/dist/index-ciqjpb4e.js.map +1 -0
- package/dist/index-d4z00ajR.js +456 -0
- package/dist/index-d4z00ajR.js.map +1 -0
- package/dist/index-dTaiyIFQ.js +257 -0
- package/dist/index-dTaiyIFQ.js.map +1 -0
- package/dist/index-nkefGcqB.js +9350 -0
- package/dist/index-nkefGcqB.js.map +1 -0
- package/dist/index-pg-zQJY9.js +441 -0
- package/dist/index-pg-zQJY9.js.map +1 -0
- package/dist/index.es-Dpl-2r0L.js +8503 -0
- package/dist/index.es-Dpl-2r0L.js.map +1 -0
- package/dist/info-BhGLu7a7.js +8 -0
- package/dist/info-BhGLu7a7.js.map +1 -0
- package/dist/info-circle-qS-gYigf.js +17 -0
- package/dist/info-circle-qS-gYigf.js.map +1 -0
- package/dist/jsxRuntime.module-Bj81_EKI.js +14 -0
- package/dist/jsxRuntime.module-Bj81_EKI.js.map +1 -0
- package/dist/lightbulb-CkRo4E3y.js +8 -0
- package/dist/lightbulb-CkRo4E3y.js.map +1 -0
- package/dist/localBatchGatewayRequest-BP_oqSkW.js +103 -0
- package/dist/localBatchGatewayRequest-BP_oqSkW.js.map +1 -0
- package/dist/mail-DPd51pyO.js +13 -0
- package/dist/mail-DPd51pyO.js.map +1 -0
- package/dist/metamask-sdk-yihv7E6u.js +16699 -0
- package/dist/metamask-sdk-yihv7E6u.js.map +1 -0
- package/dist/mobile-CRO9ITfa.js +14 -0
- package/dist/mobile-CRO9ITfa.js.map +1 -0
- package/dist/more-DyaHLM9d.js +16 -0
- package/dist/more-DyaHLM9d.js.map +1 -0
- package/dist/native-CMPA4OCm.js +17 -0
- package/dist/native-CMPA4OCm.js.map +1 -0
- package/dist/network-placeholder-DGSqV09i.js +19 -0
- package/dist/network-placeholder-DGSqV09i.js.map +1 -0
- package/dist/nftPlaceholder-CLGGLw6g.js +13 -0
- package/dist/nftPlaceholder-CLGGLw6g.js.map +1 -0
- package/dist/off-CDy-1GjF.js +13 -0
- package/dist/off-CDy-1GjF.js.map +1 -0
- package/dist/onramp-pjFNY0fj.js +979 -0
- package/dist/onramp-pjFNY0fj.js.map +1 -0
- package/dist/parseSignature-CV_ULbSZ.js +2828 -0
- package/dist/parseSignature-CV_ULbSZ.js.map +1 -0
- package/dist/pay-with-exchange-Cz8dXxOa.js +603 -0
- package/dist/pay-with-exchange-Cz8dXxOa.js.map +1 -0
- package/dist/play-store-CdQ0GJhU.js +37 -0
- package/dist/play-store-CdQ0GJhU.js.map +1 -0
- package/dist/plus-DD_oKDcI.js +18 -0
- package/dist/plus-DD_oKDcI.js.map +1 -0
- package/dist/property-8UcTqffH.js +623 -0
- package/dist/property-8UcTqffH.js.map +1 -0
- package/dist/qr-code-BJLuAwDg.js +11 -0
- package/dist/qr-code-BJLuAwDg.js.map +1 -0
- package/dist/receive-Brpo8_fV.js +262 -0
- package/dist/receive-Brpo8_fV.js.map +1 -0
- package/dist/recycle-horizontal-DMqA4Y6p.js +14 -0
- package/dist/recycle-horizontal-DMqA4Y6p.js.map +1 -0
- package/dist/ref-6sYmD-zI.js +43 -0
- package/dist/ref-6sYmD-zI.js.map +1 -0
- package/dist/refresh-SYbxLwZK.js +13 -0
- package/dist/refresh-SYbxLwZK.js.map +1 -0
- package/dist/reown-logo-FMoXntuJ.js +17 -0
- package/dist/reown-logo-FMoXntuJ.js.map +1 -0
- package/dist/search-DyRiO0T8.js +13 -0
- package/dist/search-DyRiO0T8.js.map +1 -0
- package/dist/secp256k1-DCQG8fZg.js +2031 -0
- package/dist/secp256k1-DCQG8fZg.js.map +1 -0
- package/dist/send-AaCUn2jw.js +20 -0
- package/dist/send-AaCUn2jw.js.map +1 -0
- package/dist/send-cysMDEC9.js +1365 -0
- package/dist/send-cysMDEC9.js.map +1 -0
- package/dist/socials-BU9YyLx1.js +796 -0
- package/dist/socials-BU9YyLx1.js.map +1 -0
- package/dist/swapHorizontal-kHwa5wbg.js +13 -0
- package/dist/swapHorizontal-kHwa5wbg.js.map +1 -0
- package/dist/swapHorizontalBold-Bf_Sy4KD.js +13 -0
- package/dist/swapHorizontalBold-Bf_Sy4KD.js.map +1 -0
- package/dist/swapHorizontalMedium-C4oU0KJg.js +21 -0
- package/dist/swapHorizontalMedium-C4oU0KJg.js.map +1 -0
- package/dist/swapHorizontalRoundedBold-IJ8G94V0.js +13 -0
- package/dist/swapHorizontalRoundedBold-IJ8G94V0.js.map +1 -0
- package/dist/swapVertical-CuDVDBMJ.js +13 -0
- package/dist/swapVertical-CuDVDBMJ.js.map +1 -0
- package/dist/swaps-TcZwQiir.js +2121 -0
- package/dist/swaps-TcZwQiir.js.map +1 -0
- package/dist/telegram-DSi6IsaA.js +21 -0
- package/dist/telegram-DSi6IsaA.js.map +1 -0
- package/dist/three-dots-CqgQBZQ6.js +10 -0
- package/dist/three-dots-CqgQBZQ6.js.map +1 -0
- package/dist/transactions-CcagUdpJ.js +38 -0
- package/dist/transactions-CcagUdpJ.js.map +1 -0
- package/dist/twitch-DrUmltT6.js +23 -0
- package/dist/twitch-DrUmltT6.js.map +1 -0
- package/dist/twitterIcon-eNCEY2nh.js +11 -0
- package/dist/twitterIcon-eNCEY2nh.js.map +1 -0
- package/dist/vanilla-CgG5xMJO.js +448 -0
- package/dist/vanilla-CgG5xMJO.js.map +1 -0
- package/dist/verify-DGCdp1PG.js +13 -0
- package/dist/verify-DGCdp1PG.js.map +1 -0
- package/dist/verify-filled-BN5Rdq_X.js +13 -0
- package/dist/verify-filled-BN5Rdq_X.js.map +1 -0
- package/dist/w3m-modal-C23tcwd0.js +2008 -0
- package/dist/w3m-modal-C23tcwd0.js.map +1 -0
- package/dist/w3m-modal-D_WKuA4j.js +1725 -0
- package/dist/w3m-modal-D_WKuA4j.js.map +1 -0
- package/dist/wallet-Dh8w0rox.js +13 -0
- package/dist/wallet-Dh8w0rox.js.map +1 -0
- package/dist/wallet-placeholder-gjfCYn59.js +19 -0
- package/dist/wallet-placeholder-gjfCYn59.js.map +1 -0
- package/dist/wallet-standard-CWX-EDlP.js +523 -0
- package/dist/wallet-standard-CWX-EDlP.js.map +1 -0
- package/dist/walletconnect-BI4tTckl.js +39 -0
- package/dist/walletconnect-BI4tTckl.js.map +1 -0
- package/dist/warning-circle-jCqjcA2f.js +17 -0
- package/dist/warning-circle-jCqjcA2f.js.map +1 -0
- package/dist/x-BfcQ5n6S.js +17 -0
- package/dist/x-BfcQ5n6S.js.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseSignature-CV_ULbSZ.js","sources":["../../../node_modules/.pnpm/abitype@1.2.3_typescript@5.9.2_zod@4.1.12/node_modules/abitype/dist/esm/human-readable/parseAbiItem.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/errors/log.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/abi/encodeEventTopics.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/createContractEventFilter.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/estimateContractGas.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getLogs.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getContractEvents.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/simulateContract.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/watchContractEvent.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/errors/calls.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/wallet/sendCalls.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/wallet/getCallsStatus.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/wallet/waitForCallsStatus.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/errors.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/namehash.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/encodeLabelhash.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/labelhash.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/packetToBytes.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/ens/getEnsAddress.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/errors/ens.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/avatar/utils.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/ens/getEnsText.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/ens/getEnsAvatar.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/ens/getEnsName.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/ens/getEnsResolver.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/createAccessList.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/createBlockFilter.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/createEventFilter.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getBlobBaseFee.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/errors/eip712.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getEip712Domain.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/formatters/feeHistory.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getFeeHistory.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getFilterLogs.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/abi/encodePacked.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/nonceManager.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/rpc/id.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/rpc/http.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/constants/bytes.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/signature/serializeErc6492Signature.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/formatters/proof.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getProof.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getStorageAt.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/simulateBlocks.js","../../../node_modules/.pnpm/ox@0.10.5_typescript@5.9.2_zod@4.1.12/node_modules/ox/_esm/core/internal/abiItem.js","../../../node_modules/.pnpm/ox@0.10.5_typescript@5.9.2_zod@4.1.12/node_modules/ox/_esm/core/AbiItem.js","../../../node_modules/.pnpm/ox@0.10.5_typescript@5.9.2_zod@4.1.12/node_modules/ox/_esm/core/AbiConstructor.js","../../../node_modules/.pnpm/ox@0.10.5_typescript@5.9.2_zod@4.1.12/node_modules/ox/_esm/core/AbiFunction.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/constants/address.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/simulateCalls.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/verifyMessage.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/verifyTypedData.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/watchBlocks.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/public/watchEvent.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/siwe/parseSiweMessage.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/siwe/validateSiweMessage.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/siwe/verifySiweMessage.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/wallet/sendRawTransactionSync.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/clients/decorators/public.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/clients/createPublicClient.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/actions/wallet/prepareAuthorization.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/errors/transport.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/clients/transports/http.js","../../../node_modules/.pnpm/viem@2.43.0_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10_zod@4.1.12/node_modules/viem/_esm/utils/signature/parseSignature.js"],"sourcesContent":["import { InvalidAbiItemError } from './errors/abiItem.js';\nimport { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI item (e.g. error, event, function) into {@link Abi} item\n *\n * @param signature - Human-readable ABI item\n * @returns Parsed {@link Abi} item\n *\n * @example\n * const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\n * // ^? const abiItem: { name: \"balanceOf\"; type: \"function\"; stateMutability: \"view\";...\n *\n * @example\n * const abiItem = parseAbiItem([\n * // ^? const abiItem: { name: \"foo\"; type: \"function\"; stateMutability: \"view\"; inputs:...\n * 'function foo(Baz bar) view returns (string)',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiItem(signature) {\n let abiItem;\n if (typeof signature === 'string')\n abiItem = parseSignature(signature);\n else {\n const structs = parseStructs(signature);\n const length = signature.length;\n for (let i = 0; i < length; i++) {\n const signature_ = signature[i];\n if (isStructSignature(signature_))\n continue;\n abiItem = parseSignature(signature_, structs);\n break;\n }\n }\n if (!abiItem)\n throw new InvalidAbiItemError({ signature });\n return abiItem;\n}\n//# sourceMappingURL=parseAbiItem.js.map","import { BaseError } from './base.js';\nexport class FilterTypeNotSupportedError extends BaseError {\n constructor(type) {\n super(`Filter type \"${type}\" is not supported.`, {\n name: 'FilterTypeNotSupportedError',\n });\n }\n}\n//# sourceMappingURL=log.js.map","import { AbiEventNotFoundError, } from '../../errors/abi.js';\nimport { FilterTypeNotSupportedError, } from '../../errors/log.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { toEventSelector, } from '../hash/toEventSelector.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeEventTopics';\nexport function encodeEventTopics(parameters) {\n const { abi, eventName, args } = parameters;\n let abiItem = abi[0];\n if (eventName) {\n const item = getAbiItem({ abi, name: eventName });\n if (!item)\n throw new AbiEventNotFoundError(eventName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'event')\n throw new AbiEventNotFoundError(undefined, { docsPath });\n const definition = formatAbiItem(abiItem);\n const signature = toEventSelector(definition);\n let topics = [];\n if (args && 'inputs' in abiItem) {\n const indexedInputs = abiItem.inputs?.filter((param) => 'indexed' in param && param.indexed);\n const args_ = Array.isArray(args)\n ? args\n : Object.values(args).length > 0\n ? (indexedInputs?.map((x) => args[x.name]) ?? [])\n : [];\n if (args_.length > 0) {\n topics =\n indexedInputs?.map((param, i) => {\n if (Array.isArray(args_[i]))\n return args_[i].map((_, j) => encodeArg({ param, value: args_[i][j] }));\n return typeof args_[i] !== 'undefined' && args_[i] !== null\n ? encodeArg({ param, value: args_[i] })\n : null;\n }) ?? [];\n }\n }\n return [signature, ...topics];\n}\nfunction encodeArg({ param, value, }) {\n if (param.type === 'string' || param.type === 'bytes')\n return keccak256(toBytes(value));\n if (param.type === 'tuple' || param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n throw new FilterTypeNotSupportedError(param.type);\n return encodeAbiParameters([param], [value]);\n}\n//# sourceMappingURL=encodeEventTopics.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs).\n *\n * - Docs: https://viem.sh/docs/contract/createContractEventFilter\n *\n * @param client - Client to use\n * @param parameters - {@link CreateContractEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateContractEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * })\n */\nexport async function createContractEventFilter(client, parameters) {\n const { address, abi, args, eventName, fromBlock, strict, toBlock } = parameters;\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n const topics = eventName\n ? encodeEventTopics({\n abi,\n args,\n eventName,\n })\n : undefined;\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n topics,\n },\n ],\n });\n return {\n abi,\n args,\n eventName,\n id,\n request: getRequest(id),\n strict: Boolean(strict),\n type: 'event',\n };\n}\n//# sourceMappingURL=createContractEventFilter.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { estimateGas, } from './estimateGas.js';\n/**\n * Estimates the gas required to successfully execute a contract write function call.\n *\n * - Docs: https://viem.sh/docs/contract/estimateContractGas\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateContractGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateContractGas } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gas = await estimateContractGas(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * functionName: 'mint',\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\nexport async function estimateContractGas(client, parameters) {\n const { abi, address, args, functionName, dataSuffix, ...request } = parameters;\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const gas = await getAction(client, estimateGas, 'estimateGas')({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...request,\n });\n return gas;\n }\n catch (error) {\n const account = request.account ? parseAccount(request.account) : undefined;\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/estimateContractGas',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=estimateContractGas.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/logs_event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs(client, { address, blockHash, fromBlock, toBlock, event, events: events_, args, strict: strict_, } = {}) {\n const strict = strict_ ?? false;\n const events = events_ ?? (event ? [event] : undefined);\n let topics = [];\n if (events) {\n const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args: events_ ? undefined : args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n let logs;\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n });\n }\n else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n });\n }\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!events)\n return formattedLogs;\n return parseEventLogs({\n abi: events,\n args: args,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getLogs.js.map","import { getAbiItem, } from '../../utils/abi/getAbiItem.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getLogs, } from './getLogs.js';\n/**\n * Returns a list of event logs emitted by a contract.\n *\n * - Docs: https://viem.sh/docs/contract/getContractEvents#getcontractevents\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetContractEventsParameters}\n * @returns A list of event logs. {@link GetContractEventsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getContractEvents } from 'viem/public'\n * import { wagmiAbi } from './abi'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getContractEvents(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: wagmiAbi,\n * eventName: 'Transfer'\n * })\n */\nexport async function getContractEvents(client, parameters) {\n const { abi, address, args, blockHash, eventName, fromBlock, toBlock, strict, } = parameters;\n const event = eventName\n ? getAbiItem({ abi, name: eventName })\n : undefined;\n const events = !event\n ? abi.filter((x) => x.type === 'event')\n : undefined;\n return getAction(client, getLogs, 'getLogs')({\n address,\n args,\n blockHash,\n event,\n events,\n fromBlock,\n toBlock,\n strict,\n });\n}\n//# sourceMappingURL=getContractEvents.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n *\n * - Docs: https://viem.sh/docs/contract/simulateContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateContractParameters}\n * @returns The simulation result and write request. {@link SimulateContractReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n * functionName: 'mint',\n * args: ['69420'],\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function simulateContract(client, parameters) {\n const { abi, address, args, dataSuffix, functionName, ...callRequest } = parameters;\n const account = callRequest.account\n ? parseAccount(callRequest.account)\n : client.account;\n const calldata = encodeFunctionData({ abi, args, functionName });\n try {\n const { data } = await getAction(client, call, 'call')({\n batch: false,\n data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...callRequest,\n account,\n });\n const result = decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n const minimizedAbi = abi.filter((abiItem) => 'name' in abiItem && abiItem.name === parameters.functionName);\n return {\n result,\n request: {\n abi: minimizedAbi,\n address,\n args,\n dataSuffix,\n functionName,\n ...callRequest,\n account,\n },\n };\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=simulateContract.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createContractEventFilter } from './createContractEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getContractEvents, } from './getContractEvents.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchContractEventParameters}\n * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchContractEvent } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchContractEvent(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n * eventName: 'Transfer',\n * args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchContractEvent(client, parameters) {\n const { abi, address, args, batch = true, eventName, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, } = parameters;\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const pollContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n args: args,\n eventName: eventName,\n strict: strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber < blockNumber) {\n logs = await getAction(client, getContractEvents, 'getContractEvents')({\n abi,\n address,\n args,\n eventName,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n strict,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitialize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n ]);\n let active = true;\n let unsubscribe = () => (active = false);\n return observe(observerId, { onLogs, onError }, (emit) => {\n ;\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const topics = eventName\n ? encodeEventTopics({\n abi: abi,\n eventName: eventName,\n args,\n })\n : [];\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: abi,\n data: log.data,\n topics: log.topics,\n strict: strict_,\n });\n const formatted = formatLog(log, {\n args,\n eventName: eventName,\n });\n emit.onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n emit.onLogs([formatted]);\n }\n },\n onError(error) {\n emit.onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n });\n };\n return enablePolling ? pollContractEvent() : subscribeContractEvent();\n}\n//# sourceMappingURL=watchContractEvent.js.map","import { BaseError } from './base.js';\nexport class BundleFailedError extends BaseError {\n constructor(result) {\n super(`Call bundle failed with status: ${result.statusCode}`, {\n name: 'BundleFailedError',\n });\n Object.defineProperty(this, \"result\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.result = result;\n }\n}\n//# sourceMappingURL=calls.js.map","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { BaseError } from '../../errors/base.js';\nimport { AtomicityNotSupportedError, UnsupportedNonOptionalCapabilityError, } from '../../errors/rpc.js';\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js';\nimport { concat } from '../../utils/data/concat.js';\nimport { hexToBigInt } from '../../utils/encoding/fromHex.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\nimport { getTransactionError } from '../../utils/errors/getTransactionError.js';\nimport { sendTransaction } from './sendTransaction.js';\nexport const fallbackMagicIdentifier = '0x5792579257925792579257925792579257925792579257925792579257925792';\nexport const fallbackTransactionErrorMagicIdentifier = numberToHex(0, {\n size: 32,\n});\n/**\n * Requests the connected wallet to send a batch of calls.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendCalls\n * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Transaction identifier. {@link SendCallsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendCalls } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const id = await sendCalls(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * calls: [\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 69420n,\n * },\n * ],\n * })\n */\nexport async function sendCalls(client, parameters) {\n const { account: account_ = client.account, capabilities, chain = client.chain, experimental_fallback, experimental_fallbackDelay = 32, forceAtomic = false, id, version = '2.0.0', } = parameters;\n const account = account_ ? parseAccount(account_) : null;\n const calls = parameters.calls.map((call_) => {\n const call = call_;\n const data = call.abi\n ? encodeFunctionData({\n abi: call.abi,\n functionName: call.functionName,\n args: call.args,\n })\n : call.data;\n return {\n data: call.dataSuffix && data ? concat([data, call.dataSuffix]) : data,\n to: call.to,\n value: call.value ? numberToHex(call.value) : undefined,\n };\n });\n try {\n const response = await client.request({\n method: 'wallet_sendCalls',\n params: [\n {\n atomicRequired: forceAtomic,\n calls,\n capabilities,\n chainId: numberToHex(chain.id),\n from: account?.address,\n id,\n version,\n },\n ],\n }, { retryCount: 0 });\n if (typeof response === 'string')\n return { id: response };\n return response;\n }\n catch (err) {\n const error = err;\n // If the transport does not support EIP-5792, fall back to\n // `eth_sendTransaction`.\n if (experimental_fallback &&\n (error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError' ||\n error.name === 'UnknownRpcError' ||\n error.details\n .toLowerCase()\n .includes('does not exist / is not available') ||\n error.details.toLowerCase().includes('missing or invalid. request()') ||\n error.details\n .toLowerCase()\n .includes('did not match any variant of untagged enum') ||\n error.details\n .toLowerCase()\n .includes('account upgraded to unsupported contract') ||\n error.details.toLowerCase().includes('eip-7702 not supported') ||\n error.details.toLowerCase().includes('unsupported wc_ method') ||\n // magic.link\n error.details\n .toLowerCase()\n .includes('feature toggled misconfigured') ||\n // Trust Wallet\n error.details\n .toLowerCase()\n .includes('jsonrpcengine: response has no error or result for request'))) {\n if (capabilities) {\n const hasNonOptionalCapability = Object.values(capabilities).some((capability) => !capability.optional);\n if (hasNonOptionalCapability) {\n const message = 'non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.';\n throw new UnsupportedNonOptionalCapabilityError(new BaseError(message, {\n details: message,\n }));\n }\n }\n if (forceAtomic && calls.length > 1) {\n const message = '`forceAtomic` is not supported on fallback to `eth_sendTransaction`.';\n throw new AtomicityNotSupportedError(new BaseError(message, {\n details: message,\n }));\n }\n const promises = [];\n for (const call of calls) {\n const promise = sendTransaction(client, {\n account,\n chain,\n data: call.data,\n to: call.to,\n value: call.value ? hexToBigInt(call.value) : undefined,\n });\n promises.push(promise);\n // Note: some browser wallets require a small delay between transactions\n // to prevent duplicate JSON-RPC requests.\n if (experimental_fallbackDelay > 0)\n await new Promise((resolve) => setTimeout(resolve, experimental_fallbackDelay));\n }\n const results = await Promise.allSettled(promises);\n if (results.every((r) => r.status === 'rejected'))\n throw results[0].reason;\n const hashes = results.map((result) => {\n if (result.status === 'fulfilled')\n return result.value;\n return fallbackTransactionErrorMagicIdentifier;\n });\n return {\n id: concat([\n ...hashes,\n numberToHex(chain.id, { size: 32 }),\n fallbackMagicIdentifier,\n ]),\n };\n }\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain,\n });\n }\n}\n//# sourceMappingURL=sendCalls.js.map","import { sliceHex } from '../../utils/data/slice.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { hexToBigInt, hexToNumber } from '../../utils/encoding/fromHex.js';\nimport { receiptStatuses } from '../../utils/formatters/transactionReceipt.js';\nimport { fallbackMagicIdentifier, fallbackTransactionErrorMagicIdentifier, } from './sendCalls.js';\n/**\n * Returns the status of a call batch that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link GetCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function getCallsStatus(client, parameters) {\n async function getStatus(id) {\n const isTransactions = id.endsWith(fallbackMagicIdentifier.slice(2));\n if (isTransactions) {\n const chainId = trim(sliceHex(id, -64, -32));\n const hashes = sliceHex(id, 0, -64)\n .slice(2)\n .match(/.{1,64}/g);\n const receipts = await Promise.all(hashes.map((hash) => fallbackTransactionErrorMagicIdentifier.slice(2) !== hash\n ? client.request({\n method: 'eth_getTransactionReceipt',\n params: [`0x${hash}`],\n }, { dedupe: true })\n : undefined));\n const status = (() => {\n if (receipts.some((r) => r === null))\n return 100; // pending\n if (receipts.every((r) => r?.status === '0x1'))\n return 200; // success\n if (receipts.every((r) => r?.status === '0x0'))\n return 500; // complete failure\n return 600; // partial failure\n })();\n return {\n atomic: false,\n chainId: hexToNumber(chainId),\n receipts: receipts.filter(Boolean),\n status,\n version: '2.0.0',\n };\n }\n return client.request({\n method: 'wallet_getCallsStatus',\n params: [id],\n });\n }\n const { atomic = false, chainId, receipts, version = '2.0.0', ...response } = await getStatus(parameters.id);\n const [status, statusCode] = (() => {\n const statusCode = response.status;\n if (statusCode >= 100 && statusCode < 200)\n return ['pending', statusCode];\n if (statusCode >= 200 && statusCode < 300)\n return ['success', statusCode];\n if (statusCode >= 300 && statusCode < 700)\n return ['failure', statusCode];\n // @ts-expect-error: for backwards compatibility\n if (statusCode === 'CONFIRMED')\n return ['success', 200];\n // @ts-expect-error: for backwards compatibility\n if (statusCode === 'PENDING')\n return ['pending', 100];\n return [undefined, statusCode];\n })();\n return {\n ...response,\n atomic,\n // @ts-expect-error: for backwards compatibility\n chainId: chainId ? hexToNumber(chainId) : undefined,\n receipts: receipts?.map((receipt) => ({\n ...receipt,\n blockNumber: hexToBigInt(receipt.blockNumber),\n gasUsed: hexToBigInt(receipt.gasUsed),\n status: receiptStatuses[receipt.status],\n })) ?? [],\n statusCode,\n status,\n version,\n };\n}\n//# sourceMappingURL=getCallsStatus.js.map","import { BaseError } from '../../errors/base.js';\nimport { BundleFailedError } from '../../errors/calls.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { withResolvers } from '../../utils/promise/withResolvers.js';\nimport { withRetry, } from '../../utils/promise/withRetry.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getCallsStatus, } from './getCallsStatus.js';\n/**\n * Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForCallsStatusParameters}\n * @returns Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { waitForCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function waitForCallsStatus(client, parameters) {\n const { id, pollingInterval = client.pollingInterval, status = ({ statusCode }) => statusCode === 200 || statusCode >= 300, retryCount = 4, retryDelay = ({ count }) => ~~(1 << count) * 200, // exponential backoff\n timeout = 60_000, throwOnFailure = false, } = parameters;\n const observerId = stringify(['waitForCallsStatus', client.uid, id]);\n const { promise, resolve, reject } = withResolvers();\n let timer;\n const unobserve = observe(observerId, { resolve, reject }, (emit) => {\n const unpoll = poll(async () => {\n const done = (fn) => {\n clearTimeout(timer);\n unpoll();\n fn();\n unobserve();\n };\n try {\n const result = await withRetry(async () => {\n const result = await getAction(client, getCallsStatus, 'getCallsStatus')({ id });\n if (throwOnFailure && result.status === 'failure')\n throw new BundleFailedError(result);\n return result;\n }, {\n retryCount,\n delay: retryDelay,\n });\n if (!status(result))\n return;\n done(() => emit.resolve(result));\n }\n catch (error) {\n done(() => emit.reject(error));\n }\n }, {\n interval: pollingInterval,\n emitOnBegin: true,\n });\n return unpoll;\n });\n timer = timeout\n ? setTimeout(() => {\n unobserve();\n clearTimeout(timer);\n reject(new WaitForCallsStatusTimeoutError({ id }));\n }, timeout)\n : undefined;\n return await promise;\n}\nexport class WaitForCallsStatusTimeoutError extends BaseError {\n constructor({ id }) {\n super(`Timed out while waiting for call bundle with id \"${id}\" to be confirmed.`, { name: 'WaitForCallsStatusTimeoutError' });\n }\n}\n//# sourceMappingURL=waitForCallsStatus.js.map","import { BaseError } from '../../errors/base.js';\nimport { ContractFunctionRevertedError } from '../../errors/contract.js';\n/*\n * @description Checks if error is a valid null result UniversalResolver error\n */\nexport function isNullUniversalResolverError(err) {\n if (!(err instanceof BaseError))\n return false;\n const cause = err.walk((e) => e instanceof ContractFunctionRevertedError);\n if (!(cause instanceof ContractFunctionRevertedError))\n return false;\n if (cause.data?.errorName === 'HttpError')\n return true;\n if (cause.data?.errorName === 'ResolverError')\n return true;\n if (cause.data?.errorName === 'ResolverNotContract')\n return true;\n if (cause.data?.errorName === 'ResolverNotFound')\n return true;\n if (cause.data?.errorName === 'ReverseAddressMismatch')\n return true;\n if (cause.data?.errorName === 'UnsupportedResolverProfile')\n return true;\n return false;\n}\n//# sourceMappingURL=errors.js.map","import { isHex } from '../data/isHex.js';\nexport function encodedLabelToLabelhash(label) {\n if (label.length !== 66)\n return null;\n if (label.indexOf('[') !== 0)\n return null;\n if (label.indexOf(']') !== 65)\n return null;\n const hash = `0x${label.slice(1, 65)}`;\n if (!isHex(hash))\n return null;\n return hash;\n}\n//# sourceMappingURL=encodedLabelToLabelhash.js.map","import { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * namehash('wevm.eth')\n * '0x08c85f2f4059e930c45a6aeff9dcd3bd95dc3c5c1cddef6a0626b31152248560'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name) {\n let result = new Uint8Array(32).fill(0);\n if (!name)\n return bytesToHex(result);\n const labels = name.split('.');\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashFromEncodedLabel = encodedLabelToLabelhash(labels[i]);\n const hashed = hashFromEncodedLabel\n ? toBytes(hashFromEncodedLabel)\n : keccak256(stringToBytes(labels[i]), 'bytes');\n result = keccak256(concat([result, hashed]), 'bytes');\n }\n return bytesToHex(result);\n}\n//# sourceMappingURL=namehash.js.map","export function encodeLabelhash(hash) {\n return `[${hash.slice(2)}]`;\n}\n//# sourceMappingURL=encodeLabelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label) {\n const result = new Uint8Array(32).fill(0);\n if (!label)\n return bytesToHex(result);\n return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label));\n}\n//# sourceMappingURL=labelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { encodeLabelhash, } from './encodeLabelhash.js';\nimport { labelhash } from './labelhash.js';\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n *\n * @example\n * packetToBytes('awkweb.eth')\n * '0x0661776b7765620365746800'\n *\n * @see https://docs.ens.domains/resolution/names#dns\n *\n */\nexport function packetToBytes(packet) {\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '');\n if (value.length === 0)\n return new Uint8Array(1);\n const bytes = new Uint8Array(stringToBytes(value).byteLength + 2);\n let offset = 0;\n const list = value.split('.');\n for (let i = 0; i < list.length; i++) {\n let encoded = stringToBytes(list[i]);\n // if the length is > 255, make the encoded label value a labelhash\n // this is compatible with the universal resolver\n if (encoded.byteLength > 255)\n encoded = stringToBytes(encodeLabelhash(labelhash(list[i])));\n bytes[offset] = encoded.length;\n bytes.set(encoded, offset + 1);\n offset += encoded.length + 1;\n }\n if (bytes.byteLength !== offset + 1)\n return bytes.slice(0, offset + 1);\n return bytes;\n}\n//# sourceMappingURL=packetToBytes.js.map","import { addressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAddressParameters}\n * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAddress, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAddress = await getEnsAddress(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(client, parameters) {\n const { blockNumber, blockTag, coinType, name, gatewayUrls, strict } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n return null;\n const args = (() => {\n if (coinType != null)\n return [namehash(name), BigInt(coinType)];\n return [namehash(name)];\n })();\n try {\n const functionData = encodeFunctionData({\n abi: addressResolverAbi,\n functionName: 'addr',\n args,\n });\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolveWithGateways',\n args: [\n toHex(packetToBytes(name)),\n functionData,\n gatewayUrls ?? [localBatchGatewayUrl],\n ],\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const address = decodeFunctionResult({\n abi: addressResolverAbi,\n args,\n functionName: 'addr',\n data: res[0],\n });\n if (address === '0x')\n return null;\n if (trim(address) === '0x00')\n return null;\n return address;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsAddress.js.map","import { BaseError } from './base.js';\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n constructor({ data }) {\n super('Unable to extract image from metadata. The metadata may be malformed or invalid.', {\n metaMessages: [\n '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n '',\n `Provided data: ${JSON.stringify(data)}`,\n ],\n name: 'EnsAvatarInvalidMetadataError',\n });\n }\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n constructor({ reason }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`, {\n name: 'EnsAvatarInvalidNftUriError',\n });\n }\n}\nexport class EnsAvatarUriResolutionError extends BaseError {\n constructor({ uri }) {\n super(`Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`, { name: 'EnsAvatarUriResolutionError' });\n }\n}\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n constructor({ namespace }) {\n super(`ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`, { name: 'EnsAvatarUnsupportedNamespaceError' });\n }\n}\nexport class EnsInvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(`Invalid ENSIP-11 chainId: ${chainId}. Must be between 0 and 0x7fffffff, or 1.`, {\n name: 'EnsInvalidChainIdError',\n });\n }\n}\n//# sourceMappingURL=ens.js.map","import { readContract, } from '../../../actions/public/readContract.js';\nimport { EnsAvatarInvalidMetadataError, EnsAvatarInvalidNftUriError, EnsAvatarUnsupportedNamespaceError, EnsAvatarUriResolutionError, } from '../../../errors/ens.js';\nconst networkRegex = /(?<protocol>https?:\\/\\/[^/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?<root>\\/)?(?<subpath>ipfs\\/|ipns\\/)?(?<target>[\\w\\-.]+)(?<subtarget>\\/.*)?/;\nconst ipfsHashRegex = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\/(?<target>[\\w\\-.]+))?(?<subtarget>\\/.*)?$/;\nconst base64Regex = /^data:([a-zA-Z\\-/+]*);base64,([^\"].*)/;\nconst dataURIRegex = /^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;\n/** @internal */\nexport async function isImageUri(uri) {\n try {\n const res = await fetch(uri, { method: 'HEAD' });\n // retrieve content type header to check if content is image\n if (res.status === 200) {\n const contentType = res.headers.get('content-type');\n return contentType?.startsWith('image/');\n }\n return false;\n }\n catch (error) {\n // if error is not cors related then fail\n if (typeof error === 'object' && typeof error.response !== 'undefined') {\n return false;\n }\n // fail in NodeJS, since the error is not cors but any other network issue\n if (!Object.hasOwn(globalThis, 'Image'))\n return false;\n // in case of cors, use image api to validate if given url is an actual image\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n resolve(true);\n };\n img.onerror = () => {\n resolve(false);\n };\n img.src = uri;\n });\n }\n}\n/** @internal */\nexport function getGateway(custom, defaultGateway) {\n if (!custom)\n return defaultGateway;\n if (custom.endsWith('/'))\n return custom.slice(0, -1);\n return custom;\n}\nexport function resolveAvatarUri({ uri, gatewayUrls, }) {\n const isEncoded = base64Regex.test(uri);\n if (isEncoded)\n return { uri, isOnChain: true, isEncoded };\n const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io');\n const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net');\n const networkRegexMatch = uri.match(networkRegex);\n const { protocol, subpath, target, subtarget = '', } = networkRegexMatch?.groups || {};\n const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/';\n const isIPFS = protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri);\n if (uri.startsWith('http') && !isIPNS && !isIPFS) {\n let replacedUri = uri;\n if (gatewayUrls?.arweave)\n replacedUri = uri.replace(/https:\\/\\/arweave.net/g, gatewayUrls?.arweave);\n return { uri: replacedUri, isOnChain: false, isEncoded: false };\n }\n if ((isIPNS || isIPFS) && target) {\n return {\n uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n if (protocol === 'ar:/' && target) {\n return {\n uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n let parsedUri = uri.replace(dataURIRegex, '');\n if (parsedUri.startsWith('<svg')) {\n // if svg, base64 encode\n parsedUri = `data:image/svg+xml;base64,${btoa(parsedUri)}`;\n }\n if (parsedUri.startsWith('data:') || parsedUri.startsWith('{')) {\n return {\n uri: parsedUri,\n isOnChain: true,\n isEncoded: false,\n };\n }\n throw new EnsAvatarUriResolutionError({ uri });\n}\nexport function getJsonImage(data) {\n // validation check for json data, must include one of theses properties\n if (typeof data !== 'object' ||\n (!('image' in data) && !('image_url' in data) && !('image_data' in data))) {\n throw new EnsAvatarInvalidMetadataError({ data });\n }\n return data.image || data.image_url || data.image_data;\n}\nexport async function getMetadataAvatarUri({ gatewayUrls, uri, }) {\n try {\n const res = await fetch(uri).then((res) => res.json());\n const image = await parseAvatarUri({\n gatewayUrls,\n uri: getJsonImage(res),\n });\n return image;\n }\n catch {\n throw new EnsAvatarUriResolutionError({ uri });\n }\n}\nexport async function parseAvatarUri({ gatewayUrls, uri, }) {\n const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls });\n if (isOnChain)\n return resolvedURI;\n // check if resolvedURI is an image, if it is return the url\n const isImage = await isImageUri(resolvedURI);\n if (isImage)\n return resolvedURI;\n throw new EnsAvatarUriResolutionError({ uri });\n}\nexport function parseNftUri(uri_) {\n let uri = uri_;\n // parse valid nft spec (CAIP-22/CAIP-29)\n // @see: https://github.com/ChainAgnostic/CAIPs/tree/master/CAIPs\n if (uri.startsWith('did:nft:')) {\n // convert DID to CAIP\n uri = uri.replace('did:nft:', '').replace(/_/g, '/');\n }\n const [reference, asset_namespace, tokenID] = uri.split('/');\n const [eip_namespace, chainID] = reference.split(':');\n const [erc_namespace, contractAddress] = asset_namespace.split(':');\n if (!eip_namespace || eip_namespace.toLowerCase() !== 'eip155')\n throw new EnsAvatarInvalidNftUriError({ reason: 'Only EIP-155 supported' });\n if (!chainID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Chain ID not found' });\n if (!contractAddress)\n throw new EnsAvatarInvalidNftUriError({\n reason: 'Contract address not found',\n });\n if (!tokenID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Token ID not found' });\n if (!erc_namespace)\n throw new EnsAvatarInvalidNftUriError({ reason: 'ERC namespace not found' });\n return {\n chainID: Number.parseInt(chainID, 10),\n namespace: erc_namespace.toLowerCase(),\n contractAddress: contractAddress,\n tokenID,\n };\n}\nexport async function getNftTokenUri(client, { nft }) {\n if (nft.namespace === 'erc721') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'tokenURI',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'tokenURI',\n args: [BigInt(nft.tokenID)],\n });\n }\n if (nft.namespace === 'erc1155') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'uri',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: '_id', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'uri',\n args: [BigInt(nft.tokenID)],\n });\n }\n throw new EnsAvatarUnsupportedNamespaceError({ namespace: nft.namespace });\n}\n//# sourceMappingURL=utils.js.map","import { getJsonImage, getMetadataAvatarUri, getNftTokenUri, parseAvatarUri, parseNftUri, resolveAvatarUri, } from './utils.js';\n/*\n * @description Parses an ENS avatar record.\n *\n * @example\n * parseAvatarRecord('eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063')\n * 'https://ipfs.io/ipfs/QmSP4nq9fnN9dAiCj42ug9Wa79rqmQerZXZch82VqpiH7U/image.gif'\n *\n * @see https://docs.ens.domains/web/avatars\n *\n */\nexport async function parseAvatarRecord(client, { gatewayUrls, record, }) {\n if (/eip155:/i.test(record))\n return parseNftAvatarUri(client, { gatewayUrls, record });\n return parseAvatarUri({ uri: record, gatewayUrls });\n}\nasync function parseNftAvatarUri(client, { gatewayUrls, record, }) {\n // parse NFT URI into properties\n const nft = parseNftUri(record);\n // fetch tokenURI from the NFT contract\n const nftUri = await getNftTokenUri(client, { nft });\n // resolve the URI from the fetched tokenURI\n const { uri: resolvedNftUri, isOnChain, isEncoded, } = resolveAvatarUri({ uri: nftUri, gatewayUrls });\n // if the resolved URI is on chain, return the data\n if (isOnChain &&\n (resolvedNftUri.includes('data:application/json;base64,') ||\n resolvedNftUri.startsWith('{'))) {\n const encodedJson = isEncoded\n ? // if it is encoded, decode it\n atob(resolvedNftUri.replace('data:application/json;base64,', ''))\n : // if it isn't encoded assume it is a JSON string, but it could be anything (it will error if it is)\n resolvedNftUri;\n const decoded = JSON.parse(encodedJson);\n return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls });\n }\n let uriTokenId = nft.tokenID;\n if (nft.namespace === 'erc1155')\n uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0');\n return getMetadataAvatarUri({\n gatewayUrls,\n uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n });\n}\n//# sourceMappingURL=parseAvatarRecord.js.map","import { textResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsTextParameters}\n * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsText, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const twitterRecord = await getEnsText(client, {\n * name: normalize('wevm.eth'),\n * key: 'com.twitter',\n * })\n * // 'wevm_dev'\n */\nexport async function getEnsText(client, parameters) {\n const { blockNumber, blockTag, key, name, gatewayUrls, strict } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n return null;\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: textResolverAbi,\n functionName: 'text',\n args: [namehash(name), key],\n }),\n gatewayUrls ?? [localBatchGatewayUrl],\n ],\n functionName: 'resolveWithGateways',\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const record = decodeFunctionResult({\n abi: textResolverAbi,\n functionName: 'text',\n data: res[0],\n });\n return record === '' ? null : record;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsText.js.map","import { parseAvatarRecord, } from '../../utils/ens/avatar/parseAvatarRecord.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getEnsText, } from './getEnsText.js';\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAvatarParameters}\n * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAvatar, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAvatar = await getEnsAvatar(client, {\n * name: normalize('wevm.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar(client, { blockNumber, blockTag, assetGatewayUrls, name, gatewayUrls, strict, universalResolverAddress, }) {\n const record = await getAction(client, getEnsText, 'getEnsText')({\n blockNumber,\n blockTag,\n key: 'avatar',\n name,\n universalResolverAddress,\n gatewayUrls,\n strict,\n });\n if (!record)\n return null;\n try {\n return await parseAvatarRecord(client, {\n record,\n gatewayUrls: assetGatewayUrls,\n });\n }\n catch {\n return null;\n }\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { universalResolverReverseAbi } from '../../constants/abis.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsNameParameters}\n * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsName } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensName = await getEnsName(client, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wevm.eth'\n */\nexport async function getEnsName(client, parameters) {\n const { address, blockNumber, blockTag, coinType = 60n, gatewayUrls, strict, } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverReverseAbi,\n args: [address, coinType, gatewayUrls ?? [localBatchGatewayUrl]],\n functionName: 'reverseWithGateways',\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const [name] = await readContractAction(readContractParameters);\n return name || null;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsName.js.map","import { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsResolverParameters}\n * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsResolver, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const resolverAddress = await getEnsResolver(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver(client, parameters) {\n const { blockNumber, blockTag, name } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n throw new Error(`${name} is not a valid ENS TLD (${tlds?.join(', ')}) for chain \"${chain.name}\" (id: ${chain.id}).`);\n const [resolverAddress] = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: [\n {\n inputs: [{ type: 'bytes' }],\n name: 'findResolver',\n outputs: [\n { type: 'address' },\n { type: 'bytes32' },\n { type: 'uint256' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n ],\n functionName: 'findResolver',\n args: [toHex(packetToBytes(name))],\n blockNumber,\n blockTag,\n });\n return resolverAddress;\n}\n//# sourceMappingURL=getEnsResolver.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Creates an EIP-2930 access list.\n *\n * - Docs: https://viem.sh/docs/actions/public/createAccessList\n * - JSON-RPC Methods: `eth_createAccessList`\n *\n * @param client - Client to use\n * @param parameters - {@link CreateAccessListParameters}\n * @returns The access list. {@link CreateAccessListReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createAccessList } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await createAccessList(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function createAccessList(client, args) {\n const { account: account_ = client.account, blockNumber, blockTag = 'latest', blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, to, value, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n assertRequest(args);\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n account,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n }, 'createAccessList');\n const response = await client.request({\n method: 'eth_createAccessList',\n params: [request, block],\n });\n return {\n accessList: response.accessList,\n gasUsed: BigInt(response.gasUsed),\n };\n }\n catch (err) {\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=createAccessList.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\nexport async function createBlockFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newBlockFilter',\n });\n const id = await client.request({\n method: 'eth_newBlockFilter',\n });\n return { id, request: getRequest(id), type: 'block' };\n}\n//# sourceMappingURL=createBlockFilter.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param client - Client to use\n * @param parameters - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\nexport async function createEventFilter(client, { address, args, event, events: events_, fromBlock, strict, toBlock, } = {}) {\n const events = events_ ?? (event ? [event] : undefined);\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n let topics = [];\n if (events) {\n const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n });\n return {\n abi: events,\n args,\n eventName: event ? event.name : undefined,\n fromBlock,\n id,\n request: getRequest(id),\n strict: Boolean(strict),\n toBlock,\n type: 'event',\n };\n}\n//# sourceMappingURL=createEventFilter.js.map","/**\n * Returns the base fee per blob gas in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlobBaseFee\n * - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee)\n *\n * @param client - Client to use\n * @returns The blob base fee (in wei). {@link GetBlobBaseFeeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlobBaseFee } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blobBaseFee = await getBlobBaseFee(client)\n */\nexport async function getBlobBaseFee(client) {\n const baseFee = await client.request({\n method: 'eth_blobBaseFee',\n });\n return BigInt(baseFee);\n}\n//# sourceMappingURL=getBlobBaseFee.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockTransactionCountParameters}\n * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const count = await getBlockTransactionCount(client)\n */\nexport async function getBlockTransactionCount(client, { blockHash, blockNumber, blockTag = 'latest', } = {}) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let count;\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n }, { dedupe: true });\n }\n else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n return hexToNumber(count);\n}\n//# sourceMappingURL=getBlockTransactionCount.js.map","import { BaseError } from './base.js';\nexport class Eip712DomainNotFoundError extends BaseError {\n constructor({ address }) {\n super(`No EIP-712 domain found on contract \"${address}\".`, {\n metaMessages: [\n 'Ensure that:',\n `- The contract is deployed at the address \"${address}\".`,\n '- `eip712Domain()` function exists on the contract.',\n '- `eip712Domain()` function matches signature to ERC-5267 specification.',\n ],\n name: 'Eip712DomainNotFoundError',\n });\n }\n}\n//# sourceMappingURL=eip712.js.map","import { Eip712DomainNotFoundError, } from '../../errors/eip712.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from './readContract.js';\n/**\n * Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.\n *\n * @param client - A {@link Client} instance.\n * @param parameters - The parameters of the action. {@link GetEip712DomainParameters}\n * @returns The EIP-712 domain, fields, and extensions. {@link GetEip712DomainReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, getEip712Domain } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const domain = await getEip712Domain(client, {\n * address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * })\n * // {\n * // domain: {\n * // name: 'ExampleContract',\n * // version: '1',\n * // chainId: 1,\n * // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * // },\n * // fields: '0x0f',\n * // extensions: [],\n * // }\n * ```\n */\nexport async function getEip712Domain(client, parameters) {\n const { address, factory, factoryData } = parameters;\n try {\n const [fields, name, version, chainId, verifyingContract, salt, extensions,] = await getAction(client, readContract, 'readContract')({\n abi,\n address,\n functionName: 'eip712Domain',\n factory,\n factoryData,\n });\n return {\n domain: {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n },\n extensions,\n fields,\n };\n }\n catch (e) {\n const error = e;\n if (error.name === 'ContractFunctionExecutionError' &&\n error.cause.name === 'ContractFunctionZeroDataError') {\n throw new Eip712DomainNotFoundError({ address });\n }\n throw error;\n }\n}\nconst abi = [\n {\n inputs: [],\n name: 'eip712Domain',\n outputs: [\n { name: 'fields', type: 'bytes1' },\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n { name: 'salt', type: 'bytes32' },\n { name: 'extensions', type: 'uint256[]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\n//# sourceMappingURL=getEip712Domain.js.map","export function formatFeeHistory(feeHistory) {\n return {\n baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),\n gasUsedRatio: feeHistory.gasUsedRatio,\n oldestBlock: BigInt(feeHistory.oldestBlock),\n reward: feeHistory.reward?.map((reward) => reward.map((value) => BigInt(value))),\n };\n}\n//# sourceMappingURL=feeHistory.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatFeeHistory, } from '../../utils/formatters/feeHistory.js';\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param client - Client to use\n * @param parameters - {@link GetFeeHistoryParameters}\n * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getFeeHistory } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const feeHistory = await getFeeHistory(client, {\n * blockCount: 4,\n * rewardPercentiles: [25, 75],\n * })\n */\nexport async function getFeeHistory(client, { blockCount, blockNumber, blockTag = 'latest', rewardPercentiles, }) {\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const feeHistory = await client.request({\n method: 'eth_feeHistory',\n params: [\n numberToHex(blockCount),\n blockNumberHex || blockTag,\n rewardPercentiles,\n ],\n }, { dedupe: Boolean(blockNumberHex) });\n return formatFeeHistory(feeHistory);\n}\n//# sourceMappingURL=getFeeHistory.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterLogsParameters}\n * @returns A list of event logs. {@link GetFilterLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterLogs(client, { filter })\n */\nexport async function getFilterLogs(_client, { filter, }) {\n const strict = filter.strict ?? false;\n const logs = await filter.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n });\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterLogs.js.map","import { AbiEncodingLengthMismatchError, BytesSizeMismatchError, UnsupportedPackedAbiType, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concatHex } from '../data/concat.js';\nimport { pad } from '../data/pad.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\nimport { arrayRegex, bytesRegex, integerRegex } from '../regex.js';\nexport function encodePacked(types, values) {\n if (types.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length,\n });\n const data = [];\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const value = values[i];\n data.push(encode(type, value));\n }\n return concatHex(data);\n}\nfunction encode(type, value, isArray = false) {\n if (type === 'address') {\n const address = value;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n return pad(address.toLowerCase(), {\n size: isArray ? 32 : null,\n });\n }\n if (type === 'string')\n return stringToHex(value);\n if (type === 'bytes')\n return value;\n if (type === 'bool')\n return pad(boolToHex(value), { size: isArray ? 32 : 1 });\n const intMatch = type.match(integerRegex);\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch;\n const size = Number.parseInt(bits, 10) / 8;\n return numberToHex(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n });\n }\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size] = bytesMatch;\n if (Number.parseInt(size, 10) !== (value.length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size, 10),\n givenSize: (value.length - 2) / 2,\n });\n return pad(value, { dir: 'right', size: isArray ? 32 : null });\n }\n const arrayMatch = type.match(arrayRegex);\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch;\n const data = [];\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n if (data.length === 0)\n return '0x';\n return concatHex(data);\n }\n throw new UnsupportedPackedAbiType(type);\n}\n//# sourceMappingURL=encodePacked.js.map","import { getTransactionCount } from '../actions/public/getTransactionCount.js';\nimport { LruMap } from './lru.js';\n/**\n * Creates a nonce manager for auto-incrementing transaction nonces.\n *\n * - Docs: https://viem.sh/docs/accounts/createNonceManager\n *\n * @example\n * ```ts\n * const nonceManager = createNonceManager({\n * source: jsonRpc(),\n * })\n * ```\n */\nexport function createNonceManager(parameters) {\n const { source } = parameters;\n const deltaMap = new Map();\n const nonceMap = new LruMap(8192);\n const promiseMap = new Map();\n const getKey = ({ address, chainId }) => `${address}.${chainId}`;\n return {\n async consume({ address, chainId, client }) {\n const key = getKey({ address, chainId });\n const promise = this.get({ address, chainId, client });\n this.increment({ address, chainId });\n const nonce = await promise;\n await source.set({ address, chainId }, nonce);\n nonceMap.set(key, nonce);\n return nonce;\n },\n async increment({ address, chainId }) {\n const key = getKey({ address, chainId });\n const delta = deltaMap.get(key) ?? 0;\n deltaMap.set(key, delta + 1);\n },\n async get({ address, chainId, client }) {\n const key = getKey({ address, chainId });\n let promise = promiseMap.get(key);\n if (!promise) {\n promise = (async () => {\n try {\n const nonce = await source.get({ address, chainId, client });\n const previousNonce = nonceMap.get(key) ?? 0;\n if (previousNonce > 0 && nonce <= previousNonce)\n return previousNonce + 1;\n nonceMap.delete(key);\n return nonce;\n }\n finally {\n this.reset({ address, chainId });\n }\n })();\n promiseMap.set(key, promise);\n }\n const delta = deltaMap.get(key) ?? 0;\n return delta + (await promise);\n },\n reset({ address, chainId }) {\n const key = getKey({ address, chainId });\n deltaMap.delete(key);\n promiseMap.delete(key);\n },\n };\n}\n/** JSON-RPC source for a nonce manager. */\nexport function jsonRpc() {\n return {\n async get(parameters) {\n const { address, client } = parameters;\n return getTransactionCount(client, {\n address,\n blockTag: 'pending',\n });\n },\n set() { },\n };\n}\n////////////////////////////////////////////////////////////////////////////////////////////\n// Default\n/** Default Nonce Manager with a JSON-RPC source. */\nexport const nonceManager = /*#__PURE__*/ createNonceManager({\n source: jsonRpc(),\n});\n//# sourceMappingURL=nonceManager.js.map","function createIdStore() {\n return {\n current: 0,\n take() {\n return this.current++;\n },\n reset() {\n this.current = 0;\n },\n };\n}\nexport const idCache = /*#__PURE__*/ createIdStore();\n//# sourceMappingURL=id.js.map","import { HttpRequestError, TimeoutError, } from '../../errors/request.js';\nimport { withTimeout, } from '../promise/withTimeout.js';\nimport { stringify } from '../stringify.js';\nimport { idCache } from './id.js';\nexport function getHttpRpcClient(url, options = {}) {\n return {\n async request(params) {\n const { body, fetchFn = options.fetchFn ?? fetch, onRequest = options.onRequest, onResponse = options.onResponse, timeout = options.timeout ?? 10_000, } = params;\n const fetchOptions = {\n ...(options.fetchOptions ?? {}),\n ...(params.fetchOptions ?? {}),\n };\n const { headers, method, signal: signal_ } = fetchOptions;\n try {\n const response = await withTimeout(async ({ signal }) => {\n const init = {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(body.map((body) => ({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n })))\n : stringify({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n }),\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : null),\n };\n const request = new Request(url, init);\n const args = (await onRequest?.(request, init)) ?? { ...init, url };\n const response = await fetchFn(args.url ?? url, args);\n return response;\n }, {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n });\n if (onResponse)\n await onResponse(response);\n let data;\n if (response.headers.get('Content-Type')?.startsWith('application/json'))\n data = await response.json();\n else {\n data = await response.text();\n try {\n data = JSON.parse(data || '{}');\n }\n catch (err) {\n if (response.ok)\n throw err;\n data = { error: data };\n }\n }\n if (!response.ok) {\n throw new HttpRequestError({\n body,\n details: stringify(data.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n }\n return data;\n }\n catch (err) {\n if (err instanceof HttpRequestError)\n throw err;\n if (err instanceof TimeoutError)\n throw err;\n throw new HttpRequestError({\n body,\n cause: err,\n url,\n });\n }\n },\n };\n}\n//# sourceMappingURL=http.js.map","export const erc6492MagicBytes = '0x6492649264926492649264926492649264926492649264926492649264926492';\nexport const zeroHash = '0x0000000000000000000000000000000000000000000000000000000000000000';\n//# sourceMappingURL=bytes.js.map","import { erc6492MagicBytes } from '../../constants/bytes.js';\nimport { encodeAbiParameters } from '../abi/encodeAbiParameters.js';\nimport { concatHex } from '../data/concat.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\n/**\n * @description Serializes a ERC-6492 flavoured signature into hex format.\n *\n * @param signature ERC-6492 signature in object format.\n * @returns ERC-6492 signature in hex format.\n *\n * @example\n * serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\n * // '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\n */\nexport function serializeErc6492Signature(parameters) {\n const { address, data, signature, to = 'hex' } = parameters;\n const signature_ = concatHex([\n encodeAbiParameters([{ type: 'address' }, { type: 'bytes' }, { type: 'bytes' }], [address, data, signature]),\n erc6492MagicBytes,\n ]);\n if (to === 'hex')\n return signature_;\n return hexToBytes(signature_);\n}\n//# sourceMappingURL=serializeErc6492Signature.js.map","import { hexToNumber } from '../index.js';\nfunction formatStorageProof(storageProof) {\n return storageProof.map((proof) => ({\n ...proof,\n value: BigInt(proof.value),\n }));\n}\nexport function formatProof(proof) {\n return {\n ...proof,\n balance: proof.balance ? BigInt(proof.balance) : undefined,\n nonce: proof.nonce ? hexToNumber(proof.nonce) : undefined,\n storageProof: proof.storageProof\n ? formatStorageProof(proof.storageProof)\n : undefined,\n };\n}\n//# sourceMappingURL=proof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatProof, } from '../../utils/formatters/proof.js';\n/**\n * Returns the account and storage values of the specified account including the Merkle-proof.\n *\n * - Docs: https://viem.sh/docs/actions/public/getProof\n * - JSON-RPC Methods:\n * - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n *\n * @param client - Client to use\n * @param parameters - {@link GetProofParameters}\n * @returns Proof data. {@link GetProofReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getProof } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getProof(client, {\n * address: '0x...',\n * storageKeys: ['0x...'],\n * })\n */\nexport async function getProof(client, { address, blockNumber, blockTag: blockTag_, storageKeys, }) {\n const blockTag = blockTag_ ?? 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const proof = await client.request({\n method: 'eth_getProof',\n params: [address, storageKeys, blockNumberHex || blockTag],\n });\n return formatProof(proof);\n}\n//# sourceMappingURL=getProof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param client - Client to use\n * @param parameters - {@link GetStorageAtParameters}\n * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getStorageAt } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getStorageAt(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * slot: toHex(0),\n * })\n */\nexport async function getStorageAt(client, { address, blockNumber, blockTag = 'latest', slot }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const data = await client.request({\n method: 'eth_getStorageAt',\n params: [address, slot, blockNumberHex || blockTag],\n });\n return data;\n}\n//# sourceMappingURL=getStorageAt.js.map","import { getAction } from '../../utils/getAction.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\nimport { getTransaction, } from './getTransaction.js';\n/**\n * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionConfirmationsParameters}\n * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionConfirmations } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const confirmations = await getTransactionConfirmations(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionConfirmations(client, { hash, transactionReceipt }) {\n const [blockNumber, transaction] = await Promise.all([\n getAction(client, getBlockNumber, 'getBlockNumber')({}),\n hash\n ? getAction(client, getTransaction, 'getTransaction')({ hash })\n : undefined,\n ]);\n const transactionBlockNumber = transactionReceipt?.blockNumber || transaction?.blockNumber;\n if (!transactionBlockNumber)\n return 0n;\n return blockNumber - transactionBlockNumber + 1n;\n}\n//# sourceMappingURL=getTransactionConfirmations.js.map","import * as BlockOverrides from 'ox/BlockOverrides';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { concat } from '../../utils/data/concat.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getContractError } from '../../utils/errors/getContractError.js';\nimport { getNodeError, } from '../../utils/errors/getNodeError.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\n/**\n * Simulates a set of calls on block(s) with optional block and state overrides.\n *\n * @example\n * ```ts\n * import { createClient, http, parseEther } from 'viem'\n * import { simulate } from 'viem/actions'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulate(client, {\n * blocks: [{\n * blockOverrides: {\n * number: 69420n,\n * },\n * calls: [{\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * }],\n * stateOverrides: [{\n * address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * balance: parseEther('10'),\n * }],\n * }]\n * })\n * ```\n *\n * @param client - Client to use.\n * @param parameters - {@link SimulateBlocksParameters}\n * @returns Simulated blocks. {@link SimulateBlocksReturnType}\n */\nexport async function simulateBlocks(client, parameters) {\n const { blockNumber, blockTag = client.experimental_blockTag ?? 'latest', blocks, returnFullTransactions, traceTransfers, validation, } = parameters;\n try {\n const blockStateCalls = [];\n for (const block of blocks) {\n const blockOverrides = block.blockOverrides\n ? BlockOverrides.toRpc(block.blockOverrides)\n : undefined;\n const calls = block.calls.map((call_) => {\n const call = call_;\n const account = call.account ? parseAccount(call.account) : undefined;\n const data = call.abi ? encodeFunctionData(call) : call.data;\n const request = {\n ...call,\n account,\n data: call.dataSuffix\n ? concat([data || '0x', call.dataSuffix])\n : data,\n from: call.from ?? account?.address,\n };\n assertRequest(request);\n return formatTransactionRequest(request);\n });\n const stateOverrides = block.stateOverrides\n ? serializeStateOverride(block.stateOverrides)\n : undefined;\n blockStateCalls.push({\n blockOverrides,\n calls,\n stateOverrides,\n });\n }\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const result = await client.request({\n method: 'eth_simulateV1',\n params: [\n { blockStateCalls, returnFullTransactions, traceTransfers, validation },\n block,\n ],\n });\n return result.map((block, i) => ({\n ...formatBlock(block),\n calls: block.calls.map((call, j) => {\n const { abi, args, functionName, to } = blocks[i].calls[j];\n const data = call.error?.data ?? call.returnData;\n const gasUsed = BigInt(call.gasUsed);\n const logs = call.logs?.map((log) => formatLog(log));\n const status = call.status === '0x1' ? 'success' : 'failure';\n const result = abi && status === 'success' && data !== '0x'\n ? decodeFunctionResult({\n abi,\n data,\n functionName,\n })\n : null;\n const error = (() => {\n if (status === 'success')\n return undefined;\n let error;\n if (call.error?.data === '0x')\n error = new AbiDecodingZeroDataError();\n else if (call.error)\n error = new RawContractError(call.error);\n if (!error)\n return undefined;\n return getContractError(error, {\n abi: (abi ?? []),\n address: to ?? '0x',\n args,\n functionName: functionName ?? '<unknown>',\n });\n })();\n return {\n data,\n gasUsed,\n logs,\n status,\n ...(status === 'success'\n ? {\n result,\n }\n : {\n error,\n }),\n };\n }),\n }));\n }\n catch (e) {\n const cause = e;\n const error = getNodeError(cause, {});\n if (error instanceof UnknownNodeError)\n throw cause;\n throw error;\n }\n}\n//# sourceMappingURL=simulateBlocks.js.map","import * as Address from '../Address.js';\nimport * as Errors from '../Errors.js';\n/** @internal */\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', 'error', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new Errors.BaseError('Unable to normalize signature.');\n return result;\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return Address.validate(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`<type>[M]`) and dynamic (`<type>[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n if (types.includes('address') && types.includes('bytes'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=abiItem.js.map","import * as abitype from 'abitype';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/abiItem.js';\n/**\n * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const formatted = AbiItem.format({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiItem - The ABI Item to format.\n * @returns The formatted ABI Item .\n */\nexport function format(abiItem) {\n return abitype.formatAbiItem(abiItem);\n}\n/**\n * Parses an arbitrary **JSON ABI Item** or **Human Readable ABI Item** into a typed {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiItem - The ABI Item to parse.\n * @returns The typed ABI Item.\n */\nexport function from(abiItem, options = {}) {\n const { prepare = true } = options;\n const item = (() => {\n if (Array.isArray(abiItem))\n return abitype.parseAbiItem(abiItem);\n if (typeof abiItem === 'string')\n return abitype.parseAbiItem(abiItem);\n return abiItem;\n })();\n return {\n ...item,\n ...(prepare ? { hash: getSignatureHash(item) } : {}),\n };\n}\n/**\n * Extracts an {@link ox#AbiItem.AbiItem} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ABI Items can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiItem.fromAbi(abi, 'Transfer') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Items can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiItem.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Item from an `eth_call` RPC response,\n * a Transaction `input`, or from Event Log `topics`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const { args = [], prepare = true } = (options ??\n {});\n const isSelector = Hex.validate(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function' || abiItem.type === 'error')\n return getSelector(abiItem) === Hex.slice(name, 0, 4);\n if (abiItem.type === 'event')\n return getSignatureHash(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n throw new NotFoundError({ name: name });\n if (abiItems.length === 1)\n return {\n ...abiItems[0],\n ...(prepare ? { hash: getSignatureHash(abiItems[0]) } : {}),\n };\n let matchedAbiItem;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return internal.isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = internal.getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n const abiItem = (() => {\n if (matchedAbiItem)\n return matchedAbiItem;\n const [abiItem, ...overloads] = abiItems;\n return { ...abiItem, overloads };\n })();\n if (!abiItem)\n throw new NotFoundError({ name: name });\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSelector(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n return Hex.slice(getSignatureHash(abiItem), 0, 4);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSignature(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n const signature = (() => {\n if (typeof abiItem === 'string')\n return abiItem;\n return abitype.formatAbiItem(abiItem);\n })();\n return internal.normalizeSignature(signature);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSignatureHash(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n if (typeof abiItem !== 'string' && 'hash' in abiItem && abiItem.hash)\n return abiItem.hash;\n return Hash.keccak256(Hex.fromString(getSignature(abiItem)));\n}\n/**\n * Throws when ambiguous types are found on overloaded ABI items.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from(['function foo(address)', 'function foo(bytes20)'])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n *\n * ### Solution\n *\n * Remove one of the ambiguous types from the ABI.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function foo(bytes20)' // [!code --]\n * ])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n */\nexport class AmbiguityError extends Errors.BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI Items.', {\n metaMessages: [\n // TODO: abitype to add support for signature-formatted ABI items.\n `\\`${x.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\\`, and`,\n `\\`${y.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(y.abiItem))}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.AmbiguityError'\n });\n }\n}\n/**\n * Throws when an ABI item is not found in the ABI.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * // @error: AbiItem.NotFoundError: ABI function with name \"baz\" not found.\n * ```\n *\n * ### Solution\n *\n * Ensure the ABI item exists on the ABI.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)',\n * 'function baz(bool)' // [!code ++]\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * ```\n */\nexport class NotFoundError extends Errors.BaseError {\n constructor({ name, data, type = 'item', }) {\n const selector = (() => {\n if (name)\n return ` with name \"${name}\"`;\n if (data)\n return ` with data \"${data}\"`;\n return '';\n })();\n super(`ABI ${type}${selector} not found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.NotFoundError'\n });\n }\n}\n/**\n * Throws when the selector size is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0xaaa')\n * // @error: AbiItem.InvalidSelectorSizeError: Selector size is invalid. Expected 4 bytes. Received 2 bytes (\"0xaaa\").\n * ```\n *\n * ### Solution\n *\n * Ensure the selector size is 4 bytes.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0x7af82b1a')\n * ```\n */\nexport class InvalidSelectorSizeError extends Errors.BaseError {\n constructor({ data }) {\n super(`Selector size is invalid. Expected 4 bytes. Received ${Hex.size(data)} bytes (\"${data}\").`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.InvalidSelectorSizeError'\n });\n }\n}\n//# sourceMappingURL=AbiItem.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(...parameters) {\n const [abiConstructor, options] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, options] = parameters;\n return [fromAbi(abi), options];\n }\n return parameters;\n })();\n const { bytecode } = options;\n if (abiConstructor.inputs?.length === 0)\n return undefined;\n const data = options.data.replace(bytecode, '0x');\n return AbiParameters.decode(abiConstructor.inputs, data);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encode(...parameters) {\n const [abiConstructor, options] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, options] = parameters;\n return [fromAbi(abi), options];\n }\n return parameters;\n })();\n const { bytecode, args } = options;\n return Hex.concat(bytecode, abiConstructor.inputs?.length && args?.length\n ? AbiParameters.encode(abiConstructor.inputs, args)\n : '0x');\n}\n/** @internal */\nexport function format(abiConstructor) {\n return abitype.formatAbiItem(abiConstructor);\n}\n/** @internal */\nexport function from(abiConstructor) {\n return AbiItem.from(abiConstructor);\n}\n/** @internal */\nexport function fromAbi(abi) {\n const item = abi.find((item) => item.type === 'constructor');\n if (!item)\n throw new AbiItem.NotFoundError({ name: 'constructor' });\n return item;\n}\n//# sourceMappingURL=AbiConstructor.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decodeData(...parameters) {\n const [abiFunction, data] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, data] = parameters;\n return [fromAbi(abi, name), data];\n }\n return parameters;\n })();\n const { overloads } = abiFunction;\n if (Hex.size(data) < 4)\n throw new AbiItem.InvalidSelectorSizeError({ data });\n if (abiFunction.inputs?.length === 0)\n return undefined;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], data)\n : abiFunction;\n if (Hex.size(data) <= 4)\n return undefined;\n return AbiParameters.decode(item.inputs, Hex.slice(data, 4));\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decodeResult(...parameters) {\n const [abiFunction, data, options = {}] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, data, options] = parameters;\n return [fromAbi(abi, name), data, options];\n }\n return parameters;\n })();\n const values = AbiParameters.decode(abiFunction.outputs, data, options);\n if (values && Object.keys(values).length === 0)\n return undefined;\n if (values && Object.keys(values).length === 1) {\n if (Array.isArray(values))\n return values[0];\n return Object.values(values)[0];\n }\n return values;\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encodeData(...parameters) {\n const [abiFunction, args = []] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, args] = parameters;\n return [fromAbi(abi, name, { args }), args];\n }\n const [abiFunction, args] = parameters;\n return [abiFunction, args];\n })();\n const { overloads } = abiFunction;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], abiFunction.name, {\n args,\n })\n : abiFunction;\n const selector = getSelector(item);\n const data = args.length > 0 ? AbiParameters.encode(item.inputs, args) : undefined;\n return data ? Hex.concat(selector, data) : selector;\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encodeResult(...parameters) {\n const [abiFunction, output, options = {}] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, output, options] = parameters;\n return [fromAbi(abi, name), output, options];\n }\n return parameters;\n })();\n const { as = 'Array' } = options;\n const values = (() => {\n if (abiFunction.outputs.length === 1)\n return [output];\n if (Array.isArray(output))\n return output;\n if (as === 'Object')\n return Object.values(output);\n return [output];\n })();\n return AbiParameters.encode(abiFunction.outputs, values);\n}\n/**\n * Formats an {@link ox#AbiFunction.AbiFunction} into a **Human Readable ABI Function**.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const formatted = AbiFunction.format({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiFunction - The ABI Function to format.\n * @returns The formatted ABI Function.\n */\nexport function format(abiFunction) {\n return abitype.formatAbiItem(abiFunction);\n}\n/**\n * Parses an arbitrary **JSON ABI Function** or **Human Readable ABI Function** into a typed {@link ox#AbiFunction.AbiFunction}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiFunction - The ABI Function to parse.\n * @returns Typed ABI Function.\n */\nexport function from(abiFunction, options = {}) {\n return AbiItem.from(abiFunction, options);\n}\n/**\n * Extracts an {@link ox#AbiFunction.AbiFunction} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ### Extracting by Name\n *\n * ABI Functions can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiFunction.fromAbi(abi, 'foo') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Functions can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiFunction.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Function from an `eth_call` RPC response or\n * from a Transaction `input`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const item = AbiItem.fromAbi(abi, name, options);\n if (item.type !== 'function')\n throw new AbiItem.NotFoundError({ name, type: 'function' });\n return item;\n}\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiFunction.AbiFunction}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector({\n * inputs: [{ type: 'uint256' }],\n * name: 'ownerOf',\n * outputs: [],\n * stateMutability: 'view',\n * type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem) {\n return AbiItem.getSelector(abiItem);\n}\n//# sourceMappingURL=AbiFunction.js.map","export const ethAddress = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';\nexport const zeroAddress = '0x0000000000000000000000000000000000000000';\n//# sourceMappingURL=address.js.map","import * as AbiConstructor from 'ox/AbiConstructor';\nimport * as AbiFunction from 'ox/AbiFunction';\nimport { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { ethAddress, zeroAddress } from '../../constants/address.js';\nimport { deploylessCallViaBytecodeBytecode } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { hexToBigInt } from '../../utils/index.js';\nimport { createAccessList, } from './createAccessList.js';\nimport { simulateBlocks, } from './simulateBlocks.js';\nconst getBalanceCode = '0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033';\n/**\n * Simulates execution of a batch of calls.\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateCallsParameters}\n * @returns Results. {@link SimulateCallsReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateCalls } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulateCalls(client, {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * calls: [{\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * ]\n * })\n * ```\n */\nexport async function simulateCalls(client, parameters) {\n const { blockNumber, blockTag, calls, stateOverrides, traceAssetChanges, traceTransfers, validation, } = parameters;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n if (traceAssetChanges && !account)\n throw new BaseError('`account` is required when `traceAssetChanges` is true');\n // Derive bytecode to extract ETH balance via a contract call.\n const getBalanceData = account\n ? AbiConstructor.encode(AbiConstructor.from('constructor(bytes, bytes)'), {\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [\n getBalanceCode,\n AbiFunction.encodeData(AbiFunction.from('function getBalance(address)'), [account.address]),\n ],\n })\n : undefined;\n // Fetch ERC20/721 addresses that were \"touched\" from the calls.\n const assetAddresses = traceAssetChanges\n ? await Promise.all(parameters.calls.map(async (call) => {\n if (!call.data && !call.abi)\n return;\n const { accessList } = await createAccessList(client, {\n account: account.address,\n ...call,\n data: call.abi ? encodeFunctionData(call) : call.data,\n });\n return accessList.map(({ address, storageKeys }) => storageKeys.length > 0 ? address : null);\n })).then((x) => x.flat().filter(Boolean))\n : [];\n const blocks = await simulateBlocks(client, {\n blockNumber,\n blockTag: blockTag,\n blocks: [\n ...(traceAssetChanges\n ? [\n // ETH pre balances\n {\n calls: [{ data: getBalanceData }],\n stateOverrides,\n },\n // Asset pre balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n {\n calls: [...calls, {}].map((call) => ({\n ...call,\n from: account?.address,\n })),\n stateOverrides,\n },\n ...(traceAssetChanges\n ? [\n // ETH post balances\n {\n calls: [{ data: getBalanceData }],\n },\n // Asset post balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Decimals\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function decimals() returns (uint256)'),\n ],\n functionName: 'decimals',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Token URI\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function tokenURI(uint256) returns (string)'),\n ],\n functionName: 'tokenURI',\n args: [0n],\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Symbols\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [AbiFunction.from('function symbol() returns (string)')],\n functionName: 'symbol',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n ],\n traceTransfers,\n validation,\n });\n const block_results = traceAssetChanges ? blocks[2] : blocks[0];\n const [block_ethPre, block_assetsPre, , block_ethPost, block_assetsPost, block_decimals, block_tokenURI, block_symbols,] = traceAssetChanges ? blocks : [];\n // Extract call results from the simulation.\n const { calls: block_calls, ...block } = block_results;\n const results = block_calls.slice(0, -1) ?? [];\n // Extract pre-execution ETH and asset balances.\n const ethPre = block_ethPre?.calls ?? [];\n const assetsPre = block_assetsPre?.calls ?? [];\n const balancesPre = [...ethPre, ...assetsPre].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract post-execution ETH and asset balances.\n const ethPost = block_ethPost?.calls ?? [];\n const assetsPost = block_assetsPost?.calls ?? [];\n const balancesPost = [...ethPost, ...assetsPost].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract asset symbols & decimals.\n const decimals = (block_decimals?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const symbols = (block_symbols?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const tokenURI = (block_tokenURI?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const changes = [];\n for (const [i, balancePost] of balancesPost.entries()) {\n const balancePre = balancesPre[i];\n if (typeof balancePost !== 'bigint')\n continue;\n if (typeof balancePre !== 'bigint')\n continue;\n const decimals_ = decimals[i - 1];\n const symbol_ = symbols[i - 1];\n const tokenURI_ = tokenURI[i - 1];\n const token = (() => {\n if (i === 0)\n return {\n address: ethAddress,\n decimals: 18,\n symbol: 'ETH',\n };\n return {\n address: assetAddresses[i - 1],\n decimals: tokenURI_ || decimals_ ? Number(decimals_ ?? 1) : undefined,\n symbol: symbol_ ?? undefined,\n };\n })();\n if (changes.some((change) => change.token.address === token.address))\n continue;\n changes.push({\n token,\n value: {\n pre: balancePre,\n post: balancePost,\n diff: balancePost - balancePre,\n },\n });\n }\n return {\n assetChanges: changes,\n block,\n results,\n };\n}\n//# sourceMappingURL=simulateCalls.js.map","import { getAction } from '../../utils/getAction.js';\nimport { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that a message was signed by the provided address.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage(client, { address, message, factory, factoryData, signature, ...callRequest }) {\n const hash = hashMessage(message);\n return getAction(client, verifyHash, 'verifyHash')({\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyMessage.js.map","import { getAction } from '../../utils/getAction.js';\nimport { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData(client, parameters) {\n const { address, factory, factoryData, signature, message, primaryType, types, domain, ...callRequest } = parameters;\n const hash = hashTypedData({ message, primaryType, types, domain });\n return getAction(client, verifyHash, 'verifyHash')({\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyTypedData.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlocksParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n *\n * @example\n * import { createPublicClient, watchBlocks, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlocks(client, {\n * onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks(client, { blockTag = client.experimental_blockTag ?? 'latest', emitMissed = false, emitOnBegin = false, onBlock, onError, includeTransactions: includeTransactions_, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const includeTransactions = includeTransactions_ ?? false;\n let prevBlock;\n const pollBlocks = () => {\n const observerId = stringify([\n 'watchBlocks',\n client.uid,\n blockTag,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ]);\n return observe(observerId, { onBlock, onError }, (emit) => poll(async () => {\n try {\n const block = await getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n });\n if (block.number !== null && prevBlock?.number != null) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (block.number === prevBlock.number)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (block.number - prevBlock.number > 1 && emitMissed) {\n for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: i,\n includeTransactions,\n }));\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n }\n if (\n // If no previous block exists, emit.\n prevBlock?.number == null ||\n // If the block tag is \"pending\" with no block number, emit.\n (blockTag === 'pending' && block?.number == null) ||\n // If the next block number is greater than the previous block number, emit.\n // We don't want to emit blocks in the past.\n (block.number !== null && block.number > prevBlock.number)) {\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlocks = () => {\n let active = true;\n let emitFetched = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n if (emitOnBegin) {\n getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n })\n .then((block) => {\n if (!active)\n return;\n if (!emitFetched)\n return;\n onBlock(block, undefined);\n emitFetched = false;\n })\n .catch(onError);\n }\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['newHeads'],\n async onData(data) {\n if (!active)\n return;\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: data.result?.number,\n includeTransactions,\n }).catch(() => { }));\n if (!active)\n return;\n onBlock(block, prevBlock);\n emitFetched = false;\n prevBlock = block;\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollBlocks() : subscribeBlocks();\n}\n//# sourceMappingURL=watchBlocks.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createEventFilter, } from './createEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { getLogs } from './getLogs.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent\n * - JSON-RPC Methods:\n * - **RPC Provider supports `eth_newFilter`:**\n * - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n * - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n * - **RPC Provider does not support `eth_newFilter`:**\n * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n *\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchEventParameters}\n * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchEvent } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchEvent(client, {\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchEvent(client, { address, args, batch = true, event, events, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const strict = strict_ ?? false;\n const pollEvent = () => {\n const observerId = stringify([\n 'watchEvent',\n address,\n args,\n batch,\n client.uid,\n event,\n pollingInterval,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createEventFilter, 'createEventFilter')({\n address,\n args,\n event: event,\n events,\n strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getLogs, 'getLogs')({\n address,\n args,\n event: event,\n events,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitialize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeEvent = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const events_ = events ?? (event ? [event] : undefined);\n let topics = [];\n if (events_) {\n const encoded = events_.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: events_ ?? [],\n data: log.data,\n topics: log.topics,\n strict,\n });\n const formatted = formatLog(log, { args, eventName });\n onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n onLogs([formatted]);\n }\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollEvent() : subscribeEvent();\n}\n//# sourceMappingURL=watchEvent.js.map","/**\n * @description Parses EIP-4361 formatted message into message fields object.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n *\n * @returns EIP-4361 fields object\n */\nexport function parseSiweMessage(message) {\n const { scheme, statement, ...prefix } = (message.match(prefixRegex)\n ?.groups ?? {});\n const { chainId, expirationTime, issuedAt, notBefore, requestId, ...suffix } = (message.match(suffixRegex)?.groups ?? {});\n const resources = message.split('Resources:')[1]?.split('\\n- ').slice(1);\n return {\n ...prefix,\n ...suffix,\n ...(chainId ? { chainId: Number(chainId) } : {}),\n ...(expirationTime ? { expirationTime: new Date(expirationTime) } : {}),\n ...(issuedAt ? { issuedAt: new Date(issuedAt) } : {}),\n ...(notBefore ? { notBefore: new Date(notBefore) } : {}),\n ...(requestId ? { requestId } : {}),\n ...(resources ? { resources } : {}),\n ...(scheme ? { scheme } : {}),\n ...(statement ? { statement } : {}),\n };\n}\n// https://regexr.com/80gdj\nconst prefixRegex = /^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\\/\\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\n)(?<address>0x[a-fA-F0-9]{40})\\n\\n(?:(?<statement>.*)\\n\\n)?/;\n// https://regexr.com/80gf9\nconst suffixRegex = /(?:URI: (?<uri>.+))\\n(?:Version: (?<version>.+))\\n(?:Chain ID: (?<chainId>\\d+))\\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\\n(?:Issued At: (?<issuedAt>.+))(?:\\nExpiration Time: (?<expirationTime>.+))?(?:\\nNot Before: (?<notBefore>.+))?(?:\\nRequest ID: (?<requestId>.+))?/;\n//# sourceMappingURL=parseSiweMessage.js.map","import { isAddress } from '../address/isAddress.js';\nimport { isAddressEqual } from '../address/isAddressEqual.js';\n/**\n * @description Validates EIP-4361 message.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n */\nexport function validateSiweMessage(parameters) {\n const { address, domain, message, nonce, scheme, time = new Date(), } = parameters;\n if (domain && message.domain !== domain)\n return false;\n if (nonce && message.nonce !== nonce)\n return false;\n if (scheme && message.scheme !== scheme)\n return false;\n if (message.expirationTime && time >= message.expirationTime)\n return false;\n if (message.notBefore && time < message.notBefore)\n return false;\n try {\n if (!message.address)\n return false;\n if (!isAddress(message.address, { strict: false }))\n return false;\n if (address && !isAddressEqual(message.address, address))\n return false;\n }\n catch {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validateSiweMessage.js.map","import { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { parseSiweMessage } from '../../utils/siwe/parseSiweMessage.js';\nimport { validateSiweMessage, } from '../../utils/siwe/validateSiweMessage.js';\nimport { verifyHash, } from '../public/verifyHash.js';\n/**\n * Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/siwe/actions/verifySiweMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifySiweMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifySiweMessageReturnType}\n */\nexport async function verifySiweMessage(client, parameters) {\n const { address, domain, message, nonce, scheme, signature, time = new Date(), ...callRequest } = parameters;\n const parsed = parseSiweMessage(message);\n if (!parsed.address)\n return false;\n const isValid = validateSiweMessage({\n address,\n domain,\n message: parsed,\n nonce,\n scheme,\n time,\n });\n if (!isValid)\n return false;\n const hash = hashMessage(message);\n return verifyHash(client, {\n address: parsed.address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifySiweMessage.js.map","import { TransactionReceiptRevertedError } from '../../errors/transaction.js';\nimport { formatTransactionReceipt } from '../../utils/formatters/transactionReceipt.js';\nimport { numberToHex, } from '../../utils/index.js';\n/**\n * Sends a **signed** transaction to the network synchronously,\n * and waits for the transaction to be included in a block.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransactionSync\n * - JSON-RPC Method: [`eth_sendRawTransactionSync`](https://eips.ethereum.org/EIPS/eip-7966)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction receipt. {@link SendRawTransactionSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const receipt = await sendRawTransactionSync(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransactionSync(client, { serializedTransaction, throwOnReceiptRevert, timeout, }) {\n const receipt = await client.request({\n method: 'eth_sendRawTransactionSync',\n params: timeout\n ? [serializedTransaction, numberToHex(timeout)]\n : [serializedTransaction],\n }, { retryCount: 0 });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n const formatted = format(receipt);\n if (formatted.status === 'reverted' && throwOnReceiptRevert)\n throw new TransactionReceiptRevertedError({ receipt: formatted });\n return formatted;\n}\n//# sourceMappingURL=sendRawTransactionSync.js.map","import { getEnsAddress, } from '../../actions/ens/getEnsAddress.js';\nimport { getEnsAvatar, } from '../../actions/ens/getEnsAvatar.js';\nimport { getEnsName, } from '../../actions/ens/getEnsName.js';\nimport { getEnsResolver, } from '../../actions/ens/getEnsResolver.js';\nimport { getEnsText, } from '../../actions/ens/getEnsText.js';\nimport { call, } from '../../actions/public/call.js';\nimport { createAccessList, } from '../../actions/public/createAccessList.js';\nimport { createBlockFilter, } from '../../actions/public/createBlockFilter.js';\nimport { createContractEventFilter, } from '../../actions/public/createContractEventFilter.js';\nimport { createEventFilter, } from '../../actions/public/createEventFilter.js';\nimport { createPendingTransactionFilter, } from '../../actions/public/createPendingTransactionFilter.js';\nimport { estimateContractGas, } from '../../actions/public/estimateContractGas.js';\nimport { estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { estimateMaxPriorityFeePerGas, } from '../../actions/public/estimateMaxPriorityFeePerGas.js';\nimport { fillTransaction, } from '../../actions/public/fillTransaction.js';\nimport { getBalance, } from '../../actions/public/getBalance.js';\nimport { getBlobBaseFee, } from '../../actions/public/getBlobBaseFee.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getBlockNumber, } from '../../actions/public/getBlockNumber.js';\nimport { getBlockTransactionCount, } from '../../actions/public/getBlockTransactionCount.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { getCode, } from '../../actions/public/getCode.js';\nimport { getContractEvents, } from '../../actions/public/getContractEvents.js';\nimport { getEip712Domain, } from '../../actions/public/getEip712Domain.js';\nimport { getFeeHistory, } from '../../actions/public/getFeeHistory.js';\nimport { getFilterChanges, } from '../../actions/public/getFilterChanges.js';\nimport { getFilterLogs, } from '../../actions/public/getFilterLogs.js';\nimport { getGasPrice, } from '../../actions/public/getGasPrice.js';\nimport { getLogs, } from '../../actions/public/getLogs.js';\nimport { getProof, } from '../../actions/public/getProof.js';\nimport { getStorageAt, } from '../../actions/public/getStorageAt.js';\nimport { getTransaction, } from '../../actions/public/getTransaction.js';\nimport { getTransactionConfirmations, } from '../../actions/public/getTransactionConfirmations.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { getTransactionReceipt, } from '../../actions/public/getTransactionReceipt.js';\nimport { multicall, } from '../../actions/public/multicall.js';\nimport { readContract, } from '../../actions/public/readContract.js';\nimport { simulateBlocks, } from '../../actions/public/simulateBlocks.js';\nimport { simulateCalls, } from '../../actions/public/simulateCalls.js';\nimport { simulateContract, } from '../../actions/public/simulateContract.js';\nimport { uninstallFilter, } from '../../actions/public/uninstallFilter.js';\nimport { verifyHash, } from '../../actions/public/verifyHash.js';\nimport { verifyMessage, } from '../../actions/public/verifyMessage.js';\nimport { verifyTypedData, } from '../../actions/public/verifyTypedData.js';\nimport { waitForTransactionReceipt, } from '../../actions/public/waitForTransactionReceipt.js';\nimport { watchBlockNumber, } from '../../actions/public/watchBlockNumber.js';\nimport { watchBlocks, } from '../../actions/public/watchBlocks.js';\nimport { watchContractEvent, } from '../../actions/public/watchContractEvent.js';\nimport { watchEvent, } from '../../actions/public/watchEvent.js';\nimport { watchPendingTransactions, } from '../../actions/public/watchPendingTransactions.js';\nimport { verifySiweMessage, } from '../../actions/siwe/verifySiweMessage.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';\nexport function publicActions(client) {\n return {\n call: (args) => call(client, args),\n createAccessList: (args) => createAccessList(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlobBaseFee: () => getBlobBaseFee(client),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getCode(client, args),\n getChainId: () => getChainId(client),\n getCode: (args) => getCode(client, args),\n getContractEvents: (args) => getContractEvents(client, args),\n getEip712Domain: (args) => getEip712Domain(client, args),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsAvatar: (args) => getEnsAvatar(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getEnsResolver: (args) => getEnsResolver(client, args),\n getEnsText: (args) => getEnsText(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getProof: (args) => getProof(client, args),\n estimateMaxPriorityFeePerGas: (args) => estimateMaxPriorityFeePerGas(client, args),\n fillTransaction: (args) => fillTransaction(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) => getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n readContract: (args) => readContract(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),\n simulate: (args) => simulateBlocks(client, args),\n simulateBlocks: (args) => simulateBlocks(client, args),\n simulateCalls: (args) => simulateCalls(client, args),\n simulateContract: (args) => simulateContract(client, args),\n verifyHash: (args) => verifyHash(client, args),\n verifyMessage: (args) => verifyMessage(client, args),\n verifySiweMessage: (args) => verifySiweMessage(client, args),\n verifyTypedData: (args) => verifyTypedData(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n };\n}\n//# sourceMappingURL=public.js.map","import { createClient, } from './createClient.js';\nimport { publicActions } from './decorators/public.js';\n/**\n * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\n *\n * - Docs: https://viem.sh/docs/clients/public\n *\n * A Public Client is an interface to \"public\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\n *\n * @param config - {@link PublicClientConfig}\n * @returns A Public Client. {@link PublicClient}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n */\nexport function createPublicClient(parameters) {\n const { key = 'public', name = 'Public Client' } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n type: 'publicClient',\n });\n return client.extend(publicActions);\n}\n//# sourceMappingURL=createPublicClient.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { isAddressEqual } from '../../utils/address/isAddressEqual.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { getTransactionCount } from '../public/getTransactionCount.js';\n/**\n * Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\n * This Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\n *\n * With the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link PrepareAuthorizationParameters}\n * @returns The prepared Authorization object. {@link PrepareAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n * account: privateKeyToAccount('0x..'),\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function prepareAuthorization(client, parameters) {\n const { account: account_ = client.account, chainId, nonce } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/eip7702/prepareAuthorization',\n });\n const account = parseAccount(account_);\n const executor = (() => {\n if (!parameters.executor)\n return undefined;\n if (parameters.executor === 'self')\n return parameters.executor;\n return parseAccount(parameters.executor);\n })();\n const authorization = {\n address: parameters.contractAddress ?? parameters.address,\n chainId,\n nonce,\n };\n if (typeof authorization.chainId === 'undefined')\n authorization.chainId =\n client.chain?.id ??\n (await getAction(client, getChainId, 'getChainId')({}));\n if (typeof authorization.nonce === 'undefined') {\n authorization.nonce = await getAction(client, getTransactionCount, 'getTransactionCount')({\n address: account.address,\n blockTag: 'pending',\n });\n if (executor === 'self' ||\n (executor?.address && isAddressEqual(executor.address, account.address)))\n authorization.nonce += 1;\n }\n return authorization;\n}\n//# sourceMappingURL=prepareAuthorization.js.map","import { BaseError } from './base.js';\nexport class UrlRequiredError extends BaseError {\n constructor() {\n super('No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.', {\n docsPath: '/docs/clients/intro',\n name: 'UrlRequiredError',\n });\n }\n}\n//# sourceMappingURL=transport.js.map","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';\nimport { getHttpRpcClient, } from '../../utils/rpc/http.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { batch, fetchFn, fetchOptions, key = 'http', methods, name = 'HTTP JSON-RPC', onFetchRequest, onFetchResponse, retryDelay, raw, } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } = typeof batch === 'object' ? batch : {};\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10_000;\n const url_ = url || chain?.rpcUrls.default.http[0];\n if (!url_)\n throw new UrlRequiredError();\n const rpcClient = getHttpRpcClient(url_, {\n fetchFn,\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n });\n return createTransport({\n key,\n methods,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const { schedule } = createBatchScheduler({\n id: url_,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize;\n },\n fn: (body) => rpcClient.request({\n body,\n }),\n sort: (a, b) => a.id - b.id,\n });\n const fn = async (body) => batch\n ? schedule(body)\n : [\n await rpcClient.request({\n body,\n }),\n ];\n const [{ error, result }] = await fn(body);\n if (raw)\n return { error, result };\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n }, {\n fetchOptions,\n url: url_,\n });\n };\n}\n//# sourceMappingURL=http.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * @description Parses a hex formatted signature into a structured signature.\n *\n * @param signatureHex Signature in hex format.\n * @returns The structured signature.\n *\n * @example\n * parseSignature('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // { r: '0x...', s: '0x...', v: 28n }\n */\nexport function parseSignature(signatureHex) {\n const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));\n const yParityOrV = Number(`0x${signatureHex.slice(130)}`);\n const [v, yParity] = (() => {\n if (yParityOrV === 0 || yParityOrV === 1)\n return [undefined, yParityOrV];\n if (yParityOrV === 27)\n return [BigInt(yParityOrV), 0];\n if (yParityOrV === 28)\n return [BigInt(yParityOrV), 1];\n throw new Error('Invalid yParityOrV value');\n })();\n if (typeof v !== 'undefined')\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v,\n yParity,\n };\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n yParity,\n };\n}\n//# sourceMappingURL=parseSignature.js.map"],"names":["parseSignature","abi","event","transport","eventName","args","call","chainId","receipts","status","statusCode","result","res","encode","body","response","block","BlockOverrides.toRpc","error","_a","Errors.BaseError","Address.validate","from","abitype.parseAbiItem","fromAbi","Hex.validate","abiItem","getSelector","Hex.slice","internal.isArgOfType","internal.getAmbiguousTypes","abitype.formatAbiItem","internal.normalizeSignature","Hash.keccak256","Hex.fromString","options","Hex.concat","AbiParameters.encode","AbiItem.from","item","AbiItem.NotFoundError","abiFunction","AbiItem.fromAbi","AbiItem.getSelector","AbiConstructor.encode","AbiConstructor.from","AbiFunction.encodeData","AbiFunction.from"],"mappings":";;;AAqBO,SAAS,aAAa,WAAW;AACpC,MAAI;AACJ,MAAI,OAAO,cAAc;AACrB,cAAUA,iBAAe,SAAS;AAAA,OACjC;AACD,UAAM,UAAU,aAAa,SAAS;AACtC,UAAM,SAAS,UAAU;AACzB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,YAAM,aAAa,UAAU,CAAC;AAC9B,UAAI,kBAAkB,UAAU;AAC5B;AACJ,gBAAUA,iBAAe,YAAY,OAAO;AAC5C;AAAA,IACJ;AAAA,EACJ;AACA,MAAI,CAAC;AACD,UAAM,IAAI,oBAAoB,EAAE,WAAW;AAC/C,SAAO;AACX;ACtCO,MAAM,oCAAoC,UAAU;AAAA,EACvD,YAAY,MAAM;AACd,UAAM,gBAAgB,IAAI,uBAAuB;AAAA,MAC7C,MAAM;AAAA,IAClB,CAAS;AAAA,EACL;AACJ;ACCA,MAAM,WAAW;AACV,SAAS,kBAAkB,YAAY;;AAC1C,QAAM,EAAE,KAAAC,MAAK,WAAW,KAAI,IAAK;AACjC,MAAI,UAAUA,KAAI,CAAC;AACnB,MAAI,WAAW;AACX,UAAM,OAAO,WAAW,EAAE,KAAAA,MAAK,MAAM,UAAS,CAAE;AAChD,QAAI,CAAC;AACD,YAAM,IAAI,sBAAsB,WAAW,EAAE,SAAQ,CAAE;AAC3D,cAAU;AAAA,EACd;AACA,MAAI,QAAQ,SAAS;AACjB,UAAM,IAAI,sBAAsB,QAAW,EAAE,SAAQ,CAAE;AAC3D,QAAM,aAAa,cAAc,OAAO;AACxC,QAAM,YAAY,gBAAgB,UAAU;AAC5C,MAAI,SAAS,CAAA;AACb,MAAI,QAAQ,YAAY,SAAS;AAC7B,UAAM,iBAAgB,aAAQ,WAAR,mBAAgB,OAAO,CAAC,UAAU,aAAa,SAAS,MAAM;AACpF,UAAM,QAAQ,MAAM,QAAQ,IAAI,IAC1B,OACA,OAAO,OAAO,IAAI,EAAE,SAAS,KACxB,+CAAe,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,OAAM,CAAA,IAC5C,CAAA;AACV,QAAI,MAAM,SAAS,GAAG;AAClB,gBACI,+CAAe,IAAI,CAAC,OAAO,MAAM;AAC7B,YAAI,MAAM,QAAQ,MAAM,CAAC,CAAC;AACtB,iBAAO,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,UAAU,EAAE,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,EAAC,CAAE,CAAC;AAC1E,eAAO,OAAO,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,MAAM,OACjD,UAAU,EAAE,OAAO,OAAO,MAAM,CAAC,EAAC,CAAE,IACpC;AAAA,MACV,OAAM,CAAA;AAAA,IACd;AAAA,EACJ;AACA,SAAO,CAAC,WAAW,GAAG,MAAM;AAChC;AACA,SAAS,UAAU,EAAE,OAAO,SAAU;AAClC,MAAI,MAAM,SAAS,YAAY,MAAM,SAAS;AAC1C,WAAO,UAAU,QAAQ,KAAK,CAAC;AACnC,MAAI,MAAM,SAAS,WAAW,MAAM,KAAK,MAAM,kBAAkB;AAC7D,UAAM,IAAI,4BAA4B,MAAM,IAAI;AACpD,SAAO,oBAAoB,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC;AAC/C;ACxBO,eAAe,0BAA0B,QAAQ,YAAY;AAChE,QAAM,EAAE,SAAS,KAAAA,MAAK,MAAM,WAAW,WAAW,QAAQ,QAAO,IAAK;AACtE,QAAM,aAAa,yBAAyB,QAAQ;AAAA,IAChD,QAAQ;AAAA,EAChB,CAAK;AACD,QAAM,SAAS,YACT,kBAAkB;AAAA,IAChB,KAAAA;AAAA,IACA;AAAA,IACA;AAAA,EACZ,CAAS,IACC;AACN,QAAM,KAAK,MAAM,OAAO,QAAQ;AAAA,IAC5B,QAAQ;AAAA,IACR,QAAQ;AAAA,MACJ;AAAA,QACI;AAAA,QACA,WAAW,OAAO,cAAc,WAAW,YAAY,SAAS,IAAI;AAAA,QACpE,SAAS,OAAO,YAAY,WAAW,YAAY,OAAO,IAAI;AAAA,QAC9D;AAAA,MAChB;AAAA,IACA;AAAA,EACA,CAAK;AACD,SAAO;AAAA,IACH,KAAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,WAAW,EAAE;AAAA,IACtB,QAAQ,QAAQ,MAAM;AAAA,IACtB,MAAM;AAAA,EACd;AACA;ACzBO,eAAe,oBAAoB,QAAQ,YAAY;AAC1D,QAAM,EAAE,KAAAA,MAAK,SAAS,MAAM,cAAc,YAAY,GAAG,QAAO,IAAK;AACrE,QAAM,OAAO,mBAAmB;AAAA,IAC5B,KAAAA;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK;AACD,MAAI;AACA,UAAM,MAAM,MAAM,UAAU,QAAQ,aAAa,aAAa,EAAE;AAAA,MAC5D,MAAM,GAAG,IAAI,GAAG,aAAa,WAAW,QAAQ,MAAM,EAAE,IAAI,EAAE;AAAA,MAC9D,IAAI;AAAA,MACJ,GAAG;AAAA,IACf,CAAS;AACD,WAAO;AAAA,EACX,SACO,OAAO;AACV,UAAM,UAAU,QAAQ,UAAU,aAAa,QAAQ,OAAO,IAAI;AAClE,UAAM,iBAAiB,OAAO;AAAA,MAC1B,KAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA,QAAQ,mCAAS;AAAA,IAC7B,CAAS;AAAA,EACL;AACJ;AChCO,eAAe,QAAQ,QAAQ,EAAE,SAAS,WAAW,WAAW,SAAS,OAAO,QAAQ,SAAS,MAAM,QAAQ,QAAO,IAAM,CAAA,GAAI;AACnI,QAAM,SAAS,WAAW;AAC1B,QAAM,SAAS,YAAY,QAAQ,CAAC,KAAK,IAAI;AAC7C,MAAI,SAAS,CAAA;AACb,MAAI,QAAQ;AACR,UAAM,UAAU,OAAO,QAAQ,CAACC,WAAU,kBAAkB;AAAA,MACxD,KAAK,CAACA,MAAK;AAAA,MACX,WAAWA,OAAM;AAAA,MACjB,MAAM,UAAU,SAAY;AAAA,IACxC,CAAS,CAAC;AAEF,aAAS,CAAC,OAAO;AACjB,QAAI;AACA,eAAS,OAAO,CAAC;AAAA,EACzB;AACA,MAAI;AACJ,MAAI,WAAW;AACX,WAAO,MAAM,OAAO,QAAQ;AAAA,MACxB,QAAQ;AAAA,MACR,QAAQ,CAAC,EAAE,SAAS,QAAQ,UAAS,CAAE;AAAA,IACnD,CAAS;AAAA,EACL,OACK;AACD,WAAO,MAAM,OAAO,QAAQ;AAAA,MACxB,QAAQ;AAAA,MACR,QAAQ;AAAA,QACJ;AAAA,UACI;AAAA,UACA;AAAA,UACA,WAAW,OAAO,cAAc,WAAW,YAAY,SAAS,IAAI;AAAA,UACpE,SAAS,OAAO,YAAY,WAAW,YAAY,OAAO,IAAI;AAAA,QAClF;AAAA,MACA;AAAA,IACA,CAAS;AAAA,EACL;AACA,QAAM,gBAAgB,KAAK,IAAI,CAAC,QAAQ,UAAU,GAAG,CAAC;AACtD,MAAI,CAAC;AACD,WAAO;AACX,SAAO,eAAe;AAAA,IAClB,KAAK;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EACR,CAAK;AACL;ACzCO,eAAe,kBAAkB,QAAQ,YAAY;AACxD,QAAM,EAAE,KAAAD,MAAK,SAAS,MAAM,WAAW,WAAW,WAAW,SAAS,OAAM,IAAM;AAClF,QAAM,QAAQ,YACR,WAAW,EAAE,KAAAA,MAAK,MAAM,UAAS,CAAE,IACnC;AACN,QAAM,SAAS,CAAC,QACVA,KAAI,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO,IACpC;AACN,SAAO,UAAU,QAAQ,SAAS,SAAS,EAAE;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK;AACL;ACVO,eAAe,iBAAiB,QAAQ,YAAY;AACvD,QAAM,EAAE,KAAAA,MAAK,SAAS,MAAM,YAAY,cAAc,GAAG,YAAW,IAAK;AACzE,QAAM,UAAU,YAAY,UACtB,aAAa,YAAY,OAAO,IAChC,OAAO;AACb,QAAM,WAAW,mBAAmB,EAAE,KAAAA,MAAK,MAAM,aAAY,CAAE;AAC/D,MAAI;AACA,UAAM,EAAE,KAAI,IAAK,MAAM,UAAU,QAAQ,MAAM,MAAM,EAAE;AAAA,MACnD,OAAO;AAAA,MACP,MAAM,GAAG,QAAQ,GAAG,aAAa,WAAW,QAAQ,MAAM,EAAE,IAAI,EAAE;AAAA,MAClE,IAAI;AAAA,MACJ,GAAG;AAAA,MACH;AAAA,IACZ,CAAS;AACD,UAAM,SAAS,qBAAqB;AAAA,MAChC,KAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,QAAQ;AAAA,IAC1B,CAAS;AACD,UAAM,eAAeA,KAAI,OAAO,CAAC,YAAY,UAAU,WAAW,QAAQ,SAAS,WAAW,YAAY;AAC1G,WAAO;AAAA,MACH;AAAA,MACA,SAAS;AAAA,QACL,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,QACH;AAAA,MAChB;AAAA,IACA;AAAA,EACI,SACO,OAAO;AACV,UAAM,iBAAiB,OAAO;AAAA,MAC1B,KAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA,QAAQ,mCAAS;AAAA,IAC7B,CAAS;AAAA,EACL;AACJ;ACrCO,SAAS,mBAAmB,QAAQ,YAAY;AACnD,QAAM,EAAE,KAAAA,MAAK,SAAS,MAAM,QAAQ,MAAM,WAAW,WAAW,SAAS,QAAQ,MAAM,OAAO,kBAAkB,OAAO,iBAAiB,QAAQ,QAAO,IAAM;AAC7J,QAAM,iBAAiB,MAAM;AACzB,QAAI,OAAO,UAAU;AACjB,aAAO;AACX,QAAI,OAAO,cAAc;AACrB,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,eAC1B,OAAO,UAAU,SAAS;AAC1B,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,eACzB,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,SAAS,eAC5C,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,SAAS;AACnD,aAAO;AACX,WAAO;AAAA,EACX,GAAC;AACD,QAAM,oBAAoB,MAAM;AAC5B,UAAM,SAAS,WAAW;AAC1B,UAAM,aAAa,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS;AACD,WAAO,QAAQ,YAAY,EAAE,QAAQ,QAAO,GAAI,CAAC,SAAS;AACtD,UAAI;AACJ,UAAI,cAAc;AACd,8BAAsB,YAAY;AACtC,UAAI;AACJ,UAAI,cAAc;AAClB,YAAM,UAAU,KAAK,YAAY;;AAC7B,YAAI,CAAC,aAAa;AACd,cAAI;AACA,qBAAU,MAAM,UAAU,QAAQ,2BAA2B,2BAA2B,EAAE;AAAA,cACtF,KAAAA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAC5B,CAAyB;AAAA,UACL,QACM;AAAA,UAAE;AACR,wBAAc;AACd;AAAA,QACJ;AACA,YAAI;AACA,cAAI;AACJ,cAAI,QAAQ;AACR,mBAAO,MAAM,UAAU,QAAQ,kBAAkB,kBAAkB,EAAE,EAAE,QAAQ;AAAA,UACnF,OACK;AAID,kBAAM,cAAc,MAAM,UAAU,QAAQ,gBAAgB,gBAAgB,EAAE,EAAE;AAIhF,gBAAI,uBAAuB,sBAAsB,aAAa;AAC1D,qBAAO,MAAM,UAAU,QAAQ,mBAAmB,mBAAmB,EAAE;AAAA,gBACnE,KAAAA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,WAAW,sBAAsB;AAAA,gBACjC,SAAS;AAAA,gBACT;AAAA,cAChC,CAA6B;AAAA,YACL,OACK;AACD,qBAAO,CAAA;AAAA,YACX;AACA,kCAAsB;AAAA,UAC1B;AACA,cAAI,KAAK,WAAW;AAChB;AACJ,cAAI;AACA,iBAAK,OAAO,IAAI;AAAA;AAEhB,uBAAW,OAAO;AACd,mBAAK,OAAO,CAAC,GAAG,CAAC;AAAA,QAC7B,SACO,KAAK;AAGR,cAAI,UAAU,eAAe;AACzB,0BAAc;AAClB,qBAAK,YAAL,8BAAe;AAAA,QACnB;AAAA,MACJ,GAAG;AAAA,QACC,aAAa;AAAA,QACb,UAAU;AAAA,MAC1B,CAAa;AACD,aAAO,YAAY;AACf,YAAI;AACA,gBAAM,UAAU,QAAQ,iBAAiB,iBAAiB,EAAE,EAAE,QAAQ;AAC1E,gBAAO;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AACA,QAAM,yBAAyB,MAAM;AACjC,UAAM,SAAS,WAAW;AAC1B,UAAM,aAAa,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS;AACD,QAAI,SAAS;AACb,QAAI,cAAc,MAAO,SAAS;AAClC,WAAO,QAAQ,YAAY,EAAE,QAAQ,QAAO,GAAI,CAAC,SAAS;AAEtD,OAAC,YAAY;AACT,YAAI;AACA,gBAAM,aAAa,MAAM;AACrB,gBAAI,OAAO,UAAU,SAAS,YAAY;AACtC,oBAAME,aAAY,OAAO,UAAU,WAAW,KAAK,CAACA,eAAcA,WAAU,OAAO,SAAS,eACxFA,WAAU,OAAO,SAAS,KAAK;AACnC,kBAAI,CAACA;AACD,uBAAO,OAAO;AAClB,qBAAOA,WAAU;AAAA,YACrB;AACA,mBAAO,OAAO;AAAA,UAClB,GAAC;AACD,gBAAM,SAAS,YACT,kBAAkB;AAAA,YAChB,KAAKF;AAAA,YACL;AAAA,YACA;AAAA,UAC5B,CAAyB,IACC,CAAA;AACN,gBAAM,EAAE,aAAa,aAAY,IAAK,MAAM,UAAU,UAAU;AAAA,YAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAM,CAAE;AAAA,YACpC,OAAO,MAAM;;AACT,kBAAI,CAAC;AACD;AACJ,oBAAM,MAAM,KAAK;AACjB,kBAAI;AACA,sBAAM,EAAE,WAAAG,YAAW,MAAAC,MAAI,IAAK,eAAe;AAAA,kBACvC,KAAKJ;AAAA,kBACL,MAAM,IAAI;AAAA,kBACV,QAAQ,IAAI;AAAA,kBACZ,QAAQ;AAAA,gBAC5C,CAAiC;AACD,sBAAM,YAAY,UAAU,KAAK;AAAA,kBAC7B,MAAAI;AAAA,kBACA,WAAWD;AAAA,gBAC/C,CAAiC;AACD,qBAAK,OAAO,CAAC,SAAS,CAAC;AAAA,cAC3B,SACO,KAAK;AACR,oBAAIA;AACJ,oBAAI;AACJ,oBAAI,eAAe,yBACf,eAAe,yBAAyB;AAExC,sBAAI;AACA;AACJ,kBAAAA,aAAY,IAAI,QAAQ;AACxB,+BAAY,SAAI,QAAQ,WAAZ,mBAAoB,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;AAAA,gBACnE;AAEA,sBAAM,YAAY,UAAU,KAAK;AAAA,kBAC7B,MAAM,YAAY,CAAA,IAAK,CAAA;AAAA,kBACvB,WAAAA;AAAA,gBACpC,CAAiC;AACD,qBAAK,OAAO,CAAC,SAAS,CAAC;AAAA,cAC3B;AAAA,YACJ;AAAA,YACA,QAAQ,OAAO;;AACX,yBAAK,YAAL,8BAAe;AAAA,YACnB;AAAA,UACxB,CAAqB;AACD,wBAAc;AACd,cAAI,CAAC;AACD,wBAAW;AAAA,QACnB,SACO,KAAK;AACR,6CAAU;AAAA,QACd;AAAA,MACJ,GAAC;AACD,aAAO,MAAM,YAAW;AAAA,IAC5B,CAAC;AAAA,EACL;AACA,SAAO,gBAAgB,kBAAiB,IAAK,uBAAsB;AACvE;AC9OO,MAAM,0BAA0B,UAAU;AAAA,EAC7C,YAAY,QAAQ;AAChB,UAAM,mCAAmC,OAAO,UAAU,IAAI;AAAA,MAC1D,MAAM;AAAA,IAClB,CAAS;AACD,WAAO,eAAe,MAAM,UAAU;AAAA,MAClC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AACD,SAAK,SAAS;AAAA,EAClB;AACJ;ACLO,MAAM,0BAA0B;AAChC,MAAM,0CAA0C,YAAY,GAAG;AAAA,EAClE,MAAM;AACV,CAAC;AAiCM,eAAe,UAAU,QAAQ,YAAY;AAChD,QAAM,EAAE,SAAS,WAAW,OAAO,SAAS,cAAc,QAAQ,OAAO,OAAO,uBAAuB,6BAA6B,IAAI,cAAc,OAAO,IAAI,UAAU,QAAO,IAAM;AACxL,QAAM,UAAU,WAAW,aAAa,QAAQ,IAAI;AACpD,QAAM,QAAQ,WAAW,MAAM,IAAI,CAAC,UAAU;AAC1C,UAAME,QAAO;AACb,UAAM,OAAOA,MAAK,MACZ,mBAAmB;AAAA,MACjB,KAAKA,MAAK;AAAA,MACV,cAAcA,MAAK;AAAA,MACnB,MAAMA,MAAK;AAAA,IAC3B,CAAa,IACCA,MAAK;AACX,WAAO;AAAA,MACH,MAAMA,MAAK,cAAc,OAAO,OAAO,CAAC,MAAMA,MAAK,UAAU,CAAC,IAAI;AAAA,MAClE,IAAIA,MAAK;AAAA,MACT,OAAOA,MAAK,QAAQ,YAAYA,MAAK,KAAK,IAAI;AAAA,IAC1D;AAAA,EACI,CAAC;AACD,MAAI;AACA,UAAM,WAAW,MAAM,OAAO,QAAQ;AAAA,MAClC,QAAQ;AAAA,MACR,QAAQ;AAAA,QACJ;AAAA,UACI,gBAAgB;AAAA,UAChB;AAAA,UACA;AAAA,UACA,SAAS,YAAY,MAAM,EAAE;AAAA,UAC7B,MAAM,mCAAS;AAAA,UACf;AAAA,UACA;AAAA,QACpB;AAAA,MACA;AAAA,IACA,GAAW,EAAE,YAAY,GAAG;AACpB,QAAI,OAAO,aAAa;AACpB,aAAO,EAAE,IAAI,SAAQ;AACzB,WAAO;AAAA,EACX,SACO,KAAK;AACR,UAAM,QAAQ;AAGd,QAAI,0BACC,MAAM,SAAS,4BACZ,MAAM,SAAS,gCACf,MAAM,SAAS,qBACf,MAAM,QACD,YAAW,EACX,SAAS,mCAAmC,KACjD,MAAM,QAAQ,cAAc,SAAS,+BAA+B,KACpE,MAAM,QACD,YAAW,EACX,SAAS,4CAA4C,KAC1D,MAAM,QACD,YAAW,EACX,SAAS,0CAA0C,KACxD,MAAM,QAAQ,cAAc,SAAS,wBAAwB,KAC7D,MAAM,QAAQ,cAAc,SAAS,wBAAwB;AAAA,IAE7D,MAAM,QACD,YAAW,EACX,SAAS,+BAA+B;AAAA,IAE7C,MAAM,QACD,YAAW,EACX,SAAS,4DAA4D,IAAI;AAClF,UAAI,cAAc;AACd,cAAM,2BAA2B,OAAO,OAAO,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,WAAW,QAAQ;AACtG,YAAI,0BAA0B;AAC1B,gBAAM,UAAU;AAChB,gBAAM,IAAI,sCAAsC,IAAI,UAAU,SAAS;AAAA,YACnE,SAAS;AAAA,UACjC,CAAqB,CAAC;AAAA,QACN;AAAA,MACJ;AACA,UAAI,eAAe,MAAM,SAAS,GAAG;AACjC,cAAM,UAAU;AAChB,cAAM,IAAI,2BAA2B,IAAI,UAAU,SAAS;AAAA,UACxD,SAAS;AAAA,QAC7B,CAAiB,CAAC;AAAA,MACN;AACA,YAAM,WAAW,CAAA;AACjB,iBAAWA,SAAQ,OAAO;AACtB,cAAM,UAAU,gBAAgB,QAAQ;AAAA,UACpC;AAAA,UACA;AAAA,UACA,MAAMA,MAAK;AAAA,UACX,IAAIA,MAAK;AAAA,UACT,OAAOA,MAAK,QAAQ,YAAYA,MAAK,KAAK,IAAI;AAAA,QAClE,CAAiB;AACD,iBAAS,KAAK,OAAO;AAGrB,YAAI,6BAA6B;AAC7B,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,0BAA0B,CAAC;AAAA,MACtF;AACA,YAAM,UAAU,MAAM,QAAQ,WAAW,QAAQ;AACjD,UAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,WAAW,UAAU;AAC5C,cAAM,QAAQ,CAAC,EAAE;AACrB,YAAM,SAAS,QAAQ,IAAI,CAAC,WAAW;AACnC,YAAI,OAAO,WAAW;AAClB,iBAAO,OAAO;AAClB,eAAO;AAAA,MACX,CAAC;AACD,aAAO;AAAA,QACH,IAAI,OAAO;AAAA,UACP,GAAG;AAAA,UACH,YAAY,MAAM,IAAI,EAAE,MAAM,GAAE,CAAE;AAAA,UAClC;AAAA,QACpB,CAAiB;AAAA,MACjB;AAAA,IACQ;AACA,UAAM,oBAAoB,KAAK;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA,OAAO,WAAW;AAAA,IAC9B,CAAS;AAAA,EACL;AACJ;ACzIO,eAAe,eAAe,QAAQ,YAAY;AACrD,iBAAe,UAAU,IAAI;AACzB,UAAM,iBAAiB,GAAG,SAAS,wBAAwB,MAAM,CAAC,CAAC;AACnE,QAAI,gBAAgB;AAChB,YAAMC,WAAU,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC;AAC3C,YAAM,SAAS,SAAS,IAAI,GAAG,GAAG,EAC7B,MAAM,CAAC,EACP,MAAM,UAAU;AACrB,YAAMC,YAAW,MAAM,QAAQ,IAAI,OAAO,IAAI,CAAC,SAAS,wCAAwC,MAAM,CAAC,MAAM,OACvG,OAAO,QAAQ;AAAA,QACb,QAAQ;AAAA,QACR,QAAQ,CAAC,KAAK,IAAI,EAAE;AAAA,MACxC,GAAmB,EAAE,QAAQ,KAAI,CAAE,IACjB,MAAS,CAAC;AAChB,YAAMC,WAAU,MAAM;AAClB,YAAID,UAAS,KAAK,CAAC,MAAM,MAAM,IAAI;AAC/B,iBAAO;AACX,YAAIA,UAAS,MAAM,CAAC,OAAM,uBAAG,YAAW,KAAK;AACzC,iBAAO;AACX,YAAIA,UAAS,MAAM,CAAC,OAAM,uBAAG,YAAW,KAAK;AACzC,iBAAO;AACX,eAAO;AAAA,MACX,GAAC;AACD,aAAO;AAAA,QACH,QAAQ;AAAA,QACR,SAAS,YAAYD,QAAO;AAAA,QAC5B,UAAUC,UAAS,OAAO,OAAO;AAAA,QACjC,QAAAC;AAAA,QACA,SAAS;AAAA,MACzB;AAAA,IACQ;AACA,WAAO,OAAO,QAAQ;AAAA,MAClB,QAAQ;AAAA,MACR,QAAQ,CAAC,EAAE;AAAA,IACvB,CAAS;AAAA,EACL;AACA,QAAM,EAAE,SAAS,OAAO,SAAS,UAAU,UAAU,SAAS,GAAG,SAAQ,IAAK,MAAM,UAAU,WAAW,EAAE;AAC3G,QAAM,CAAC,QAAQ,UAAU,KAAK,MAAM;AAChC,UAAMC,cAAa,SAAS;AAC5B,QAAIA,eAAc,OAAOA,cAAa;AAClC,aAAO,CAAC,WAAWA,WAAU;AACjC,QAAIA,eAAc,OAAOA,cAAa;AAClC,aAAO,CAAC,WAAWA,WAAU;AACjC,QAAIA,eAAc,OAAOA,cAAa;AAClC,aAAO,CAAC,WAAWA,WAAU;AAEjC,QAAIA,gBAAe;AACf,aAAO,CAAC,WAAW,GAAG;AAE1B,QAAIA,gBAAe;AACf,aAAO,CAAC,WAAW,GAAG;AAC1B,WAAO,CAAC,QAAWA,WAAU;AAAA,EACjC,GAAC;AACD,SAAO;AAAA,IACH,GAAG;AAAA,IACH;AAAA;AAAA,IAEA,SAAS,UAAU,YAAY,OAAO,IAAI;AAAA,IAC1C,WAAU,qCAAU,IAAI,CAAC,aAAa;AAAA,MAClC,GAAG;AAAA,MACH,aAAa,YAAY,QAAQ,WAAW;AAAA,MAC5C,SAAS,YAAY,QAAQ,OAAO;AAAA,MACpC,QAAQ,gBAAgB,QAAQ,MAAM;AAAA,IAClD,QAAe,CAAA;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACR;AACA;AC9DO,eAAe,mBAAmB,QAAQ,YAAY;AACzD,QAAM;AAAA,IAAE;AAAA,IAAI,kBAAkB,OAAO;AAAA,IAAiB,SAAS,CAAC,EAAE,iBAAiB,eAAe,OAAO,cAAc;AAAA,IAAK,aAAa;AAAA,IAAG,aAAa,CAAC,EAAE,MAAK,MAAO,CAAC,EAAE,KAAK,SAAS;AAAA;AAAA,IACzL,UAAU;AAAA,IAAQ,iBAAiB;AAAA,EAAK,IAAM;AAC9C,QAAM,aAAa,UAAU,CAAC,sBAAsB,OAAO,KAAK,EAAE,CAAC;AACnE,QAAM,EAAE,SAAS,SAAS,OAAM,IAAK,cAAa;AAClD,MAAI;AACJ,QAAM,YAAY,QAAQ,YAAY,EAAE,SAAS,OAAM,GAAI,CAAC,SAAS;AACjE,UAAM,SAAS,KAAK,YAAY;AAC5B,YAAM,OAAO,CAAC,OAAO;AACjB,qBAAa,KAAK;AAClB,eAAM;AACN,WAAE;AACF,kBAAS;AAAA,MACb;AACA,UAAI;AACA,cAAM,SAAS,MAAM,UAAU,YAAY;AACvC,gBAAMC,UAAS,MAAM,UAAU,QAAQ,gBAAgB,gBAAgB,EAAE,EAAE,IAAI;AAC/E,cAAI,kBAAkBA,QAAO,WAAW;AACpC,kBAAM,IAAI,kBAAkBA,OAAM;AACtC,iBAAOA;AAAA,QACX,GAAG;AAAA,UACC;AAAA,UACA,OAAO;AAAA,QAC3B,CAAiB;AACD,YAAI,CAAC,OAAO,MAAM;AACd;AACJ,aAAK,MAAM,KAAK,QAAQ,MAAM,CAAC;AAAA,MACnC,SACO,OAAO;AACV,aAAK,MAAM,KAAK,OAAO,KAAK,CAAC;AAAA,MACjC;AAAA,IACJ,GAAG;AAAA,MACC,UAAU;AAAA,MACV,aAAa;AAAA,IACzB,CAAS;AACD,WAAO;AAAA,EACX,CAAC;AACD,UAAQ,UACF,WAAW,MAAM;AACf,cAAS;AACT,iBAAa,KAAK;AAClB,WAAO,IAAI,+BAA+B,EAAE,GAAE,CAAE,CAAC;AAAA,EACrD,GAAG,OAAO,IACR;AACN,SAAO,MAAM;AACjB;AACO,MAAM,uCAAuC,UAAU;AAAA,EAC1D,YAAY,EAAE,MAAM;AAChB,UAAM,oDAAoD,EAAE,sBAAsB,EAAE,MAAM,kCAAkC;AAAA,EAChI;AACJ;AC5EO,SAAS,6BAA6B,KAAK;;AAC9C,MAAI,EAAE,eAAe;AACjB,WAAO;AACX,QAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,aAAa,6BAA6B;AACxE,MAAI,EAAE,iBAAiB;AACnB,WAAO;AACX,QAAI,WAAM,SAAN,mBAAY,eAAc;AAC1B,WAAO;AACX,QAAI,WAAM,SAAN,mBAAY,eAAc;AAC1B,WAAO;AACX,QAAI,WAAM,SAAN,mBAAY,eAAc;AAC1B,WAAO;AACX,QAAI,WAAM,SAAN,mBAAY,eAAc;AAC1B,WAAO;AACX,QAAI,WAAM,SAAN,mBAAY,eAAc;AAC1B,WAAO;AACX,QAAI,WAAM,SAAN,mBAAY,eAAc;AAC1B,WAAO;AACX,SAAO;AACX;ACvBO,SAAS,wBAAwB,OAAO;AAC3C,MAAI,MAAM,WAAW;AACjB,WAAO;AACX,MAAI,MAAM,QAAQ,GAAG,MAAM;AACvB,WAAO;AACX,MAAI,MAAM,QAAQ,GAAG,MAAM;AACvB,WAAO;AACX,QAAM,OAAO,KAAK,MAAM,MAAM,GAAG,EAAE,CAAC;AACpC,MAAI,CAAC,MAAM,IAAI;AACX,WAAO;AACX,SAAO;AACX;ACIO,SAAS,SAAS,MAAM;AAC3B,MAAI,SAAS,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC;AACtC,MAAI,CAAC;AACD,WAAO,WAAW,MAAM;AAC5B,QAAM,SAAS,KAAK,MAAM,GAAG;AAE7B,WAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AAC5C,UAAM,uBAAuB,wBAAwB,OAAO,CAAC,CAAC;AAC9D,UAAM,SAAS,uBACT,QAAQ,oBAAoB,IAC5B,UAAU,cAAc,OAAO,CAAC,CAAC,GAAG,OAAO;AACjD,aAAS,UAAU,OAAO,CAAC,QAAQ,MAAM,CAAC,GAAG,OAAO;AAAA,EACxD;AACA,SAAO,WAAW,MAAM;AAC5B;AC9BO,SAAS,gBAAgB,MAAM;AAClC,SAAO,IAAI,KAAK,MAAM,CAAC,CAAC;AAC5B;ACWO,SAAS,UAAU,OAAO;AAC7B,QAAM,SAAS,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC;AACxC,MAAI,CAAC;AACD,WAAO,WAAW,MAAM;AAC5B,SAAO,wBAAwB,KAAK,KAAK,UAAU,cAAc,KAAK,CAAC;AAC3E;ACLO,SAAS,cAAc,QAAQ;AAElC,QAAM,QAAQ,OAAO,QAAQ,aAAa,EAAE;AAC5C,MAAI,MAAM,WAAW;AACjB,WAAO,IAAI,WAAW,CAAC;AAC3B,QAAM,QAAQ,IAAI,WAAW,cAAc,KAAK,EAAE,aAAa,CAAC;AAChE,MAAI,SAAS;AACb,QAAM,OAAO,MAAM,MAAM,GAAG;AAC5B,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,QAAI,UAAU,cAAc,KAAK,CAAC,CAAC;AAGnC,QAAI,QAAQ,aAAa;AACrB,gBAAU,cAAc,gBAAgB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,UAAM,MAAM,IAAI,QAAQ;AACxB,UAAM,IAAI,SAAS,SAAS,CAAC;AAC7B,cAAU,QAAQ,SAAS;AAAA,EAC/B;AACA,MAAI,MAAM,eAAe,SAAS;AAC9B,WAAO,MAAM,MAAM,GAAG,SAAS,CAAC;AACpC,SAAO;AACX;ACMO,eAAe,cAAc,QAAQ,YAAY;AACpD,QAAM,EAAE,aAAa,UAAU,UAAU,MAAM,aAAa,OAAM,IAAK;AACvE,QAAM,EAAE,MAAK,IAAK;AAClB,QAAM,4BAA4B,MAAM;AACpC,QAAI,WAAW;AACX,aAAO,WAAW;AACtB,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,oEAAoE;AACxF,WAAO,wBAAwB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACtB,CAAS;AAAA,EACL,GAAC;AACD,QAAM,OAAO,+BAAO;AACpB,MAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,SAAS,GAAG,CAAC;AAC9C,WAAO;AACX,QAAM,QAAQ,MAAM;AAChB,QAAI,YAAY;AACZ,aAAO,CAAC,SAAS,IAAI,GAAG,OAAO,QAAQ,CAAC;AAC5C,WAAO,CAAC,SAAS,IAAI,CAAC;AAAA,EAC1B,GAAC;AACD,MAAI;AACA,UAAM,eAAe,mBAAmB;AAAA,MACpC,KAAK;AAAA,MACL,cAAc;AAAA,MACd;AAAA,IACZ,CAAS;AACD,UAAM,yBAAyB;AAAA,MAC3B,SAAS;AAAA,MACT,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM;AAAA,QACF,MAAM,cAAc,IAAI,CAAC;AAAA,QACzB;AAAA,QACA,eAAe,CAAC,oBAAoB;AAAA,MACpD;AAAA,MACY;AAAA,MACA;AAAA,IACZ;AACQ,UAAM,qBAAqB,UAAU,QAAQ,cAAc,cAAc;AACzE,UAAM,MAAM,MAAM,mBAAmB,sBAAsB;AAC3D,QAAI,IAAI,CAAC,MAAM;AACX,aAAO;AACX,UAAM,UAAU,qBAAqB;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,cAAc;AAAA,MACd,MAAM,IAAI,CAAC;AAAA,IACvB,CAAS;AACD,QAAI,YAAY;AACZ,aAAO;AACX,QAAI,KAAK,OAAO,MAAM;AAClB,aAAO;AACX,WAAO;AAAA,EACX,SACO,KAAK;AACR,QAAI;AACA,YAAM;AACV,QAAI,6BAA6B,GAAG;AAChC,aAAO;AACX,UAAM;AAAA,EACV;AACJ;ACtGO,MAAM,sCAAsC,UAAU;AAAA,EACzD,YAAY,EAAE,QAAQ;AAClB,UAAM,oFAAoF;AAAA,MACtF,cAAc;AAAA,QACV;AAAA,QACA;AAAA,QACA,kBAAkB,KAAK,UAAU,IAAI,CAAC;AAAA,MACtD;AAAA,MACY,MAAM;AAAA,IAClB,CAAS;AAAA,EACL;AACJ;AACO,MAAM,oCAAoC,UAAU;AAAA,EACvD,YAAY,EAAE,UAAU;AACpB,UAAM,kCAAkC,MAAM,IAAI;AAAA,MAC9C,MAAM;AAAA,IAClB,CAAS;AAAA,EACL;AACJ;AACO,MAAM,oCAAoC,UAAU;AAAA,EACvD,YAAY,EAAE,OAAO;AACjB,UAAM,qCAAqC,GAAG,iFAAiF,EAAE,MAAM,+BAA+B;AAAA,EAC1K;AACJ;AACO,MAAM,2CAA2C,UAAU;AAAA,EAC9D,YAAY,EAAE,aAAa;AACvB,UAAM,6BAA6B,SAAS,sDAAsD,EAAE,MAAM,sCAAsC;AAAA,EACpJ;AACJ;AACO,MAAM,+BAA+B,UAAU;AAAA,EAClD,YAAY,EAAE,WAAW;AACrB,UAAM,6BAA6B,OAAO,6CAA6C;AAAA,MACnF,MAAM;AAAA,IAClB,CAAS;AAAA,EACL;AACJ;AClCA,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,cAAc;AACpB,MAAM,eAAe;AAEd,eAAe,WAAW,KAAK;AAClC,MAAI;AACA,UAAM,MAAM,MAAM,MAAM,KAAK,EAAE,QAAQ,QAAQ;AAE/C,QAAI,IAAI,WAAW,KAAK;AACpB,YAAM,cAAc,IAAI,QAAQ,IAAI,cAAc;AAClD,aAAO,2CAAa,WAAW;AAAA,IACnC;AACA,WAAO;AAAA,EACX,SACO,OAAO;AAEV,QAAI,OAAO,UAAU,YAAY,OAAO,MAAM,aAAa,aAAa;AACpE,aAAO;AAAA,IACX;AAEA,QAAI,CAAC,OAAO,OAAO,YAAY,OAAO;AAClC,aAAO;AAEX,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,YAAM,MAAM,IAAI,MAAK;AACrB,UAAI,SAAS,MAAM;AACf,gBAAQ,IAAI;AAAA,MAChB;AACA,UAAI,UAAU,MAAM;AAChB,gBAAQ,KAAK;AAAA,MACjB;AACA,UAAI,MAAM;AAAA,IACd,CAAC;AAAA,EACL;AACJ;AAEO,SAAS,WAAW,QAAQ,gBAAgB;AAC/C,MAAI,CAAC;AACD,WAAO;AACX,MAAI,OAAO,SAAS,GAAG;AACnB,WAAO,OAAO,MAAM,GAAG,EAAE;AAC7B,SAAO;AACX;AACO,SAAS,iBAAiB,EAAE,KAAK,eAAgB;AACpD,QAAM,YAAY,YAAY,KAAK,GAAG;AACtC,MAAI;AACA,WAAO,EAAE,KAAK,WAAW,MAAM,UAAS;AAC5C,QAAM,cAAc,WAAW,2CAAa,MAAM,iBAAiB;AACnE,QAAM,iBAAiB,WAAW,2CAAa,SAAS,qBAAqB;AAC7E,QAAM,oBAAoB,IAAI,MAAM,YAAY;AAChD,QAAM,EAAE,UAAU,SAAS,QAAQ,YAAY,GAAE,KAAM,uDAAmB,WAAU,CAAA;AACpF,QAAM,SAAS,aAAa,YAAY,YAAY;AACpD,QAAM,SAAS,aAAa,YAAY,YAAY,WAAW,cAAc,KAAK,GAAG;AACrF,MAAI,IAAI,WAAW,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ;AAC9C,QAAI,cAAc;AAClB,QAAI,2CAAa;AACb,oBAAc,IAAI,QAAQ,0BAA0B,2CAAa,OAAO;AAC5E,WAAO,EAAE,KAAK,aAAa,WAAW,OAAO,WAAW,MAAK;AAAA,EACjE;AACA,OAAK,UAAU,WAAW,QAAQ;AAC9B,WAAO;AAAA,MACH,KAAK,GAAG,WAAW,IAAI,SAAS,SAAS,MAAM,IAAI,MAAM,GAAG,SAAS;AAAA,MACrE,WAAW;AAAA,MACX,WAAW;AAAA,IACvB;AAAA,EACI;AACA,MAAI,aAAa,UAAU,QAAQ;AAC/B,WAAO;AAAA,MACH,KAAK,GAAG,cAAc,IAAI,MAAM,GAAG,aAAa,EAAE;AAAA,MAClD,WAAW;AAAA,MACX,WAAW;AAAA,IACvB;AAAA,EACI;AACA,MAAI,YAAY,IAAI,QAAQ,cAAc,EAAE;AAC5C,MAAI,UAAU,WAAW,MAAM,GAAG;AAE9B,gBAAY,6BAA6B,KAAK,SAAS,CAAC;AAAA,EAC5D;AACA,MAAI,UAAU,WAAW,OAAO,KAAK,UAAU,WAAW,GAAG,GAAG;AAC5D,WAAO;AAAA,MACH,KAAK;AAAA,MACL,WAAW;AAAA,MACX,WAAW;AAAA,IACvB;AAAA,EACI;AACA,QAAM,IAAI,4BAA4B,EAAE,KAAK;AACjD;AACO,SAAS,aAAa,MAAM;AAE/B,MAAI,OAAO,SAAS,YACf,EAAE,WAAW,SAAS,EAAE,eAAe,SAAS,EAAE,gBAAgB,OAAQ;AAC3E,UAAM,IAAI,8BAA8B,EAAE,MAAM;AAAA,EACpD;AACA,SAAO,KAAK,SAAS,KAAK,aAAa,KAAK;AAChD;AACO,eAAe,qBAAqB,EAAE,aAAa,OAAQ;AAC9D,MAAI;AACA,UAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,CAACC,SAAQA,KAAI,MAAM;AACrD,UAAM,QAAQ,MAAM,eAAe;AAAA,MAC/B;AAAA,MACA,KAAK,aAAa,GAAG;AAAA,IACjC,CAAS;AACD,WAAO;AAAA,EACX,QACM;AACF,UAAM,IAAI,4BAA4B,EAAE,KAAK;AAAA,EACjD;AACJ;AACO,eAAe,eAAe,EAAE,aAAa,OAAQ;AACxD,QAAM,EAAE,KAAK,aAAa,UAAS,IAAK,iBAAiB,EAAE,KAAK,aAAa;AAC7E,MAAI;AACA,WAAO;AAEX,QAAM,UAAU,MAAM,WAAW,WAAW;AAC5C,MAAI;AACA,WAAO;AACX,QAAM,IAAI,4BAA4B,EAAE,KAAK;AACjD;AACO,SAAS,YAAY,MAAM;AAC9B,MAAI,MAAM;AAGV,MAAI,IAAI,WAAW,UAAU,GAAG;AAE5B,UAAM,IAAI,QAAQ,YAAY,EAAE,EAAE,QAAQ,MAAM,GAAG;AAAA,EACvD;AACA,QAAM,CAAC,WAAW,iBAAiB,OAAO,IAAI,IAAI,MAAM,GAAG;AAC3D,QAAM,CAAC,eAAe,OAAO,IAAI,UAAU,MAAM,GAAG;AACpD,QAAM,CAAC,eAAe,eAAe,IAAI,gBAAgB,MAAM,GAAG;AAClE,MAAI,CAAC,iBAAiB,cAAc,YAAW,MAAO;AAClD,UAAM,IAAI,4BAA4B,EAAE,QAAQ,yBAAwB,CAAE;AAC9E,MAAI,CAAC;AACD,UAAM,IAAI,4BAA4B,EAAE,QAAQ,qBAAoB,CAAE;AAC1E,MAAI,CAAC;AACD,UAAM,IAAI,4BAA4B;AAAA,MAClC,QAAQ;AAAA,IACpB,CAAS;AACL,MAAI,CAAC;AACD,UAAM,IAAI,4BAA4B,EAAE,QAAQ,qBAAoB,CAAE;AAC1E,MAAI,CAAC;AACD,UAAM,IAAI,4BAA4B,EAAE,QAAQ,0BAAyB,CAAE;AAC/E,SAAO;AAAA,IACH,SAAS,OAAO,SAAS,SAAS,EAAE;AAAA,IACpC,WAAW,cAAc,YAAW;AAAA,IACpC;AAAA,IACA;AAAA,EACR;AACA;AACO,eAAe,eAAe,QAAQ,EAAE,OAAO;AAClD,MAAI,IAAI,cAAc,UAAU;AAC5B,WAAO,aAAa,QAAQ;AAAA,MACxB,SAAS,IAAI;AAAA,MACb,KAAK;AAAA,QACD;AAAA,UACI,MAAM;AAAA,UACN,MAAM;AAAA,UACN,iBAAiB;AAAA,UACjB,QAAQ,CAAC,EAAE,MAAM,WAAW,MAAM,UAAS,CAAE;AAAA,UAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,MAAM,SAAQ,CAAE;AAAA,QAC1D;AAAA,MACA;AAAA,MACY,cAAc;AAAA,MACd,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;AAAA,IACtC,CAAS;AAAA,EACL;AACA,MAAI,IAAI,cAAc,WAAW;AAC7B,WAAO,aAAa,QAAQ;AAAA,MACxB,SAAS,IAAI;AAAA,MACb,KAAK;AAAA,QACD;AAAA,UACI,MAAM;AAAA,UACN,MAAM;AAAA,UACN,iBAAiB;AAAA,UACjB,QAAQ,CAAC,EAAE,MAAM,OAAO,MAAM,UAAS,CAAE;AAAA,UACzC,SAAS,CAAC,EAAE,MAAM,IAAI,MAAM,SAAQ,CAAE;AAAA,QAC1D;AAAA,MACA;AAAA,MACY,cAAc;AAAA,MACd,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;AAAA,IACtC,CAAS;AAAA,EACL;AACA,QAAM,IAAI,mCAAmC,EAAE,WAAW,IAAI,UAAS,CAAE;AAC7E;AC9KO,eAAe,kBAAkB,QAAQ,EAAE,aAAa,OAAM,GAAK;AACtE,MAAI,WAAW,KAAK,MAAM;AACtB,WAAO,kBAAkB,QAAQ,EAAE,aAAa,OAAM,CAAE;AAC5D,SAAO,eAAe,EAAE,KAAK,QAAQ,YAAW,CAAE;AACtD;AACA,eAAe,kBAAkB,QAAQ,EAAE,aAAa,OAAM,GAAK;AAE/D,QAAM,MAAM,YAAY,MAAM;AAE9B,QAAM,SAAS,MAAM,eAAe,QAAQ,EAAE,IAAG,CAAE;AAEnD,QAAM,EAAE,KAAK,gBAAgB,WAAW,UAAS,IAAM,iBAAiB,EAAE,KAAK,QAAQ,aAAa;AAEpG,MAAI,cACC,eAAe,SAAS,+BAA+B,KACpD,eAAe,WAAW,GAAG,IAAI;AACrC,UAAM,cAAc;AAAA;AAAA,MAEZ,KAAK,eAAe,QAAQ,iCAAiC,EAAE,CAAC;AAAA;AAAA;AAAA,MAEhE;AAAA;AACR,UAAM,UAAU,KAAK,MAAM,WAAW;AACtC,WAAO,eAAe,EAAE,KAAK,aAAa,OAAO,GAAG,aAAa;AAAA,EACrE;AACA,MAAI,aAAa,IAAI;AACrB,MAAI,IAAI,cAAc;AAClB,iBAAa,WAAW,QAAQ,MAAM,EAAE,EAAE,SAAS,IAAI,GAAG;AAC9D,SAAO,qBAAqB;AAAA,IACxB;AAAA,IACA,KAAK,eAAe,QAAQ,eAAe,UAAU;AAAA,EAC7D,CAAK;AACL;ACFO,eAAe,WAAW,QAAQ,YAAY;AACjD,QAAM,EAAE,aAAa,UAAU,KAAK,MAAM,aAAa,OAAM,IAAK;AAClE,QAAM,EAAE,MAAK,IAAK;AAClB,QAAM,4BAA4B,MAAM;AACpC,QAAI,WAAW;AACX,aAAO,WAAW;AACtB,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,oEAAoE;AACxF,WAAO,wBAAwB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACtB,CAAS;AAAA,EACL,GAAC;AACD,QAAM,OAAO,+BAAO;AACpB,MAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,SAAS,GAAG,CAAC;AAC9C,WAAO;AACX,MAAI;AACA,UAAM,yBAAyB;AAAA,MAC3B,SAAS;AAAA,MACT,KAAK;AAAA,MACL,MAAM;AAAA,QACF,MAAM,cAAc,IAAI,CAAC;AAAA,QACzB,mBAAmB;AAAA,UACf,KAAK;AAAA,UACL,cAAc;AAAA,UACd,MAAM,CAAC,SAAS,IAAI,GAAG,GAAG;AAAA,QAC9C,CAAiB;AAAA,QACD,eAAe,CAAC,oBAAoB;AAAA,MACpD;AAAA,MACY,cAAc;AAAA,MACd;AAAA,MACA;AAAA,IACZ;AACQ,UAAM,qBAAqB,UAAU,QAAQ,cAAc,cAAc;AACzE,UAAM,MAAM,MAAM,mBAAmB,sBAAsB;AAC3D,QAAI,IAAI,CAAC,MAAM;AACX,aAAO;AACX,UAAM,SAAS,qBAAqB;AAAA,MAChC,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,IAAI,CAAC;AAAA,IACvB,CAAS;AACD,WAAO,WAAW,KAAK,OAAO;AAAA,EAClC,SACO,KAAK;AACR,QAAI;AACA,YAAM;AACV,QAAI,6BAA6B,GAAG;AAChC,aAAO;AACX,UAAM;AAAA,EACV;AACJ;AC7DO,eAAe,aAAa,QAAQ,EAAE,aAAa,UAAU,kBAAkB,MAAM,aAAa,QAAQ,4BAA6B;AAC1I,QAAM,SAAS,MAAM,UAAU,QAAQ,YAAY,YAAY,EAAE;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK;AACD,MAAI,CAAC;AACD,WAAO;AACX,MAAI;AACA,WAAO,MAAM,kBAAkB,QAAQ;AAAA,MACnC;AAAA,MACA,aAAa;AAAA,IACzB,CAAS;AAAA,EACL,QACM;AACF,WAAO;AAAA,EACX;AACJ;ACpBO,eAAe,WAAW,QAAQ,YAAY;AACjD,QAAM,EAAE,SAAS,aAAa,UAAU,WAAW,KAAK,aAAa,OAAM,IAAM;AACjF,QAAM,EAAE,MAAK,IAAK;AAClB,QAAM,4BAA4B,MAAM;AACpC,QAAI,WAAW;AACX,aAAO,WAAW;AACtB,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,oEAAoE;AACxF,WAAO,wBAAwB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACtB,CAAS;AAAA,EACL,GAAC;AACD,MAAI;AACA,UAAM,yBAAyB;AAAA,MAC3B,SAAS;AAAA,MACT,KAAK;AAAA,MACL,MAAM,CAAC,SAAS,UAAU,eAAe,CAAC,oBAAoB,CAAC;AAAA,MAC/D,cAAc;AAAA,MACd;AAAA,MACA;AAAA,IACZ;AACQ,UAAM,qBAAqB,UAAU,QAAQ,cAAc,cAAc;AACzE,UAAM,CAAC,IAAI,IAAI,MAAM,mBAAmB,sBAAsB;AAC9D,WAAO,QAAQ;AAAA,EACnB,SACO,KAAK;AACR,QAAI;AACA,YAAM;AACV,QAAI,6BAA6B,GAAG;AAChC,aAAO;AACX,UAAM;AAAA,EACV;AACJ;ACjCO,eAAe,eAAe,QAAQ,YAAY;AACrD,QAAM,EAAE,aAAa,UAAU,KAAI,IAAK;AACxC,QAAM,EAAE,MAAK,IAAK;AAClB,QAAM,4BAA4B,MAAM;AACpC,QAAI,WAAW;AACX,aAAO,WAAW;AACtB,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,oEAAoE;AACxF,WAAO,wBAAwB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACtB,CAAS;AAAA,EACL,GAAC;AACD,QAAM,OAAO,+BAAO;AACpB,MAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,SAAS,GAAG,CAAC;AAC9C,UAAM,IAAI,MAAM,GAAG,IAAI,4BAA4B,6BAAM,KAAK,KAAK,gBAAgB,MAAM,IAAI,UAAU,MAAM,EAAE,IAAI;AACvH,QAAM,CAAC,eAAe,IAAI,MAAM,UAAU,QAAQ,cAAc,cAAc,EAAE;AAAA,IAC5E,SAAS;AAAA,IACT,KAAK;AAAA,MACD;AAAA,QACI,QAAQ,CAAC,EAAE,MAAM,SAAS;AAAA,QAC1B,MAAM;AAAA,QACN,SAAS;AAAA,UACL,EAAE,MAAM,UAAS;AAAA,UACjB,EAAE,MAAM,UAAS;AAAA,UACjB,EAAE,MAAM,UAAS;AAAA,QACrC;AAAA,QACgB,iBAAiB;AAAA,QACjB,MAAM;AAAA,MACtB;AAAA,IACA;AAAA,IACQ,cAAc;AAAA,IACd,MAAM,CAAC,MAAM,cAAc,IAAI,CAAC,CAAC;AAAA,IACjC;AAAA,IACA;AAAA,EACR,CAAK;AACD,SAAO;AACX;ACxCO,eAAe,iBAAiB,QAAQ,MAAM;;AACjD,QAAM,EAAE,SAAS,WAAW,OAAO,SAAS,aAAa,WAAW,UAAU,OAAO,MAAM,KAAK,UAAU,kBAAkB,cAAc,sBAAsB,IAAI,OAAO,GAAG,KAAI,IAAK;AACvL,QAAM,UAAU,WAAW,aAAa,QAAQ,IAAI;AACpD,MAAI;AACA,kBAAc,IAAI;AAClB,UAAM,iBAAiB,OAAO,gBAAgB,WAAW,YAAY,WAAW,IAAI;AACpF,UAAM,QAAQ,kBAAkB;AAChC,UAAM,eAAc,wBAAO,UAAP,mBAAc,eAAd,mBAA0B,uBAA1B,mBAA8C;AAClE,UAAM,SAAS,eAAe;AAC9B,UAAM,UAAU,OAAO;AAAA;AAAA,MAEnB,GAAG,QAAQ,MAAM,EAAE,QAAQ,YAAW,CAAE;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,GAAW,kBAAkB;AACrB,UAAM,WAAW,MAAM,OAAO,QAAQ;AAAA,MAClC,QAAQ;AAAA,MACR,QAAQ,CAAC,SAAS,KAAK;AAAA,IACnC,CAAS;AACD,WAAO;AAAA,MACH,YAAY,SAAS;AAAA,MACrB,SAAS,OAAO,SAAS,OAAO;AAAA,IAC5C;AAAA,EACI,SACO,KAAK;AACR,UAAM,aAAa,KAAK;AAAA,MACpB,GAAG;AAAA,MACH;AAAA,MACA,OAAO,OAAO;AAAA,IAC1B,CAAS;AAAA,EACL;AACJ;AChDO,eAAe,kBAAkB,QAAQ;AAC5C,QAAM,aAAa,yBAAyB,QAAQ;AAAA,IAChD,QAAQ;AAAA,EAChB,CAAK;AACD,QAAM,KAAK,MAAM,OAAO,QAAQ;AAAA,IAC5B,QAAQ;AAAA,EAChB,CAAK;AACD,SAAO,EAAE,IAAI,SAAS,WAAW,EAAE,GAAG,MAAM,QAAO;AACvD;ACJO,eAAe,kBAAkB,QAAQ,EAAE,SAAS,MAAM,OAAO,QAAQ,SAAS,WAAW,QAAQ,QAAO,IAAM,CAAA,GAAI;AACzH,QAAM,SAAS,YAAY,QAAQ,CAAC,KAAK,IAAI;AAC7C,QAAM,aAAa,yBAAyB,QAAQ;AAAA,IAChD,QAAQ;AAAA,EAChB,CAAK;AACD,MAAI,SAAS,CAAA;AACb,MAAI,QAAQ;AACR,UAAM,UAAU,OAAO,QAAQ,CAACV,WAAU,kBAAkB;AAAA,MACxD,KAAK,CAACA,MAAK;AAAA,MACX,WAAWA,OAAM;AAAA,MACjB;AAAA,IACZ,CAAS,CAAC;AAEF,aAAS,CAAC,OAAO;AACjB,QAAI;AACA,eAAS,OAAO,CAAC;AAAA,EACzB;AACA,QAAM,KAAK,MAAM,OAAO,QAAQ;AAAA,IAC5B,QAAQ;AAAA,IACR,QAAQ;AAAA,MACJ;AAAA,QACI;AAAA,QACA,WAAW,OAAO,cAAc,WAAW,YAAY,SAAS,IAAI;AAAA,QACpE,SAAS,OAAO,YAAY,WAAW,YAAY,OAAO,IAAI;AAAA,QAC9D,GAAI,OAAO,SAAS,EAAE,OAAM,IAAK,CAAA;AAAA,MACjD;AAAA,IACA;AAAA,EACA,CAAK;AACD,SAAO;AAAA,IACH,KAAK;AAAA,IACL;AAAA,IACA,WAAW,QAAQ,MAAM,OAAO;AAAA,IAChC;AAAA,IACA;AAAA,IACA,SAAS,WAAW,EAAE;AAAA,IACtB,QAAQ,QAAQ,MAAM;AAAA,IACtB;AAAA,IACA,MAAM;AAAA,EACd;AACA;AC7CO,eAAe,eAAe,QAAQ;AACzC,QAAM,UAAU,MAAM,OAAO,QAAQ;AAAA,IACjC,QAAQ;AAAA,EAChB,CAAK;AACD,SAAO,OAAO,OAAO;AACzB;ACAO,eAAe,yBAAyB,QAAQ,EAAE,WAAW,aAAa,WAAW,SAAQ,IAAM,IAAI;AAC1G,QAAM,iBAAiB,gBAAgB,SAAY,YAAY,WAAW,IAAI;AAC9E,MAAI;AACJ,MAAI,WAAW;AACX,YAAQ,MAAM,OAAO,QAAQ;AAAA,MACzB,QAAQ;AAAA,MACR,QAAQ,CAAC,SAAS;AAAA,IAC9B,GAAW,EAAE,QAAQ,MAAM;AAAA,EACvB,OACK;AACD,YAAQ,MAAM,OAAO,QAAQ;AAAA,MACzB,QAAQ;AAAA,MACR,QAAQ,CAAC,kBAAkB,QAAQ;AAAA,IAC/C,GAAW,EAAE,QAAQ,QAAQ,cAAc,EAAC,CAAE;AAAA,EAC1C;AACA,SAAO,YAAY,KAAK;AAC5B;ACxCO,MAAM,kCAAkC,UAAU;AAAA,EACrD,YAAY,EAAE,WAAW;AACrB,UAAM,wCAAwC,OAAO,MAAM;AAAA,MACvD,cAAc;AAAA,QACV;AAAA,QACA,8CAA8C,OAAO;AAAA,QACrD;AAAA,QACA;AAAA,MAChB;AAAA,MACY,MAAM;AAAA,IAClB,CAAS;AAAA,EACL;AACJ;ACsBO,eAAe,gBAAgB,QAAQ,YAAY;AACtD,QAAM,EAAE,SAAS,SAAS,YAAW,IAAK;AAC1C,MAAI;AACA,UAAM,CAAC,QAAQ,MAAM,SAAS,SAAS,mBAAmB,MAAM,UAAU,IAAK,MAAM,UAAU,QAAQ,cAAc,cAAc,EAAE;AAAA,MACjI;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,IACZ,CAAS;AACD,WAAO;AAAA,MACH,QAAQ;AAAA,QACJ;AAAA,QACA;AAAA,QACA,SAAS,OAAO,OAAO;AAAA,QACvB;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,MACA;AAAA,IACZ;AAAA,EACI,SACO,GAAG;AACN,UAAM,QAAQ;AACd,QAAI,MAAM,SAAS,oCACf,MAAM,MAAM,SAAS,iCAAiC;AACtD,YAAM,IAAI,0BAA0B,EAAE,SAAS;AAAA,IACnD;AACA,UAAM;AAAA,EACV;AACJ;AACA,MAAM,MAAM;AAAA,EACR;AAAA,IACI,QAAQ,CAAA;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,MACL,EAAE,MAAM,UAAU,MAAM,SAAQ;AAAA,MAChC,EAAE,MAAM,QAAQ,MAAM,SAAQ;AAAA,MAC9B,EAAE,MAAM,WAAW,MAAM,SAAQ;AAAA,MACjC,EAAE,MAAM,WAAW,MAAM,UAAS;AAAA,MAClC,EAAE,MAAM,qBAAqB,MAAM,UAAS;AAAA,MAC5C,EAAE,MAAM,QAAQ,MAAM,UAAS;AAAA,MAC/B,EAAE,MAAM,cAAc,MAAM,YAAW;AAAA,IACnD;AAAA,IACQ,iBAAiB;AAAA,IACjB,MAAM;AAAA,EACd;AACA;AClFO,SAAS,iBAAiB,YAAY;;AACzC,SAAO;AAAA,IACH,eAAe,WAAW,cAAc,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC;AAAA,IACpE,cAAc,WAAW;AAAA,IACzB,aAAa,OAAO,WAAW,WAAW;AAAA,IAC1C,SAAQ,gBAAW,WAAX,mBAAmB,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC;AAAA,EACtF;AACA;ACmBO,eAAe,cAAc,QAAQ,EAAE,YAAY,aAAa,WAAW,UAAU,qBAAsB;AAC9G,QAAM,iBAAiB,OAAO,gBAAgB,WAAW,YAAY,WAAW,IAAI;AACpF,QAAM,aAAa,MAAM,OAAO,QAAQ;AAAA,IACpC,QAAQ;AAAA,IACR,QAAQ;AAAA,MACJ,YAAY,UAAU;AAAA,MACtB,kBAAkB;AAAA,MAClB;AAAA,IACZ;AAAA,EACA,GAAO,EAAE,QAAQ,QAAQ,cAAc,EAAC,CAAE;AACtC,SAAO,iBAAiB,UAAU;AACtC;ACRO,eAAe,cAAc,SAAS,EAAE,UAAW;AACtD,QAAM,SAAS,OAAO,UAAU;AAChC,QAAM,OAAO,MAAM,OAAO,QAAQ;AAAA,IAC9B,QAAQ;AAAA,IACR,QAAQ,CAAC,OAAO,EAAE;AAAA,EAC1B,CAAK;AACD,QAAM,gBAAgB,KAAK,IAAI,CAAC,QAAQ,UAAU,GAAG,CAAC;AACtD,MAAI,CAAC,OAAO;AACR,WAAO;AACX,SAAO,eAAe;AAAA,IAClB,KAAK,OAAO;AAAA,IACZ,MAAM;AAAA,IACN;AAAA,EACR,CAAK;AACL;ACpCO,SAAS,aAAa,OAAO,QAAQ;AACxC,MAAI,MAAM,WAAW,OAAO;AACxB,UAAM,IAAI,+BAA+B;AAAA,MACrC,gBAAgB,MAAM;AAAA,MACtB,aAAa,OAAO;AAAA,IAChC,CAAS;AACL,QAAM,OAAO,CAAA;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,QAAQ,OAAO,CAAC;AACtB,SAAK,KAAKW,SAAO,MAAM,KAAK,CAAC;AAAA,EACjC;AACA,SAAO,UAAU,IAAI;AACzB;AACA,SAASA,SAAO,MAAM,OAAO,UAAU,OAAO;AAC1C,MAAI,SAAS,WAAW;AACpB,UAAM,UAAU;AAChB,QAAI,CAAC,UAAU,OAAO;AAClB,YAAM,IAAI,oBAAoB,EAAE,SAAS;AAC7C,WAAO,IAAI,QAAQ,eAAe;AAAA,MAC9B,MAAM,UAAU,KAAK;AAAA,IACjC,CAAS;AAAA,EACL;AACA,MAAI,SAAS;AACT,WAAO,YAAY,KAAK;AAC5B,MAAI,SAAS;AACT,WAAO;AACX,MAAI,SAAS;AACT,WAAO,IAAI,UAAU,KAAK,GAAG,EAAE,MAAM,UAAU,KAAK,GAAG;AAC3D,QAAM,WAAW,KAAK,MAAM,YAAY;AACxC,MAAI,UAAU;AACV,UAAM,CAAC,OAAO,UAAU,OAAO,KAAK,IAAI;AACxC,UAAM,OAAO,OAAO,SAAS,MAAM,EAAE,IAAI;AACzC,WAAO,YAAY,OAAO;AAAA,MACtB,MAAM,UAAU,KAAK;AAAA,MACrB,QAAQ,aAAa;AAAA,IACjC,CAAS;AAAA,EACL;AACA,QAAM,aAAa,KAAK,MAAM,UAAU;AACxC,MAAI,YAAY;AACZ,UAAM,CAAC,OAAO,IAAI,IAAI;AACtB,QAAI,OAAO,SAAS,MAAM,EAAE,OAAO,MAAM,SAAS,KAAK;AACnD,YAAM,IAAI,uBAAuB;AAAA,QAC7B,cAAc,OAAO,SAAS,MAAM,EAAE;AAAA,QACtC,YAAY,MAAM,SAAS,KAAK;AAAA,MAChD,CAAa;AACL,WAAO,IAAI,OAAO,EAAE,KAAK,SAAS,MAAM,UAAU,KAAK,MAAM;AAAA,EACjE;AACA,QAAM,aAAa,KAAK,MAAM,UAAU;AACxC,MAAI,cAAc,MAAM,QAAQ,KAAK,GAAG;AACpC,UAAM,CAAC,OAAO,SAAS,IAAI;AAC3B,UAAM,OAAO,CAAA;AACb,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,WAAK,KAAKA,SAAO,WAAW,MAAM,CAAC,GAAG,IAAI,CAAC;AAAA,IAC/C;AACA,QAAI,KAAK,WAAW;AAChB,aAAO;AACX,WAAO,UAAU,IAAI;AAAA,EACzB;AACA,QAAM,IAAI,yBAAyB,IAAI;AAC3C;ACrDO,SAAS,mBAAmB,YAAY;AAC3C,QAAM,EAAE,OAAM,IAAK;AACnB,QAAM,WAAW,oBAAI,IAAG;AACxB,QAAM,WAAW,IAAI,OAAO,IAAI;AAChC,QAAM,aAAa,oBAAI,IAAG;AAC1B,QAAM,SAAS,CAAC,EAAE,SAAS,QAAO,MAAO,GAAG,OAAO,IAAI,OAAO;AAC9D,SAAO;AAAA,IACH,MAAM,QAAQ,EAAE,SAAS,SAAS,OAAM,GAAI;AACxC,YAAM,MAAM,OAAO,EAAE,SAAS,QAAO,CAAE;AACvC,YAAM,UAAU,KAAK,IAAI,EAAE,SAAS,SAAS,QAAQ;AACrD,WAAK,UAAU,EAAE,SAAS,QAAO,CAAE;AACnC,YAAM,QAAQ,MAAM;AACpB,YAAM,OAAO,IAAI,EAAE,SAAS,QAAO,GAAI,KAAK;AAC5C,eAAS,IAAI,KAAK,KAAK;AACvB,aAAO;AAAA,IACX;AAAA,IACA,MAAM,UAAU,EAAE,SAAS,WAAW;AAClC,YAAM,MAAM,OAAO,EAAE,SAAS,QAAO,CAAE;AACvC,YAAM,QAAQ,SAAS,IAAI,GAAG,KAAK;AACnC,eAAS,IAAI,KAAK,QAAQ,CAAC;AAAA,IAC/B;AAAA,IACA,MAAM,IAAI,EAAE,SAAS,SAAS,OAAM,GAAI;AACpC,YAAM,MAAM,OAAO,EAAE,SAAS,QAAO,CAAE;AACvC,UAAI,UAAU,WAAW,IAAI,GAAG;AAChC,UAAI,CAAC,SAAS;AACV,mBAAW,YAAY;AACnB,cAAI;AACA,kBAAM,QAAQ,MAAM,OAAO,IAAI,EAAE,SAAS,SAAS,QAAQ;AAC3D,kBAAM,gBAAgB,SAAS,IAAI,GAAG,KAAK;AAC3C,gBAAI,gBAAgB,KAAK,SAAS;AAC9B,qBAAO,gBAAgB;AAC3B,qBAAS,OAAO,GAAG;AACnB,mBAAO;AAAA,UACX,UACpB;AACwB,iBAAK,MAAM,EAAE,SAAS,QAAO,CAAE;AAAA,UACnC;AAAA,QACJ,GAAC;AACD,mBAAW,IAAI,KAAK,OAAO;AAAA,MAC/B;AACA,YAAM,QAAQ,SAAS,IAAI,GAAG,KAAK;AACnC,aAAO,QAAS,MAAM;AAAA,IAC1B;AAAA,IACA,MAAM,EAAE,SAAS,WAAW;AACxB,YAAM,MAAM,OAAO,EAAE,SAAS,QAAO,CAAE;AACvC,eAAS,OAAO,GAAG;AACnB,iBAAW,OAAO,GAAG;AAAA,IACzB;AAAA,EACR;AACA;AAEO,SAAS,UAAU;AACtB,SAAO;AAAA,IACH,MAAM,IAAI,YAAY;AAClB,YAAM,EAAE,SAAS,OAAM,IAAK;AAC5B,aAAO,oBAAoB,QAAQ;AAAA,QAC/B;AAAA,QACA,UAAU;AAAA,MAC1B,CAAa;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IAAE;AAAA,EAChB;AACA;AAIY,MAAC,eAA6B,mCAAmB;AAAA,EACzD,QAAQ,QAAO;AACnB,CAAC;AClFD,SAAS,gBAAgB;AACrB,SAAO;AAAA,IACH,SAAS;AAAA,IACT,OAAO;AACH,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,QAAQ;AACJ,WAAK,UAAU;AAAA,IACnB;AAAA,EACR;AACA;AACY,MAAC,UAAwB,8BAAa;ACP3C,SAAS,iBAAiB,KAAK,UAAU,IAAI;AAChD,SAAO;AAAA,IACH,MAAM,QAAQ,QAAQ;;AAClB,YAAM,EAAE,MAAM,UAAU,QAAQ,WAAW,OAAO,YAAY,QAAQ,WAAW,aAAa,QAAQ,YAAY,UAAU,QAAQ,WAAW,IAAM,IAAM;AAC3J,YAAM,eAAe;AAAA,QACjB,GAAI,QAAQ,gBAAgB;QAC5B,GAAI,OAAO,gBAAgB;MAC3C;AACY,YAAM,EAAE,SAAS,QAAQ,QAAQ,QAAO,IAAK;AAC7C,UAAI;AACA,cAAM,WAAW,MAAM,YAAY,OAAO,EAAE,OAAM,MAAO;AACrD,gBAAM,OAAO;AAAA,YACT,GAAG;AAAA,YACH,MAAM,MAAM,QAAQ,IAAI,IAClB,UAAU,KAAK,IAAI,CAACC,WAAU;AAAA,cAC5B,SAAS;AAAA,cACT,IAAIA,MAAK,MAAM,QAAQ,KAAI;AAAA,cAC3B,GAAGA;AAAA,YACnC,EAA8B,CAAC,IACD,UAAU;AAAA,cACR,SAAS;AAAA,cACT,IAAI,KAAK,MAAM,QAAQ,KAAI;AAAA,cAC3B,GAAG;AAAA,YACnC,CAA6B;AAAA,YACL,SAAS;AAAA,cACL,gBAAgB;AAAA,cAChB,GAAG;AAAA,YAC/B;AAAA,YACwB,QAAQ,UAAU;AAAA,YAClB,QAAQ,YAAY,UAAU,IAAI,SAAS;AAAA,UACnE;AACoB,gBAAM,UAAU,IAAI,QAAQ,KAAK,IAAI;AACrC,gBAAM,OAAQ,OAAM,uCAAY,SAAS,UAAU,EAAE,GAAG,MAAM,IAAG;AACjE,gBAAMC,YAAW,MAAM,QAAQ,KAAK,OAAO,KAAK,IAAI;AACpD,iBAAOA;AAAA,QACX,GAAG;AAAA,UACC,eAAe,IAAI,aAAa,EAAE,MAAM,IAAG,CAAE;AAAA,UAC7C;AAAA,UACA,QAAQ;AAAA,QAC5B,CAAiB;AACD,YAAI;AACA,gBAAM,WAAW,QAAQ;AAC7B,YAAI;AACJ,aAAI,cAAS,QAAQ,IAAI,cAAc,MAAnC,mBAAsC,WAAW;AACjD,iBAAO,MAAM,SAAS,KAAI;AAAA,aACzB;AACD,iBAAO,MAAM,SAAS,KAAI;AAC1B,cAAI;AACA,mBAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,UAClC,SACO,KAAK;AACR,gBAAI,SAAS;AACT,oBAAM;AACV,mBAAO,EAAE,OAAO,KAAI;AAAA,UACxB;AAAA,QACJ;AACA,YAAI,CAAC,SAAS,IAAI;AACd,gBAAM,IAAI,iBAAiB;AAAA,YACvB;AAAA,YACA,SAAS,UAAU,KAAK,KAAK,KAAK,SAAS;AAAA,YAC3C,SAAS,SAAS;AAAA,YAClB,QAAQ,SAAS;AAAA,YACjB;AAAA,UACxB,CAAqB;AAAA,QACL;AACA,eAAO;AAAA,MACX,SACO,KAAK;AACR,YAAI,eAAe;AACf,gBAAM;AACV,YAAI,eAAe;AACf,gBAAM;AACV,cAAM,IAAI,iBAAiB;AAAA,UACvB;AAAA,UACA,OAAO;AAAA,UACP;AAAA,QACpB,CAAiB;AAAA,MACL;AAAA,IACJ;AAAA,EACR;AACA;ACpFY,MAAC,oBAAoB;AACrB,MAAC,WAAW;ACajB,SAAS,0BAA0B,YAAY;AAClD,QAAM,EAAE,SAAS,MAAM,WAAW,KAAK,MAAK,IAAK;AACjD,QAAM,aAAa,UAAU;AAAA,IACzB,oBAAoB,CAAC,EAAE,MAAM,UAAS,GAAI,EAAE,MAAM,QAAO,GAAI,EAAE,MAAM,QAAO,CAAE,GAAG,CAAC,SAAS,MAAM,SAAS,CAAC;AAAA,IAC3G;AAAA,EACR,CAAK;AACD,MAAI,OAAO;AACP,WAAO;AACX,SAAO,WAAW,UAAU;AAChC;ACtBA,SAAS,mBAAmB,cAAc;AACtC,SAAO,aAAa,IAAI,CAAC,WAAW;AAAA,IAChC,GAAG;AAAA,IACH,OAAO,OAAO,MAAM,KAAK;AAAA,EACjC,EAAM;AACN;AACO,SAAS,YAAY,OAAO;AAC/B,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS,MAAM,UAAU,OAAO,MAAM,OAAO,IAAI;AAAA,IACjD,OAAO,MAAM,QAAQ,YAAY,MAAM,KAAK,IAAI;AAAA,IAChD,cAAc,MAAM,eACd,mBAAmB,MAAM,YAAY,IACrC;AAAA,EACd;AACA;ACWO,eAAe,SAAS,QAAQ,EAAE,SAAS,aAAa,UAAU,WAAW,eAAgB;AAChG,QAAM,WAAW,aAAa;AAC9B,QAAM,iBAAiB,gBAAgB,SAAY,YAAY,WAAW,IAAI;AAC9E,QAAM,QAAQ,MAAM,OAAO,QAAQ;AAAA,IAC/B,QAAQ;AAAA,IACR,QAAQ,CAAC,SAAS,aAAa,kBAAkB,QAAQ;AAAA,EACjE,CAAK;AACD,SAAO,YAAY,KAAK;AAC5B;ACVO,eAAe,aAAa,QAAQ,EAAE,SAAS,aAAa,WAAW,UAAU,QAAQ;AAC5F,QAAM,iBAAiB,gBAAgB,SAAY,YAAY,WAAW,IAAI;AAC9E,QAAM,OAAO,MAAM,OAAO,QAAQ;AAAA,IAC9B,QAAQ;AAAA,IACR,QAAQ,CAAC,SAAS,MAAM,kBAAkB,QAAQ;AAAA,EAC1D,CAAK;AACD,SAAO;AACX;ACLO,eAAe,4BAA4B,QAAQ,EAAE,MAAM,mBAAkB,GAAI;AACpF,QAAM,CAAC,aAAa,WAAW,IAAI,MAAM,QAAQ,IAAI;AAAA,IACjD,UAAU,QAAQ,gBAAgB,gBAAgB,EAAE,CAAA,CAAE;AAAA,IACtD,OACM,UAAU,QAAQ,gBAAgB,gBAAgB,EAAE,EAAE,KAAI,CAAE,IAC5D;AAAA,EACd,CAAK;AACD,QAAM,0BAAyB,yDAAoB,iBAAe,2CAAa;AAC/E,MAAI,CAAC;AACD,WAAO;AACX,SAAO,cAAc,yBAAyB;AAClD;ACqBO,eAAe,eAAe,QAAQ,YAAY;AACrD,QAAM,EAAE,aAAa,WAAW,OAAO,yBAAyB,UAAU,QAAQ,wBAAwB,gBAAgB,WAAU,IAAM;AAC1I,MAAI;AACA,UAAM,kBAAkB,CAAA;AACxB,eAAWC,UAAS,QAAQ;AACxB,YAAM,iBAAiBA,OAAM,iBACvBC,MAAqBD,OAAM,cAAc,IACzC;AACN,YAAM,QAAQA,OAAM,MAAM,IAAI,CAAC,UAAU;AACrC,cAAMV,QAAO;AACb,cAAM,UAAUA,MAAK,UAAU,aAAaA,MAAK,OAAO,IAAI;AAC5D,cAAM,OAAOA,MAAK,MAAM,mBAAmBA,KAAI,IAAIA,MAAK;AACxD,cAAM,UAAU;AAAA,UACZ,GAAGA;AAAA,UACH;AAAA,UACA,MAAMA,MAAK,aACL,OAAO,CAAC,QAAQ,MAAMA,MAAK,UAAU,CAAC,IACtC;AAAA,UACN,MAAMA,MAAK,SAAQ,mCAAS;AAAA,QAChD;AACgB,sBAAc,OAAO;AACrB,eAAO,yBAAyB,OAAO;AAAA,MAC3C,CAAC;AACD,YAAM,iBAAiBU,OAAM,iBACvB,uBAAuBA,OAAM,cAAc,IAC3C;AACN,sBAAgB,KAAK;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL;AACA,UAAM,iBAAiB,OAAO,gBAAgB,WAAW,YAAY,WAAW,IAAI;AACpF,UAAM,QAAQ,kBAAkB;AAChC,UAAM,SAAS,MAAM,OAAO,QAAQ;AAAA,MAChC,QAAQ;AAAA,MACR,QAAQ;AAAA,QACJ,EAAE,iBAAiB,wBAAwB,gBAAgB,WAAU;AAAA,QACrE;AAAA,MAChB;AAAA,IACA,CAAS;AACD,WAAO,OAAO,IAAI,CAACA,QAAO,OAAO;AAAA,MAC7B,GAAG,YAAYA,MAAK;AAAA,MACpB,OAAOA,OAAM,MAAM,IAAI,CAACV,OAAM,MAAM;;AAChC,cAAM,EAAE,KAAAL,MAAK,MAAM,cAAc,OAAO,OAAO,CAAC,EAAE,MAAM,CAAC;AACzD,cAAM,SAAO,KAAAK,MAAK,UAAL,mBAAY,SAAQA,MAAK;AACtC,cAAM,UAAU,OAAOA,MAAK,OAAO;AACnC,cAAM,QAAO,KAAAA,MAAK,SAAL,mBAAW,IAAI,CAAC,QAAQ,UAAU,GAAG;AAClD,cAAM,SAASA,MAAK,WAAW,QAAQ,YAAY;AACnD,cAAMK,UAASV,QAAO,WAAW,aAAa,SAAS,OACjD,qBAAqB;AAAA,UACnB,KAAAA;AAAA,UACA;AAAA,UACA;AAAA,QACxB,CAAqB,IACC;AACN,cAAM,SAAS,MAAM;;AACjB,cAAI,WAAW;AACX,mBAAO;AACX,cAAIiB;AACJ,gBAAIC,MAAAb,MAAK,UAAL,gBAAAa,IAAY,UAAS;AACrB,YAAAD,SAAQ,IAAI,yBAAwB;AAAA,mBAC/BZ,MAAK;AACV,YAAAY,SAAQ,IAAI,iBAAiBZ,MAAK,KAAK;AAC3C,cAAI,CAACY;AACD,mBAAO;AACX,iBAAO,iBAAiBA,QAAO;AAAA,YAC3B,KAAMjB,QAAO;YACb,SAAS,MAAM;AAAA,YACf;AAAA,YACA,cAAc,gBAAgB;AAAA,UACtD,CAAqB;AAAA,QACL,GAAC;AACD,eAAO;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,GAAI,WAAW,YACT;AAAA,YACE,QAAAU;AAAA,UAC5B,IAC0B;AAAA,YACE;AAAA,UAC5B;AAAA,QACA;AAAA,MACY,CAAC;AAAA,IACb,EAAU;AAAA,EACN,SACO,GAAG;AACN,UAAM,QAAQ;AACd,UAAM,QAAQ,aAAa,OAAO,EAAE;AACpC,QAAI,iBAAiB;AACjB,YAAM;AACV,UAAM;AAAA,EACV;AACJ;ACxJO,SAAS,mBAAmB,WAAW;AAC1C,MAAI,SAAS;AACb,MAAI,UAAU;AACd,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,UAAM,OAAO,UAAU,CAAC;AAExB,QAAI,CAAC,KAAK,KAAK,GAAG,EAAE,SAAS,IAAI;AAC7B,eAAS;AAEb,QAAI,SAAS;AACT;AACJ,QAAI,SAAS;AACT;AAEJ,QAAI,CAAC;AACD;AAEJ,QAAI,UAAU,GAAG;AACb,UAAI,SAAS,OAAO,CAAC,SAAS,YAAY,SAAS,EAAE,EAAE,SAAS,MAAM;AAClE,iBAAS;AAAA,WACR;AACD,kBAAU;AAEV,YAAI,SAAS,KAAK;AACd,kBAAQ;AACR;AAAA,QACJ;AAAA,MACJ;AACA;AAAA,IACJ;AAEA,QAAI,SAAS,KAAK;AAEd,UAAI,UAAU,IAAI,CAAC,MAAM,OAAO,YAAY,OAAO,YAAY,MAAM;AACjE,kBAAU;AACV,iBAAS;AAAA,MACb;AACA;AAAA,IACJ;AACA,cAAU;AACV,eAAW;AAAA,EACf;AACA,MAAI,CAAC;AACD,UAAM,IAAIS,YAAiB,gCAAgC;AAC/D,SAAO;AACX;AAEO,SAAS,YAAY,KAAK,cAAc;AAC3C,QAAM,UAAU,OAAO;AACvB,QAAM,mBAAmB,aAAa;AACtC,UAAQ,kBAAgB;AAAA,IACpB,KAAK;AACD,aAAOC,SAAiB,KAAK,EAAE,QAAQ,MAAK,CAAE;AAAA,IAClD,KAAK;AACD,aAAO,YAAY;AAAA,IACvB,KAAK;AACD,aAAO,YAAY;AAAA,IACvB,KAAK;AACD,aAAO,YAAY;AAAA,IACvB,SAAS;AACL,UAAI,qBAAqB,WAAW,gBAAgB;AAChD,eAAO,OAAO,OAAO,aAAa,UAAU,EAAE,MAAM,CAAC,WAAW,UAAU;AACtE,iBAAO,YAAY,OAAO,OAAO,GAAG,EAAE,KAAK,GAAG,SAAS;AAAA,QAC3D,CAAC;AAGL,UAAI,+HAA+H,KAAK,gBAAgB;AACpJ,eAAO,YAAY,YAAY,YAAY;AAG/C,UAAI,uCAAuC,KAAK,gBAAgB;AAC5D,eAAO,YAAY,YAAY,eAAe;AAGlD,UAAI,oCAAoC,KAAK,gBAAgB,GAAG;AAC5D,eAAQ,MAAM,QAAQ,GAAG,KACrB,IAAI,MAAM,CAAC,MAAM,YAAY,GAAG;AAAA,UAC5B,GAAG;AAAA;AAAA,UAEH,MAAM,iBAAiB,QAAQ,oBAAoB,EAAE;AAAA,QAC7E,CAAqB,CAAC;AAAA,MACV;AACA,aAAO;AAAA,IACX;AAAA,EACR;AACA;AAEO,SAAS,kBAAkB,kBAAkB,kBAAkB,MAAM;AACxE,aAAW,kBAAkB,kBAAkB;AAC3C,UAAM,kBAAkB,iBAAiB,cAAc;AACvD,UAAM,kBAAkB,iBAAiB,cAAc;AACvD,QAAI,gBAAgB,SAAS,WACzB,gBAAgB,SAAS,WACzB,gBAAgB,mBAChB,gBAAgB;AAChB,aAAO,kBAAkB,gBAAgB,YAAY,gBAAgB,YAAY,KAAK,cAAc,CAAC;AACzG,UAAM,QAAQ,CAAC,gBAAgB,MAAM,gBAAgB,IAAI;AACzD,UAAM,aAAa,MAAM;AACrB,UAAI,MAAM,SAAS,SAAS,KAAK,MAAM,SAAS,SAAS;AACrD,eAAO;AACX,UAAI,MAAM,SAAS,SAAS,KAAK,MAAM,SAAS,QAAQ;AACpD,eAAOA,SAAiB,KAAK,cAAc,GAAG;AAAA,UAC1C,QAAQ;AAAA,QAC5B,CAAiB;AACL,UAAI,MAAM,SAAS,SAAS,KAAK,MAAM,SAAS,OAAO;AACnD,eAAOA,SAAiB,KAAK,cAAc,GAAG;AAAA,UAC1C,QAAQ;AAAA,QAC5B,CAAiB;AACL,aAAO;AAAA,IACX,GAAC;AACD,QAAI;AACA,aAAO;AAAA,EACf;AACA;AACJ;ACwBO,SAASC,OAAK,SAAS,UAAU,IAAI;AACxC,QAAM,EAAE,UAAU,KAAI,IAAK;AAC3B,QAAM,QAAQ,MAAM;AAChB,QAAI,MAAM,QAAQ,OAAO;AACrB,aAAOC,aAAqB,OAAO;AACvC,QAAI,OAAO,YAAY;AACnB,aAAOA,aAAqB,OAAO;AACvC,WAAO;AAAA,EACX,GAAC;AACD,SAAO;AAAA,IACH,GAAG;AAAA,IACH,GAAI,UAAU,EAAE,MAAM,iBAAiB,IAAI,EAAC,IAAK;EACzD;AACA;AAoEO,SAASC,UAAQvB,MAAK,MAAM,SAAS;AACxC,QAAM,EAAE,OAAO,CAAA,GAAI,UAAU,KAAI,IAAM,WACnC;AACJ,QAAM,aAAawB,WAAa,MAAM,EAAE,QAAQ,MAAK,CAAE;AACvD,QAAM,WAAWxB,KAAI,OAAO,CAACyB,aAAY;AACrC,QAAI,YAAY;AACZ,UAAIA,SAAQ,SAAS,cAAcA,SAAQ,SAAS;AAChD,eAAOC,cAAYD,QAAO,MAAME,MAAU,MAAM,GAAG,CAAC;AACxD,UAAIF,SAAQ,SAAS;AACjB,eAAO,iBAAiBA,QAAO,MAAM;AACzC,aAAO;AAAA,IACX;AACA,WAAO,UAAUA,YAAWA,SAAQ,SAAS;AAAA,EACjD,CAAC;AACD,MAAI,SAAS,WAAW;AACpB,UAAM,IAAI,cAAc,EAAE,KAAU,CAAE;AAC1C,MAAI,SAAS,WAAW;AACpB,WAAO;AAAA,MACH,GAAG,SAAS,CAAC;AAAA,MACb,GAAI,UAAU,EAAE,MAAM,iBAAiB,SAAS,CAAC,CAAC,EAAC,IAAK;IACpE;AACI,MAAI;AACJ,aAAWA,YAAW,UAAU;AAC5B,QAAI,EAAE,YAAYA;AACd;AACJ,QAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC5B,UAAI,CAACA,SAAQ,UAAUA,SAAQ,OAAO,WAAW;AAC7C,eAAO;AAAA,UACH,GAAGA;AAAA,UACH,GAAI,UAAU,EAAE,MAAM,iBAAiBA,QAAO,EAAC,IAAK;QACxE;AACY;AAAA,IACJ;AACA,QAAI,CAACA,SAAQ;AACT;AACJ,QAAIA,SAAQ,OAAO,WAAW;AAC1B;AACJ,QAAIA,SAAQ,OAAO,WAAW,KAAK;AAC/B;AACJ,UAAM,UAAU,KAAK,MAAM,CAAC,KAAK,UAAU;AACvC,YAAM,eAAe,YAAYA,YAAWA,SAAQ,OAAO,KAAK;AAChE,UAAI,CAAC;AACD,eAAO;AACX,aAAOG,YAAqB,KAAK,YAAY;AAAA,IACjD,CAAC;AACD,QAAI,SAAS;AAET,UAAI,kBACA,YAAY,kBACZ,eAAe,QAAQ;AACvB,cAAM,iBAAiBC,kBAA2BJ,SAAQ,QAAQ,eAAe,QAAQ,IAAI;AAC7F,YAAI;AACA,gBAAM,IAAI,eAAe;AAAA,YACrB,SAAAA;AAAA,YACA,MAAM,eAAe,CAAC;AAAA,UAC9C,GAAuB;AAAA,YACC,SAAS;AAAA,YACT,MAAM,eAAe,CAAC;AAAA,UAC9C,CAAqB;AAAA,MACT;AACA,uBAAiBA;AAAA,IACrB;AAAA,EACJ;AACA,QAAM,WAAW,MAAM;AACnB,QAAI;AACA,aAAO;AACX,UAAM,CAACA,UAAS,GAAG,SAAS,IAAI;AAChC,WAAO,EAAE,GAAGA,UAAS,UAAS;AAAA,EAClC,GAAC;AACD,MAAI,CAAC;AACD,UAAM,IAAI,cAAc,EAAE,KAAU,CAAE;AAC1C,SAAO;AAAA,IACH,GAAG;AAAA,IACH,GAAI,UAAU,EAAE,MAAM,iBAAiB,OAAO,EAAC,IAAK;EAC5D;AACA;AAEO,SAASC,iBAAe,YAAY;AACvC,QAAM,WAAW,MAAM;AACnB,QAAI,MAAM,QAAQ,WAAW,CAAC,CAAC,GAAG;AAC9B,YAAM,CAAC1B,MAAK,IAAI,IAAI;AACpB,aAAOuB,UAAQvB,MAAK,IAAI;AAAA,IAC5B;AACA,WAAO,WAAW,CAAC;AAAA,EACvB,GAAC;AACD,SAAO2B,MAAU,iBAAiB,OAAO,GAAG,GAAG,CAAC;AACpD;AAEO,SAAS,gBAAgB,YAAY;AACxC,QAAM,WAAW,MAAM;AACnB,QAAI,MAAM,QAAQ,WAAW,CAAC,CAAC,GAAG;AAC9B,YAAM,CAAC3B,MAAK,IAAI,IAAI;AACpB,aAAOuB,UAAQvB,MAAK,IAAI;AAAA,IAC5B;AACA,WAAO,WAAW,CAAC;AAAA,EACvB,GAAC;AACD,QAAM,aAAa,MAAM;AACrB,QAAI,OAAO,YAAY;AACnB,aAAO;AACX,WAAO8B,gBAAsB,OAAO;AAAA,EACxC,GAAC;AACD,SAAOC,mBAA4B,SAAS;AAChD;AAEO,SAAS,oBAAoB,YAAY;AAC5C,QAAM,WAAW,MAAM;AACnB,QAAI,MAAM,QAAQ,WAAW,CAAC,CAAC,GAAG;AAC9B,YAAM,CAAC/B,MAAK,IAAI,IAAI;AACpB,aAAOuB,UAAQvB,MAAK,IAAI;AAAA,IAC5B;AACA,WAAO,WAAW,CAAC;AAAA,EACvB,GAAC;AACD,MAAI,OAAO,YAAY,YAAY,UAAU,WAAW,QAAQ;AAC5D,WAAO,QAAQ;AACnB,SAAOgC,YAAeC,WAAe,aAAa,OAAO,CAAC,CAAC;AAC/D;AAwCO,MAAM,uBAAuBd,YAAiB;AAAA,EACjD,YAAY,GAAG,GAAG;AACd,UAAM,kDAAkD;AAAA,MACpD,cAAc;AAAA;AAAA,QAEV,KAAK,EAAE,IAAI,WAAWY,mBAA4BD,gBAAsB,EAAE,OAAO,CAAC,CAAC;AAAA,QACnF,KAAK,EAAE,IAAI,WAAWC,mBAA4BD,gBAAsB,EAAE,OAAO,CAAC,CAAC;AAAA,QACnF;AAAA,QACA;AAAA,QACA;AAAA,MAChB;AAAA,IACA,CAAS;AACD,WAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AAAA,EACL;AACJ;AAiCO,MAAM,sBAAsBX,YAAiB;AAAA,EAChD,YAAY,EAAE,MAAM,MAAM,OAAO,OAAM,GAAK;AACxC,UAAM,YAAY,MAAM;AACpB,UAAI;AACA,eAAO,eAAe,IAAI;AAC9B,UAAI;AACA,eAAO,eAAe,IAAI;AAC9B,aAAO;AAAA,IACX,GAAC;AACD,UAAM,OAAO,IAAI,GAAG,QAAQ,aAAa;AACzC,WAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AAAA,EACL;AACJ;AC7aO,SAAS,UAAU,YAAY;;AAClC,QAAM,CAAC,gBAAgB,OAAO,KAAK,MAAM;AACrC,QAAI,MAAM,QAAQ,WAAW,CAAC,CAAC,GAAG;AAC9B,YAAM,CAACnB,MAAKkC,QAAO,IAAI;AACvB,aAAO,CAACX,UAAQvB,IAAG,GAAGkC,QAAO;AAAA,IACjC;AACA,WAAO;AAAA,EACX,GAAC;AACD,QAAM,EAAE,UAAU,KAAI,IAAK;AAC3B,SAAOC,SAAW,YAAU,oBAAe,WAAf,mBAAuB,YAAU,6BAAM,UAC7DC,SAAqB,eAAe,QAAQ,IAAI,IAChD,IAAI;AACd;AAMO,SAASf,OAAK,gBAAgB;AACjC,SAAOgB,OAAa,cAAc;AACtC;AAEO,SAASd,UAAQvB,MAAK;AACzB,QAAM,OAAOA,KAAI,KAAK,CAACsC,UAASA,MAAK,SAAS,aAAa;AAC3D,MAAI,CAAC;AACD,UAAM,IAAIC,cAAsB,EAAE,MAAM,cAAa,CAAE;AAC3D,SAAO;AACX;ACFO,SAAS,cAAc,YAAY;AACtC,QAAM,CAAC,aAAa,OAAO,CAAA,CAAE,KAAK,MAAM;AACpC,QAAI,MAAM,QAAQ,WAAW,CAAC,CAAC,GAAG;AAC9B,YAAM,CAACvC,MAAK,MAAMI,KAAI,IAAI;AAC1B,aAAO,CAAC,QAAQJ,MAAK,MAAM,EAAE,MAAAI,MAAI,CAAE,GAAGA,KAAI;AAAA,IAC9C;AACA,UAAM,CAACoC,cAAapC,KAAI,IAAI;AAC5B,WAAO,CAACoC,cAAapC,KAAI;AAAA,EAC7B,GAAC;AACD,QAAM,EAAE,UAAS,IAAK;AACtB,QAAM,OAAO,YACP,QAAQ,CAAC,aAAa,GAAG,SAAS,GAAG,YAAY,MAAM;AAAA,IACrD;AAAA,EACZ,CAAS,IACC;AACN,QAAM,WAAW,YAAY,IAAI;AACjC,QAAM,OAAO,KAAK,SAAS,IAAIgC,SAAqB,KAAK,QAAQ,IAAI,IAAI;AACzE,SAAO,OAAOD,SAAW,UAAU,IAAI,IAAI;AAC/C;AAiKO,SAAS,KAAK,aAAa,UAAU,IAAI;AAC5C,SAAOE,OAAa,aAAa,OAAO;AAC5C;AAkEO,SAAS,QAAQrC,MAAK,MAAM,SAAS;AACxC,QAAM,OAAOyC,UAAgBzC,MAAK,MAAM,OAAO;AAC/C,MAAI,KAAK,SAAS;AACd,UAAM,IAAIuC,cAAsB,EAAE,MAAM,MAAM,WAAU,CAAE;AAC9D,SAAO;AACX;AA+BO,SAAS,YAAY,SAAS;AACjC,SAAOG,cAAoB,OAAO;AACtC;AC1UY,MAAC,aAAa;AACd,MAAC,cAAc;ACS3B,MAAM,iBAAiB;AAkChB,eAAe,cAAc,QAAQ,YAAY;AACpD,QAAM,EAAE,aAAa,UAAU,OAAO,gBAAgB,mBAAmB,gBAAgB,WAAU,IAAM;AACzG,QAAM,UAAU,WAAW,UACrB,aAAa,WAAW,OAAO,IAC/B;AACN,MAAI,qBAAqB,CAAC;AACtB,UAAM,IAAI,UAAU,wDAAwD;AAEhF,QAAM,iBAAiB,UACjBC,OAAsBC,OAAoB,2BAA2B,GAAG;AAAA,IACtE,UAAU;AAAA,IACV,MAAM;AAAA,MACF;AAAA,MACAC,WAAuBC,KAAiB,8BAA8B,GAAG,CAAC,QAAQ,OAAO,CAAC;AAAA,IAC1G;AAAA,EACA,CAAS,IACC;AAEN,QAAM,iBAAiB,oBACjB,MAAM,QAAQ,IAAI,WAAW,MAAM,IAAI,OAAOzC,UAAS;AACrD,QAAI,CAACA,MAAK,QAAQ,CAACA,MAAK;AACpB;AACJ,UAAM,EAAE,WAAU,IAAK,MAAM,iBAAiB,QAAQ;AAAA,MAClD,SAAS,QAAQ;AAAA,MACjB,GAAGA;AAAA,MACH,MAAMA,MAAK,MAAM,mBAAmBA,KAAI,IAAIA,MAAK;AAAA,IACjE,CAAa;AACD,WAAO,WAAW,IAAI,CAAC,EAAE,SAAS,kBAAkB,YAAY,SAAS,IAAI,UAAU,IAAI;AAAA,EAC/F,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,KAAI,EAAG,OAAO,OAAO,CAAC,IACtC,CAAA;AACN,QAAM,SAAS,MAAM,eAAe,QAAQ;AAAA,IACxC;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,MACJ,GAAI,oBACE;AAAA;AAAA,QAEE;AAAA,UACI,OAAO,CAAC,EAAE,MAAM,gBAAgB;AAAA,UAChC;AAAA,QACxB;AAAA;AAAA,QAEoB;AAAA,UACI,OAAO,eAAe,IAAI,CAAC,SAAS,OAAO;AAAA,YACvC,KAAK;AAAA,cACDyC,KAAiB,+CAA+C;AAAA,YAChG;AAAA,YAC4B,cAAc;AAAA,YACd,MAAM,CAAC,QAAQ,OAAO;AAAA,YACtB,IAAI;AAAA,YACJ,MAAM;AAAA,YACN,OAAO;AAAA,UACnC,EAA0B;AAAA,UACF,gBAAgB;AAAA,YACZ;AAAA,cACI,SAAS;AAAA,cACT,OAAO;AAAA,YACvC;AAAA,UACA;AAAA,QACA;AAAA,MACA,IACkB;MACN;AAAA,QACI,OAAO,CAAC,GAAG,OAAO,CAAA,CAAE,EAAE,IAAI,CAACzC,WAAU;AAAA,UACjC,GAAGA;AAAA,UACH,MAAM,mCAAS;AAAA,QACnC,EAAkB;AAAA,QACF;AAAA,MAChB;AAAA,MACY,GAAI,oBACE;AAAA;AAAA,QAEE;AAAA,UACI,OAAO,CAAC,EAAE,MAAM,gBAAgB;AAAA,QACxD;AAAA;AAAA,QAEoB;AAAA,UACI,OAAO,eAAe,IAAI,CAAC,SAAS,OAAO;AAAA,YACvC,KAAK;AAAA,cACDyC,KAAiB,+CAA+C;AAAA,YAChG;AAAA,YAC4B,cAAc;AAAA,YACd,MAAM,CAAC,QAAQ,OAAO;AAAA,YACtB,IAAI;AAAA,YACJ,MAAM;AAAA,YACN,OAAO;AAAA,UACnC,EAA0B;AAAA,UACF,gBAAgB;AAAA,YACZ;AAAA,cACI,SAAS;AAAA,cACT,OAAO;AAAA,YACvC;AAAA,UACA;AAAA,QACA;AAAA;AAAA,QAEoB;AAAA,UACI,OAAO,eAAe,IAAI,CAAC,SAAS,OAAO;AAAA,YACvC,IAAI;AAAA,YACJ,KAAK;AAAA,cACDA,KAAiB,uCAAuC;AAAA,YACxF;AAAA,YAC4B,cAAc;AAAA,YACd,MAAM;AAAA,YACN,OAAO;AAAA,UACnC,EAA0B;AAAA,UACF,gBAAgB;AAAA,YACZ;AAAA,cACI,SAAS;AAAA,cACT,OAAO;AAAA,YACvC;AAAA,UACA;AAAA,QACA;AAAA;AAAA,QAEoB;AAAA,UACI,OAAO,eAAe,IAAI,CAAC,SAAS,OAAO;AAAA,YACvC,IAAI;AAAA,YACJ,KAAK;AAAA,cACDA,KAAiB,6CAA6C;AAAA,YAC9F;AAAA,YAC4B,cAAc;AAAA,YACd,MAAM,CAAC,EAAE;AAAA,YACT,MAAM;AAAA,YACN,OAAO;AAAA,UACnC,EAA0B;AAAA,UACF,gBAAgB;AAAA,YACZ;AAAA,cACI,SAAS;AAAA,cACT,OAAO;AAAA,YACvC;AAAA,UACA;AAAA,QACA;AAAA;AAAA,QAEoB;AAAA,UACI,OAAO,eAAe,IAAI,CAAC,SAAS,OAAO;AAAA,YACvC,IAAI;AAAA,YACJ,KAAK,CAACA,KAAiB,oCAAoC,CAAC;AAAA,YAC5D,cAAc;AAAA,YACd,MAAM;AAAA,YACN,OAAO;AAAA,UACnC,EAA0B;AAAA,UACF,gBAAgB;AAAA,YACZ;AAAA,cACI,SAAS;AAAA,cACT,OAAO;AAAA,YACvC;AAAA,UACA;AAAA,QACA;AAAA,MACA,IACkB;IAClB;AAAA,IACQ;AAAA,IACA;AAAA,EACR,CAAK;AACD,QAAM,gBAAgB,oBAAoB,OAAO,CAAC,IAAI,OAAO,CAAC;AAC9D,QAAM,CAAC,cAAc,iBAAe,EAAI,eAAe,kBAAkB,gBAAgB,gBAAgB,aAAa,IAAK,oBAAoB,SAAS,CAAA;AAExJ,QAAM,EAAE,OAAO,aAAa,GAAG,MAAK,IAAK;AACzC,QAAM,UAAU,YAAY,MAAM,GAAG,EAAE,KAAK,CAAA;AAE5C,QAAM,UAAS,6CAAc,UAAS,CAAA;AACtC,QAAM,aAAY,mDAAiB,UAAS,CAAA;AAC5C,QAAM,cAAc,CAAC,GAAG,QAAQ,GAAG,SAAS,EAAE,IAAI,CAACzC,UAASA,MAAK,WAAW,YAAY,YAAYA,MAAK,IAAI,IAAI,IAAI;AAErH,QAAM,WAAU,+CAAe,UAAS,CAAA;AACxC,QAAM,cAAa,qDAAkB,UAAS,CAAA;AAC9C,QAAM,eAAe,CAAC,GAAG,SAAS,GAAG,UAAU,EAAE,IAAI,CAACA,UAASA,MAAK,WAAW,YAAY,YAAYA,MAAK,IAAI,IAAI,IAAI;AAExH,QAAM,aAAY,iDAAgB,UAAS,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,WAAW,YAAY,EAAE,SAAS,IAAI;AAClG,QAAM,YAAW,+CAAe,UAAS,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,WAAW,YAAY,EAAE,SAAS,IAAI;AAChG,QAAM,aAAY,iDAAgB,UAAS,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,WAAW,YAAY,EAAE,SAAS,IAAI;AAClG,QAAM,UAAU,CAAA;AAChB,aAAW,CAAC,GAAG,WAAW,KAAK,aAAa,QAAO,GAAI;AACnD,UAAM,aAAa,YAAY,CAAC;AAChC,QAAI,OAAO,gBAAgB;AACvB;AACJ,QAAI,OAAO,eAAe;AACtB;AACJ,UAAM,YAAY,SAAS,IAAI,CAAC;AAChC,UAAM,UAAU,QAAQ,IAAI,CAAC;AAC7B,UAAM,YAAY,SAAS,IAAI,CAAC;AAChC,UAAM,SAAS,MAAM;AACjB,UAAI,MAAM;AACN,eAAO;AAAA,UACH,SAAS;AAAA,UACT,UAAU;AAAA,UACV,QAAQ;AAAA,QAC5B;AACY,aAAO;AAAA,QACH,SAAS,eAAe,IAAI,CAAC;AAAA,QAC7B,UAAU,aAAa,YAAY,OAAO,aAAa,CAAC,IAAI;AAAA,QAC5D,QAAQ,WAAW;AAAA,MACnC;AAAA,IACQ,GAAC;AACD,QAAI,QAAQ,KAAK,CAAC,WAAW,OAAO,MAAM,YAAY,MAAM,OAAO;AAC/D;AACJ,YAAQ,KAAK;AAAA,MACT;AAAA,MACA,OAAO;AAAA,QACH,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM,cAAc;AAAA,MACpC;AAAA,IACA,CAAS;AAAA,EACL;AACA,SAAO;AAAA,IACH,cAAc;AAAA,IACd;AAAA,IACA;AAAA,EACR;AACA;AC/OO,eAAe,cAAc,QAAQ,EAAE,SAAS,SAAS,SAAS,aAAa,WAAW,GAAG,eAAe;AAC/G,QAAM,OAAO,YAAY,OAAO;AAChC,SAAO,UAAU,QAAQ,YAAY,YAAY,EAAE;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACX,CAAK;AACL;ACZO,eAAe,gBAAgB,QAAQ,YAAY;AACtD,QAAM,EAAE,SAAS,SAAS,aAAa,WAAW,SAAS,aAAa,OAAO,QAAQ,GAAG,YAAW,IAAK;AAC1G,QAAM,OAAO,cAAc,EAAE,SAAS,aAAa,OAAO,QAAQ;AAClE,SAAO,UAAU,QAAQ,YAAY,YAAY,EAAE;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACX,CAAK;AACL;ACOO,SAAS,YAAY,QAAQ,EAAE,WAAW,OAAO,yBAAyB,UAAU,aAAa,OAAO,cAAc,OAAO,SAAS,SAAS,qBAAqB,sBAAsB,MAAM,OAAO,kBAAkB,OAAO,mBAAoB;AACvP,QAAM,iBAAiB,MAAM;AACzB,QAAI,OAAO,UAAU;AACjB,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,eAC1B,OAAO,UAAU,SAAS;AAC1B,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,eACzB,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,SAAS,eAC5C,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,SAAS;AACnD,aAAO;AACX,WAAO;AAAA,EACX,GAAC;AACD,QAAM,sBAAsB,wBAAwB;AACpD,MAAI;AACJ,QAAM,aAAa,MAAM;AACrB,UAAM,aAAa,UAAU;AAAA,MACzB;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS;AACD,WAAO,QAAQ,YAAY,EAAE,SAAS,QAAO,GAAI,CAAC,SAAS,KAAK,YAAY;;AACxE,UAAI;AACA,cAAM,QAAQ,MAAM,UAAU,QAAQ,UAAU,UAAU,EAAE;AAAA,UACxD;AAAA,UACA;AAAA,QACpB,CAAiB;AACD,YAAI,MAAM,WAAW,SAAQ,uCAAW,WAAU,MAAM;AAGpD,cAAI,MAAM,WAAW,UAAU;AAC3B;AAGJ,cAAI,MAAM,SAAS,UAAU,SAAS,KAAK,YAAY;AACnD,qBAAS,KAAI,uCAAW,UAAS,IAAI,IAAI,MAAM,QAAQ,KAAK;AACxD,oBAAMU,SAAS,MAAM,UAAU,QAAQ,UAAU,UAAU,EAAE;AAAA,gBACzD,aAAa;AAAA,gBACb;AAAA,cAChC,CAA6B;AACD,mBAAK,QAAQA,QAAO,SAAS;AAC7B,0BAAYA;AAAA,YAChB;AAAA,UACJ;AAAA,QACJ;AACA;AAAA;AAAA,WAEA,uCAAW,WAAU;AAAA,UAEhB,aAAa,cAAa,+BAAO,WAAU;AAAA;AAAA,UAG3C,MAAM,WAAW,QAAQ,MAAM,SAAS,UAAU;AAAA,UAAS;AAC5D,eAAK,QAAQ,OAAO,SAAS;AAC7B,sBAAY;AAAA,QAChB;AAAA,MACJ,SACO,KAAK;AACR,mBAAK,YAAL,8BAAe;AAAA,MACnB;AAAA,IACJ,GAAG;AAAA,MACC;AAAA,MACA,UAAU;AAAA,IACtB,CAAS,CAAC;AAAA,EACN;AACA,QAAM,kBAAkB,MAAM;AAC1B,QAAI,SAAS;AACb,QAAI,cAAc;AAClB,QAAI,cAAc,MAAO,SAAS;AAClC,KAAC,YAAY;AACT,UAAI;AACA,YAAI,aAAa;AACb,oBAAU,QAAQ,UAAU,UAAU,EAAE;AAAA,YACpC;AAAA,YACA;AAAA,UACxB,CAAqB,EACI,KAAK,CAAC,UAAU;AACjB,gBAAI,CAAC;AACD;AACJ,gBAAI,CAAC;AACD;AACJ,oBAAQ,OAAO,MAAS;AACxB,0BAAc;AAAA,UAClB,CAAC,EACI,MAAM,OAAO;AAAA,QACtB;AACA,cAAM,aAAa,MAAM;AACrB,cAAI,OAAO,UAAU,SAAS,YAAY;AACtC,kBAAMb,aAAY,OAAO,UAAU,WAAW,KAAK,CAACA,eAAcA,WAAU,OAAO,SAAS,eACxFA,WAAU,OAAO,SAAS,KAAK;AACnC,gBAAI,CAACA;AACD,qBAAO,OAAO;AAClB,mBAAOA,WAAU;AAAA,UACrB;AACA,iBAAO,OAAO;AAAA,QAClB,GAAC;AACD,cAAM,EAAE,aAAa,aAAY,IAAK,MAAM,UAAU,UAAU;AAAA,UAC5D,QAAQ,CAAC,UAAU;AAAA,UACnB,MAAM,OAAO,MAAM;;AACf,gBAAI,CAAC;AACD;AACJ,kBAAM,QAAS,MAAM,UAAU,QAAQ,UAAU,UAAU,EAAE;AAAA,cACzD,cAAa,UAAK,WAAL,mBAAa;AAAA,cAC1B;AAAA,YAC5B,CAAyB,EAAE,MAAM,MAAM;AAAA,YAAE,CAAC;AAClB,gBAAI,CAAC;AACD;AACJ,oBAAQ,OAAO,SAAS;AACxB,0BAAc;AACd,wBAAY;AAAA,UAChB;AAAA,UACA,QAAQ,OAAO;AACX,+CAAU;AAAA,UACd;AAAA,QACpB,CAAiB;AACD,sBAAc;AACd,YAAI,CAAC;AACD,sBAAW;AAAA,MACnB,SACO,KAAK;AACR,2CAAU;AAAA,MACd;AAAA,IACJ,GAAC;AACD,WAAO,MAAM,YAAW;AAAA,EAC5B;AACA,SAAO,gBAAgB,WAAU,IAAK,gBAAe;AACzD;AClHO,SAAS,WAAW,QAAQ,EAAE,SAAS,MAAM,QAAQ,MAAM,OAAO,QAAQ,WAAW,SAAS,QAAQ,MAAM,OAAO,kBAAkB,OAAO,iBAAiB,QAAQ,WAAY;AACpL,QAAM,iBAAiB,MAAM;AACzB,QAAI,OAAO,UAAU;AACjB,aAAO;AACX,QAAI,OAAO,cAAc;AACrB,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,eAC1B,OAAO,UAAU,SAAS;AAC1B,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,eACzB,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,SAAS,eAC5C,OAAO,UAAU,WAAW,CAAC,EAAE,OAAO,SAAS;AACnD,aAAO;AACX,WAAO;AAAA,EACX,GAAC;AACD,QAAM,SAAS,WAAW;AAC1B,QAAM,YAAY,MAAM;AACpB,UAAM,aAAa,UAAU;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS;AACD,WAAO,QAAQ,YAAY,EAAE,QAAQ,QAAO,GAAI,CAAC,SAAS;AACtD,UAAI;AACJ,UAAI,cAAc;AACd,8BAAsB,YAAY;AACtC,UAAI;AACJ,UAAI,cAAc;AAClB,YAAM,UAAU,KAAK,YAAY;;AAC7B,YAAI,CAAC,aAAa;AACd,cAAI;AACA,qBAAU,MAAM,UAAU,QAAQ,mBAAmB,mBAAmB,EAAE;AAAA,cACtE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAC5B,CAAyB;AAAA,UACL,QACM;AAAA,UAAE;AACR,wBAAc;AACd;AAAA,QACJ;AACA,YAAI;AACA,cAAI;AACJ,cAAI,QAAQ;AACR,mBAAO,MAAM,UAAU,QAAQ,kBAAkB,kBAAkB,EAAE,EAAE,QAAQ;AAAA,UACnF,OACK;AAID,kBAAM,cAAc,MAAM,UAAU,QAAQ,gBAAgB,gBAAgB,EAAE,EAAE;AAIhF,gBAAI,uBAAuB,wBAAwB,aAAa;AAC5D,qBAAO,MAAM,UAAU,QAAQ,SAAS,SAAS,EAAE;AAAA,gBAC/C;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,WAAW,sBAAsB;AAAA,gBACjC,SAAS;AAAA,cACzC,CAA6B;AAAA,YACL,OACK;AACD,qBAAO,CAAA;AAAA,YACX;AACA,kCAAsB;AAAA,UAC1B;AACA,cAAI,KAAK,WAAW;AAChB;AACJ,cAAI;AACA,iBAAK,OAAO,IAAI;AAAA;AAEhB,uBAAW,OAAO;AACd,mBAAK,OAAO,CAAC,GAAG,CAAC;AAAA,QAC7B,SACO,KAAK;AAGR,cAAI,UAAU,eAAe;AACzB,0BAAc;AAClB,qBAAK,YAAL,8BAAe;AAAA,QACnB;AAAA,MACJ,GAAG;AAAA,QACC,aAAa;AAAA,QACb,UAAU;AAAA,MAC1B,CAAa;AACD,aAAO,YAAY;AACf,YAAI;AACA,gBAAM,UAAU,QAAQ,iBAAiB,iBAAiB,EAAE,EAAE,QAAQ;AAC1E,gBAAO;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AACA,QAAM,iBAAiB,MAAM;AACzB,QAAI,SAAS;AACb,QAAI,cAAc,MAAO,SAAS;AAClC,KAAC,YAAY;AACT,UAAI;AACA,cAAM,aAAa,MAAM;AACrB,cAAI,OAAO,UAAU,SAAS,YAAY;AACtC,kBAAMA,aAAY,OAAO,UAAU,WAAW,KAAK,CAACA,eAAcA,WAAU,OAAO,SAAS,eACxFA,WAAU,OAAO,SAAS,KAAK;AACnC,gBAAI,CAACA;AACD,qBAAO,OAAO;AAClB,mBAAOA,WAAU;AAAA,UACrB;AACA,iBAAO,OAAO;AAAA,QAClB,GAAC;AACD,cAAM,UAAU,WAAW,QAAQ,CAAC,KAAK,IAAI;AAC7C,YAAI,SAAS,CAAA;AACb,YAAI,SAAS;AACT,gBAAM,UAAU,QAAQ,QAAQ,CAACD,WAAU,kBAAkB;AAAA,YACzD,KAAK,CAACA,MAAK;AAAA,YACX,WAAWA,OAAM;AAAA,YACjB;AAAA,UACxB,CAAqB,CAAC;AAEF,mBAAS,CAAC,OAAO;AACjB,cAAI;AACA,qBAAS,OAAO,CAAC;AAAA,QACzB;AACA,cAAM,EAAE,aAAa,aAAY,IAAK,MAAM,UAAU,UAAU;AAAA,UAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAM,CAAE;AAAA,UACpC,OAAO,MAAM;;AACT,gBAAI,CAAC;AACD;AACJ,kBAAM,MAAM,KAAK;AACjB,gBAAI;AACA,oBAAM,EAAE,WAAW,MAAAG,MAAI,IAAK,eAAe;AAAA,gBACvC,KAAK,WAAW,CAAA;AAAA,gBAChB,MAAM,IAAI;AAAA,gBACV,QAAQ,IAAI;AAAA,gBACZ;AAAA,cAChC,CAA6B;AACD,oBAAM,YAAY,UAAU,KAAK,EAAE,MAAAA,OAAM,UAAS,CAAE;AACpD,qBAAO,CAAC,SAAS,CAAC;AAAA,YACtB,SACO,KAAK;AACR,kBAAI;AACJ,kBAAI;AACJ,kBAAI,eAAe,yBACf,eAAe,yBAAyB;AAExC,oBAAI;AACA;AACJ,4BAAY,IAAI,QAAQ;AACxB,6BAAY,SAAI,QAAQ,WAAZ,mBAAoB,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;AAAA,cACnE;AAEA,oBAAM,YAAY,UAAU,KAAK;AAAA,gBAC7B,MAAM,YAAY,CAAA,IAAK,CAAA;AAAA,gBACvB;AAAA,cAChC,CAA6B;AACD,qBAAO,CAAC,SAAS,CAAC;AAAA,YACtB;AAAA,UACJ;AAAA,UACA,QAAQ,OAAO;AACX,+CAAU;AAAA,UACd;AAAA,QACpB,CAAiB;AACD,sBAAc;AACd,YAAI,CAAC;AACD,sBAAW;AAAA,MACnB,SACO,KAAK;AACR,2CAAU;AAAA,MACd;AAAA,IACJ,GAAC;AACD,WAAO,MAAM,YAAW;AAAA,EAC5B;AACA,SAAO,gBAAgB,UAAS,IAAK,eAAc;AACvD;AC5NO,SAAS,iBAAiB,SAAS;;AACtC,QAAM,EAAE,QAAQ,WAAW,GAAG,OAAM,MAAM,aAAQ,MAAM,WAAW,MAAzB,mBACpC,WAAU,CAAA;AAChB,QAAM,EAAE,SAAS,gBAAgB,UAAU,WAAW,WAAW,GAAG,OAAM,MAAM,aAAQ,MAAM,WAAW,MAAzB,mBAA4B,WAAU,CAAA;AACtH,QAAM,aAAY,aAAQ,MAAM,YAAY,EAAE,CAAC,MAA7B,mBAAgC,MAAM,QAAQ,MAAM;AACtE,SAAO;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAI,UAAU,EAAE,SAAS,OAAO,OAAO,EAAC,IAAK;IAC7C,GAAI,iBAAiB,EAAE,gBAAgB,IAAI,KAAK,cAAc,EAAC,IAAK;IACpE,GAAI,WAAW,EAAE,UAAU,IAAI,KAAK,QAAQ,EAAC,IAAK;IAClD,GAAI,YAAY,EAAE,WAAW,IAAI,KAAK,SAAS,EAAC,IAAK;IACrD,GAAI,YAAY,EAAE,UAAS,IAAK;IAChC,GAAI,YAAY,EAAE,UAAS,IAAK;IAChC,GAAI,SAAS,EAAE,OAAM,IAAK;IAC1B,GAAI,YAAY,EAAE,UAAS,IAAK;EACxC;AACA;AAEA,MAAM,cAAc;AAEpB,MAAM,cAAc;ACrBb,SAAS,oBAAoB,YAAY;AAC5C,QAAM,EAAE,SAAS,QAAQ,SAAS,OAAO,QAAQ,OAAO,oBAAI,KAAI,EAAE,IAAM;AACxE,MAAI,UAAU,QAAQ,WAAW;AAC7B,WAAO;AACX,MAAI,SAAS,QAAQ,UAAU;AAC3B,WAAO;AACX,MAAI,UAAU,QAAQ,WAAW;AAC7B,WAAO;AACX,MAAI,QAAQ,kBAAkB,QAAQ,QAAQ;AAC1C,WAAO;AACX,MAAI,QAAQ,aAAa,OAAO,QAAQ;AACpC,WAAO;AACX,MAAI;AACA,QAAI,CAAC,QAAQ;AACT,aAAO;AACX,QAAI,CAAC,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO;AAC7C,aAAO;AACX,QAAI,WAAW,CAAC,eAAe,QAAQ,SAAS,OAAO;AACnD,aAAO;AAAA,EACf,QACM;AACF,WAAO;AAAA,EACX;AACA,SAAO;AACX;AChBO,eAAe,kBAAkB,QAAQ,YAAY;AACxD,QAAM,EAAE,SAAS,QAAQ,SAAS,OAAO,QAAQ,WAAW,OAAO,oBAAI,KAAI,GAAI,GAAG,YAAW,IAAK;AAClG,QAAM,SAAS,iBAAiB,OAAO;AACvC,MAAI,CAAC,OAAO;AACR,WAAO;AACX,QAAM,UAAU,oBAAoB;AAAA,IAChC;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK;AACD,MAAI,CAAC;AACD,WAAO;AACX,QAAM,OAAO,YAAY,OAAO;AAChC,SAAO,WAAW,QAAQ;AAAA,IACtB,SAAS,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACX,CAAK;AACL;ACTO,eAAe,uBAAuB,QAAQ,EAAE,uBAAuB,sBAAsB,QAAO,GAAK;;AAC5G,QAAM,UAAU,MAAM,OAAO,QAAQ;AAAA,IACjC,QAAQ;AAAA,IACR,QAAQ,UACF,CAAC,uBAAuB,YAAY,OAAO,CAAC,IAC5C,CAAC,qBAAqB;AAAA,EACpC,GAAO,EAAE,YAAY,GAAG;AACpB,QAAM,WAAS,wBAAO,UAAP,mBAAc,eAAd,mBAA0B,uBAA1B,mBAA8C,WACzD;AACJ,QAAM,YAAY,OAAO,OAAO;AAChC,MAAI,UAAU,WAAW,cAAc;AACnC,UAAM,IAAI,gCAAgC,EAAE,SAAS,UAAS,CAAE;AACpE,SAAO;AACX;ACcO,SAAS,cAAc,QAAQ;AAClC,SAAO;AAAA,IACH,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI;AAAA,IACjC,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,IACzD,mBAAmB,MAAM,kBAAkB,MAAM;AAAA,IACjD,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,IAC3E,mBAAmB,CAAC,SAAS,kBAAkB,QAAQ,IAAI;AAAA,IAC3D,gCAAgC,MAAM,+BAA+B,MAAM;AAAA,IAC3E,qBAAqB,CAAC,SAAS,oBAAoB,QAAQ,IAAI;AAAA,IAC/D,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,IAC/C,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,IAC7C,gBAAgB,MAAM,eAAe,MAAM;AAAA,IAC3C,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI;AAAA,IACzC,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,IACrD,0BAA0B,CAAC,SAAS,yBAAyB,QAAQ,IAAI;AAAA,IACzE,aAAa,CAAC,SAAS,QAAQ,QAAQ,IAAI;AAAA,IAC3C,YAAY,MAAM,WAAW,MAAM;AAAA,IACnC,SAAS,CAAC,SAAS,QAAQ,QAAQ,IAAI;AAAA,IACvC,mBAAmB,CAAC,SAAS,kBAAkB,QAAQ,IAAI;AAAA,IAC3D,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,IACvD,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,IACnD,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,IACjD,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,IAC7C,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,IACrD,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,IAC7C,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,IACnD,oBAAoB,CAAC,SAAS,mBAAmB,QAAQ,IAAI;AAAA,IAC7D,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,IACzD,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,IACnD,aAAa,MAAM,YAAY,MAAM;AAAA,IACrC,SAAS,CAAC,SAAS,QAAQ,QAAQ,IAAI;AAAA,IACvC,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI;AAAA,IACzC,8BAA8B,CAAC,SAAS,6BAA6B,QAAQ,IAAI;AAAA,IACjF,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,IACvD,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,IACjD,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,IACrD,6BAA6B,CAAC,SAAS,4BAA4B,QAAQ,IAAI;AAAA,IAC/E,qBAAqB,CAAC,SAAS,oBAAoB,QAAQ,IAAI;AAAA,IAC/D,uBAAuB,CAAC,SAAS,sBAAsB,QAAQ,IAAI;AAAA,IACnE,WAAW,CAAC,SAAS,UAAU,QAAQ,IAAI;AAAA,IAC3C,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,IAC3E,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,IACjD,oBAAoB,CAAC,SAAS,mBAAmB,QAAQ,IAAI;AAAA,IAC7D,wBAAwB,CAAC,SAAS,uBAAuB,QAAQ,IAAI;AAAA,IACrE,UAAU,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,IAC/C,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,IACrD,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,IACnD,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,IACzD,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,IAC7C,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,IACnD,mBAAmB,CAAC,SAAS,kBAAkB,QAAQ,IAAI;AAAA,IAC3D,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,IACvD,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,IACvD,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,IAC3E,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,IAC/C,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,IACzD,oBAAoB,CAAC,SAAS,mBAAmB,QAAQ,IAAI;AAAA,IAC7D,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,IAC7C,0BAA0B,CAAC,SAAS,yBAAyB,QAAQ,IAAI;AAAA,EACjF;AACA;AC9FO,SAAS,mBAAmB,YAAY;AAC3C,QAAM,EAAE,MAAM,UAAU,OAAO,gBAAe,IAAK;AACnD,QAAM,SAAS,aAAa;AAAA,IACxB,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACd,CAAK;AACD,SAAO,OAAO,OAAO,aAAa;AACtC;ACiBO,eAAe,qBAAqB,QAAQ,YAAY;;AAC3D,QAAM,EAAE,SAAS,WAAW,OAAO,SAAS,SAAS,MAAK,IAAK;AAC/D,MAAI,CAAC;AACD,UAAM,IAAI,qBAAqB;AAAA,MAC3B,UAAU;AAAA,IACtB,CAAS;AACL,QAAM,UAAU,aAAa,QAAQ;AACrC,QAAM,YAAY,MAAM;AACpB,QAAI,CAAC,WAAW;AACZ,aAAO;AACX,QAAI,WAAW,aAAa;AACxB,aAAO,WAAW;AACtB,WAAO,aAAa,WAAW,QAAQ;AAAA,EAC3C,GAAC;AACD,QAAM,gBAAgB;AAAA,IAClB,SAAS,WAAW,mBAAmB,WAAW;AAAA,IAClD;AAAA,IACA;AAAA,EACR;AACI,MAAI,OAAO,cAAc,YAAY;AACjC,kBAAc,YACV,YAAO,UAAP,mBAAc,OACT,MAAM,UAAU,QAAQ,YAAY,YAAY,EAAE,CAAA,CAAE;AACjE,MAAI,OAAO,cAAc,UAAU,aAAa;AAC5C,kBAAc,QAAQ,MAAM,UAAU,QAAQ,qBAAqB,qBAAqB,EAAE;AAAA,MACtF,SAAS,QAAQ;AAAA,MACjB,UAAU;AAAA,IACtB,CAAS;AACD,QAAI,aAAa,WACZ,qCAAU,YAAW,eAAe,SAAS,SAAS,QAAQ,OAAO;AACtE,oBAAc,SAAS;AAAA,EAC/B;AACA,SAAO;AACX;AC/EO,MAAM,yBAAyB,UAAU;AAAA,EAC5C,cAAc;AACV,UAAM,0FAA0F;AAAA,MAC5F,UAAU;AAAA,MACV,MAAM;AAAA,IAClB,CAAS;AAAA,EACL;AACJ;ACAO,SAAS,KAEhB,KAAK,SAAS,CAAA,GAAI;AACd,QAAM,EAAE,OAAO,SAAS,cAAc,MAAM,QAAQ,SAAS,OAAO,iBAAiB,gBAAgB,iBAAiB,YAAY,IAAG,IAAM;AAC3I,SAAO,CAAC,EAAE,OAAO,YAAY,aAAa,SAAS,eAAe;AAC9D,UAAM,EAAE,YAAY,KAAM,OAAO,EAAC,IAAK,OAAO,UAAU,WAAW,QAAQ,CAAA;AAC3E,UAAM,aAAa,OAAO,cAAc;AACxC,UAAM,UAAU,YAAY,OAAO,WAAW;AAC9C,UAAM,OAAO,QAAO,+BAAO,QAAQ,QAAQ,KAAK;AAChD,QAAI,CAAC;AACD,YAAM,IAAI,iBAAgB;AAC9B,UAAM,YAAY,iBAAiB,MAAM;AAAA,MACrC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,YAAY;AAAA,MACZ;AAAA,IACZ,CAAS;AACD,WAAO,gBAAgB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,QAAQ,EAAE,QAAQ,UAAU;AAC9B,cAAM,OAAO,EAAE,QAAQ,OAAM;AAC7B,cAAM,EAAE,SAAQ,IAAK,qBAAqB;AAAA,UACtC,IAAI;AAAA,UACJ;AAAA,UACA,iBAAiB,UAAU;AACvB,mBAAO,SAAS,SAAS;AAAA,UAC7B;AAAA,UACA,IAAI,CAACS,UAAS,UAAU,QAAQ;AAAA,YAC5B,MAAAA;AAAA,UACxB,CAAqB;AAAA,UACD,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;AAAA,QAC7C,CAAiB;AACD,cAAM,KAAK,OAAOA,UAAS,QACrB,SAASA,KAAI,IACb;AAAA,UACE,MAAM,UAAU,QAAQ;AAAA,YACpB,MAAAA;AAAA,UAC5B,CAAyB;AAAA,QACzB;AACgB,cAAM,CAAC,EAAE,OAAO,OAAM,CAAE,IAAI,MAAM,GAAG,IAAI;AACzC,YAAI;AACA,iBAAO,EAAE,OAAO,OAAM;AAC1B,YAAI;AACA,gBAAM,IAAI,gBAAgB;AAAA,YACtB;AAAA,YACA;AAAA,YACA,KAAK;AAAA,UAC7B,CAAqB;AACL,eAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IAClB,GAAW;AAAA,MACC;AAAA,MACA,KAAK;AAAA,IACjB,CAAS;AAAA,EACL;AACJ;AC1DO,SAAS,eAAe,cAAc;AACzC,QAAM,EAAE,GAAG,EAAC,IAAK,UAAU,UAAU,YAAY,aAAa,MAAM,GAAG,GAAG,CAAC;AAC3E,QAAM,aAAa,OAAO,KAAK,aAAa,MAAM,GAAG,CAAC,EAAE;AACxD,QAAM,CAAC,GAAG,OAAO,KAAK,MAAM;AACxB,QAAI,eAAe,KAAK,eAAe;AACnC,aAAO,CAAC,QAAW,UAAU;AACjC,QAAI,eAAe;AACf,aAAO,CAAC,OAAO,UAAU,GAAG,CAAC;AACjC,QAAI,eAAe;AACf,aAAO,CAAC,OAAO,UAAU,GAAG,CAAC;AACjC,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC9C,GAAC;AACD,MAAI,OAAO,MAAM;AACb,WAAO;AAAA,MACH,GAAG,YAAY,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,MAC9B,GAAG,YAAY,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,MAC9B;AAAA,MACA;AAAA,IACZ;AACI,SAAO;AAAA,IACH,GAAG,YAAY,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,IAC9B,GAAG,YAAY,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,IAC9B;AAAA,EACR;AACA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67]}
|