@pollar/react 0.9.0-rc.1 → 0.9.0-rc.3

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/qr.js/lib/ErrorCorrectLevel.js","../../../node_modules/qr.js/lib/mode.js","../../../node_modules/qr.js/lib/8BitByte.js","../../../node_modules/qr.js/lib/RSBlock.js","../../../node_modules/qr.js/lib/BitBuffer.js","../../../node_modules/qr.js/lib/math.js","../../../node_modules/qr.js/lib/Polynomial.js","../../../node_modules/qr.js/lib/util.js","../../../node_modules/qr.js/lib/QRCode.js","../src/constants.ts","../src/components/commons.tsx","../src/components/distribution-rules-modal/DistributionRulesModalTemplate.tsx","../src/components/distribution-rules-modal/DistributionRulesModal.tsx","../src/components/enabled-assets-modal/EnabledAssetsModalTemplate.tsx","../src/components/enabled-assets-modal/EnabledAssetsModal.tsx","../src/components/kyc-modal/KycStatus.tsx","../src/components/kyc-modal/KycModalTemplate.tsx","../src/components/kyc-modal/KycModal.tsx","../src/components/login-modal/EmailCodeInput.tsx","../src/components/login-modal/GithubButton.tsx","../src/components/login-modal/GoogleButton.tsx","../src/components/login-modal/LoginModalTemplate.tsx","../src/components/login-modal/LoginModal.tsx","../src/components/ramp-widget/RouteDisplay.tsx","../src/components/ramp-widget/RampWidgetTemplate.tsx","../src/components/ramp-widget/RampWidget.tsx","../src/lib/qr-code/index.tsx","../src/components/receive-modal/ReceiveModalTemplate.tsx","../src/components/receive-modal/ReceiveModal.tsx","../src/components/transaction-modal/TxStatusView.tsx","../src/components/send-modal/SendModalTemplate.tsx","../src/components/send-modal/SendModal.tsx","../src/components/sessions-modal/SessionsModalTemplate.tsx","../src/components/sessions-modal/SessionsModal.tsx","../src/components/transaction-modal/TransactionModalTemplate.tsx","../src/components/transaction-modal/TransactionModal.tsx","../src/components/tx-history-modal/TxHistoryModalTemplate.tsx","../src/components/tx-history-modal/TxHistoryModal.tsx","../src/components/wallet-balance-modal/WalletBalanceModalTemplate.tsx","../src/components/wallet-balance-modal/WalletBalanceModal.tsx","../src/lib/passkey-ceremony.ts","../src/context.tsx","../src/usePollarAdapter.ts","../src/components/wallet-button/WalletButtonTemplate.tsx","../src/components/wallet-button/WalletButton.tsx"],"names":["QRCode","jsxs","jsx","useEffect","Fragment","useState","useRef","AUTH_ERROR_CODES","QRCodeSvg","QRCodeImpl","ErrorCorrectLevel","WalletType","IN_FLIGHT_STEPS","useCallback","PAGE_SIZE","formatBalance","cropAddress","response"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,yBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,mDAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,MAAA,CAAO,OAAA,GAAU;AAAA,MAChB,CAAA,EAAI,CAAA;AAAA,MACJ,CAAA,EAAI,CAAA;AAAA,MACJ,CAAA,EAAI,CAAA;AAAA,MACJ,CAAA,EAAI;AAAA,KACL;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACLA,IAAA,YAAA,GAAA,UAAA,CAAA;AAAA,EAAA,sCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,MAAA,CAAO,OAAA,GAAU;AAAA,MAChB,aAAe,CAAA,IAAK,CAAA;AAAA,MACpB,gBAAkB,CAAA,IAAK,CAAA;AAAA,MACvB,gBAAkB,CAAA,IAAK,CAAA;AAAA,MACvB,YAAc,CAAA,IAAK;AAAA,KACpB;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACLA,IAAA,eAAA,GAAA,UAAA,CAAA;AAAA,EAAA,0CAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAI,IAAA,GAAO,YAAA,EAAA;AAEX,IAAA,SAAS,WAAW,IAAA,EAAM;AACzB,MAAA,IAAA,CAAK,OAAO,IAAA,CAAK,cAAA;AACjB,MAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,IACb;AAEA,IAAA,UAAA,CAAW,SAAA,GAAY;AAAA,MAEtB,SAAA,EAAY,SAAS,MAAA,EAAQ;AAC5B,QAAA,OAAO,KAAK,IAAA,CAAK,MAAA;AAAA,MAClB,CAAA;AAAA,MAEA,KAAA,EAAQ,SAAS,MAAA,EAAQ;AACxB,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AAE1C,UAAA,MAAA,CAAO,IAAI,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,CAAC,GAAG,CAAC,CAAA;AAAA,QACtC;AAAA,MACD;AAAA,KACD;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,UAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACrBjB,IAAA,eAAA,GAAA,UAAA,CAAA;AAAA,EAAA,yCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AACA,IAAA,IAAI,GAAA,GAAM,yBAAA,EAAA;AAEV,IAAA,SAAS,SAAA,CAAU,YAAY,SAAA,EAAW;AACzC,MAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,MAAA,IAAA,CAAK,SAAA,GAAa,SAAA;AAAA,IACnB;AAEA,IAAA,SAAA,CAAU,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQ1B,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,CAAC,CAAA;AAAA;AAAA,MAGT,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA;AAAA,MAGV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA;AAAA,MAGV,CAAC,CAAA,EAAG,GAAA,EAAK,EAAE,CAAA;AAAA,MACX,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,CAAC,CAAA;AAAA;AAAA,MAGT,CAAC,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MACZ,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA;AAAA,MAGV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,GAAA,EAAK,EAAE,CAAA;AAAA,MACX,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MACZ,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,GAAA,EAAK,EAAE,CAAA;AAAA,MACX,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,MACvB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGrB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MACZ,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,MACvB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA;AAAA,MAGX,CAAC,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,MACvB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACrB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACX,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACX,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA;AAAA,MAGX,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MACzB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACb,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGtB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA,MACtB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA;AAAA,MAGvB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,KAAK,GAAG,CAAA;AAAA,MAC1B,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,MACvB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE;AAAA,KACxB;AAEA,IAAA,SAAA,CAAU,WAAA,GAAc,SAAS,UAAA,EAAY,iBAAA,EAAmB;AAE/D,MAAA,IAAI,OAAA,GAAU,SAAA,CAAU,eAAA,CAAgB,UAAA,EAAY,iBAAiB,CAAA;AAErE,MAAA,IAAI,WAAW,MAAA,EAAW;AACzB,QAAA,MAAM,IAAI,KAAA,CAAM,4BAAA,GAA+B,UAAA,GAAa,wBAAwB,iBAAiB,CAAA;AAAA,MACtG;AAEA,MAAA,IAAI,MAAA,GAAS,QAAQ,MAAA,GAAS,CAAA;AAE9B,MAAA,IAAI,IAAA,GAAO,IAAI,KAAA,EAAM;AAErB,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAEhC,QAAA,IAAI,KAAA,GAAQ,OAAA,CAAQ,CAAA,GAAI,CAAA,GAAI,CAAC,CAAA;AAC7B,QAAA,IAAI,UAAA,GAAa,OAAA,CAAQ,CAAA,GAAI,CAAA,GAAI,CAAC,CAAA;AAClC,QAAA,IAAI,SAAA,GAAa,OAAA,CAAQ,CAAA,GAAI,CAAA,GAAI,CAAC,CAAA;AAElC,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAAK;AAC/B,UAAA,IAAA,CAAK,IAAA,CAAK,IAAI,SAAA,CAAU,UAAA,EAAY,SAAS,CAAE,CAAA;AAAA,QAChD;AAAA,MACD;AAEA,MAAA,OAAO,IAAA;AAAA,IACR,CAAA;AAEA,IAAA,SAAA,CAAU,eAAA,GAAkB,SAAS,UAAA,EAAY,iBAAA,EAAmB;AAEnE,MAAA,QAAO,iBAAA;AAAmB,QAC1B,KAAK,GAAA,CAAI,CAAA;AACR,UAAA,OAAO,SAAA,CAAU,cAAA,CAAA,CAAgB,UAAA,GAAa,CAAA,IAAK,IAAI,CAAC,CAAA;AAAA,QACzD,KAAK,GAAA,CAAI,CAAA;AACR,UAAA,OAAO,SAAA,CAAU,cAAA,CAAA,CAAgB,UAAA,GAAa,CAAA,IAAK,IAAI,CAAC,CAAA;AAAA,QACzD,KAAK,GAAA,CAAI,CAAA;AACR,UAAA,OAAO,SAAA,CAAU,cAAA,CAAA,CAAgB,UAAA,GAAa,CAAA,IAAK,IAAI,CAAC,CAAA;AAAA,QACzD,KAAK,GAAA,CAAI,CAAA;AACR,UAAA,OAAO,SAAA,CAAU,cAAA,CAAA,CAAgB,UAAA,GAAa,CAAA,IAAK,IAAI,CAAC,CAAA;AAAA,QACzD;AACC,UAAA,OAAO,MAAA;AAAA;AACR,IACD,CAAA;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,SAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AC1SjB,IAAA,iBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,2CAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,SAAS,WAAA,GAAc;AACtB,MAAA,IAAA,CAAK,MAAA,GAAS,IAAI,KAAA,EAAM;AACxB,MAAA,IAAA,CAAK,MAAA,GAAS,CAAA;AAAA,IACf;AAEA,IAAA,WAAA,CAAY,SAAA,GAAY;AAAA,MAEvB,GAAA,EAAM,SAAS,KAAA,EAAO;AACrB,QAAA,IAAI,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,CAAC,CAAA;AACnC,QAAA,OAAA,CAAU,KAAK,MAAA,CAAO,QAAQ,MAAO,CAAA,GAAI,KAAA,GAAQ,IAAO,CAAA,KAAM,CAAA;AAAA,MAC/D,CAAA;AAAA,MAEA,GAAA,EAAM,SAAS,GAAA,EAAK,MAAA,EAAQ;AAC3B,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAChC,UAAA,IAAA,CAAK,QAAW,GAAA,KAAS,MAAA,GAAS,CAAA,GAAI,CAAA,GAAO,MAAM,CAAC,CAAA;AAAA,QACrD;AAAA,MACD,CAAA;AAAA,MAEA,iBAAkB,WAAW;AAC5B,QAAA,OAAO,IAAA,CAAK,MAAA;AAAA,MACb,CAAA;AAAA,MAEA,MAAA,EAAS,SAAS,GAAA,EAAK;AAEtB,QAAA,IAAI,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA;AACzC,QAAA,IAAI,IAAA,CAAK,MAAA,CAAO,MAAA,IAAU,QAAA,EAAU;AACnC,UAAA,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QACnB;AAEA,QAAA,IAAI,GAAA,EAAK;AACR,UAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA,IAAM,GAAA,KAAU,KAAK,MAAA,GAAS,CAAA;AAAA,QACnD;AAEA,QAAA,IAAA,CAAK,MAAA,EAAA;AAAA,MACN;AAAA,KACD;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,WAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACrCjB,IAAA,YAAA,GAAA,UAAA,CAAA;AAAA,EAAA,sCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAI,MAAA,GAAS;AAAA,MAEZ,IAAA,EAAO,SAAS,CAAA,EAAG;AAElB,QAAA,IAAI,IAAI,CAAA,EAAG;AACV,UAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,CAAA,GAAI,GAAG,CAAA;AAAA,QAClC;AAEA,QAAA,OAAO,MAAA,CAAO,UAAU,CAAC,CAAA;AAAA,MAC1B,CAAA;AAAA,MAEA,IAAA,EAAO,SAAS,CAAA,EAAG;AAElB,QAAA,OAAO,IAAI,CAAA,EAAG;AACb,UAAA,CAAA,IAAK,GAAA;AAAA,QACN;AAEA,QAAA,OAAO,KAAK,GAAA,EAAK;AAChB,UAAA,CAAA,IAAK,GAAA;AAAA,QACN;AAEA,QAAA,OAAO,MAAA,CAAO,UAAU,CAAC,CAAA;AAAA,MAC1B,CAAA;AAAA,MAEA,SAAA,EAAY,IAAI,KAAA,CAAM,GAAG,CAAA;AAAA,MAEzB,SAAA,EAAY,IAAI,KAAA,CAAM,GAAG;AAAA,KAE1B;AAEA,IAAA,KAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC3B,MAAA,MAAA,CAAO,SAAA,CAAU,CAAC,CAAA,GAAI,CAAA,IAAK,CAAA;AAAA,IAC5B;AAFS,IAAA,IAAA,CAAA;AAGT,IAAA,KAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,EAAK,CAAA,EAAA,EAAK;AAC7B,MAAA,MAAA,CAAO,SAAA,CAAU,CAAC,CAAA,GAAI,MAAA,CAAO,UAAU,CAAA,GAAI,CAAC,IACzC,MAAA,CAAO,SAAA,CAAU,IAAI,CAAC,CAAA,GACtB,OAAO,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GACtB,MAAA,CAAO,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA;AAAA,IAC1B;AALS,IAAA,IAAA,CAAA;AAMT,IAAA,KAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,EAAK,CAAA,EAAA,EAAK;AAC7B,MAAA,MAAA,CAAO,SAAA,CAAU,MAAA,CAAO,SAAA,CAAU,CAAC,CAAE,CAAA,GAAI,CAAA;AAAA,IAC1C;AAFS,IAAA,IAAA,CAAA;AAIT,IAAA,MAAA,CAAO,OAAA,GAAU,MAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AC3CjB,IAAA,kBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,4CAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAI,IAAA,GAAO,YAAA,EAAA;AAEX,IAAA,SAAS,YAAA,CAAa,KAAK,KAAA,EAAO;AAEjC,MAAA,IAAI,GAAA,CAAI,UAAU,MAAA,EAAW;AAC5B,QAAA,MAAM,IAAI,KAAA,CAAM,GAAA,CAAI,MAAA,GAAS,MAAM,KAAK,CAAA;AAAA,MACzC;AAEA,MAAA,IAAI,MAAA,GAAS,CAAA;AAEb,MAAA,OAAO,SAAS,GAAA,CAAI,MAAA,IAAU,GAAA,CAAI,MAAM,KAAK,CAAA,EAAG;AAC/C,QAAA,MAAA,EAAA;AAAA,MACD;AAEA,MAAA,IAAA,CAAK,MAAM,IAAI,KAAA,CAAM,GAAA,CAAI,MAAA,GAAS,SAAS,KAAK,CAAA;AAChD,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,MAAA,GAAS,QAAQ,CAAA,EAAA,EAAK;AAC7C,QAAA,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,IAAI,MAAM,CAAA;AAAA,MAC7B;AAAA,IACD;AAEA,IAAA,YAAA,CAAa,SAAA,GAAY;AAAA,MAExB,GAAA,EAAM,SAAS,KAAA,EAAO;AACrB,QAAA,OAAO,IAAA,CAAK,IAAI,KAAK,CAAA;AAAA,MACtB,CAAA;AAAA,MAEA,WAAY,WAAW;AACtB,QAAA,OAAO,KAAK,GAAA,CAAI,MAAA;AAAA,MACjB,CAAA;AAAA,MAEA,QAAA,EAAW,SAAS,CAAA,EAAG;AAEtB,QAAA,IAAI,GAAA,GAAM,IAAI,KAAA,CAAM,IAAA,CAAK,WAAU,GAAI,CAAA,CAAE,SAAA,EAAU,GAAI,CAAC,CAAA;AAExD,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,SAAA,IAAa,CAAA,EAAA,EAAK;AAC1C,UAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,SAAA,IAAa,CAAA,EAAA,EAAK;AACvC,YAAA,GAAA,CAAI,IAAI,CAAC,CAAA,IAAK,KAAK,IAAA,CAAK,IAAA,CAAK,KAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAE,IAAI,IAAA,CAAK,IAAA,CAAK,EAAE,GAAA,CAAI,CAAC,CAAE,CAAE,CAAA;AAAA,UACxE;AAAA,QACD;AAEA,QAAA,OAAO,IAAI,YAAA,CAAa,GAAA,EAAK,CAAC,CAAA;AAAA,MAC/B,CAAA;AAAA,MAEA,GAAA,EAAM,SAAS,CAAA,EAAG;AAEjB,QAAA,IAAI,KAAK,SAAA,EAAU,GAAI,CAAA,CAAE,SAAA,KAAc,CAAA,EAAG;AACzC,UAAA,OAAO,IAAA;AAAA,QACR;AAEA,QAAA,IAAI,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAE,CAAA,GAAI,IAAA,CAAK,IAAA,CAAK,CAAA,CAAE,GAAA,CAAI,CAAC,CAAE,CAAA;AAEzD,QAAA,IAAI,GAAA,GAAM,IAAI,KAAA,CAAM,IAAA,CAAK,WAAY,CAAA;AAErC,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,SAAA,IAAa,CAAA,EAAA,EAAK;AAC1C,UAAA,GAAA,CAAI,CAAC,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA;AAAA,QACpB;AAEA,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,SAAA,IAAa,CAAA,EAAA,EAAK;AACvC,UAAA,GAAA,CAAI,CAAC,CAAA,IAAK,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,CAAA,CAAE,GAAA,CAAI,CAAC,CAAE,CAAA,GAAI,KAAK,CAAA;AAAA,QACjD;AAGA,QAAA,OAAO,IAAI,YAAA,CAAa,GAAA,EAAK,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA;AAAA,MACtC;AAAA,KACD;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,YAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AClEjB,IAAA,YAAA,GAAA,UAAA,CAAA;AAAA,EAAA,sCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAI,IAAA,GAAO,YAAA,EAAA;AACX,IAAA,IAAI,UAAA,GAAa,kBAAA,EAAA;AACjB,IAAA,IAAI,IAAA,GAAO,YAAA,EAAA;AAEX,IAAA,IAAI,aAAA,GAAgB;AAAA,MACnB,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa,CAAA;AAAA,MACb,UAAA,EAAa;AAAA,KACd;AAEA,IAAA,IAAI,MAAA,GAAS;AAAA,MAET,sBAAA,EAAyB;AAAA,QACxB,EAAC;AAAA,QACD,CAAC,GAAG,EAAE,CAAA;AAAA,QACN,CAAC,GAAG,EAAE,CAAA;AAAA,QACN,CAAC,GAAG,EAAE,CAAA;AAAA,QACN,CAAC,GAAG,EAAE,CAAA;AAAA,QACN,CAAC,GAAG,EAAE,CAAA;AAAA,QACN,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACV,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,QACd,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,QAClB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,QAClB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACnB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACnB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACnB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACnB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACnB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACvB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,QACxB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,QACxB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,QACxB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,QACxB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,QACxB,CAAC,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AAAA,QACxB,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,QAC7B,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,QAC7B,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,QAC7B,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,QAC7B,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,KAAK,GAAG,CAAA;AAAA,QAC7B,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,KAAK,GAAG;AAAA,OAC9B;AAAA,MAEA,GAAA,EAAO,CAAA,IAAK,EAAA,GAAO,CAAA,IAAK,CAAA,GAAM,CAAA,IAAK,CAAA,GAAM,CAAA,IAAK,CAAA,GAAM,CAAA,IAAK,CAAA,GAAM,CAAA,IAAK,IAAM,CAAA,IAAK,CAAA;AAAA,MAC/E,GAAA,EAAO,CAAA,IAAK,EAAA,GAAO,CAAA,IAAK,KAAO,CAAA,IAAK,EAAA,GAAO,CAAA,IAAK,CAAA,GAAM,KAAK,CAAA,GAAM,CAAA,IAAK,CAAA,GAAM,CAAA,IAAK,IAAM,CAAA,IAAK,CAAA;AAAA,MAC5F,QAAA,EAAY,KAAK,EAAA,GAAO,CAAA,IAAK,KAAO,CAAA,IAAK,EAAA,GAAO,CAAA,IAAK,CAAA,GAAM,CAAA,IAAK,CAAA;AAAA,MAEhE,cAAA,EAAiB,SAAS,IAAA,EAAM;AAC/B,QAAA,IAAI,IAAI,IAAA,IAAQ,EAAA;AAChB,QAAA,OAAO,MAAA,CAAO,YAAY,CAAC,CAAA,GAAI,OAAO,WAAA,CAAY,MAAA,CAAO,GAAG,CAAA,IAAK,CAAA,EAAG;AACnE,UAAA,CAAA,IAAM,MAAA,CAAO,OAAQ,MAAA,CAAO,WAAA,CAAY,CAAC,CAAA,GAAI,MAAA,CAAO,WAAA,CAAY,MAAA,CAAO,GAAG,CAAA;AAAA,QAC3E;AACA,QAAA,OAAA,CAAU,IAAA,IAAQ,EAAA,GAAM,CAAA,IAAK,MAAA,CAAO,QAAA;AAAA,MACrC,CAAA;AAAA,MAEA,gBAAA,EAAmB,SAAS,IAAA,EAAM;AACjC,QAAA,IAAI,IAAI,IAAA,IAAQ,EAAA;AAChB,QAAA,OAAO,MAAA,CAAO,YAAY,CAAC,CAAA,GAAI,OAAO,WAAA,CAAY,MAAA,CAAO,GAAG,CAAA,IAAK,CAAA,EAAG;AACnE,UAAA,CAAA,IAAM,MAAA,CAAO,OAAQ,MAAA,CAAO,WAAA,CAAY,CAAC,CAAA,GAAI,MAAA,CAAO,WAAA,CAAY,MAAA,CAAO,GAAG,CAAA;AAAA,QAC3E;AACA,QAAA,OAAQ,QAAQ,EAAA,GAAM,CAAA;AAAA,MACvB,CAAA;AAAA,MAEA,WAAA,EAAc,SAAS,IAAA,EAAM;AAE5B,QAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,QAAA,OAAO,QAAQ,CAAA,EAAG;AACjB,UAAA,KAAA,EAAA;AACA,UAAA,IAAA,MAAU,CAAA;AAAA,QACX;AAEA,QAAA,OAAO,KAAA;AAAA,MACR,CAAA;AAAA,MAEA,kBAAA,EAAqB,SAAS,UAAA,EAAY;AACzC,QAAA,OAAO,MAAA,CAAO,sBAAA,CAAuB,UAAA,GAAa,CAAC,CAAA;AAAA,MACpD,CAAA;AAAA,MAEA,OAAA,EAAU,SAAS,WAAA,EAAa,CAAA,EAAG,CAAA,EAAG;AAErC,QAAA,QAAQ,WAAA;AAAa,UAErB,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAA,CAAQ,CAAA,GAAI,KAAK,CAAA,IAAK,CAAA;AAAA,UACtD,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAO,IAAI,CAAA,IAAK,CAAA;AAAA,UAChD,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAO,IAAI,CAAA,IAAK,CAAA;AAAA,UAChD,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAA,CAAQ,CAAA,GAAI,KAAK,CAAA,IAAK,CAAA;AAAA,UACtD,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAA,IAAM,CAAA,IAAK,CAAA;AAAA,UACvF,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAQ,CAAA,GAAI,CAAA,GAAK,CAAA,GAAK,CAAA,GAAI,IAAK,CAAA,IAAK,CAAA;AAAA,UACpE,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAA,CAAU,IAAI,CAAA,GAAK,CAAA,GAAK,CAAA,GAAI,CAAA,GAAK,KAAK,CAAA,IAAK,CAAA;AAAA,UAC3E,KAAK,aAAA,CAAc,UAAA;AAAa,YAAA,OAAA,CAAU,IAAI,CAAA,GAAK,CAAA,GAAA,CAAK,CAAA,GAAI,CAAA,IAAK,KAAK,CAAA,IAAK,CAAA;AAAA,UAE3E;AACC,YAAA,MAAM,IAAI,KAAA,CAAM,kBAAA,GAAqB,WAAW,CAAA;AAAA;AACjD,MACD,CAAA;AAAA,MAEA,yBAAA,EAA4B,SAAS,kBAAA,EAAoB;AAExD,QAAA,IAAI,IAAI,IAAI,UAAA,CAAW,CAAC,CAAC,GAAG,CAAC,CAAA;AAE7B,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,kBAAA,EAAoB,CAAA,EAAA,EAAK;AAC5C,UAAA,CAAA,GAAI,CAAA,CAAE,QAAA,CAAS,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG,CAAC,CAAE,CAAA;AAAA,QACrD;AAEA,QAAA,OAAO,CAAA;AAAA,MACR,CAAA;AAAA,MAEA,eAAA,EAAkB,SAAS,IAAA,EAAM,IAAA,EAAM;AAEtC,QAAA,IAAI,CAAA,IAAK,IAAA,IAAQ,IAAA,GAAO,EAAA,EAAI;AAI3B,UAAA,QAAO,IAAA;AAAM,YACb,KAAK,IAAA,CAAK,WAAA;AAAe,cAAA,OAAO,EAAA;AAAA,YAChC,KAAK,IAAA,CAAK,cAAA;AAAkB,cAAA,OAAO,CAAA;AAAA,YACnC,KAAK,IAAA,CAAK,cAAA;AAAiB,cAAA,OAAO,CAAA;AAAA,YAClC,KAAK,IAAA,CAAK,UAAA;AAAe,cAAA,OAAO,CAAA;AAAA,YAChC;AACC,cAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,IAAI,CAAA;AAAA;AAC/B,QAED,CAAA,MAAA,IAAW,OAAO,EAAA,EAAI;AAIrB,UAAA,QAAO,IAAA;AAAM,YACb,KAAK,IAAA,CAAK,WAAA;AAAe,cAAA,OAAO,EAAA;AAAA,YAChC,KAAK,IAAA,CAAK,cAAA;AAAkB,cAAA,OAAO,EAAA;AAAA,YACnC,KAAK,IAAA,CAAK,cAAA;AAAiB,cAAA,OAAO,EAAA;AAAA,YAClC,KAAK,IAAA,CAAK,UAAA;AAAe,cAAA,OAAO,EAAA;AAAA,YAChC;AACC,cAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,IAAI,CAAA;AAAA;AAC/B,QAED,CAAA,MAAA,IAAW,OAAO,EAAA,EAAI;AAIrB,UAAA,QAAO,IAAA;AAAM,YACb,KAAK,IAAA,CAAK,WAAA;AAAe,cAAA,OAAO,EAAA;AAAA,YAChC,KAAK,IAAA,CAAK,cAAA;AAAiB,cAAA,OAAO,EAAA;AAAA,YAClC,KAAK,IAAA,CAAK,cAAA;AAAiB,cAAA,OAAO,EAAA;AAAA,YAClC,KAAK,IAAA,CAAK,UAAA;AAAe,cAAA,OAAO,EAAA;AAAA,YAChC;AACC,cAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,IAAI,CAAA;AAAA;AAC/B,QAED,CAAA,MAAO;AACN,UAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,IAAI,CAAA;AAAA,QAC/B;AAAA,MACD,CAAA;AAAA,MAEA,YAAA,EAAe,SAAS,MAAA,EAAQ;AAE/B,QAAA,IAAI,WAAA,GAAc,OAAO,cAAA,EAAe;AAExC,QAAA,IAAI,SAAA,GAAY,CAAA;AAIhB,QAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,EAAa,GAAA,EAAA,EAAO;AAE3C,UAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,EAAa,GAAA,EAAA,EAAO;AAE3C,YAAA,IAAI,SAAA,GAAY,CAAA;AAChB,YAAA,IAAI,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,GAAG,CAAA;AAEpC,YAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAE1B,cAAA,IAAI,GAAA,GAAM,CAAA,GAAI,CAAA,IAAK,WAAA,IAAe,MAAM,CAAA,EAAG;AAC1C,gBAAA;AAAA,cACD;AAEA,cAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAE7B,gBAAA,IAAI,GAAA,GAAM,CAAA,GAAI,CAAA,IAAK,WAAA,IAAe,MAAM,CAAA,EAAG;AAC1C,kBAAA;AAAA,gBACD;AAEA,gBAAA,IAAI,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,CAAA,EAAG;AACrB,kBAAA;AAAA,gBACD;AAEA,gBAAA,IAAI,QAAQ,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,EAAG,GAAA,GAAM,CAAC,CAAA,EAAI;AAC7C,kBAAA,SAAA,EAAA;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAEA,YAAA,IAAI,YAAY,CAAA,EAAG;AAClB,cAAA,SAAA,IAAc,IAAI,SAAA,GAAY,CAAA;AAAA,YAC/B;AAAA,UACD;AAAA,QACD;AAIA,QAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,GAAc,GAAG,GAAA,EAAA,EAAO;AAC/C,UAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,GAAc,GAAG,GAAA,EAAA,EAAO;AAC/C,YAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,YAAA,IAAI,MAAA,CAAO,MAAA,CAAO,GAAA,EAAS,GAAO,CAAA,EAAI,KAAA,EAAA;AACtC,YAAA,IAAI,MAAA,CAAO,MAAA,CAAO,GAAA,GAAM,CAAA,EAAG,GAAO,CAAA,EAAI,KAAA,EAAA;AACtC,YAAA,IAAI,MAAA,CAAO,MAAA,CAAO,GAAA,EAAS,GAAA,GAAM,CAAC,CAAA,EAAI,KAAA,EAAA;AACtC,YAAA,IAAI,OAAO,MAAA,CAAO,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,CAAC,CAAA,EAAI,KAAA,EAAA;AACtC,YAAA,IAAI,KAAA,IAAS,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AAC7B,cAAA,SAAA,IAAa,CAAA;AAAA,YACd;AAAA,UACD;AAAA,QACD;AAIA,QAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,EAAa,GAAA,EAAA,EAAO;AAC3C,UAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,GAAc,GAAG,GAAA,EAAA,EAAO;AAC/C,YAAA,IAAI,OAAO,MAAA,CAAO,GAAA,EAAK,GAAG,CAAA,IACrB,CAAC,OAAO,MAAA,CAAO,GAAA,EAAK,MAAM,CAAC,CAAA,IAC1B,OAAO,MAAA,CAAO,GAAA,EAAK,MAAM,CAAC,CAAA,IAC1B,OAAO,MAAA,CAAO,GAAA,EAAK,GAAA,GAAM,CAAC,KAC1B,MAAA,CAAO,MAAA,CAAO,KAAK,GAAA,GAAM,CAAC,KAC3B,CAAC,MAAA,CAAO,OAAO,GAAA,EAAK,GAAA,GAAM,CAAC,CAAA,IAC1B,MAAA,CAAO,OAAO,GAAA,EAAK,GAAA,GAAM,CAAC,CAAA,EAAI;AACnC,cAAA,SAAA,IAAa,EAAA;AAAA,YACd;AAAA,UACD;AAAA,QACD;AAEA,QAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,EAAa,GAAA,EAAA,EAAO;AAC3C,UAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,GAAc,GAAG,GAAA,EAAA,EAAO;AAC/C,YAAA,IAAI,OAAO,MAAA,CAAO,GAAA,EAAK,GAAG,CAAA,IACrB,CAAC,OAAO,MAAA,CAAO,GAAA,GAAM,GAAG,GAAG,CAAA,IAC1B,OAAO,MAAA,CAAO,GAAA,GAAM,GAAG,GAAG,CAAA,IAC1B,OAAO,MAAA,CAAO,GAAA,GAAM,CAAA,EAAG,GAAG,KAC1B,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,EAAG,GAAG,KAC3B,CAAC,MAAA,CAAO,OAAO,GAAA,GAAM,CAAA,EAAG,GAAG,CAAA,IAC1B,MAAA,CAAO,OAAO,GAAA,GAAM,CAAA,EAAG,GAAG,CAAA,EAAI;AACnC,cAAA,SAAA,IAAa,EAAA;AAAA,YACd;AAAA,UACD;AAAA,QACD;AAIA,QAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,QAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,EAAa,GAAA,EAAA,EAAO;AAC3C,UAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,EAAa,GAAA,EAAA,EAAO;AAC3C,YAAA,IAAI,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,GAAG,CAAA,EAAI;AAC7B,cAAA,SAAA,EAAA;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAEA,QAAA,IAAI,KAAA,GAAQ,KAAK,GAAA,CAAI,GAAA,GAAM,YAAY,WAAA,GAAc,WAAA,GAAc,EAAE,CAAA,GAAI,CAAA;AACzE,QAAA,SAAA,IAAa,KAAA,GAAQ,EAAA;AAErB,QAAA,OAAO,SAAA;AAAA,MACR;AAAA,KACJ;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,MAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACtRjB,IAAA,cAAA,GAAA,UAAA,CAAA;AAAA,EAAA,wCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAI,OAAA,GAAU,eAAA,EAAA;AACd,IAAA,IAAI,OAAA,GAAU,eAAA,EAAA;AACd,IAAA,IAAI,SAAA,GAAY,iBAAA,EAAA;AAChB,IAAA,IAAI,IAAA,GAAO,YAAA,EAAA;AACX,IAAA,IAAI,UAAA,GAAa,kBAAA,EAAA;AAEjB,IAAA,SAASA,OAAAA,CAAO,YAAY,iBAAA,EAAmB;AAC9C,MAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,MAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA;AACzB,MAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,MAAA,IAAA,CAAK,WAAA,GAAc,CAAA;AACnB,MAAA,IAAA,CAAK,SAAA,GAAY,IAAA;AACjB,MAAA,IAAA,CAAK,WAAW,EAAC;AAAA,IAClB;AAGA,IAAA,IAAI,QAAQA,OAAAA,CAAO,SAAA;AAEnB,IAAA,KAAA,CAAM,OAAA,GAAU,SAAS,IAAA,EAAM;AAC9B,MAAA,IAAI,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAI,CAAA;AAC9B,MAAA,IAAA,CAAK,QAAA,CAAS,KAAK,OAAO,CAAA;AAC1B,MAAA,IAAA,CAAK,SAAA,GAAY,IAAA;AAAA,IAClB,CAAA;AAEA,IAAA,KAAA,CAAM,MAAA,GAAS,SAAS,GAAA,EAAK,GAAA,EAAK;AACjC,MAAA,IAAI,GAAA,GAAM,KAAK,IAAA,CAAK,WAAA,IAAe,OAAO,GAAA,GAAM,CAAA,IAAK,IAAA,CAAK,WAAA,IAAe,GAAA,EAAK;AAC7E,QAAA,MAAM,IAAI,KAAA,CAAM,GAAA,GAAM,GAAA,GAAM,GAAG,CAAA;AAAA,MAChC;AACA,MAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA,CAAE,GAAG,CAAA;AAAA,IAC7B,CAAA;AAEA,IAAA,KAAA,CAAM,iBAAiB,WAAW;AACjC,MAAA,OAAO,IAAA,CAAK,WAAA;AAAA,IACb,CAAA;AAEA,IAAA,KAAA,CAAM,OAAO,WAAW;AAEvB,MAAA,IAAI,IAAA,CAAK,aAAa,CAAA,EAAG;AACxB,QAAA,IAAI,UAAA,GAAa,CAAA;AACjB,QAAA,KAAK,UAAA,GAAa,CAAA,EAAG,UAAA,GAAa,EAAA,EAAI,UAAA,EAAA,EAAc;AACnD,UAAA,IAAI,QAAA,GAAW,OAAA,CAAQ,WAAA,CAAY,UAAA,EAAY,KAAK,iBAAiB,CAAA;AAErE,UAAA,IAAI,MAAA,GAAS,IAAI,SAAA,EAAU;AAC3B,UAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,YAAA,cAAA,IAAkB,QAAA,CAAS,CAAC,CAAA,CAAE,SAAA;AAAA,UAC/B;AAEA,UAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AAC9C,YAAA,IAAI,IAAA,GAAO,IAAA,CAAK,QAAA,CAAS,CAAC,CAAA;AAC1B,YAAA,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,IAAA,EAAM,CAAC,CAAA;AACvB,YAAA,MAAA,CAAO,GAAA,CAAI,KAAK,SAAA,EAAU,EAAG,KAAK,eAAA,CAAgB,IAAA,CAAK,IAAA,EAAM,UAAU,CAAE,CAAA;AACzE,YAAA,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,UAClB;AACA,UAAA,IAAI,MAAA,CAAO,eAAA,EAAgB,IAAK,cAAA,GAAiB,CAAA;AAChD,YAAA;AAAA,QACF;AACA,QAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAAA,MACnB;AACA,MAAA,IAAA,CAAK,QAAA,CAAS,KAAA,EAAO,IAAA,CAAK,kBAAA,EAAqB,CAAA;AAAA,IAChD,CAAA;AAEA,IAAA,KAAA,CAAM,QAAA,GAAW,SAAS,IAAA,EAAM,WAAA,EAAa;AAE5C,MAAA,IAAA,CAAK,WAAA,GAAc,IAAA,CAAK,UAAA,GAAa,CAAA,GAAI,EAAA;AACzC,MAAA,IAAA,CAAK,OAAA,GAAU,IAAI,KAAA,CAAM,IAAA,CAAK,WAAW,CAAA;AAEzC,MAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,IAAA,CAAK,aAAa,GAAA,EAAA,EAAO;AAEhD,QAAA,IAAA,CAAK,QAAQ,GAAG,CAAA,GAAI,IAAI,KAAA,CAAM,KAAK,WAAW,CAAA;AAE9C,QAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,IAAA,CAAK,aAAa,GAAA,EAAA,EAAO;AAChD,UAAA,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA,CAAE,GAAG,CAAA,GAAI,IAAA;AAAA,QAC1B;AAAA,MACD;AAEA,MAAA,IAAA,CAAK,yBAAA,CAA0B,GAAG,CAAC,CAAA;AACnC,MAAA,IAAA,CAAK,yBAAA,CAA0B,IAAA,CAAK,WAAA,GAAc,CAAA,EAAG,CAAC,CAAA;AACtD,MAAA,IAAA,CAAK,yBAAA,CAA0B,CAAA,EAAG,IAAA,CAAK,WAAA,GAAc,CAAC,CAAA;AACtD,MAAA,IAAA,CAAK,0BAAA,EAA2B;AAChC,MAAA,IAAA,CAAK,kBAAA,EAAmB;AACxB,MAAA,IAAA,CAAK,aAAA,CAAc,MAAM,WAAW,CAAA;AAEpC,MAAA,IAAI,IAAA,CAAK,cAAc,CAAA,EAAG;AACzB,QAAA,IAAA,CAAK,gBAAgB,IAAI,CAAA;AAAA,MAC1B;AAEA,MAAA,IAAI,IAAA,CAAK,aAAa,IAAA,EAAM;AAC3B,QAAA,IAAA,CAAK,SAAA,GAAYA,QAAO,UAAA,CAAW,IAAA,CAAK,YAAY,IAAA,CAAK,iBAAA,EAAmB,KAAK,QAAQ,CAAA;AAAA,MAC1F;AAEA,MAAA,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,SAAA,EAAW,WAAW,CAAA;AAAA,IACzC,CAAA;AAEA,IAAA,KAAA,CAAM,yBAAA,GAA4B,SAAS,GAAA,EAAK,GAAA,EAAM;AAErD,MAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAE7B,QAAA,IAAI,MAAM,CAAA,IAAK,EAAA,IAAM,IAAA,CAAK,WAAA,IAAe,MAAM,CAAA,EAAG;AAElD,QAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAE7B,UAAA,IAAI,MAAM,CAAA,IAAK,EAAA,IAAM,IAAA,CAAK,WAAA,IAAe,MAAM,CAAA,EAAG;AAElD,UAAA,IAAM,CAAA,IAAK,KAAK,CAAA,IAAK,CAAA,KAAM,KAAK,CAAA,IAAK,CAAA,IAAK,CAAA,CAAA,IACpC,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,MAAM,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,CAAA,CAAA,IACpC,CAAA,IAAK,CAAA,IAAK,KAAK,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,CAAA,EAAK;AAC7C,YAAA,IAAA,CAAK,QAAQ,GAAA,GAAM,CAAC,CAAA,CAAE,GAAA,GAAM,CAAC,CAAA,GAAI,IAAA;AAAA,UAClC,CAAA,MAAO;AACN,YAAA,IAAA,CAAK,QAAQ,GAAA,GAAM,CAAC,CAAA,CAAE,GAAA,GAAM,CAAC,CAAA,GAAI,KAAA;AAAA,UAClC;AAAA,QACD;AAAA,MACD;AAAA,IACD,CAAA;AAEA,IAAA,KAAA,CAAM,qBAAqB,WAAW;AAErC,MAAA,IAAI,YAAA,GAAe,CAAA;AACnB,MAAA,IAAI,OAAA,GAAU,CAAA;AAEd,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAE3B,QAAA,IAAA,CAAK,QAAA,CAAS,MAAM,CAAC,CAAA;AAErB,QAAA,IAAI,SAAA,GAAY,IAAA,CAAK,YAAA,CAAa,IAAI,CAAA;AAEtC,QAAA,IAAI,CAAA,IAAK,CAAA,IAAK,YAAA,GAAgB,SAAA,EAAW;AACxC,UAAA,YAAA,GAAe,SAAA;AACf,UAAA,OAAA,GAAU,CAAA;AAAA,QACX;AAAA,MACD;AAEA,MAAA,OAAO,OAAA;AAAA,IACR,CAAA;AAEA,IAAA,KAAA,CAAM,eAAA,GAAkB,SAAS,SAAA,EAAW,aAAA,EAAe,KAAA,EAAO;AAEjE,MAAA,IAAI,KAAA,GAAQ,SAAA,CAAU,oBAAA,CAAqB,aAAA,EAAe,KAAK,CAAA;AAC/D,MAAA,IAAI,EAAA,GAAK,CAAA;AAET,MAAA,IAAA,CAAK,IAAA,EAAK;AAEV,MAAA,KAAA,IAAS,MAAM,CAAA,EAAG,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,QAAQ,GAAA,EAAA,EAAO;AAEnD,QAAA,IAAI,IAAI,GAAA,GAAM,EAAA;AAEd,QAAA,KAAA,IAAS,GAAA,GAAM,GAAG,GAAA,GAAM,IAAA,CAAK,QAAQ,GAAG,CAAA,CAAE,QAAQ,GAAA,EAAA,EAAO;AAExD,UAAA,IAAI,IAAI,GAAA,GAAM,EAAA;AACd,UAAA,IAAI,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,GAAG,EAAE,GAAG,CAAA;AAEhC,UAAA,IAAI,IAAA,EAAM;AACT,YAAA,KAAA,CAAM,SAAA,CAAU,GAAG,GAAG,CAAA;AACtB,YAAA,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AACjB,YAAA,KAAA,CAAM,MAAA,CAAO,CAAA,GAAI,EAAA,EAAI,CAAC,CAAA;AACtB,YAAA,KAAA,CAAM,MAAA,CAAO,CAAA,GAAI,EAAA,EAAI,CAAA,GAAI,EAAE,CAAA;AAC3B,YAAA,KAAA,CAAM,MAAA,CAAO,CAAA,EAAG,CAAA,GAAI,EAAE,CAAA;AACtB,YAAA,KAAA,CAAM,OAAA,EAAQ;AAAA,UACf;AAAA,QACD;AAAA,MACD;AAEA,MAAA,OAAO,KAAA;AAAA,IACR,CAAA;AAEA,IAAA,KAAA,CAAM,qBAAqB,WAAW;AAErC,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,WAAA,GAAc,GAAG,CAAA,EAAA,EAAK;AAC9C,QAAA,IAAI,KAAK,OAAA,CAAQ,CAAC,CAAA,CAAE,CAAC,KAAK,IAAA,EAAM;AAC/B,UAAA;AAAA,QACD;AACA,QAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAE,CAAC,CAAA,GAAK,IAAI,CAAA,IAAK,CAAA;AAAA,MAChC;AAEA,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,WAAA,GAAc,GAAG,CAAA,EAAA,EAAK;AAC9C,QAAA,IAAI,KAAK,OAAA,CAAQ,CAAC,CAAA,CAAE,CAAC,KAAK,IAAA,EAAM;AAC/B,UAAA;AAAA,QACD;AACA,QAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAE,CAAC,CAAA,GAAK,IAAI,CAAA,IAAK,CAAA;AAAA,MAChC;AAAA,IACD,CAAA;AAEA,IAAA,KAAA,CAAM,6BAA6B,WAAW;AAE7C,MAAA,IAAI,GAAA,GAAM,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,UAAU,CAAA;AAEjD,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AAEpC,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AAEpC,UAAA,IAAI,GAAA,GAAM,IAAI,CAAC,CAAA;AACf,UAAA,IAAI,GAAA,GAAM,IAAI,CAAC,CAAA;AAEf,UAAA,IAAI,KAAK,OAAA,CAAQ,GAAG,CAAA,CAAE,GAAG,KAAK,IAAA,EAAM;AACnC,YAAA;AAAA,UACD;AAEA,UAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAE7B,YAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAE7B,cAAA,IAAI,CAAA,IAAK,EAAA,IAAM,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,EAAA,IAAM,CAAA,IAAK,CAAA,IACnC,CAAA,IAAK,CAAA,IAAK,CAAA,IAAK,CAAA,EAAK;AACzB,gBAAA,IAAA,CAAK,QAAQ,GAAA,GAAM,CAAC,CAAA,CAAE,GAAA,GAAM,CAAC,CAAA,GAAI,IAAA;AAAA,cAClC,CAAA,MAAO;AACN,gBAAA,IAAA,CAAK,QAAQ,GAAA,GAAM,CAAC,CAAA,CAAE,GAAA,GAAM,CAAC,CAAA,GAAI,KAAA;AAAA,cAClC;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD,CAAA;AAEA,IAAA,KAAA,CAAM,eAAA,GAAkB,SAAS,IAAA,EAAM;AAEtC,MAAA,IAAI,IAAA,GAAO,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,UAAU,CAAA;AAEhD,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC5B,QAAA,IAAI,GAAA,GAAO,CAAC,IAAA,IAAA,CAAW,IAAA,IAAQ,IAAK,CAAA,KAAM,CAAA;AAC1C,QAAA,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAC,CAAA,CAAE,CAAA,GAAI,CAAA,GAAI,IAAA,CAAK,WAAA,GAAc,CAAA,GAAI,CAAC,CAAA,GAAI,GAAA;AAAA,MACrE;AAEA,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC5B,QAAA,IAAI,GAAA,GAAO,CAAC,IAAA,IAAA,CAAW,IAAA,IAAQ,IAAK,CAAA,KAAM,CAAA;AAC1C,QAAA,IAAA,CAAK,OAAA,CAAQ,CAAA,GAAI,CAAA,GAAI,IAAA,CAAK,WAAA,GAAc,CAAA,GAAI,CAAC,CAAA,CAAE,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAC,CAAA,GAAI,GAAA;AAAA,MACrE;AAAA,IACD,CAAA;AAEA,IAAA,KAAA,CAAM,aAAA,GAAgB,SAAS,IAAA,EAAM,WAAA,EAAa;AAEjD,MAAA,IAAI,IAAA,GAAQ,IAAA,CAAK,iBAAA,IAAqB,CAAA,GAAK,WAAA;AAC3C,MAAA,IAAI,IAAA,GAAO,IAAA,CAAK,cAAA,CAAe,IAAI,CAAA;AAGnC,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAE5B,QAAA,IAAI,GAAA,GAAO,CAAC,IAAA,IAAA,CAAW,IAAA,IAAQ,IAAK,CAAA,KAAM,CAAA;AAE1C,QAAA,IAAI,IAAI,CAAA,EAAG;AACV,UAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,GAAA;AAAA,QACtB,CAAA,MAAA,IAAW,IAAI,CAAA,EAAG;AACjB,UAAA,IAAA,CAAK,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,GAAA;AAAA,QAC1B,CAAA,MAAO;AACN,UAAA,IAAA,CAAK,QAAQ,IAAA,CAAK,WAAA,GAAc,KAAK,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,GAAA;AAAA,QAC9C;AAAA,MACD;AAGA,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAE5B,QAAA,IAAI,GAAA,GAAO,CAAC,IAAA,IAAA,CAAW,IAAA,IAAQ,IAAK,CAAA,KAAM,CAAA;AAE1C,QAAA,IAAI,IAAI,CAAA,EAAG;AACV,UAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAE,KAAK,WAAA,GAAc,CAAA,GAAI,CAAC,CAAA,GAAI,GAAA;AAAA,QAC7C,CAAA,MAAA,IAAW,IAAI,CAAA,EAAG;AACjB,UAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAE,KAAK,CAAA,GAAI,CAAA,GAAI,CAAC,CAAA,GAAI,GAAA;AAAA,QACnC,CAAA,MAAO;AACN,UAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAE,EAAA,GAAK,CAAA,GAAI,CAAC,CAAA,GAAI,GAAA;AAAA,QAC/B;AAAA,MACD;AAGA,MAAA,IAAA,CAAK,QAAQ,IAAA,CAAK,WAAA,GAAc,CAAC,CAAA,CAAE,CAAC,IAAK,CAAC,IAAA;AAAA,IAC3C,CAAA;AAEA,IAAA,KAAA,CAAM,OAAA,GAAU,SAAS,IAAA,EAAM,WAAA,EAAa;AAE3C,MAAA,IAAI,GAAA,GAAM,EAAA;AACV,MAAA,IAAI,GAAA,GAAM,KAAK,WAAA,GAAc,CAAA;AAC7B,MAAA,IAAI,QAAA,GAAW,CAAA;AACf,MAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,MAAA,KAAA,IAAS,MAAM,IAAA,CAAK,WAAA,GAAc,GAAG,GAAA,GAAM,CAAA,EAAG,OAAO,CAAA,EAAG;AAEvD,QAAA,IAAI,OAAO,CAAA,EAAG,GAAA,EAAA;AAEd,QAAA,OAAO,IAAA,EAAM;AAEZ,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAE3B,YAAA,IAAI,KAAK,OAAA,CAAQ,GAAG,EAAE,GAAA,GAAM,CAAC,KAAK,IAAA,EAAM;AAEvC,cAAA,IAAI,IAAA,GAAO,KAAA;AAEX,cAAA,IAAI,SAAA,GAAY,KAAK,MAAA,EAAQ;AAC5B,gBAAA,IAAA,GAAA,CAAY,IAAA,CAAK,SAAS,CAAA,KAAM,QAAA,GAAY,CAAA,KAAM,CAAA;AAAA,cACnD;AAEA,cAAA,IAAI,OAAO,IAAA,CAAK,OAAA,CAAQ,WAAA,EAAa,GAAA,EAAK,MAAM,CAAC,CAAA;AAEjD,cAAA,IAAI,IAAA,EAAM;AACT,gBAAA,IAAA,GAAO,CAAC,IAAA;AAAA,cACT;AAEA,cAAA,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA,CAAE,GAAA,GAAM,CAAC,CAAA,GAAI,IAAA;AAC7B,cAAA,QAAA,EAAA;AAEA,cAAA,IAAI,YAAY,EAAA,EAAI;AACnB,gBAAA,SAAA,EAAA;AACA,gBAAA,QAAA,GAAW,CAAA;AAAA,cACZ;AAAA,YACD;AAAA,UACD;AAEA,UAAA,GAAA,IAAO,GAAA;AAEP,UAAA,IAAI,GAAA,GAAM,CAAA,IAAK,IAAA,CAAK,WAAA,IAAe,GAAA,EAAK;AACvC,YAAA,GAAA,IAAO,GAAA;AACP,YAAA,GAAA,GAAM,CAAC,GAAA;AACP,YAAA;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD,CAAA;AAEA,IAAAA,QAAO,IAAA,GAAO,GAAA;AACd,IAAAA,QAAO,IAAA,GAAO,EAAA;AAEd,IAAAA,OAAAA,CAAO,UAAA,GAAa,SAAS,UAAA,EAAY,mBAAmB,QAAA,EAAU;AAErE,MAAA,IAAI,QAAA,GAAW,OAAA,CAAQ,WAAA,CAAY,UAAA,EAAY,iBAAiB,CAAA;AAEhE,MAAA,IAAI,MAAA,GAAS,IAAI,SAAA,EAAU;AAE3B,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,QAAA,IAAI,IAAA,GAAO,SAAS,CAAC,CAAA;AACrB,QAAA,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,IAAA,EAAM,CAAC,CAAA;AACvB,QAAA,MAAA,CAAO,GAAA,CAAI,KAAK,SAAA,EAAU,EAAG,KAAK,eAAA,CAAgB,IAAA,CAAK,IAAA,EAAM,UAAU,CAAE,CAAA;AACzE,QAAA,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,MAClB;AAGA,MAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,QAAA,cAAA,IAAkB,QAAA,CAAS,CAAC,CAAA,CAAE,SAAA;AAAA,MAC/B;AAEA,MAAA,IAAI,MAAA,CAAO,eAAA,EAAgB,GAAI,cAAA,GAAiB,CAAA,EAAG;AAClD,QAAA,MAAM,IAAI,MAAM,yBAAA,GACb,MAAA,CAAO,iBAAgB,GACvB,GAAA,GACC,cAAA,GAAiB,CAAA,GAClB,GAAG,CAAA;AAAA,MACP;AAGA,MAAA,IAAI,MAAA,CAAO,eAAA,EAAgB,GAAI,CAAA,IAAK,iBAAiB,CAAA,EAAG;AACvD,QAAA,MAAA,CAAO,GAAA,CAAI,GAAG,CAAC,CAAA;AAAA,MAChB;AAGA,MAAA,OAAO,MAAA,CAAO,eAAA,EAAgB,GAAI,CAAA,IAAK,CAAA,EAAG;AACzC,QAAA,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA,MACpB;AAGA,MAAA,OAAO,IAAA,EAAM;AAEZ,QAAA,IAAI,MAAA,CAAO,eAAA,EAAgB,IAAK,cAAA,GAAiB,CAAA,EAAG;AACnD,UAAA;AAAA,QACD;AACA,QAAA,MAAA,CAAO,GAAA,CAAIA,OAAAA,CAAO,IAAA,EAAM,CAAC,CAAA;AAEzB,QAAA,IAAI,MAAA,CAAO,eAAA,EAAgB,IAAK,cAAA,GAAiB,CAAA,EAAG;AACnD,UAAA;AAAA,QACD;AACA,QAAA,MAAA,CAAO,GAAA,CAAIA,OAAAA,CAAO,IAAA,EAAM,CAAC,CAAA;AAAA,MAC1B;AAEA,MAAA,OAAOA,OAAAA,CAAO,WAAA,CAAY,MAAA,EAAQ,QAAQ,CAAA;AAAA,IAC3C,CAAA;AAEA,IAAAA,OAAAA,CAAO,WAAA,GAAc,SAAS,MAAA,EAAQ,QAAA,EAAU;AAE/C,MAAA,IAAI,MAAA,GAAS,CAAA;AAEb,MAAA,IAAI,UAAA,GAAa,CAAA;AACjB,MAAA,IAAI,UAAA,GAAa,CAAA;AAEjB,MAAA,IAAI,MAAA,GAAS,IAAI,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA;AACtC,MAAA,IAAI,MAAA,GAAS,IAAI,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA;AAEtC,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AAEzC,QAAA,IAAI,OAAA,GAAU,QAAA,CAAS,CAAC,CAAA,CAAE,SAAA;AAC1B,QAAA,IAAI,OAAA,GAAU,QAAA,CAAS,CAAC,CAAA,CAAE,UAAA,GAAa,OAAA;AAEvC,QAAA,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,UAAA,EAAY,OAAO,CAAA;AACzC,QAAA,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,UAAA,EAAY,OAAO,CAAA;AAEzC,QAAA,MAAA,CAAO,CAAC,CAAA,GAAI,IAAI,KAAA,CAAM,OAAO,CAAA;AAE7B,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,OAAO,CAAC,CAAA,CAAE,QAAQ,CAAA,EAAA,EAAK;AAC1C,UAAA,MAAA,CAAO,CAAC,EAAE,CAAC,CAAA,GAAI,MAAO,MAAA,CAAO,MAAA,CAAO,IAAI,MAAM,CAAA;AAAA,QAC/C;AACA,QAAA,MAAA,IAAU,OAAA;AAEV,QAAA,IAAI,MAAA,GAAS,IAAA,CAAK,yBAAA,CAA0B,OAAO,CAAA;AACnD,QAAA,IAAI,OAAA,GAAU,IAAI,UAAA,CAAW,MAAA,CAAO,CAAC,CAAA,EAAG,MAAA,CAAO,SAAA,EAAU,GAAI,CAAC,CAAA;AAE9D,QAAA,IAAI,OAAA,GAAU,OAAA,CAAQ,GAAA,CAAI,MAAM,CAAA;AAChC,QAAA,MAAA,CAAO,CAAC,CAAA,GAAI,IAAI,MAAM,MAAA,CAAO,SAAA,KAAc,CAAC,CAAA;AAC5C,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,OAAO,CAAC,CAAA,CAAE,QAAQ,CAAA,EAAA,EAAK;AACjC,UAAA,IAAI,WAAW,CAAA,GAAI,OAAA,CAAQ,WAAU,GAAI,MAAA,CAAO,CAAC,CAAA,CAAE,MAAA;AAC5D,UAAA,MAAA,CAAO,CAAC,EAAE,CAAC,CAAA,GAAK,YAAY,CAAA,GAAI,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,GAAI,CAAA;AAAA,QACzD;AAAA,MAED;AAEA,MAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,QAAA,cAAA,IAAkB,QAAA,CAAS,CAAC,CAAA,CAAE,UAAA;AAAA,MAC/B;AAEA,MAAA,IAAI,IAAA,GAAO,IAAI,KAAA,CAAM,cAAc,CAAA;AACnC,MAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,EAAY,CAAA,EAAA,EAAK;AACpC,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,UAAA,IAAI,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA,CAAE,MAAA,EAAQ;AACzB,YAAA,IAAA,CAAK,KAAA,EAAO,CAAA,GAAI,MAAA,CAAO,CAAC,EAAE,CAAC,CAAA;AAAA,UAC5B;AAAA,QACD;AAAA,MACD;AAEA,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,EAAY,CAAA,EAAA,EAAK;AACpC,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,UAAA,IAAI,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA,CAAE,MAAA,EAAQ;AACzB,YAAA,IAAA,CAAK,KAAA,EAAO,CAAA,GAAI,MAAA,CAAO,CAAC,EAAE,CAAC,CAAA;AAAA,UAC5B;AAAA,QACD;AAAA,MACD;AAEA,MAAA,OAAO,IAAA;AAAA,IACR,CAAA;AAEA,IAAA,MAAA,CAAO,OAAA,GAAUA,OAAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACpbV,IAAM,WAAA,GAAc,2CAAA;AAEpB,IAAM,cAAA,GAAiB,8CAAA;AACvB,IAAM,WAAA,GAAc,2CAAA;ACQ3B,IAAI,SAAA,GAA0B,OAAA;AACvB,SAAS,oBAAoB,MAAA,EAA4B;AAC9D,EAAA,SAAA,GAAY,MAAA;AACd;AAMO,IAAM,kBAAA,GAAN,cAAiC,SAAA,CAAiF;AAAA,EAAlH,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAA,KAAA,GAAiC,EAAE,SAAS,KAAA,EAAM;AAAA,EAAA;AAAA,EAElD,OAAO,wBAAA,GAAoD;AACzD,IAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AAAA,EACzB;AAAA,EAEA,kBAAkB,KAAA,EAAgB;AAChC,IAAA,SAAA,CAAU,KAAA,CAAM,mCAAmC,KAAK,CAAA;AAAA,EAC1D;AAAA,EAEA,MAAA,GAAS;AACP,IAAA,IAAI,IAAA,CAAK,MAAM,OAAA,EAAS;AACtB,MAAA,IAAA,CAAK,MAAM,OAAA,EAAQ;AACnB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF,CAAA;AAEO,IAAM,oBAAoB,MAAM;AACrC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EAA0B,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,oBACtD,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAI,GAAA,EAAK,WAAA,EAAa,GAAA,EAAI,QAAA,EAAS,WAAU,oBAAA,EAAqB,CAAA;AAAA,sBACnE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,sBAC3C,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,QAAA,EAAA;AAAA,QAAA,GAAA;AAAA,QAAE;AAAA,OAAA,EAAmB;AAAA,KAAA,EAC/D;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AASO,SAAS,kBAAkB,EAAE,OAAA,EAAS,MAAA,EAAQ,QAAA,EAAU,SAAQ,EAA2B;AAChG,EAAA,IAAI,CAAC,OAAA,IAAW,MAAA,KAAW,MAAA,EAAQ;AACjC,IAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAAgB,CAAA;AAAA,EACxC;AAEA,EAAA,MAAM,YAAY,MAAA,KAAW,SAAA;AAC7B,EAAA,MAAM,IAAA,GACJ,MAAA,KAAW,OAAA,mBACT,IAAA,CAAC,SAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,eAAW,IAAA,EACrE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,GAAA,EAAI,EAAA,EAAG,KAAI,CAAA,EAAE,GAAA,EAAI,MAAK,cAAA,EAAe,CAAA;AAAA,oBAChD,GAAA,CAAC,UAAK,CAAA,EAAE,2BAAA,EAA4B,QAAO,OAAA,EAAQ,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,GAAA,EAC7F,CAAA,GACE,MAAA,KAAW,SAAA,mBACb,IAAA,CAAC,SAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,eAAW,IAAA,EACrE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,GAAA,EAAI,EAAA,EAAG,KAAI,CAAA,EAAE,GAAA,EAAI,MAAK,cAAA,EAAe,CAAA;AAAA,oBAChD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB,MAAA,EAAO,OAAA,EAAQ,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA,GAAA,EAC/G,CAAA,GACE,MAAA,KAAW,SAAA,mBACb,GAAA,CAAA,QAAA,EAAA,EAAE,CAAA,GACA,IAAA;AAEN,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAAgB,aAAW,MAAA,EACvC,QAAA,EAAA;AAAA,IAAA,IAAA;AAAA,oBACD,GAAA,CAAC,UAAM,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,IACd,SAAA,IAAa,QAAA,oBACZ,GAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,QAAA,EAAA,QAAA,EAE1E,CAAA;AAAA,IAED,MAAA,KAAW,OAAA,IAAW,OAAA,oBACrB,GAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,OAAA,EAAS,QAAA,EAAA,OAAA,EAEzE;AAAA,GAAA,EAEJ,CAAA;AAEJ;AC/EA,IAAM,YAAA,GAA2D;AAAA,EAC/D,GAAA,EAAK,WAAA;AAAA,EACL,YAAA,EAAc,OAAA;AAAA,EACd,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,eAAA;AAAA,EACP,cAAA,EAAgB,SAAA;AAAA,EAChB,QAAA,EAAU;AACZ,CAAA;AAKA,IAAM,YAAA,GAAuC;AAAA,EAC3C,0BAAA,EAA4B,UAAA;AAAA,EAC5B,6BAAA,EAA+B,iBAAA;AAAA,EAC/B,yBAAA,EAA2B,SAAA;AAAA,EAC3B,2BAAA,EAA6B,eAAA;AAAA;AAAA,EAE7B,gCAAA,EAAkC;AACpC,CAAA;AAEA,SAAS,YAAY,MAAA,EAA+B;AAClD,EAAA,IAAI,CAAC,QAAQ,OAAO,eAAA;AACpB,EAAA,OAAO,YAAA,CAAa,MAAM,CAAA,IAAK,eAAA;AACjC;AAEA,SAAS,aAAa,MAAA,EAAwB;AAC5C,EAAA,MAAM,CAAA,GAAI,WAAW,MAAM,CAAA;AAC3B,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAI,MAAA,GAAS,CAAA,CAAE,eAAe,MAAA,EAAW,EAAE,qBAAA,EAAuB,CAAA,EAAG,CAAA;AACrF;AAEA,SAAS,eAAe,IAAA,EAAuC;AAC7D,EAAA,MAAM,OAAO,IAAA,CAAK,SAAA,GAAY,IAAI,IAAA,CAAK,IAAA,CAAK,SAAS,CAAA,GAAI,IAAA;AACzD,EAAA,MAAM,QAAQ,IAAA,CAAK,UAAA,GAAa,IAAI,IAAA,CAAK,IAAA,CAAK,UAAU,CAAA,GAAI,IAAA;AAC5D,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,KAAA,EAAO,OAAO,IAAA;AAC5B,EAAA,MAAM,GAAA,GAAM,CAAC,CAAA,KAAY,CAAA,CAAE,kBAAA,CAAmB,MAAA,EAAW,EAAE,KAAA,EAAO,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW,IAAA,EAAM,WAAW,CAAA;AAC5G,EAAA,IAAI,IAAA,IAAQ,KAAA,EAAO,OAAO,CAAA,EAAG,GAAA,CAAI,IAAI,CAAC,CAAA,QAAA,EAAM,GAAA,CAAI,KAAK,CAAC,CAAA,CAAA;AACtD,EAAA,IAAI,KAAA,EAAO,OAAO,CAAA,MAAA,EAAS,GAAA,CAAI,KAAK,CAAC,CAAA,CAAA;AACrC,EAAA,IAAI,IAAA,EAAM,OAAO,CAAA,KAAA,EAAQ,GAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AAClC,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,QAAA,CAAS;AAAA,EAChB,IAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,EAAA,MAAM,oBAAA,GAAuB,IAAA,CAAK,SAAA,IAAa,CAAC,SAAA;AAEhD,EAAA,uBACEC,KAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAmB,gBAAA,EAAgB,oBAAA,GAAuB,SAAS,OAAA,EAChF,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,eAAK,IAAA,EAAK,CAAA;AAAA,sBACnDD,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,QAAA,YAAA,CAAa,KAAK,MAAM,CAAA;AAAA,QAAE,GAAA;AAAA,wBAACC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,eAAK,SAAA,EAAU;AAAA,OAAA,EACvF;AAAA,KAAA,EACF,CAAA;AAAA,oBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,YAAA,CAAa,IAAA,CAAK,MAAM,CAAA,EAAE,CAAA;AAAA,MAChC,QAAA,oBAAYD,IAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,QAAG;AAAA,OAAA,EAAS;AAAA,KAAA,EACjC,CAAA;AAAA,oBACAC,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACZ,QAAA,EAAA,SAAA,mBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yBAAA,EAA0B,WAAA,EAAU,WAAU,QAAA,EAAA,SAAA,EAE9D,CAAA,GACE,uCACFA,GAAAA,CAAC,YAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,0CAAA,EAA2C,SAAS,OAAA,EAAS,QAAA,EAAU,YACpG,QAAA,EAAA,UAAA,GAAa,gBAAA,GAAc,SAC9B,CAAA,mBAEAA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA0B,WAAA,EAAU,aAAA,EACjD,sBAAY,IAAA,CAAK,MAAM,GAC1B,CAAA,EAEJ,CAAA;AAAA,IACC,gCAAgBA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAA0B,QAAA,EAAA,YAAA,EAAa;AAAA,GAAA,EACzE,CAAA;AAEJ;AAEO,SAAS,8BAAA,CAA+B;AAAA,EAC7C,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAAwC;AACtC,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,IAAA,KAAS,SAAA;AACjC,EAAA,MAAM,QAAQ,KAAA,CAAM,IAAA,KAAS,QAAA,GAAW,KAAA,CAAM,QAAQ,EAAC;AAEvD,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,qCAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,OAAA;AAAA,MACP,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB;AAAA,MAElC,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,0BACrDD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,KAAC,QAAA,EAAA,EAAO,SAAA,EAAU,4BAA2B,OAAA,EAAS,SAAA,EAAW,UAAU,SAAA,EACzE,QAAA,EAAA;AAAA,8BAAAA,IAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,CAAA,yBAAA,EAA4B,SAAA,GAAY,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,kBACnE,KAAA,EAAM,IAAA;AAAA,kBACN,MAAA,EAAO,IAAA;AAAA,kBACP,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,MAAA;AAAA,kBACL,aAAA,EAAW,IAAA;AAAA,kBAEX,QAAA,EAAA;AAAA,oCAAAC,GAAAA,CAAC,UAAK,CAAA,EAAE,8BAAA,EAA+B,QAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,oCACrGA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA;AAAA;AAAA,eAC5G;AAAA,cAAM;AAAA,aAAA,EAER,CAAA;AAAA,4BACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAqB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAClE,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,GAC7F,CAAA,EACF;AAAA,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,SAAA,oBAAaC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,eAAA,EAAQ,CAAA;AAAA,UACzD,KAAA,CAAM,SAAS,OAAA,oBAAWA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,KAAA,CAAM,OAAA,EAAQ,CAAA;AAAA,UAC7E,KAAA,CAAM,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,MAAA,KAAW,CAAA,oBAC3CA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,kCAAA,EAAgC,CAAA;AAAA,UAErE,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA;AAAA,cACA,UAAA,EAAY,eAAe,IAAA,CAAK,EAAA;AAAA,cAChC,SAAA,EAAW,UAAA,CAAW,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA;AAAA,cAChC,GAAI,WAAA,CAAY,IAAA,CAAK,EAAE,CAAA,IAAK,EAAE,YAAA,EAAc,WAAA,CAAY,IAAA,CAAK,EAAE,CAAA,EAAE;AAAA,cAClE,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI;AAAA,aAAA;AAAA,YALtB,IAAA,CAAK;AAAA,WAOb;AAAA,SAAA,EACH,CAAA;AAAA,wBAEAA,IAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;ACtLO,SAAS,sBAAA,CAAuB,EAAE,OAAA,EAAQ,EAAgC;AAC/E,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAO,GAAI,SAAA,EAAU;AACxC,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAI,SAAiC,EAAE,IAAA,EAAM,QAAQ,CAAA;AAC3E,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAwB,IAAI,CAAA;AAChE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,QAAA,CAAiC,EAAE,CAAA;AACzE,EAAA,MAAM,CAAC,YAAY,aAAa,CAAA,GAAI,SAAsB,sBAAM,IAAI,KAAK,CAAA;AAEzE,EAAA,MAAM,IAAA,GAAO,YAAY,YAAY;AACnC,IAAA,QAAA,CAAS,EAAE,IAAA,EAAM,SAAA,EAAW,CAAA;AAC5B,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAQ,MAAM,SAAA,EAAU,CAAE,qBAAA,EAAsB;AACtD,MAAA,QAAA,CAAS,EAAE,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,IACpC,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,OAAA,GAAU,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,mCAAA;AACrD,MAAA,QAAA,CAAS,EAAE,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,CAAA;AAAA,IACrC;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,KAAK,IAAA,EAAK;AAAA,EACZ,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,OAAO,IAAA,KAA2B;AAChC,MAAA,aAAA,CAAc,KAAK,EAAE,CAAA;AACrB,MAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,QAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,EAAE,GAAG,OAAO,IAAA;AAC3B,QAAA,MAAM,IAAA,GAAO,EAAE,GAAG,IAAA,EAAK;AACvB,QAAA,OAAO,IAAA,CAAK,KAAK,EAAE,CAAA;AACnB,QAAA,OAAO,IAAA;AAAA,MACT,CAAC,CAAA;AACD,MAAA,IAAI;AACF,QAAA,MAAM,WAAU,CAAE,qBAAA,CAAsB,EAAE,MAAA,EAAQ,IAAA,CAAK,IAAI,CAAA;AAC3D,QAAA,aAAA,CAAc,CAAC,IAAA,KAAS;AACtB,UAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,UAAA,IAAA,CAAK,GAAA,CAAI,KAAK,EAAE,CAAA;AAChB,UAAA,OAAO,IAAA;AAAA,QACT,CAAC,CAAA;AAAA,MACH,SAAS,GAAA,EAAK;AACZ,QAAA,MAAM,OAAA,GAAU,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,cAAA;AACrD,QAAA,cAAA,CAAe,CAAC,IAAA,MAAU,EAAE,GAAG,IAAA,EAAM,CAAC,IAAA,CAAK,EAAE,GAAG,OAAA,EAAQ,CAAE,CAAA;AAAA,MAC5D,CAAA,SAAE;AACA,QAAA,aAAA,CAAc,IAAI,CAAA;AAAA,MACpB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,8BAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,MAAM,KAAK,IAAA,EAAK;AAAA,MAC3B,OAAA,EAAS,WAAA;AAAA,MACT;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;ACxEA,SAAS,YAAY,OAAA,EAAyB;AAC5C,EAAA,IAAI,OAAA,CAAQ,MAAA,IAAU,EAAA,EAAI,OAAO,OAAA;AACjC,EAAA,OAAO,CAAA,EAAG,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,GAAA,EAAM,OAAA,CAAQ,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AACtD;AAEA,SAAS,SAAA,CAAU,EAAE,MAAA,EAAO,EAAmC;AAC7D,EAAA,MAAM,cAAc,MAAA,CAAO,oBAAA;AAC3B,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAqB,iBAAO,IAAA,EAAK,CAAA;AAAA,MAChD,MAAA,CAAO,wBAAQA,GAAAA,CAAC,UAAK,SAAA,EAAU,mBAAA,EAAqB,iBAAO,IAAA,EAAK;AAAA,KAAA,EACnE,CAAA;AAAA,oBACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,sBAAA,EAAyB,WAAA,GAAc,cAAA,GAAiB,EAAE,CAAA,CAAA,EACxE,QAAA,EAAA,WAAA,GAAc,kBAAA,GAAqB,iBAAA,EACtC;AAAA,GAAA,EACF,CAAA;AAEJ;AAWO,SAAS,0BAAA,CAA2B;AAAA,EACzC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,MAAM,SAAA,GAAY,cAAc,IAAA,KAAS,SAAA;AACzC,EAAA,MAAM,IAAA,GAAO,aAAA,CAAc,IAAA,KAAS,QAAA,GAAW,cAAc,IAAA,GAAO,IAAA;AAEpE,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAuC,YAAA,EAAY,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,iBAAgB,EACzH,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,sBACjDD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,KAAC,QAAA,EAAA,EAAO,SAAA,EAAU,4BAA2B,OAAA,EAAS,SAAA,EAAW,UAAU,SAAA,EACzE,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,CAAA,yBAAA,EAA4B,SAAA,GAAY,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,cACnE,KAAA,EAAM,IAAA;AAAA,cACN,MAAA,EAAO,IAAA;AAAA,cACP,OAAA,EAAQ,WAAA;AAAA,cACR,IAAA,EAAK,MAAA;AAAA,cACL,aAAA,EAAW,IAAA;AAAA,cAEX,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,UAAK,CAAA,EAAE,8BAAA,EAA+B,QAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,gCACrGA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA;AAAA;AAAA,WAC5G;AAAA,UAAM;AAAA,SAAA,EAER,CAAA;AAAA,wBACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAqB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAClE,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,GAC7F,CAAA,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,aAAA,oBAAiBA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sBAAA,EAAwB,QAAA,EAAA,WAAA,CAAY,aAAa,CAAA,EAAE,CAAA;AAAA,IAEnF,6BAAaA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,eAAA,EAAQ,CAAA;AAAA,IAEzD,aAAA,CAAc,SAAS,OAAA,oBAAWA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,aAAA,CAAc,OAAA,EAAQ,CAAA;AAAA,IAE7F,IAAA,IAAQ,CAAC,IAAA,CAAK,MAAA,oBAAUD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EAAqB,QAAA,EAAA;AAAA,MAAA,uBAAA;AAAA,MAAsB,IAAA,CAAK,OAAA;AAAA,MAAQ;AAAA,KAAA,EAAC,CAAA;AAAA,IAEhG,IAAA,IAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,KAAW,CAAA,oBAAKC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,yCAAA,EAAuC,CAAA;AAAA,IAE/G,IAAA,IAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,GAAS,CAAA,oBAC5BA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAChBA,GAAAA,CAAC,SAAA,EAAA,EAA0C,MAAA,EAAQ,CAAA,EAAA,EAAnC,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,MAAA,IAAU,EAAA,CAAgB,CACvD,CAAA,EACH,CAAA;AAAA,oBAGFA,IAAC,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;ACtGO,SAAS,kBAAA,CAAmB,EAAE,OAAA,EAAQ,EAA4B;AACvE,EAAA,MAAM,EAAE,aAAA,EAAe,aAAA,EAAe,aAAA,EAAe,MAAA,KAAW,SAAA,EAAU;AAC1E,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAAC,UAAU,MAAM;AACd,IAAA,KAAK,aAAA,EAAc;AAAA,EACrB,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,0BAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA,EAAW,MAAM,aAAA,EAAc;AAAA,MAC/B;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;ACtBA,IAAM,aAAA,GAAwF;AAAA,EAC5F,MAAM,EAAE,KAAA,EAAO,eAAe,KAAA,EAAO,SAAA,EAAW,KAAK,KAAA,EAAM;AAAA,EAC3D,SAAS,EAAE,KAAA,EAAO,kBAAkB,KAAA,EAAO,SAAA,EAAW,KAAK,IAAA,EAAK;AAAA,EAChE,UAAU,EAAE,KAAA,EAAO,YAAY,KAAA,EAAO,SAAA,EAAW,KAAK,KAAA,EAAM;AAAA,EAC5D,UAAU,EAAE,KAAA,EAAO,YAAY,KAAA,EAAO,SAAA,EAAW,KAAK,KAAA;AACxD,CAAA;AAEO,SAAS,SAAA,CAAU,EAAE,MAAA,EAAQ,SAAA,EAAU,EAAmB;AAC/D,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAM,CAAA,IAAK,aAAA,CAAc,IAAA;AACtD,EAAA,uBACED,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAW,CAAA,gBAAA,EAAmB,SAAA,GAAY,CAAA,CAAA,EAAI,SAAS,KAAK,EAAE,CAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,oBAAA,EAAsB,MAAA,CAAO,KAAA,EAAM;AAAA,MAE3C,QAAA,EAAA;AAAA,QAAA,MAAA,CAAO,GAAA,oBAAOC,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAuB,CAAA;AAAA,QACrD,MAAA,CAAO;AAAA;AAAA;AAAA,GACV;AAEJ;ACNO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B,MAAA;AAAA,IAC/B,wBAAA,EAA0B,MAAA;AAAA,IAC1B,6BAAA,EAA+B,UAAA;AAAA,IAC/B,8BAAA,EAAgC;AAAA,GAClC;AAEA,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oCAAA,EAAqC,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB,EACpG,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kBAAA,EAAmB,QAAA,EAAA,uBAAA,EAAqB,CAAA;AAAA,sBACtDD,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EACV,QAAA,EAAA;AAAA,QAAA,IAAA,KAAS,iBAAA,IAAqB,mCAAA;AAAA,QAC9B,IAAA,KAAS,WAAA,IAAe,CAAA,eAAA,EAAkB,gBAAA,EAAkB,IAAI,CAAA,CAAA;AAAA,QAChE,SAAS,SAAA,IAAa,iCAAA;AAAA,QACtB,SAAS,MAAA,IAAU;AAAA,OAAA,EACtB;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,SAAS,iBAAA,oBACRA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,SAAA,CAAU,MAAA,KAAW,CAAA,oBACpBC,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,SAAA,EAAW,QAAA,EAAS,EAAG,QAAA,EAAA,0CAAA,EAAwC,CAAA;AAAA,MAE1G,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,qBACdD,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,yBAAA;AAAA,UACV,QAAA,EAAU,SAAA;AAAA,UACV,OAAA,EAAS,MAAM,gBAAA,CAAiB,CAAC,CAAA;AAAA,UAEjC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,YAAE,IAAA,EAAK,CAAA;AAAA,4BACnDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,YAAE,IAAA,EAAK;AAAA;AAAA,SAAA;AAAA,QAP9C,CAAA,CAAE;AAAA,OASV;AAAA,KAAA,EACH,CAAA;AAAA,IAGD,SAAS,WAAA,IAAe,gBAAA,oBACvBD,IAAAA,CAAAG,UAAA,EACE,QAAA,EAAA;AAAA,sBAAAF,GAAAA,CAAC,SAAI,SAAA,EAAU,wBAAA,EACZ,mBAAS,MAAA,mBACRA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,mBAAA,EAAoB,KAAK,OAAA,CAAQ,MAAA,EAAQ,KAAA,EAAM,kBAAA,EAAmB,KAAA,EAAM,oBAAA,EAAqB,oBAE/GD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,UAAK,QAAA,EAAA,WAAA,EAAE,CAAA;AAAA,wBACRA,GAAAA,CAAC,MAAA,EAAA,EACE,2BAAiB,IAAA,KAAS,MAAA,GACvB,qDACA,uCAAA,EACN;AAAA,OAAA,EACF,CAAA,EAEJ,CAAA;AAAA,sBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,YAAO,IAAA,EAAK,QAAA,EAAS,WAAU,sBAAA,EAAuB,OAAA,EAAS,SAAS,QAAA,EAAA,QAAA,EAEzE,CAAA;AAAA,wBACAA,IAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,oBAAA,EAAqB,OAAA,EAAS,eAAA,EAAiB,QAAA,EAAA,6BAAA,EAE/E;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IAGD,SAAS,SAAA,oBACRD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,CAAA;AAAA,sBAChCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAA0B,QAAA,EAAA,oCAAA,EAA6B;AAAA,KAAA,EACtE,CAAA;AAAA,IAGD,SAAS,MAAA,oBACRD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAA0B,QAAA,EAAA,SAAA,KAAc,UAAA,GAAa,WAAM,QAAA,EAAI,CAAA;AAAA,sBAC/EA,GAAAA,CAAC,SAAA,EAAA,EAAe,MAAA,EAAQ,SAAA,EAAW,CAAA;AAAA,sBACnCA,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0BACV,QAAA,EAAA,SAAA,KAAc,UAAA,GACX,kDACA,kDAAA,EACN,CAAA;AAAA,sBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBACb,QAAA,kBAAAA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,oBAAA,EAAqB,OAAA,EAAS,OAAA,EAAS,mBAEvE,CAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AC1HO,SAAS,QAAA,CAAS,EAAE,OAAA,EAAS,OAAA,GAAU,MAAM,KAAA,GAAQ,OAAA,EAAS,YAAW,EAAkB;AAChG,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAO,GAAI,SAAA,EAAU;AAExC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,SAAkB,iBAAiB,CAAA;AAC3D,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,QAAAA,CAAwB,EAAE,CAAA;AAC5D,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,SAA6B,IAAI,CAAA;AACjF,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,SAAkC,IAAI,CAAA;AACpE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAyB,MAAM,CAAA;AACjE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAS,KAAK,CAAA;AAEhD,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAAF,UAAU,MAAM;AACd,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,SAAA,EAAU,CACP,gBAAgB,OAAO,CAAA,CACvB,KAAK,CAAC,MAAA,KAAW,YAAA,CAAa,MAAA,CAAO,SAAS,CAAC,EAC/C,KAAA,CAAM,MAAM,YAAA,CAAa,EAAE,CAAC,EAC5B,OAAA,CAAQ,MAAM,YAAA,CAAa,KAAK,CAAC,CAAA;AAAA,EACtC,CAAA,EAAG,CAAC,SAAA,EAAW,OAAO,CAAC,CAAA;AAEvB,EAAA,eAAe,qBAAqB,QAAA,EAAuB;AACzD,IAAA,mBAAA,CAAoB,QAAQ,CAAA;AAC5B,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAM,MAAA,CAAO,UAAA,CAAW,QAAA,CAAS,IAAI,KAAK,CAAA;AACzD,MAAA,IAAI,OAAO,eAAA,EAAiB;AAC1B,QAAA,YAAA,CAAa,UAAU,CAAA;AACvB,QAAA,OAAA,CAAQ,MAAM,CAAA;AACd,QAAA,UAAA,IAAa;AACb,QAAA;AAAA,MACF;AACA,MAAA,UAAA,CAAW,MAA0B,CAAA;AACrC,MAAA,OAAA,CAAQ,WAAW,CAAA;AAAA,IACrB,CAAA,CAAA,MAAQ;AACN,MAAA,OAAA,CAAQ,iBAAiB,CAAA;AAAA,IAC3B,CAAA,SAAE;AACA,MAAA,YAAA,CAAa,KAAK,CAAA;AAAA,IACpB;AAAA,EACF;AAEA,EAAA,eAAe,mBAAA,GAAsB;AACnC,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACvB,IAAA,OAAA,CAAQ,SAAS,CAAA;AACjB,IAAA,IAAI;AACF,MAAA,MAAM,WAAA,GAAc,MAAM,MAAA,CAAO,aAAA,CAAc,gBAAA,CAAiB,EAAA,EAAI,EAAE,UAAA,EAAY,GAAA,EAAM,SAAA,EAAW,IAAA,EAAS,CAAA;AAC5G,MAAA,YAAA,CAAa,WAAW,CAAA;AACxB,MAAA,OAAA,CAAQ,MAAM,CAAA;AACd,MAAA,IAAI,WAAA,KAAgB,YAAY,UAAA,IAAa;AAAA,IAC/C,CAAA,CAAA,MAAQ;AACN,MAAA,YAAA,CAAa,UAAU,CAAA;AACvB,MAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA,EAAkB,oBAAA;AAAA,MAClB,eAAA,EAAiB,mBAAA;AAAA,MACjB;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;ACtFO,SAAS,cAAA,CAAe,EAAE,KAAA,EAAO,QAAA,EAAS,EAAwB;AACvE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,QAAAA,CAAS,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAC,CAAA;AAC7D,EAAA,MAAM,SAAA,GAAY,MAAA,CAAoC,EAAE,CAAA;AAExD,EAAA,SAAS,OAAO,IAAA,EAAgB;AAC9B,IAAA,IAAI,IAAA,CAAK,MAAM,OAAO,CAAA,WAAY,IAAA,CAAK,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EACjD;AAEA,EAAA,SAAS,YAAA,CAAa,OAAe,KAAA,EAAe;AAClD,IAAA,MAAM,UAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,EAAE,CAAA,CAAE,MAAM,EAAE,CAAA;AACjD,IAAA,MAAM,IAAA,GAAO,OAAO,GAAA,CAAI,CAAC,GAAG,CAAA,KAAO,CAAA,KAAM,KAAA,GAAQ,OAAA,GAAU,CAAE,CAAA;AAC7D,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,IAAI,OAAA,IAAW,QAAQ,CAAA,EAAG,SAAA,CAAU,QAAQ,KAAA,GAAQ,CAAC,GAAG,KAAA,EAAM;AAC9D,IAAA,MAAA,CAAO,IAAI,CAAA;AAAA,EACb;AAEA,EAAA,SAAS,aAAA,CAAc,OAAe,CAAA,EAA0C;AAC9E,IAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,IAAe,CAAC,OAAO,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxD,MAAA,SAAA,CAAU,OAAA,CAAQ,KAAA,GAAQ,CAAC,CAAA,EAAG,KAAA,EAAM;AAAA,IACtC;AAAA,EACF;AAEA,EAAA,SAAS,YAAY,CAAA,EAA2C;AAC9D,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,IAAA,GAAO,CAAA,CAAE,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAC1E,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,IAAA,CAAK,CAAC,KAAK,EAAE,CAAA;AAC9D,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,SAAA,CAAU,OAAA,CAAQ,KAAK,GAAA,CAAI,IAAA,CAAK,SAAS,CAAA,EAAG,CAAC,CAAC,CAAA,EAAG,KAAA,EAAM;AACvD,IAAA,MAAA,CAAO,IAAI,CAAA;AAAA,EACb;AAEA,EAAA,uBACEJ,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA;AAAA,MAAA,iCAAA;AAAA,MAAgC,KAAA,mBAAQC,GAAAA,CAAC,QAAA,EAAA,EAAQ,iBAAM,CAAA,GAAY;AAAA,KAAA,EAAa,CAAA;AAAA,oBACjHA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACZ,iBAAO,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,qBAClBA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QAEC,GAAA,EAAK,CAAC,EAAA,KAAO;AACX,UAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA,GAAI,EAAA;AAAA,QACzB,CAAA;AAAA,QACA,IAAA,EAAK,MAAA;AAAA,QACL,SAAA,EAAU,SAAA;AAAA,QACV,SAAA,EAAW,CAAA;AAAA,QACX,KAAA,EAAO,KAAA;AAAA,QACP,SAAA,EAAU,mBAAA;AAAA,QACV,UAAU,CAAC,CAAA,KAAM,aAAa,CAAA,EAAG,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QAC/C,SAAA,EAAW,CAAC,CAAA,KAAM,aAAA,CAAc,GAAG,CAAC,CAAA;AAAA,QACpC,OAAA,EAAS;AAAA,OAAA;AAAA,MAXJ;AAAA,KAaR,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AC1DO,IAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAU,SAAQ,KAAkD;AACjG,EAAA,uBACED,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,eAAA,EAAgB,UAAoB,OAAA,EACpD,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,OAAA,EAAQ,aAAY,IAAA,EAAK,cAAA,EAAe,aAAA,EAAW,IAAA,EACrF,QAAA,kBAAAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAS,SAAA;AAAA,QACT,CAAA,EAAE,ktBAAA;AAAA,QACF,QAAA,EAAS;AAAA;AAAA,KACX,EACF,CAAA;AAAA,oBACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAyB,QAAA,EAAA,QAAA,EAAM;AAAA,GAAA,EACjD,CAAA;AAEJ,CAAA;ACbO,IAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAU,SAAQ,KAAkD;AACjG,EAAA,uBACED,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,qBAAA,EAAsB,UAAoB,OAAA,EAC1D,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EAA4B,CAAA;AAAA,oBAC3CD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,kBAAAD,KAAC,KAAA,EAAA,EAAI,OAAA,EAAQ,KAAA,EAAM,KAAA,EAAM,8BAA6B,OAAA,EAAQ,WAAA,EAAY,OAAO,EAAE,OAAA,EAAS,SAAQ,EAClG,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,SAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA,SACH;AAAA,wBACDA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,SAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA,SACH;AAAA,wBACDA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,SAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA,SACH;AAAA,wBACDA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,SAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA,SACH;AAAA,wBACDA,GAAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,MAAA,EAAO,GAAE,eAAA,EAAgB;AAAA,OAAA,EACtC,CAAA,EACF,CAAA;AAAA,sBACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gCAA+B,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,sBACrDA,IAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,IAAU,QAAA,EAAA,QAAA,EAAM;AAAA,KAAA,EAC1C;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;ACrBA,SAAS,6BAAA,CAA8B,EAAE,SAAA,EAAW,SAAA,EAAU,EAA8D;AAC1H,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,SAAA;AAAA,QACV,SAAA,EAAU,wBAAA;AAAA,QACV,OAAA,EAAS,MAAM,SAAA,CAAU,UAAA,CAAW,SAAS,CAAA;AAAA,QAE7C,QAAA,EAAA;AAAA,0BAAAC,IAAC,KAAA,EAAA,EAAI,GAAA,EAAK,gBAAgB,GAAA,EAAI,WAAA,EAAY,WAAU,yBAAA,EAA0B,CAAA;AAAA,0BAC9EA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA0B,QAAA,EAAA,WAAA,EAAS;AAAA;AAAA;AAAA,KACrD;AAAA,oBACAD,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,SAAA;AAAA,QACV,SAAA,EAAU,wBAAA;AAAA,QACV,OAAA,EAAS,MAAM,SAAA,CAAU,UAAA,CAAW,MAAM,CAAA;AAAA,QAE1C,QAAA,EAAA;AAAA,0BAAAC,IAAC,KAAA,EAAA,EAAI,GAAA,EAAK,aAAa,GAAA,EAAI,QAAA,EAAS,WAAU,yBAAA,EAA0B,CAAA;AAAA,0BACxEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA0B,QAAA,EAAA,QAAA,EAAM;AAAA;AAAA;AAAA;AAClD,GAAA,EACF,CAAA;AAEJ;AAEA,IAAM,mBAAA,GAAyD;AAAA,EAC7D,IAAA,EAAM,EAAA;AAAA,EACN,gBAAA,EAAkB,oBAAA;AAAA,EAClB,cAAA,EAAgB,EAAA;AAAA,EAChB,aAAA,EAAe,eAAA;AAAA,EACf,aAAA,EAAe,mCAAA;AAAA,EACf,oBAAA,EAAsB,iBAAA;AAAA,EACtB,aAAA,EAAe,mBAAA;AAAA,EACf,iBAAA,EAAmB,yBAAA;AAAA,EACnB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,qBAAA,EAAuB,8BAAA;AAAA,EACvB,gBAAA,EAAkB,2BAAA;AAAA,EAClB,uBAAA,EAAyB,4BAAA;AAAA,EACzB,cAAA,EAAgB,sBAAA;AAAA,EAChB,aAAA,EAAe,UAAA;AAAA,EACf,KAAA,EAAO;AACT,CAAA;AAEA,SAAS,kBAAkB,IAAA,EAAsC;AAC/D,EAAA,MAAM,OAAA,GAA+B;AAAA,IACnC,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,sBAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,uBAAA;AAAA,IACA,kBAAA;AAAA,IACA,yBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,OAAA,GAA+B,CAAC,eAAA,EAAiB,eAAe,CAAA;AACtE,EAAA,MAAM,KAAA,GAA6B,CAAC,OAAA,EAAS,sBAAsB,CAAA;AAEnE,EAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,IAAI,CAAA,EAAG,OAAO,SAAA;AACnC,EAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,IAAI,CAAA,EAAG,OAAO,SAAA;AACnC,EAAA,IAAI,KAAA,CAAM,QAAA,CAAS,IAAI,CAAA,EAAG,OAAO,OAAA;AACjC,EAAA,OAAO,MAAA;AACT;AAmCO,SAAS,kBAAA,CAAmB;AAAA,EACjC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,EAAA;AAAA,EACR,aAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIG,SAAS,KAAK,CAAA;AAE9D,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AACzB,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,CAAE,MAAA,CAAO,CAAC,GAAG,OAAO,CAAA,KAAM,OAAO,CAAA;AAE/E,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B,MAAA;AAAA,IAC/B,wBAAA,EAA0B,MAAA;AAAA,IAC1B,6BAAA,EAA+B,UAAA;AAAA,IAC/B,8BAAA,EAAgC;AAAA,GAClC;AAEA,EAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,SAAA,CAAU,IAAI,CAAA;AAC/C,EAAA,MAAM,YAAY,MAAA,KAAW,SAAA;AAC7B,EAAA,MAAM,gBAAA,GACJ,SAAA,CAAU,IAAA,KAAS,OAAA,KAClB,SAAA,CAAU,cAAc,gBAAA,CAAiB,kBAAA,IACxC,SAAA,CAAU,SAAA,KAAc,gBAAA,CAAiB,kBAAA,CAAA;AAC7C,EAAA,MAAM,oBAAoB,SAAA,CAAU,IAAA,KAAS,eAAA,IAAmB,SAAA,CAAU,SAAS,sBAAA,IAA0B,gBAAA;AAC7G,EAAA,MAAM,aAAA,GAAgB,UAAU,IAAA,KAAS,OAAA,GAAU,UAAU,OAAA,GAAU,mBAAA,CAAoB,UAAU,IAAI,CAAA;AAEzG,EAAA,MAAM,UAAA,GAAa,CAAC,EAAE,OAAA,uBACpBH,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,iBAAA,EAAkB,OAAA,EAAkB,YAAA,EAAW,QAC7E,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,KAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MAEf,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA;AAAA,GAC5B,EACF,CAAA;AAGF,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gCAAA,EAAiC,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB,EAChG,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,oBAAmB,OAAA,EAAS,QAAA,EAAU,YAAA,EAAW,OAAA,EAC/E,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,KAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QAEf,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB;AAAA;AAAA,KACjC,EACF,CAAA;AAAA,oBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,OAAA,IAAW,WAAA,EAAa,GAAA,EAAI,MAAA,EAAO,SAAA,EAAU,eAAc,CAAA,EACvE,CAAA;AAAA,sBACAA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAgB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,sBACtCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mBAAkB,QAAA,EAAA,mBAAA,EAAiB;AAAA,KAAA,EAClD,CAAA;AAAA,IAEC,iBAAA,mBACCD,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAF,GAAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAS,MAAA,EAAQ,CAAA;AAAA,sBAC7BA,GAAAA,CAAC,cAAA,EAAA,EAAkC,KAAA,EAAc,QAAA,EAAU,iBAAiB,MAAM;AAAA,MAAC,MAA9D,YAAkE;AAAA,KAAA,EACzF,CAAA,GACE,gBAAA,mBACFD,IAAAA,CAAAG,UAAA,EACE,QAAA,EAAA;AAAA,sBAAAF,IAAC,UAAA,EAAA,EAAW,OAAA,EAAS,MAAM,mBAAA,CAAoB,KAAK,CAAA,EAAG,CAAA;AAAA,MACtD,aAAA,GACC,aAAA,CAAc,EAAE,SAAA,EAAW,oBAAoB,MAAM;AAAA,MAAC,CAAA,CAAA,EAAI,WAAW,CAAA,mBAErEA,GAAAA,CAAC,6BAAA,EAAA,EAA8B,SAAA,EAAW,eAAA,KAAoB,MAAM;AAAA,MAAC,IAAI,SAAA,EAAsB;AAAA,KAAA,EAEnG,CAAA,mBAEAD,IAAAA,CAAAG,QAAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,YAAA,oBACCH,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,WAAA,EAAY,eAAA;AAAA,YACZ,KAAA,EAAO,KAAA;AAAA,YACP,QAAA,EAAU,SAAA;AAAA,YACV,SAAA,EAAU,oBAAA;AAAA,YACV,UAAU,CAAC,CAAA,KAAM,aAAA,GAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC/C,WAAW,CAAC,CAAA,KAAM,CAAA,CAAE,GAAA,KAAQ,WAAW,aAAA;AAAgB;AAAA,SACzD;AAAA,wBACAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,aAAa,CAAC,KAAA;AAAA,YACxB,SAAA,EAAU,oBAAA;AAAA,YACV,KAAA,EAAO,EAAE,SAAA,EAAW,SAAA,EAAW,OAAO,MAAA,EAAO;AAAA,YAC7C,OAAA,EAAS,aAAA;AAAA,YACV,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EACF,CAAA;AAAA,MAGD,YAAA,IAAgB,cAAc,MAAA,GAAS,CAAA,oBACtCD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAsB,CAAA;AAAA,wBACrCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAsB,QAAA,EAAA,kBAAA,EAAgB,CAAA,EACxD;AAAA,OAAA,EACF,CAAA;AAAA,MAGD,cAAc,MAAA,GAAS,CAAA,oBACtBD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,aAAA,CAAc,KAAK,CAAC,CAAC,GAAG,CAAA,KAAM,QAAQ,QAAQ,CAAA,oBAC7CC,GAAAA,CAAC,gBAAa,QAAA,EAAU,SAAA,EAAW,SAAS,MAAM,aAAA,GAAgB,QAAQ,CAAA,EAAG,CAAA;AAAA,QAE9E,cAAc,IAAA,CAAK,CAAC,CAAC,GAAG,CAAA,KAAM,QAAQ,QAAQ,CAAA,oBAC7CA,GAAAA,CAAC,gBAAa,QAAA,EAAU,SAAA,EAAW,SAAS,MAAM,aAAA,GAAgB,QAAQ,CAAA,EAAG;AAAA,OAAA,EAEjF,CAAA;AAAA,MAAA,CAGA,mBAAmB,WAAA,qBACnBD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,eAAA,oBACCA,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,SAAA;AAAA,YACV,SAAA,EAAU,yBAAA;AAAA,YACV,OAAA,EAAS,MAAM,mBAAA,CAAoB,IAAI,CAAA;AAAA,YAEvC,QAAA,EAAA;AAAA,8BAAAC,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,IAAA;AAAA,kBACN,MAAA,EAAO,IAAA;AAAA,kBACP,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EAAO,cAAA;AAAA,kBACP,WAAA,EAAY,GAAA;AAAA,kBACZ,aAAA,EAAc,OAAA;AAAA,kBACd,cAAA,EAAe,OAAA;AAAA,kBAEf,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,wFAAA,EAAyF;AAAA;AAAA,eACnG;AAAA,cAAM;AAAA;AAAA;AAAA,SAER;AAAA,QAGD,+BACCD,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,SAAA;AAAA,YACV,SAAA,EAAU,yBAAA;AAAA,YACV,OAAA,EAAS,aAAA;AAAA,YAET,QAAA,EAAA;AAAA,8BAAAC,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,IAAA;AAAA,kBACN,MAAA,EAAO,IAAA;AAAA,kBACP,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EAAO,cAAA;AAAA,kBACP,WAAA,EAAY,GAAA;AAAA,kBACZ,aAAA,EAAc,OAAA;AAAA,kBACd,cAAA,EAAe,OAAA;AAAA,kBAEf,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+FAAA,EAAgG;AAAA;AAAA,eAC1G;AAAA,cAAM;AAAA;AAAA;AAAA;AAER,OAAA,EAEJ;AAAA,KAAA,EAEJ,CAAA;AAAA,oBAGFA,GAAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,aAAA;AAAA,QACT,MAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA,EAAS,mBAAmB,MAAA,GAAY;AAAA;AAAA,KAC1C;AAAA,oBAEAA,IAAC,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;AC3TO,SAAS,UAAA,CAAW,EAAE,OAAA,EAAQ,EAAoB;AACvD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIG,SAAS,EAAE,CAAA;AACrC,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,WAAW,MAAA,EAAQ,aAAA,KAAkB,SAAA,EAAU;AAC1E,EAAA,MAAM,CAAC,WAAW,YAAY,CAAA,GAAIA,SAAoB,MAAM,SAAA,EAAU,CAAE,YAAA,EAAc,CAAA;AACtF,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAS,CAAC,CAAA;AAClD,EAAA,MAAM,YAAA,GAAeC,OAAsB,IAAI,CAAA;AAE/C,EAAA,MAAM,UAAA,GAAaA,OAAO,OAAO,CAAA;AACjC,EAAA,UAAA,CAAW,OAAA,GAAU,OAAA;AACrB,EAAA,MAAM,cAAA,GAAiBA,OAA6B,IAAI,CAAA;AAExD,EAAAH,UAAU,MAAM;AACd,IAAA,MAAM,WAAA,GAAc,SAAA,EAAU,CAAE,iBAAA,CAAkB,CAAC,IAAA,KAAS;AAC1D,MAAA,YAAA,CAAa,IAAI,CAAA;AACjB,MAAA,IAAI,IAAA,CAAK,IAAA,KAAS,gBAAA,IAAoB,YAAA,CAAa,OAAA,EAAS;AAC1D,QAAA,SAAA,EAAU,CAAE,aAAA,CAAc,YAAA,CAAa,OAAO,CAAA;AAC9C,QAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAAA,MACzB;AACA,MAAA,IAAI,KAAK,IAAA,KAAS,OAAA,IAAW,IAAA,CAAK,SAAA,KAAcI,iBAAiB,kBAAA,EAAoB;AACnF,QAAA,eAAA,CAAgB,CAAC,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAAA,MAC9B;AACA,MAAA,IAAI,IAAA,CAAK,SAAS,eAAA,EAAiB;AACjC,QAAA,cAAA,CAAe,OAAA,GAAU,WAAW,MAAM;AACxC,UAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,UAAA,UAAA,CAAW,OAAA,EAAQ;AAAA,QACrB,GAAG,GAAI,CAAA;AAAA,MACT;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,WAAA,EAAY;AACZ,MAAA,IAAI,cAAA,CAAe,YAAY,IAAA,EAAM;AACnC,QAAA,YAAA,CAAa,eAAe,OAAO,CAAA;AACnC,QAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AAAA,MAC3B;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,EAAE,QAAQ,OAAA,EAAS,WAAA,GAAc,WAAW,OAAA,EAAS,YAAA,EAAc,eAAA,EAAiB,SAAA,EAAU,GAAI,MAAA;AAGxG,EAAA,MAAM,WAAA,GAAe,OAAqC,WAAA,IAAe,IAAA;AAEzE,EAAA,SAAS,WAAA,GAAc;AACrB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,SAAA,GAAY,WAAA,EAAY;AACxB,IAAA,OAAA,EAAQ;AAAA,EACV;AAEA,EAAA,SAAS,iBAAA,GAAoB;AAC3B,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AACvB,IAAA,SAAA,GAAY,eAAA,EAAgB;AAAA,EAC9B;AAEA,EAAA,SAAS,kBAAkB,QAAA,EAA+B;AACxD,IAAA,SAAA,EAAU,CAAE,KAAA,CAAM,EAAE,QAAA,EAAU,CAAA;AAAA,EAChC;AAEA,EAAA,SAAS,oBAAoB,IAAA,EAAgB;AAC3C,IAAA,SAAA,EAAU,CAAE,YAAY,IAAI,CAAA;AAAA,EAC9B;AAEA,EAAA,SAAS,iBAAA,GAAoB;AAC3B,IAAA,SAAA,GAAY,gBAAA,EAAiB;AAAA,EAC/B;AAEA,EAAA,SAAS,iBAAiB,IAAA,EAAc;AACtC,IAAA,SAAA,EAAU,CAAE,gBAAgB,IAAI,CAAA;AAAA,EAClC;AAEA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,SAAA,GAAY,WAAA,EAAY;AAAA,EAC1B;AAEA,EAAA,SAAS,WAAA,GAAc;AACrB,IAAA,SAAA,GAAY,MAAA,EAAO;AACnB,IAAA,IAAI,OAAO,YAAA,EAAc;AACvB,MAAA,SAAA,GAAY,eAAA,EAAgB;AAAA,IAC9B;AAAA,EACF;AAEA,EAAA,uBACEL,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,aACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAS,OAAA,IAAW,IAAA;AAAA,MACpB,YAAA,EAAc,CAAC,CAAC,YAAA;AAAA,MAChB,eAAA,EAAiB,CAAC,CAAC,eAAA;AAAA,MACnB,WAAA;AAAA,MACA,SAAA,EAAW;AAAA,QACT,MAAA,EAAQ,CAAC,CAAC,SAAA,EAAW,MAAA;AAAA,QACrB,OAAA,EAAS,CAAC,CAAC,SAAA,EAAW,OAAA;AAAA,QACtB,CAAA,EAAG,CAAC,CAAC,SAAA,EAAW,CAAA;AAAA,QAChB,MAAA,EAAQ,CAAC,CAAC,SAAA,EAAW,MAAA;AAAA,QACrB,KAAA,EAAO,CAAC,CAAC,SAAA,EAAW;AAAA,OACtB;AAAA,MACA,OAAA,EAAS,MAAA,CAAO,WAAA,EAAa,IAAA,IAAQ,QAAA;AAAA,MACrC,KAAA;AAAA,MACA,aAAA,EAAe,QAAA;AAAA,MACf,aAAA,EAAe,iBAAA;AAAA,MACf,aAAA,EAAe,iBAAA;AAAA,MACf,eAAA,EAAiB,mBAAA;AAAA,MACjB,aAAA,EAAe,iBAAA;AAAA,MACd,GAAI,aAAA,KAAkB,MAAA,IAAa,EAAE,aAAA,EAAc;AAAA,MACpD,SAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA,EAAc,gBAAA;AAAA,MACd,MAAA,EAAQ,UAAA;AAAA,MACR,QAAA,EAAU,WAAA;AAAA,MACV,OAAA,EAAS;AAAA;AAAA,GACX,EACF,CAAA;AAEJ;ACzHA,IAAM,WAAA,GAAsC;AAAA,EAC1C,IAAA,EAAM,eAAA;AAAA,EACN,GAAA,EAAK,cAAA;AAAA,EACL,GAAA,EAAK,gBAAA;AAAA,EACL,GAAA,EAAK;AACP,CAAA;AAEO,SAAS,YAAA,CAAa,EAAE,KAAA,EAAO,QAAA,EAAS,EAAsB;AACnE,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,wBAAA;AAAA,MACV,oBAAkB,KAAA,CAAM,WAAA;AAAA,MACxB,IAAA,EAAK,QAAA;AAAA,MACL,QAAA,EAAU,CAAA;AAAA,MACV,OAAA,EAAS,MAAM,QAAA,CAAS,KAAK,CAAA;AAAA,MAC7B,WAAW,CAAC,CAAA,KAAM,EAAE,GAAA,KAAQ,OAAA,IAAW,SAAS,KAAK,CAAA;AAAA,MAErD,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAAA,EAA8B,gBAAM,QAAA,EAAS,CAAA;AAAA,0BAC7DD,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,YAAA,WAAA,CAAY,KAAA,CAAM,IAAI,CAAA,IAAK,KAAA,CAAM,IAAA;AAAA,YAAK,QAAA;AAAA,YAAI,KAAA,CAAM,QAAA;AAAA,YAAS,QAAA;AAAA,YAAI,KAAA,CAAM;AAAA,WAAA,EACtE;AAAA,SAAA,EACF,CAAA;AAAA,wBACAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA;AAAA,YAAA,KAAA,CAAM,GAAA;AAAA,YAAI;AAAA,WAAA,EAAK,CAAA;AAAA,UACvD,MAAM,WAAA,oBAAeC,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA0B,QAAA,EAAA,WAAA,EAAS;AAAA,SAAA,EAC3E;AAAA;AAAA;AAAA,GACF;AAEJ;ACTA,IAAM,aAAA,GAAgB,CAAC,8BAAA,EAA2B,4BAAA,EAAyB,cAAc,CAAA;AAEzF,IAAM,kBAAA,GAA6C;AAAA,EACjD,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,SAAS,kBAAA,CAAmB;AAAA,EACjC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B,MAAA;AAAA,IAC/B,wBAAA,EAA0B,MAAA;AAAA,IAC1B,6BAAA,EAA+B,UAAA;AAAA,IAC/B,8BAAA,EAAgC;AAAA,GAClC;AAEA,EAAA,MAAM,SAAA,GAAsC;AAAA,IAC1C,KAAA,EAAO,SAAA,KAAc,QAAA,GAAW,YAAA,GAAe,aAAA;AAAA,IAC/C,aAAA,EAAe,oBAAA;AAAA,IACf,YAAA,EAAc,iBAAA;AAAA,IACd,oBAAA,EAAsB;AAAA,GACxB;AAEA,EAAA,MAAM,YAAA,GAAyC;AAAA,IAC7C,KAAA,EAAO,SAAA,KAAc,QAAA,GAAW,sCAAA,GAAyC,uCAAA;AAAA,IACzE,aAAA,EAAe,wCAAA;AAAA,IACf,YAAA,EAAc,yBAAA;AAAA,IACd,oBAAA,EAAsB;AAAA,GACxB;AAEA,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EAAsC,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB,EACrG,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAA,SAAA,CAAU,IAAI,CAAA,EAAE,CAAA;AAAA,sBACnDA,GAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,sBAAA,EAAwB,QAAA,EAAA,YAAA,CAAa,IAAI,CAAA,EAAE;AAAA,KAAA,EAC1D,CAAA;AAAA,IAEC,IAAA,KAAS,OAAA,oBACRD,IAAAA,CAAAG,UAAA,EACE,QAAA,EAAA;AAAA,sBAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,iBAAA;AAAA,YACV,eAAa,SAAA,KAAc,QAAA;AAAA,YAC3B,OAAA,EAAS,MAAM,iBAAA,CAAkB,QAAQ,CAAA;AAAA,YAC1C,QAAA,EAAA;AAAA;AAAA,SAED;AAAA,wBACAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,iBAAA;AAAA,YACV,eAAa,SAAA,KAAc,SAAA;AAAA,YAC3B,OAAA,EAAS,MAAM,iBAAA,CAAkB,SAAS,CAAA;AAAA,YAC3C,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EACF,CAAA;AAAA,sBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,0BAC3CA,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,mBAAA;AAAA,cACV,WAAA,EAAY,MAAA;AAAA,cACZ,KAAA,EAAO,MAAA;AAAA,cACP,GAAA,EAAI,GAAA;AAAA,cACJ,UAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA;AAChD,SAAA,EACF,CAAA;AAAA,wBACAD,KAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAoB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EACvD,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,0BAC7CA,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,MAAA;AAAA,cACL,SAAA,EAAU,mBAAA;AAAA,cACV,WAAA,EAAY,KAAA;AAAA,cACZ,KAAA,EAAO,QAAA;AAAA,cACP,SAAA,EAAW,CAAA;AAAA,cACX,QAAA,EAAU,CAAC,CAAA,KAAM,gBAAA,CAAiB,EAAE,MAAA,CAAO,KAAA,CAAM,aAAa;AAAA;AAAA;AAChE,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,wBAC5CD,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,mBAAA;AAAA,YACV,KAAA,EAAO,OAAA;AAAA,YACP,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,cAAA,MAAM,CAAA,GAAI,EAAE,MAAA,CAAO,KAAA;AACnB,cAAA,eAAA,CAAgB,CAAC,CAAA;AACjB,cAAA,IAAI,mBAAmB,CAAC,CAAA,EAAG,gBAAA,CAAiB,kBAAA,CAAmB,CAAC,CAAC,CAAA;AAAA,YACnE,CAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,IAAA,EAAK,QAAA,EAAA,2BAAA,EAAW,CAAA;AAAA,8BAC9BA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,2BAAA,EAAW,CAAA;AAAA,8BAC9BA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,6BAAA,EAAa,CAAA;AAAA,8BAChCA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,0BAAA,EAAU,CAAA;AAAA,8BAC7BA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,yBAAA,EAAS,CAAA;AAAA,8BAC5BA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAK,QAAA,EAAA,8BAAA,EAAc;AAAA;AAAA;AAAA;AACnC,OAAA,EACF,CAAA;AAAA,sBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,YAAO,IAAA,EAAK,QAAA,EAAS,WAAU,sBAAA,EAAuB,OAAA,EAAS,SAAS,QAAA,EAAA,QAAA,EAEzE,CAAA;AAAA,wBACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAU,CAAC,MAAA,IAAU,SAAA,EAAW,OAAA,EAAS,aAAa,QAAA,EAAA,iBAAA,EAE3G;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IAGD,SAAS,eAAA,oBACRA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA,aAAA,CAAc,GAAA,CAAI,CAAC,MAAM,CAAA,qBACxBD,IAAAA,CAAC,KAAA,EAAA,EAAY,WAAU,yBAAA,EACrB,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA0B,CAAA;AAAA,sBACzCA,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,IAAA,EAAK;AAAA,KAAA,EAAA,EAFJ,CAGV,CACD,CAAA,EACH,CAAA;AAAA,IAGD,IAAA,KAAS,cAAA,oBACRD,IAAAA,CAAAG,UAAA,EACE,QAAA,EAAA;AAAA,sBAAAF,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACdA,GAAAA,CAAC,gBAAqB,KAAA,EAAO,CAAA,EAAG,UAAU,aAAA,EAAA,EAAvB,CAAsC,CAC1D,CAAA,EACH,CAAA;AAAA,sBACAA,IAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,OAAA,EAAS,QAAA,EAAA,QAAA,EAEzE;AAAA,KAAA,EACF,CAAA;AAAA,IAGD,SAAS,sBAAA,IAA0B,mBAAA,oBAClCD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAAA,EAA6B,8BAAoB,IAAA,EAAK,CAAA;AAAA,sBAEnED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA,mBAAA,CAAoB,IAAA,KAAS,OAAA,GAC1B,cAAA,GACA,mBAAA,CAAoB,IAAA,KAAS,KAAA,GAC3B,SAAA,GACA,gBAAA,EACR,CAAA;AAAA,wBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,mBAAA,CAAoB,KAAA,EAAM,CAAA;AAAA,0BACjCA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,MAAM,MAAA,CAAO,mBAAA,CAAoB,KAAK,GAAG,QAAA,EAAA,MAAA,EAEzG;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAAA,EAA4B,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,wBAC1DD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,KAAC,MAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,mBAAA,CAAoB,OAAO,cAAA,EAAe;AAAA,YAAE,GAAA;AAAA,YAAE,mBAAA,CAAoB;AAAA,WAAA,EACrE,CAAA;AAAA,0BACAC,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,sBAAA;AAAA,cACV,OAAA,EAAS,MAAM,MAAA,CAAO,CAAA,EAAG,oBAAoB,MAAM,CAAA,CAAA,EAAI,mBAAA,CAAoB,QAAQ,CAAA,CAAE,CAAA;AAAA,cACtF,QAAA,EAAA;AAAA;AAAA;AAED,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,MAEC,oBAAoB,SAAA,oBACnBD,IAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,0BAAA,EAA2B,QAAA,EAAA;AAAA,QAAA,yBAAA;AAAA,QACd,IAAI,IAAA,CAAK,mBAAA,CAAoB,SAAS,EAAE,kBAAA;AAAmB,OAAA,EACrF,CAAA;AAAA,sBAGFC,IAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,oBAAA,EAAqB,OAAA,EAAS,OAAA,EAAS,QAAA,EAAA,MAAA,EAEvE;AAAA,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AC9OA,IAAM,mBAAA,GAAmC;AAAA,EACvC;AAAA,IACE,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU,MAAA;AAAA,IACV,GAAA,EAAK,GAAA;AAAA,IACL,WAAA,EAAa,KAAA;AAAA,IACb,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe,SAAA;AAAA,IACf,WAAA,EAAa;AAAA;AAEjB,CAAA;AAEA,IAAM,WAAA,GAA+E;AAAA,EACnF,EAAA,EAAI;AAAA,IACF;AAAA,MACE,OAAA,EAAS,cAAA;AAAA,MACT,QAAA,EAAU,WAAA;AAAA,MACV,GAAA,EAAK,GAAA;AAAA,MACL,WAAA,EAAa,KAAA;AAAA,MACb,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,QAAA;AAAA,MACV,aAAA,EAAe,SAAA;AAAA,MACf,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,cAAA;AAAA,MACT,QAAA,EAAU,WAAA;AAAA,MACV,GAAA,EAAK,GAAA;AAAA,MACL,WAAA,EAAa,KAAA;AAAA,MACb,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,MAAA;AAAA,MACV,aAAA,EAAe,SAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,EAAA,EAAI;AAAA,IACF;AAAA,MACE,OAAA,EAAS,WAAA;AAAA,MACT,QAAA,EAAU,QAAA;AAAA,MACV,GAAA,EAAK,GAAA;AAAA,MACL,WAAA,EAAa,KAAA;AAAA,MACb,IAAA,EAAM,GAAA;AAAA,MACN,IAAA,EAAM,KAAA;AAAA,MACN,QAAA,EAAU,MAAA;AAAA,MACV,aAAA,EAAe,QAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,EAAA,EAAI;AAAA,IACF;AAAA,MACE,OAAA,EAAS,WAAA;AAAA,MACT,QAAA,EAAU,QAAA;AAAA,MACV,GAAA,EAAK,GAAA;AAAA,MACL,WAAA,EAAa,KAAA;AAAA,MACb,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM,KAAA;AAAA,MACN,QAAA,EAAU,MAAA;AAAA,MACV,aAAA,EAAe,SAAA;AAAA,MACf,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,UAAA;AAAA,MACT,QAAA,EAAU,OAAA;AAAA,MACV,GAAA,EAAK,GAAA;AAAA,MACL,WAAA,EAAa,KAAA;AAAA,MACb,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM,KAAA;AAAA,MACN,QAAA,EAAU,MAAA;AAAA,MACV,aAAA,EAAe,SAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,YAAA,GAAoC;AAAA,EACxC,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,oBAAA;AAAA,EACP,MAAA,EAAQ,GAAA;AAAA,EACR,QAAA,EAAU,KAAA;AAAA,EACV,SAAA,EAAW,IAAI,IAAA,CAAK,IAAA,CAAK,GAAA,KAAQ,EAAA,GAAK,EAAA,GAAK,GAAI,CAAA,CAAE,WAAA;AACnD,CAAA;AAIO,SAAS,UAAA,CAAW,EAAE,OAAA,EAAQ,EAAoB;AACvD,EAAA,MAAM,EAAE,SAAA,EAAW,aAAA,EAAe,MAAA,KAAW,SAAA,EAAU;AAEvD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,SAAmB,OAAO,CAAA;AAClD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAwB,QAAQ,CAAA;AAClE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,SAAS,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,QAAAA,CAAsB,EAAE,CAAA;AACpD,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAIA,SAAqC,IAAI,CAAA;AAC/F,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAS,KAAK,CAAA;AAEhD,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAA,eAAe,eAAA,GAAkB;AAC/B,IAAA,OAAA,CAAQ,eAAe,CAAA;AACvB,IAAA,YAAA,CAAa,IAAI,CAAA;AAEjB,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,CAAc;AAAA,QACxC,OAAA;AAAA,QACA,MAAA,EAAQ,OAAO,MAAM,CAAA;AAAA,QACrB,QAAA;AAAA,QACA;AAAA,OACD,CAAA;AACD,MAAA,IAAI,MAAA,CAAO,MAAA,EAAQ,SAAA,CAAU,MAAA,CAAO,MAAM,CAAA;AAAA,IAC5C,CAAA,CAAA,MAAQ;AAEN,MAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,MAAM,UAAA,CAAW,CAAA,EAAG,IAAI,CAAC,CAAA;AAC5C,MAAA,SAAA,CAAU,WAAA,CAAY,OAAO,CAAA,IAAK,mBAAmB,CAAA;AAAA,IACvD,CAAA,SAAE;AACA,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,OAAA,CAAQ,cAAc,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,eAAe,kBAAkB,KAAA,EAAkB;AACjD,IAAA,IAAI,CAAC,aAAA,EAAe;AACpB,IAAA,YAAA,CAAa,IAAI,CAAA;AAEjB,IAAA,MAAM,IAAA,GAAwB;AAAA,MAC5B,SAAS,CAAA,EAAG,KAAA,CAAM,QAAQ,CAAA,CAAA,EAAI,IAAA,CAAK,KAAK,CAAA,CAAA;AAAA,MACxC,MAAA,EAAQ,OAAO,MAAM,CAAA;AAAA,MACrB,QAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,YAAA,CAAa,IAAI,CAAA;AAC7C,MAAA,sBAAA,CAAuB,OAAO,mBAAmB,CAAA;AAAA,IACnD,CAAA,CAAA,MAAQ;AAEN,MAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,MAAM,UAAA,CAAW,CAAA,EAAG,GAAG,CAAC,CAAA;AAC3C,MAAA,sBAAA,CAAuB,EAAE,GAAG,YAAA,EAAc,QAAA,EAAU,CAAA;AAAA,IACtD,CAAA,SAAE;AACA,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,OAAA,CAAQ,sBAAsB,CAAA;AAAA,IAChC;AAAA,EACF;AAEA,EAAA,SAAS,WAAW,KAAA,EAAe;AACjC,IAAA,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,KAAK,CAAA,CAAE,MAAM,MAAM;AAAA,IAAC,CAAC,CAAA;AAAA,EACrD;AAEA,EAAA,uBACEH,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,mBAAA;AAAA,MACA,SAAA;AAAA,MACA,iBAAA,EAAmB,YAAA;AAAA,MACnB,cAAA,EAAgB,SAAA;AAAA,MAChB,gBAAA,EAAkB,WAAA;AAAA,MAClB,eAAA,EAAiB,UAAA;AAAA,MACjB,WAAA,EAAa,eAAA;AAAA,MACb,aAAA,EAAe,iBAAA;AAAA,MACf,MAAA,EAAQ,UAAA;AAAA,MACR;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;ACzLA,IAAA,wBAAA,GAA8B,OAAA,CAAA,yBAAA,EAAA,CAAA;AAE9B,IAAA,aAAA,GAAuB,OAAA,CAAA,cAAA,EAAA,CAAA;AAgBvB,IAAM,YAAY,UAAA,CAA0C,SAASM,UAAAA,CACnE,EAAE,SAAS,GAAA,EAAK,GAAA,EAAK,OAAA,EAAS,IAAA,EAAM,OAAO,WAAA,EAAa,KAAA,GAAQ,8BAA8B,GAAG,KAAA,IACjG,GAAA,EACA;AACA,EAAA,uBACEP,IAAAA,CAAC,KAAA,EAAA,EAAK,GAAG,KAAA,EAAO,QAAQ,IAAA,EAAM,GAAA,EAAU,OAAA,EAAS,CAAA,IAAA,EAAO,WAAW,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,EAAI,KAAA,EAAO,MAAM,KAAA,EAChG,QAAA,EAAA;AAAA,IAAA,KAAA,mBAAQC,GAAAA,CAAC,OAAA,EAAA,EAAO,QAAA,EAAA,KAAA,EAAM,CAAA,GAAW,IAAA;AAAA,oBAClCA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,GAAA,EAAK,MAAM,OAAA,EAAS,CAAA;AAAA,oBAC7BA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,GAAA,EAAK,MAAM,OAAA,EAAS;AAAA,GAAA,EAC/B,CAAA;AAEJ,CAAC,CAAA;AAED,SAAA,CAAU,WAAA,GAAc,WAAA;AAaxB,SAAS,oBAAoB,KAAA,EAAyB;AACpD,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,MAAA,CAAO,YAAA,CAAa,CAAA,GAAI,GAAI,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA;AAChE;AAEA,SAAS,wBAAwB,KAAA,EAAyB;AACxD,EAAA,OAAO,MAAM,IAAA,CAAK,IAAI,aAAY,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AACnD;AAEO,IAAM,SAAS,UAAA,CAAuC,SAASF,OAAAA,CACpE,EAAE,UAAU,SAAA,EAAW,OAAA,GAAU,SAAA,EAAW,KAAA,GAAQ,KAAK,IAAA,GAAO,GAAA,EAAK,OAAO,GAAG,KAAA,IAC/E,GAAA,EACA;AACA,EAAA,MAAM,MAAA,GAAS,IAAI,aAAA,CAAAS,OAAAA,CAAW,IAAI,wBAAA,CAAAC,OAAAA,CAAkB,KAAK,CAAC,CAAA;AAC1D,EAAA,MAAM,SAAA,GAAY,wBAAwB,KAAK,CAAA;AAC/C,EAAA,MAAM,YAAA,GAAe,oBAAoB,SAAS,CAAA;AAClD,EAAA,MAAA,CAAO,OAAA,CAAQ,cAAc,MAAM,CAAA;AACnC,EAAA,MAAA,CAAO,IAAA,EAAK;AAEZ,EAAA,MAAM,QAAqB,MAAA,CAAO,OAAA;AAElC,EAAA,uBACER,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,OAAA;AAAA,MACA,KAAK,KAAA,CACF,GAAA;AAAA,QAAI,CAAC,GAAA,EAAK,QAAA,KACT,IAAI,GAAA,CAAI,CAAC,MAAM,SAAA,KAAe,CAAC,IAAA,GAAO,CAAA,EAAA,EAAK,SAAS,CAAA,CAAA,EAAI,QAAQ,sBAAsB,EAAG,CAAA,CAAE,KAAK,GAAG;AAAA,OACrG,CACC,KAAK,GAAG,CAAA;AAAA,MACX,OAAA;AAAA,MACA,KAAK,KAAA,CACF,GAAA;AAAA,QAAI,CAAC,GAAA,EAAK,QAAA,KACT,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,EAAM,SAAA,KAAe,IAAA,GAAO,CAAA,EAAA,EAAK,SAAS,CAAA,CAAA,EAAI,QAAQ,sBAAsB,EAAG,CAAA,CAAE,KAAK,GAAG;AAAA,OACpG,CACC,KAAK,GAAG,CAAA;AAAA,MACX,GAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAa,KAAA,CAAM;AAAA;AAAA,GACrB;AAEJ,CAAC,CAAA;AC/EM,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,wCAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,OAAA;AAAA,MACP,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB;AAAA,MAGlC,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,0BAC1CA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6BAAA,EACb,QAAA,kBAAAA,IAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,oBAAA,EAAqB,SAAS,OAAA,EAAS,YAAA,EAAW,SAChF,QAAA,kBAAAA,GAAAA,CAAC,SAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,SAAQ,WAAA,EAAY,IAAA,EAAK,QAAO,aAAA,EAAW,IAAA,EACrE,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,eAAc,OAAA,EAAQ,CAAA,EAC7F,GACF,CAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,QAGC,aAAA,mBACCD,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAAF,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAO,KAAA,EAAO,aAAA,EAAe,IAAA,EAAM,KAAK,OAAA,EAAS,MAAA,GAAS,YAAY,SAAA,EAAW,OAAA,EAAQ,eAAc,CAAA,EAC1G,CAAA;AAAA,0BAEAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAA8B,QAAA,EAAA,4FAAA,EAE3C,CAAA;AAAA,0BAGAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,QAAA,EAAA,aAAA,EAAc,CAAA;AAAA,4BACxDA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,yBAAA,EAA0B,OAAA,EAAS,MAAA,EAAQ,cAAW,cAAA,EACnF,QAAA,EAAA,MAAA,mBACCD,IAAAA,CAAAG,UAAA,EACE,QAAA,EAAA;AAAA,8BAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,YAAO,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,cAAA,EAAe,CAAA;AAAA,gCAChDA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,CAAA,EAAE,sBAAA;AAAA,oBACF,MAAA,EAAO,OAAA;AAAA,oBACP,WAAA,EAAY,KAAA;AAAA,oBACZ,aAAA,EAAc,OAAA;AAAA,oBACd,cAAA,EAAe;AAAA;AAAA;AACjB,eAAA,EACF,CAAA;AAAA,cAAM;AAAA,aAAA,EAER,CAAA,mBAEAD,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,8BAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,GAAE,GAAA,EAAI,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,KAAI,EAAA,EAAG,KAAA,EAAM,MAAA,EAAO,cAAA,EAAe,aAAY,KAAA,EAAM,CAAA;AAAA,gCACxFA,GAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,CAAA,EAAE,mDAAA;AAAA,oBACF,MAAA,EAAO,cAAA;AAAA,oBACP,WAAA,EAAY,KAAA;AAAA,oBACZ,aAAA,EAAc;AAAA;AAAA;AAChB,eAAA,EACF,CAAA;AAAA,cAAM;AAAA,aAAA,EAER,CAAA,EAEJ;AAAA,WAAA,EACF;AAAA,SAAA,EACF,oBAEAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,sBAAA,EAAoB,CAAA;AAAA,wBAG1DA,IAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;ACvGO,SAAS,YAAA,CAAa,EAAE,OAAA,EAAQ,EAAsB;AAC3D,EAAA,MAAM,EAAE,aAAA,EAAe,MAAA,EAAO,GAAI,SAAA,EAAU;AAC5C,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AACrD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,YAAA,GAAeC,OAA6C,IAAI,CAAA;AAEtE,EAAAH,SAAAA;AAAA,IACE,MAAM,MAAM;AACV,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,IACtE,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,IAAI,CAAC,aAAA,EAAe;AACpB,IAAA,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,aAAa,CAAA,CAAE,KAAK,MAAM;AACtD,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AACpE,MAAA,YAAA,CAAa,OAAA,GAAU,WAAW,MAAM;AACtC,QAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AACvB,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB,GAAG,GAAI,CAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA,EAAQ,UAAA;AAAA,MACR;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;AC3CA,IAAM,eAAA,GAA4D;AAAA,EAChE,IAAA,EAAM,EAAA;AAAA,EACN,QAAA,EAAU,4BAAA;AAAA,EACV,KAAA,EAAO,wBAAA;AAAA,EACP,OAAA,EAAS,2BAAA;AAAA,EACT,MAAA,EAAQ,+BAAA;AAAA,EACR,UAAA,EAAY,8BAAA;AAAA,EACZ,SAAA,EAAW,iDAAA;AAAA,EACX,oBAAA,EAAsB,0CAAA;AAAA,EACtB,6BAAA,EAA+B,8BAAA;AAAA,EAC/B,OAAA,EAAS,+BAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAGA,IAAM,eAAA,uBAAsB,GAAA,CAA8B;AAAA,EACxD,UAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAGD,IAAM,kBAAA,uBAAyB,GAAA,CAA8B;AAAA,EAC3D,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAeM,SAAS,YAAA,CAAa;AAAA,EAC3B,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,SAAA,GAAY,WAAA,IAAe,WAAA,GAAc,WAAA,CAAY,SAAA,GAAY,IAAA;AACvE,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,KAAS,SAAA,GAAY,YAAY,IAAA,GAAO,IAAA;AACjE,EAAA,MAAM,eAAe,WAAA,CAAY,IAAA,KAAS,OAAA,GAAW,WAAA,CAAY,WAAW,IAAA,GAAQ,IAAA;AAEpF,EAAA,MAAM,OAAA,GAAU,YAAY,IAAA,KAAS,OAAA;AACrC,EAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,GAAA,CAAI,WAAA,CAAY,IAAI,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,YAAY,IAAA,KAAS,SAAA;AACvC,EAAA,MAAM,OAAA,GAAU,YAAY,IAAA,KAAS,OAAA;AACrC,EAAA,MAAM,cAAc,SAAA,KAAc,IAAA,IAAQ,kBAAA,CAAmB,GAAA,CAAI,YAAY,IAAI,CAAA;AAEjF,EAAA,MAAM,SAAA,GACJ,eAAeS,UAAAA,CAAW,SAAA,GAAY,iBAAiB,UAAA,KAAeA,UAAAA,CAAW,SAAS,WAAA,GAAc,WAAA;AAE1G,EAAA,MAAM,SAAA,GAAY,eAAeA,UAAAA,CAAW,SAAA,GAAY,cAAc,UAAA,KAAeA,UAAAA,CAAW,SAAS,QAAA,GAAW,QAAA;AAEpH,EAAA,uBACEV,IAAAA,CAAAG,QAAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA,IAAe,SAAA,oBACdH,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAA,EAA0B,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,wBAC9CA,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2BACX,QAAA,EAAA,SAAA,CAAU,OAAA,CAAQ,MAAM,GAAA,CAAI,CAAC,MAAM,CAAA,qBAClCA,IAAC,IAAA,EAAA,EAAW,SAAA,EAAU,0BACnB,QAAA,EAAA,IAAA,EAAA,EADM,CAET,CACD,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA,sBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAuB,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,0BAC9CA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAwB,QAAA,EAAA,SAAA,CAAU,QAAQ,OAAA,EAAQ;AAAA,SAAA,EACpE,CAAA;AAAA,wBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAuB,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,0BAC1CA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAwB,QAAA,EAAA,SAAA,CAAU,QAAQ,GAAA,EAAI;AAAA,SAAA,EAChE;AAAA,OAAA,EACF,CAAA;AAAA,sBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,SAAS,WAAA,EAChD,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,IAAA;AAAA,cACN,MAAA,EAAO,IAAA;AAAA,cACP,OAAA,EAAQ,WAAA;AAAA,cACR,IAAA,EAAK,MAAA;AAAA,cACL,aAAA,EAAW,IAAA;AAAA,cACX,OAAO,EAAE,SAAA,EAAW,UAAU,eAAA,GAAkB,cAAA,EAAgB,YAAY,iBAAA,EAAkB;AAAA,cAE9F,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA;AAAA,WAC9G;AAAA,UAAM;AAAA,SAAA,EAER,CAAA;AAAA,QACC,2BAAWA,GAAAA,CAAC,SAAI,SAAA,EAAU,uBAAA,EAAyB,oBAAU,WAAA,EAAY;AAAA,OAAA,EAC5E;AAAA,KAAA,EACF,CAAA;AAAA,IAGD,WAAW,YAAA,oBACVD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAAA,EAAgC,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,sBAC1DA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAmC,QAAA,EAAA,YAAA,EAAa;AAAA,KAAA,EACjE,CAAA;AAAA,IAGD,OAAA,oBACCA,GAAAA,CAAC,QAAA,EAAA,EAAO,WAAU,uCAAA,EAAwC,OAAA,EAAS,eAAe,QAAA,EAAA,aAAA,EAElF,CAAA;AAAA,IAAA,CAGA,cAAc,SAAA,IAAa,OAAA,qBAC3BD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,WAAA;AAAA,YACR,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,SAAA,EAAW,CAAA,qBAAA,EAAwB,UAAA,GAAa,6BAAA,GAAgC,EAAE,CAAA,CAAA;AAAA,YAClF,aAAA,EAAW,IAAA;AAAA,YAEX,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,sBAAA,EAAuB,aAAY,GAAA,EAAI,CAAA;AAAA,8BACzFA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,IAAA;AAAA,kBACH,EAAA,EAAG,IAAA;AAAA,kBACH,CAAA,EAAE,IAAA;AAAA,kBACF,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EACE,SAAA,GAAY,4BAAA,GAA+B,OAAA,GAAU,0BAAA,GAA6B,sBAAA;AAAA,kBAEpF,WAAA,EAAY,GAAA;AAAA,kBACZ,aAAA,EAAc,OAAA;AAAA,kBACd,eAAA,EAAiB,aAAa,YAAA,GAAe,OAAA;AAAA,kBAC7C,SAAA,EAAU,mBAAA;AAAA,kBACV,KAAA,EAAO,EAAE,UAAA,EAAY,UAAA,GAAa,SAAS,sCAAA;AAAuC;AAAA;AACpF;AAAA;AAAA,SACF;AAAA,wBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,SAAA,EAAW,GAAA,EAAK,SAAA,EAAW,SAAA,EAAU,wBAAuB,CAAA,EACxE;AAAA,OAAA,EACF,CAAA;AAAA,MAEC,UAAA,oBACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,yBAAA,EACV,QAAA,EAAA,UAAA,KAAeS,UAAAA,CAAW,SAAA,GACvB,6BAAA,GACA,UAAA,KAAeA,UAAAA,CAAW,MAAA,GACxB,6BACA,2BAAA,EACR,CAAA;AAAA,MAGD,OAAA,IAAW,OAAA,IAAW,WAAA,IAAe,WAAA,IAAe,WAAA,CAAY,SAAA,oBAC/DT,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,0CAAA,EAA2C,OAAA,EAAS,SAAS,QAAA,EAAA,WAAA,EAE/E;AAAA,KAAA,EAEJ,CAAA;AAAA,IAGD,aAAa,IAAA,oBACZD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,kBAAA,EAAgB,CAAA;AAAA,sBACzDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAyB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,sBAC9CD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,YAC/C,QAAA,EAAA,MAAA,mBACCD,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,YAAO,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,cAAA,EAAe,CAAA;AAAA,4BAChDA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,CAAA,EAAE,sBAAA;AAAA,gBACF,MAAA,EAAO,OAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe;AAAA;AAAA;AACjB,WAAA,EACF,CAAA;AAAA,UAAM;AAAA,SAAA,EAER,CAAA,mBAEAD,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,GAAE,GAAA,EAAI,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,KAAI,EAAA,EAAG,KAAA,EAAM,MAAA,EAAO,cAAA,EAAe,aAAY,KAAA,EAAM,CAAA;AAAA,4BACxFA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,CAAA,EAAE,mDAAA;AAAA,gBACF,MAAA,EAAO,cAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc;AAAA;AAAA;AAChB,WAAA,EACF,CAAA;AAAA,UAAM;AAAA,SAAA,EAER,CAAA,EAEJ,CAAA;AAAA,QACC,WAAA,oBACCD,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBAAA,EAAuB,IAAA,EAAM,WAAA,EAAa,MAAA,EAAO,QAAA,EAAS,GAAA,EAAI,qBAAA,EACzE,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,EAAA;AAAA,4BAAAC,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,CAAA,EAAE,mDAAA;AAAA,gBACF,MAAA,EAAO,cAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc;AAAA;AAAA,aAChB;AAAA,4BACAA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,CAAA,EAAE,sBAAA;AAAA,gBACF,MAAA,EAAO,cAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe;AAAA;AAAA;AACjB,WAAA,EACF,CAAA;AAAA,UAAM;AAAA,SAAA,EAER;AAAA,OAAA,EAEJ;AAAA,KAAA,EACF,CAAA;AAAA,IAGD,SAAA,oBACCA,GAAAA,CAAC,QAAA,EAAA,EAAO,WAAU,uCAAA,EAAwC,OAAA,EAAS,QAAQ,QAAA,EAAA,MAAA,EAE3E,CAAA;AAAA,oBAGFA,GAAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,eAAA,CAAgB,WAAA,CAAY,IAAI,CAAA;AAAA,QACzC,QAAQ,OAAA,GAAU,OAAA,GAAU,UAAA,GAAa,SAAA,GAAY,YAAY,SAAA,GAAY;AAAA;AAAA;AAC/E,GAAA,EACF,CAAA;AAEJ;AC1PA,SAAS,cAAc,OAAA,EAAyB;AAC9C,EAAA,MAAM,CAAA,GAAI,WAAW,OAAO,CAAA;AAC5B,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAI,OAAA,GAAU,CAAA,CAAE,eAAe,MAAA,EAAW,EAAE,qBAAA,EAAuB,CAAA,EAAG,CAAA;AACtF;AAEA,SAAS,SAAS,MAAA,EAAqC;AACrD,EAAA,OAAO,GAAG,MAAA,CAAO,IAAI,CAAA,CAAA,EAAI,MAAA,CAAO,UAAU,QAAQ,CAAA,CAAA;AACpD;AAiCO,SAAS,iBAAA,CAAkB;AAAA,EAChC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,MAAM,gBAAgB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,YAAY,CAAA;AACzD,EAAA,MAAM,cAAc,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,EAAE,YAAY,CAAA;AACxD,EAAA,MAAM,WAAA,GAAc,aAAA,GAAgB,QAAA,CAAS,aAAa,CAAA,GAAI,EAAA;AAC9D,EAAA,MAAM,SAAA,GAAY,CAAC,CAAC,aAAA,IAAiB,CAAC,CAAC,MAAA,IAAU,CAAC,CAAC,WAAA,CAAY,IAAA,EAAK,IAAK,CAAC,gBAAA;AAE1E,EAAA,MAAM,KAAA,GAAQ,IAAA,KAAS,MAAA,GAAS,MAAA,GAAS,OAAA;AAEzC,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,qCAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,OAAA;AAAA,MACP,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB;AAAA,MAGlC,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,YAAA,QAAA,oBACCC,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,WAAU,oBAAA,EAAqB,OAAA,EAAS,MAAA,EAAQ,YAAA,EAAW,QAC/E,QAAA,kBAAAA,GAAAA,CAAC,SAAI,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,QAAO,aAAA,EAAW,IAAA,EACrE,QAAA,kBAAAA,GAAAA,CAAC,UAAK,CAAA,EAAE,eAAA,EAAgB,MAAA,EAAO,cAAA,EAAe,aAAY,GAAA,EAAI,aAAA,EAAc,SAAQ,cAAA,EAAe,OAAA,EAAQ,GAC7G,CAAA,EACF,CAAA;AAAA,4BAEFA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sBAAsB,QAAA,EAAA,KAAA,EAAM;AAAA,WAAA,EAC5C,CAAA;AAAA,UACC,CAAC,gCACAA,GAAAA,CAAC,SAAI,SAAA,EAAU,6BAAA,EACb,0BAAAA,GAAAA,CAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAU,sBAAqB,OAAA,EAAS,OAAA,EAAS,cAAW,OAAA,EAChF,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAK,MAAA,EAAO,IAAA,EAAK,SAAQ,WAAA,EAAY,IAAA,EAAK,QAAO,aAAA,EAAW,IAAA,EACrE,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,eAAc,OAAA,EAAQ,CAAA,EAC7F,GACF,CAAA,EACF;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGC,IAAA,KAAS,MAAA,oBACRD,IAAAA,CAAAG,UAAA,EAEE,QAAA,EAAA;AAAA,0BAAAH,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,YACzC,mCACCA,GAAAA,CAAC,SAAI,SAAA,EAAU,sBAAA,EAAuB,oBAEtCD,IAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,iCAAA;AAAA,gBACV,KAAA,EAAO,WAAA;AAAA,gBACP,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,kBAAA,MAAM,GAAA,GAAM,CAAC,GAAG,aAAA,EAAe,GAAG,WAAW,CAAA;AAC7C,kBAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,KAAM,SAAS,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAC5D,kBAAA,IAAI,KAAA,gBAAqB,KAAK,CAAA;AAAA,gBAChC,CAAA;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAC,IAAC,QAAA,EAAA,EAAO,KAAA,EAAM,EAAA,EAAG,QAAA,EAAQ,MAAC,QAAA,EAAA,cAAA,EAE1B,CAAA;AAAA,kBACC,cAAc,MAAA,GAAS,CAAA,oBACtBA,GAAAA,CAAC,UAAA,EAAA,EAAS,OAAM,YAAA,EACb,QAAA,EAAA,aAAA,CAAc,GAAA,CAAI,CAAC,sBAClBD,IAAAA,CAAC,YAAyB,KAAA,EAAO,QAAA,CAAS,CAAC,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAA,CAAA,CAAE,IAAA;AAAA,oBAAK,UAAA;AAAA,oBAAI,aAAA,CAAc,EAAE,SAAS,CAAA;AAAA,oBAAE;AAAA,mBAAA,EAAA,EAD5B,QAAA,CAAS,CAAC,CAEvB,CACD,CAAA,EACH,CAAA;AAAA,kBAED,YAAY,MAAA,GAAS,CAAA,oBACpBC,GAAAA,CAAC,UAAA,EAAA,EAAS,OAAM,cAAA,EACb,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,sBAChBD,IAAAA,CAAC,YAAyB,KAAA,EAAO,QAAA,CAAS,CAAC,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAA,CAAA,CAAE,IAAA;AAAA,oBAAK,UAAA;AAAA,oBAAI,aAAA,CAAc,EAAE,SAAS,CAAA;AAAA,oBAAE;AAAA,mBAAA,EAAA,EAD5B,QAAA,CAAS,CAAC,CAEvB,CACD,CAAA,EACH;AAAA;AAAA;AAAA;AAEJ,WAAA,EAEJ,CAAA;AAAA,0BAGAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,cAC1C,aAAA,oBACCD,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,kBAAA,EAAmB,QAAA,EAAA;AAAA,gBAAA,aAAA;AAAA,gBACrB,aAAA,CAAc,cAAc,SAAS,CAAA;AAAA,gBAAE,GAAA;AAAA,gBAAE,aAAA,CAAc;AAAA,eAAA,EACrE;AAAA,aAAA,EAEJ,CAAA;AAAA,4BACAC,GAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,cAAA;AAAA,gBACV,IAAA,EAAK,MAAA;AAAA,gBACL,SAAA,EAAU,SAAA;AAAA,gBACV,WAAA,EAAY,MAAA;AAAA,gBACZ,KAAA,EAAO,MAAA;AAAA,gBACP,UAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA;AAChD,WAAA,EACF,CAAA;AAAA,0BAGAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,4BACvDA,GAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,cAAA;AAAA,gBACV,IAAA,EAAK,MAAA;AAAA,gBACL,WAAA,EAAY,SAAA;AAAA,gBACZ,KAAA,EAAO,WAAA;AAAA,gBACP,UAAU,CAAC,CAAA,KAAM,mBAAA,CAAoB,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA;AACrD,WAAA,EACF,CAAA;AAAA,UAEC,6BAAaA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAsB,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,0BAE7DA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,0BAAAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,oBAAA,EAAqB,SAAS,QAAA,EAAU,QAAA,EAAU,CAAC,SAAA,EAAW,sBAEhF,CAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,QAID,IAAA,KAAS,wBACRA,GAAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,WAAA;AAAA,YACA,OAAA;AAAA,YACA,MAAA;AAAA,YACA,WAAA;AAAA,YACA,UAAA;AAAA,YACA,aAAA;AAAA,YACA,WAAA;AAAA,YACA,UAAA;AAAA,YACA,OAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBAGFA,IAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;AChOA,SAAS,WAAW,MAAA,EAA6B;AAC/C,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,OAAO,EAAE,MAAM,QAAA,EAAkB;AAC/D,EAAA,IAAI,MAAA,CAAO,SAAS,kBAAA,EAAoB;AACtC,IAAA,OAAO,EAAE,MAAM,kBAAA,EAA6B,IAAA,EAAM,OAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,MAAA,EAAQ;AAAA,EACxF;AACA,EAAA,OAAO,EAAE,MAAM,mBAAA,EAA8B,IAAA,EAAM,OAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,MAAA,EAAQ;AACzF;AAEO,SAAS,SAAA,CAAU,EAAE,OAAA,EAAQ,EAAmB;AACrD,EAAA,MAAM;AAAA,IACJ,aAAA;AAAA,IACA,oBAAA;AAAA,IACA,OAAA;AAAA,IACA,eAAA;AAAA,IACA,EAAA,EAAI,WAAA;AAAA,IACJ,UAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,MACE,SAAA,EAAU;AACd,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,SAAwB,MAAM,CAAA;AACtD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,SAAqC,IAAI,CAAA;AACnF,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAS,EAAE,CAAA;AAC7C,EAAA,MAAM,YAAA,GAAeC,OAA6C,IAAI,CAAA;AAEtE,EAAAH,UAAU,MAAM;AACd,IAAA,KAAK,oBAAA,EAAqB;AAAA,EAC5B,CAAA,EAAG,CAAC,oBAAoB,CAAC,CAAA;AAEzB,EAAAA,SAAAA;AAAA,IACE,MAAM,MAAM;AACV,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,IACtE,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,WAAA,GAAc,aAAA,CAAc,IAAA,KAAS,QAAA,GAAW,cAAc,IAAA,GAAO,IAAA;AAC3E,EAAA,MAAM,SAAA,GAAY,WAAA,EAAa,QAAA,IAAY,EAAC;AAC5C,EAAA,MAAM,YAAA,GAAe;AAAA,IACnB,GAAG,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,YAAY,CAAA;AAAA,IACzC,GAAG,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,YAAA,IAAgB,UAAA,CAAW,CAAA,CAAE,OAAO,CAAA,GAAI,CAAC;AAAA,GACzE;AAEA,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,KAAS,SAAA,GAAY,YAAY,IAAA,GAAO,IAAA;AACjE,EAAA,MAAM,SAAA,GAAY,WAAA,IAAe,WAAA,GAAc,WAAA,CAAY,SAAA,GAAY,IAAA;AACvE,EAAA,MAAM,eAAA,GAAkB,SAAA,EAAW,OAAA,CAAQ,OAAA,EAAS,aAAY,CAAE,QAAA,CAAS,SAAS,CAAA,GAChF,SAAA,GACA,SAAA,GACE,QAAA,GACA,OAAA,KAAY,YACV,SAAA,GACA,QAAA;AACR,EAAA,MAAM,cAAc,IAAA,GAAO,CAAA,gCAAA,EAAmC,eAAe,CAAA,IAAA,EAAO,IAAI,CAAA,CAAA,GAAK,IAAA;AAE7F,EAAA,MAAMS,gBAAAA,GAAkB;AAAA,IACtB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,YAAA,GAAgBA,gBAAAA,CAAsC,QAAA,CAAS,WAAA,CAAY,IAAI,CAAA;AACrF,EAAA,MAAM,QAAA,GAAW,SAAS,IAAA,KAAS,WAAA,CAAY,SAAS,OAAA,IAAW,WAAA,CAAY,IAAA,KAAS,SAAA,CAAA,IAAc,CAAC,YAAA;AAEvG,EAAA,MAAM,OAAA,GAAU,YAAA,GACZ,eAAA,GACA,WAAA,CAAY,IAAA,KAAS,YACnB,OAAA,GACA,WAAA,CAAY,IAAA,KAAS,OAAA,GACnB,aAAA,GACA,cAAA;AAER,EAAA,eAAe,YAAA,GAAe;AAC5B,IAAA,YAAA,CAAa,EAAE,CAAA;AACf,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,YAAA,CAAa,iBAAiB,CAAA;AAC9B,MAAA;AAAA,IACF;AACA,IAAA,MAAM,MAAA,GAAS,WAAW,MAAM,CAAA;AAChC,IAAA,IAAI,CAAC,MAAA,IAAU,KAAA,CAAM,MAAM,CAAA,IAAK,UAAU,CAAA,EAAG;AAC3C,MAAA,YAAA,CAAa,sBAAsB,CAAA;AACnC,MAAA;AAAA,IACF;AACA,IAAA,IAAI,MAAA,GAAS,UAAA,CAAW,aAAA,CAAc,SAAS,CAAA,EAAG;AAChD,MAAA,YAAA,CAAa,sBAAsB,CAAA;AACnC,MAAA;AAAA,IACF;AACA,IAAA,IAAI,CAAC,WAAA,CAAY,IAAA,EAAK,EAAG;AACvB,MAAA,YAAA,CAAa,6BAA6B,CAAA;AAC1C,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,IAAA,MAAM,OAAA,CAAQ,SAAA,EAAW,EAAE,WAAA,EAAa,WAAA,CAAY,IAAA,EAAK,EAAG,MAAA,EAAQ,KAAA,EAAO,UAAA,CAAW,aAAa,CAAA,EAAG,CAAA;AAAA,EACxG;AAEA,EAAA,SAAS,iBAAA,GAAoB;AAC3B,IAAA,IAAI,WAAA,CAAY,SAAS,OAAA,EAAS;AAChC,MAAA,KAAK,eAAA,CAAgB,WAAA,CAAY,SAAA,CAAU,WAAW,CAAA;AAAA,IACxD;AAAA,EACF;AAEA,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA,CAAE,KAAK,MAAM;AAC7C,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AACpE,MAAA,YAAA,CAAa,OAAA,GAAU,WAAW,MAAM;AACtC,QAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AACvB,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB,GAAG,GAAI,CAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,eAAe,WAAA,GAAc;AAC3B,IAAA,IAAI,WAAA,CAAY,IAAA,KAAS,OAAA,IAAW,WAAA,CAAY,SAAA,EAAW;AACzD,MAAA,MAAM,eAAA,CAAgB,WAAA,CAAY,SAAA,CAAU,WAAW,CAAA;AAAA,IACzD;AAAA,EACF;AAEA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,OAAA,CAAQ,MAAM,CAAA;AACd,IAAA,UAAA,CAAW,KAAK,CAAA;AAChB,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EACjB;AAEA,EAAA,uBACEV,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,SAAS,CAAC,YAAA,GAAe,OAAA,GAAU,MAAA,EACjE,QAAA,kBAAAA,GAAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA,EAAQ,YAAA;AAAA,MACR,aAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA,EAAkB,cAAc,IAAA,KAAS,SAAA;AAAA,MACzC,WAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAe,gBAAA;AAAA,MACf,cAAA,EAAgB,SAAA;AAAA,MAChB,mBAAA,EAAqB,cAAA;AAAA,MACrB,QAAA,EAAU,MAAM,KAAK,YAAA,EAAa;AAAA,MAClC,aAAA,EAAe,iBAAA;AAAA,MACf,aAAa,MAAM,UAAA,CAAW,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,MACvC,UAAA,EAAY,cAAA;AAAA,MACZ,OAAA,EAAS,MAAM,KAAK,WAAA,EAAY;AAAA,MAChC,MAAA,EAAQ;AAAA;AAAA,GACV,EACF,CAAA;AAEJ;AC5JA,SAAS,eAAe,CAAA,EAAwB;AAC9C,EAAA,IAAI,CAAA,CAAE,WAAA,EAAa,OAAO,CAAA,CAAE,WAAA;AAC5B,EAAA,IAAI,CAAC,CAAA,CAAE,SAAA,EAAW,OAAO,gBAAA;AACzB,EAAA,OAAO,cAAA,CAAe,EAAE,SAAS,CAAA;AACnC;AAEA,SAAS,cAAc,EAAA,EAA2B;AAEhD,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,MAAA;AAC7B,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,OAAA;AAC7B,EAAA,IAAI,kBAAA,CAAmB,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,QAAA;AACxC,EAAA,IAAI,mBAAA,CAAoB,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,SAAA;AACzC,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,QAAA;AAChC,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,SAAS,EAAA,EAA2B;AAC3C,EAAA,IAAI,kBAAA,CAAmB,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,KAAA;AACxC,EAAA,IAAI,SAAA,CAAU,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,SAAA;AAC/B,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,OAAA;AAChC,EAAA,IAAI,YAAA,CAAa,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,SAAA;AAClC,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,OAAA;AAC7B,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,eAAe,EAAA,EAAoB;AAC1C,EAAA,MAAM,OAAA,GAAU,cAAc,EAAE,CAAA;AAChC,EAAA,MAAM,EAAA,GAAK,SAAS,EAAE,CAAA;AACtB,EAAA,IAAI,WAAW,EAAA,EAAI,OAAO,CAAA,EAAG,EAAE,WAAM,OAAO,CAAA,CAAA;AAC5C,EAAA,IAAI,IAAI,OAAO,EAAA;AACf,EAAA,IAAI,SAAS,OAAO,OAAA;AACpB,EAAA,OAAO,EAAA,CAAG,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACvB;AAEA,SAAS,eAAe,GAAA,EAA4B;AAClD,EAAA,IAAI,CAAC,KAAK,OAAO,QAAA;AACjB,EAAA,MAAM,EAAA,GAAK,IAAI,IAAA,CAAK,GAAG,EAAE,OAAA,EAAQ;AACjC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,EAAE,GAAG,OAAO,QAAA;AACjC,EAAA,MAAM,UAAU,IAAA,CAAK,KAAA,CAAA,CAAO,KAAK,GAAA,EAAI,GAAI,MAAM,GAAI,CAAA;AACnD,EAAA,IAAI,OAAA,GAAU,GAAG,OAAO,UAAA;AACxB,EAAA,IAAI,OAAA,GAAU,EAAA,EAAI,OAAO,CAAA,EAAG,OAAO,CAAA,KAAA,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACvC,EAAA,IAAI,OAAA,GAAU,EAAA,EAAI,OAAO,CAAA,EAAG,OAAO,CAAA,KAAA,CAAA;AACnC,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACtC,EAAA,IAAI,MAAA,GAAS,EAAA,EAAI,OAAO,CAAA,EAAG,MAAM,CAAA,KAAA,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,EAAE,CAAA;AACtC,EAAA,IAAI,OAAA,GAAU,EAAA,EAAI,OAAO,CAAA,EAAG,OAAO,CAAA,KAAA,CAAA;AACnC,EAAA,OAAO,IAAI,IAAA,CAAK,GAAG,CAAA,CAAE,kBAAA,CAAmB,MAAA,EAAW,EAAE,KAAA,EAAO,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW,IAAA,EAAM,WAAW,CAAA;AACxG;AAEA,SAAS,QAAQ,IAAA,EAA6B;AAC5C,EAAA,IAAI,CAAC,MAAM,OAAO,EAAA;AAClB,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AACxB;AAEO,SAAS,qBAAA,CAAsB;AAAA,EACpC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA,EAA+B;AAC7B,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AACzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,IAAA,KAAS,SAAA;AACjC,EAAA,MAAM,WAAW,KAAA,CAAM,IAAA,KAAS,QAAA,GAAW,KAAA,CAAM,WAAW,EAAC;AAC7D,EAAA,MAAM,UAAA,GAAa,SAAS,MAAA,CAAO,CAAC,MAAM,CAAC,CAAA,CAAE,OAAO,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,yCAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,OAAA;AAAA,MACP,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB;AAAA,MAElC,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,0BAClDD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,KAAC,QAAA,EAAA,EAAO,SAAA,EAAU,4BAA2B,OAAA,EAAS,SAAA,EAAW,UAAU,SAAA,EACzE,QAAA,EAAA;AAAA,8BAAAA,IAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,CAAA,yBAAA,EAA4B,SAAA,GAAY,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,kBACnE,KAAA,EAAM,IAAA;AAAA,kBACN,MAAA,EAAO,IAAA;AAAA,kBACP,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,MAAA;AAAA,kBACL,aAAA,EAAW,IAAA;AAAA,kBAEX,QAAA,EAAA;AAAA,oCAAAC,GAAAA,CAAC,UAAK,CAAA,EAAE,8BAAA,EAA+B,QAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,oCACrGA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA;AAAA;AAAA,eAC5G;AAAA,cAAM;AAAA,aAAA,EAER,CAAA;AAAA,4BACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAqB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAClE,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,GAC7F,CAAA,EACF;AAAA,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,CAAM,SAAS,MAAA,oBAAUC,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,eAAA,EAAQ,CAAA;AAAA,UACrE,6BAAaA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,eAAA,EAAQ,CAAA;AAAA,UACzD,KAAA,CAAM,SAAS,OAAA,oBAAWA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,KAAA,CAAM,OAAA,EAAQ,CAAA;AAAA,UAC7E,KAAA,CAAM,IAAA,KAAS,QAAA,IAAY,QAAA,CAAS,MAAA,KAAW,CAAA,oBAAKA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,UAC3G,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM;AACnB,YAAA,MAAM,UAAA,GAAa,qBAAqB,CAAA,CAAE,QAAA;AAC1C,YAAA,uBACED,KAAC,KAAA,EAAA,EAAqB,SAAA,EAAU,wBAAuB,cAAA,EAAc,CAAA,CAAE,WAAW,MAAA,EAChF,QAAA,EAAA;AAAA,8BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,gCAAAC,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6BAAA,EAA+B,QAAA,EAAA,cAAA,CAAe,CAAC,CAAA,EAAE,CAAA;AAAA,gBAChE,EAAE,OAAA,oBAAWA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAA6B,QAAA,EAAA,aAAA,EAAW;AAAA,eAAA,EACxE,CAAA;AAAA,8BACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,gCAAAA,KAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,kBAAA,YAAA;AAAA,kBAAW,cAAA,CAAe,CAAA,CAAE,UAAA,IAAc,CAAA,CAAE,SAAS;AAAA,iBAAA,EAAE,CAAA;AAAA,gBAC5D,CAAA,CAAE,MAAA,oBACDA,IAAAA,CAAAG,UAAA,EACE,QAAA,EAAA;AAAA,kCAAAF,GAAAA,CAAC,UAAK,QAAA,EAAA,MAAA,EAAC,CAAA;AAAA,kCACPD,IAAAA,CAAC,MAAA,EAAA,EAAK,OAAO,CAAA,QAAA,EAAW,CAAA,CAAE,MAAM,CAAA,CAAA,EAAI,QAAA,EAAA;AAAA,oBAAA,KAAA;AAAA,oBAAI,OAAA,CAAQ,EAAE,MAAM;AAAA,mBAAA,EAAE;AAAA,iBAAA,EAC5D;AAAA,eAAA,EAEJ,CAAA;AAAA,cACC,CAAC,CAAA,CAAE,OAAA,oBACFC,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,6BAAA;AAAA,kBACV,OAAA,EAAS,MAAM,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,kBAClC,UAAU,UAAA,IAAc,oBAAA;AAAA,kBAEvB,uBAAa,gBAAA,GAAc;AAAA;AAAA;AAC9B,aAAA,EAAA,EArBM,EAAE,QAuBZ,CAAA;AAAA,UAEJ,CAAC;AAAA,SAAA,EACH,CAAA;AAAA,QAEC,KAAA,CAAM,IAAA,KAAS,QAAA,IAAY,QAAA,CAAS,MAAA,GAAS,CAAA,oBAC5CA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,4BAAA;AAAA,YACV,OAAA,EAAS,kBAAA;AAAA,YACT,QAAA,EAAU,wBAAwB,UAAA,KAAe,CAAA;AAAA,YACjD,KAAA,EAAO,UAAA,KAAe,CAAA,GAAI,8BAAA,GAAiC,MAAA;AAAA,YAE1D,iCAAuB,mBAAA,GAAiB;AAAA;AAAA,SAC3C,EACF,CAAA;AAAA,wBAGFA,IAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;ACzLO,SAAS,aAAA,CAAc,EAAE,OAAA,EAAQ,EAAuB;AAC7D,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,QAAA,KAAa,SAAA,EAAU;AAClD,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAMrD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIG,SAAwB,IAAI,CAAA;AAC5E,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAEtE,EAAA,MAAM,IAAA,GAAOQ,YAAY,MAAM;AAC7B,IAAA,KAAK,SAAA,GAAY,aAAA,EAAc;AAAA,EACjC,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAAV,UAAU,MAAM;AACd,IAAA,IAAA,EAAK;AAAA,EACP,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAMT,EAAA,MAAM,UAAA,GAAaG,OAAO,OAAO,CAAA;AACjC,EAAA,UAAA,CAAW,OAAA,GAAU,OAAA;AACrB,EAAAH,UAAU,MAAM;AACd,IAAA,OAAO,SAAA,EAAU,CAAE,iBAAA,CAAkB,CAAC,SAAA,KAAc;AAClD,MAAA,IAAI,SAAA,CAAU,IAAA,KAAS,MAAA,EAAQ,UAAA,CAAW,OAAA,EAAQ;AAAA,IACpD,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,YAAA,GAAeU,WAAAA;AAAA,IACnB,OAAO,QAAA,KAAqB;AAC1B,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAC5B,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,EAAU,CAAE,aAAA,CAAc,QAAQ,CAAA;AAAA,MAC1C,CAAA,CAAA,MAAQ;AAAA,MAGR,CAAA,SAAE;AACA,QAAA,mBAAA,CAAoB,IAAI,CAAA;AAExB,QAAA,IAAA,EAAK;AAAA,MACP;AAAA,IACF,CAAA;AAAA,IACA,CAAC,WAAW,IAAI;AAAA,GAClB;AAEA,EAAA,MAAM,sBAAA,GAAyBA,YAAY,YAAY;AACrD,IAAA,uBAAA,CAAwB,IAAI,CAAA;AAC5B,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,GAAY,gBAAA,EAAiB;AAKnC,MAAA,OAAA,EAAQ;AAAA,IACV,CAAA,CAAA,MAAQ;AACN,MAAA,uBAAA,CAAwB,KAAK,CAAA;AAAA,IAC/B;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,OAAO,CAAC,CAAA;AAEvB,EAAA,uBACEX,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA,EAAO,QAAA;AAAA,MACP,gBAAA;AAAA,MACA,oBAAA;AAAA,MACA,SAAA,EAAW,MAAM,IAAA,EAAK;AAAA,MACtB,QAAA,EAAU,CAAC,QAAA,KAAa,KAAK,aAAa,QAAQ,CAAA;AAAA,MAClD,kBAAA,EAAoB,MAAM,KAAK,sBAAA,EAAuB;AAAA,MACtD;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;ACnEO,SAAS,wBAAA,CAAyB;AAAA,EACvC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAkC;AAChC,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAoC,YAAA,EAAY,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,iBAAgB,EACtH,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,kBAAAA,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,aAAA,EAAW,CAAA,EAChD,CAAA;AAAA,oBACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,kBAAA,EAAmB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAC9E,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,KAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAW,IAAA;AAAA,QAEX,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB;AAAA;AAAA,KACjC,EACF,CAAA;AAAA,oBAEAA,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,WAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA,EAAQ;AAAA;AAAA,KACV;AAAA,oBAEAA,IAAC,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;ACjFO,SAAS,gBAAA,CAAiB,EAAE,OAAA,EAAQ,EAA0B;AACnE,EAAA,MAAM,EAAE,WAAW,MAAA,EAAQ,EAAA,EAAI,aAAa,OAAA,EAAS,UAAA,KAAe,SAAA,EAAU;AAC9E,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIG,SAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,YAAA,GAAeC,OAA6C,IAAI,CAAA;AAEtE,EAAAH,SAAAA;AAAA,IACE,MAAM,MAAM;AACV,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,IACtE,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,KAAS,SAAA,GAAY,YAAY,IAAA,GAAO,IAAA;AACjE,EAAA,MAAM,SAAA,GAAY,WAAA,IAAe,WAAA,GAAc,WAAA,CAAY,SAAA,GAAY,IAAA;AACvE,EAAA,MAAM,eAAA,GAAkB,SAAA,EAAW,OAAA,CAAQ,OAAA,EAAS,aAAY,CAAE,QAAA,CAAS,SAAS,CAAA,GAChF,SAAA,GACA,SAAA,GACE,QAAA,GACA,OAAA,KAAY,YACV,SAAA,GACA,QAAA;AACR,EAAA,MAAM,cAAc,IAAA,GAAO,CAAA,gCAAA,EAAmC,eAAe,CAAA,IAAA,EAAO,IAAI,CAAA,CAAA,GAAK,IAAA;AAE7F,EAAA,SAAS,iBAAA,GAAoB;AAC3B,IAAA,IAAI,WAAA,CAAY,SAAS,OAAA,EAAS;AAChC,MAAA,KAAK,SAAA,EAAU,CAAE,eAAA,CAAgB,WAAA,CAAY,UAAU,WAAW,CAAA;AAAA,IACpE;AAAA,EACF;AAEA,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA,CAAE,KAAK,MAAM;AAC7C,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AACpE,MAAA,YAAA,CAAa,OAAA,GAAU,WAAW,MAAM;AACtC,QAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AACvB,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB,GAAG,GAAI,CAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,eAAe,WAAA,GAAc;AAC3B,IAAA,IAAI,WAAA,CAAY,IAAA,KAAS,OAAA,IAAW,WAAA,CAAY,SAAA,EAAW;AACzD,MAAA,MAAM,SAAA,EAAU,CAAE,eAAA,CAAgB,WAAA,CAAY,UAAU,WAAW,CAAA;AAAA,IACrE;AAAA,EACF;AAEA,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,wBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,aAAA,EAAe,iBAAA;AAAA,MACf,aAAa,MAAM,UAAA,CAAW,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,MACvC,UAAA,EAAY,cAAA;AAAA,MACZ,OAAA,EAAS;AAAA;AAAA,GACX,EACF,CAAA;AAEJ;AC1EA,IAAM,SAAA,GAAY,EAAA;AAalB,SAAS,WAAA,CAAY,EAAE,MAAA,EAAO,EAA0C;AACtE,EAAA,uBACEA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,wBAAA,EAAyB,aAAA,EAAa,QACnD,QAAA,EAAA,MAAA,EACH,CAAA;AAEJ;AAEA,SAAS,WAAW,GAAA,EAAqB;AACvC,EAAA,OAAO,IAAI,IAAA,CAAK,GAAG,CAAA,CAAE,kBAAA,CAAmB,MAAA,EAAW,EAAE,KAAA,EAAO,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW,IAAA,EAAM,WAAW,CAAA;AACxG;AAEO,SAAS,sBAAA,CAAuB;AAAA,EACrC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAAgC;AAC9B,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,MAAM,SAAA,GAAY,UAAU,IAAA,KAAS,SAAA;AACrC,EAAA,MAAM,UAAU,SAAA,CAAU,IAAA,KAAS,WAAW,SAAA,CAAU,IAAA,CAAK,UAAU,EAAC;AACxE,EAAA,MAAM,QAAQ,SAAA,CAAU,IAAA,KAAS,QAAA,GAAW,SAAA,CAAU,KAAK,KAAA,GAAQ,CAAA;AACnE,EAAA,MAAM,UAAU,MAAA,GAAS,CAAA;AACzB,EAAA,MAAM,OAAA,GAAU,SAAS,SAAA,GAAY,KAAA;AACrC,EAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,IAAA,KAAS,QAAA,IAAY,KAAA,GAAQ,SAAA;AAE9D,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,qCAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,OAAA;AAAA,MACP,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB;AAAA,MAElC,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,0BACtDD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,KAAC,QAAA,EAAA,EAAO,SAAA,EAAU,4BAA2B,OAAA,EAAS,SAAA,EAAW,UAAU,SAAA,EACzE,QAAA,EAAA;AAAA,8BAAAA,IAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,CAAA,yBAAA,EAA4B,SAAA,GAAY,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,kBACnE,KAAA,EAAM,IAAA;AAAA,kBACN,MAAA,EAAO,IAAA;AAAA,kBACP,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,MAAA;AAAA,kBACL,aAAA,EAAW,IAAA;AAAA,kBAEX,QAAA,EAAA;AAAA,oCAAAC,GAAAA,CAAC,UAAK,CAAA,EAAE,8BAAA,EAA+B,QAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,oCACrGA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA;AAAA;AAAA,eAC5G;AAAA,cAAM;AAAA,aAAA,EAER,CAAA;AAAA,4BACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAqB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAClE,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,GAC7F,CAAA,EACF;AAAA,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBAEAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,SAAA,CAAU,SAAS,MAAA,oBAAUC,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,qCAAA,EAAmC,CAAA;AAAA,UACpG,6BAAaA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,eAAA,EAAQ,CAAA;AAAA,UACzD,SAAA,CAAU,SAAS,OAAA,oBAAWA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,SAAA,CAAU,OAAA,EAAQ,CAAA;AAAA,UACrF,SAAA,CAAU,IAAA,KAAS,QAAA,IAAY,OAAA,CAAQ,MAAA,KAAW,CAAA,oBAAKA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,sBAAA,EAAoB,CAAA;AAAA,UAC/G,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,YAAA,MAAM,WAAA,GAAc,mCAAmC,MAAA,CAAO,OAAA,KAAY,YAAY,SAAA,GAAY,QAAQ,CAAA,IAAA,EAAO,MAAA,CAAO,IAAI,CAAA,CAAA;AAC5H,YAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAoB,SAAA,EAAU,kBAAA,EAC7B,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,iBAAO,OAAA,EAAQ,CAAA;AAAA,8BAC3DA,GAAAA,CAAC,WAAA,EAAA,EAAY,MAAA,EAAQ,OAAO,MAAA,EAAQ,CAAA;AAAA,8BACpCD,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EACd,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,MAAA,CAAO,SAAA,EAAU,CAAA;AAAA,gBACvB,MAAA,CAAO,MAAA,oBAAUD,IAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,kBAAA,OAAA;AAAA,kBAAG,MAAA,CAAO,MAAA;AAAA,kBAAO;AAAA,iBAAA,EAAI,CAAA;AAAA,gCAC7CA,KAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,kBAAA,OAAA;AAAA,kBAAG,UAAA,CAAW,OAAO,SAAS;AAAA,iBAAA,EAAE,CAAA;AAAA,gCACtCC,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,MAAA,EAAC,CAAA;AAAA,gCACPD,IAAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAU,2BAAA;AAAA,oBACV,IAAA,EAAM,WAAA;AAAA,oBACN,MAAA,EAAO,QAAA;AAAA,oBACP,GAAA,EAAI,qBAAA;AAAA,oBACJ,YAAA,EAAW,0BAAA;AAAA,oBAEX,QAAA,EAAA;AAAA,sCAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,EAAA;AAAA,wCAAAC,GAAAA;AAAA,0BAAC,MAAA;AAAA,0BAAA;AAAA,4BACC,CAAA,EAAE,mDAAA;AAAA,4BACF,MAAA,EAAO,cAAA;AAAA,4BACP,WAAA,EAAY,KAAA;AAAA,4BACZ,aAAA,EAAc;AAAA;AAAA,yBAChB;AAAA,wCACAA,GAAAA;AAAA,0BAAC,MAAA;AAAA,0BAAA;AAAA,4BACC,CAAA,EAAE,sBAAA;AAAA,4BACF,MAAA,EAAO,cAAA;AAAA,4BACP,WAAA,EAAY,KAAA;AAAA,4BACZ,aAAA,EAAc,OAAA;AAAA,4BACd,cAAA,EAAe;AAAA;AAAA;AACjB,uBAAA,EACF,CAAA;AAAA,sBAAM;AAAA;AAAA;AAAA;AAER,eAAA,EACF;AAAA,aAAA,EAAA,EAhCQ,OAAO,EAiCjB,CAAA;AAAA,UAEJ,CAAC;AAAA,SAAA,EACH,CAAA;AAAA,QAEC,cAAA,oBACCD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,YAAA,MAAA,GAAS,CAAA;AAAA,YAAE,QAAA;AAAA,YAAE,IAAA,CAAK,GAAA,CAAI,MAAA,GAAS,SAAA,EAAW,KAAK,CAAA;AAAA,YAAE,MAAA;AAAA,YAAK;AAAA,WAAA,EACzD,CAAA;AAAA,0BACAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,YAAO,SAAA,EAAU,sBAAA,EAAuB,SAAS,MAAA,EAAQ,QAAA,EAAU,CAAC,OAAA,EAAS,QAAA,EAAA,aAAA,EAE9E,CAAA;AAAA,4BACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,SAAS,MAAA,EAAQ,QAAA,EAAU,CAAC,OAAA,EAAS,QAAA,EAAA,aAAA,EAE9E;AAAA,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBAGFA,IAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrB;AAEJ;AC7JA,IAAMY,UAAAA,GAAY,EAAA;AAMX,SAAS,cAAA,CAAe,EAAE,OAAA,EAAQ,EAAwB;AAC/D,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,SAAA,KAAc,SAAA,EAAU;AACnD,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AACrD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIT,SAAS,CAAC,CAAA;AAEtC,EAAA,MAAM,IAAA,GAAOQ,WAAAA;AAAA,IACX,CAAC,UAAA,KAAuB;AACtB,MAAA,SAAA,CAAU,UAAU,CAAA;AACpB,MAAA,KAAK,SAAA,GAAY,cAAA,CAAe,EAAE,OAAOC,UAAAA,EAAW,MAAA,EAAQ,YAAY,CAAA;AAAA,IAC1E,CAAA;AAAA,IACA,CAAC,SAAS;AAAA,GACZ;AAEA,EAAAX,UAAU,MAAM;AACd,IAAA,IAAA,CAAK,CAAC,CAAA;AAAA,EACR,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,sBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,EAAW,MAAM,IAAA,CAAK,MAAM,CAAA;AAAA,MAC5B,MAAA,EAAQ,MAAM,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,EAAG,MAAA,GAASY,UAAS,CAAC,CAAA;AAAA,MAClD,MAAA,EAAQ,MAAM,IAAA,CAAK,MAAA,GAASA,UAAS,CAAA;AAAA,MACrC;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;ACvCA,SAASC,eAAc,OAAA,EAAyB;AAC9C,EAAA,MAAM,CAAA,GAAI,WAAW,OAAO,CAAA;AAC5B,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAI,OAAA,GAAU,CAAA,CAAE,eAAe,MAAA,EAAW,EAAE,qBAAA,EAAuB,CAAA,EAAG,CAAA;AACtF;AAEA,SAASC,aAAY,OAAA,EAAyB;AAC5C,EAAA,IAAI,OAAA,CAAQ,MAAA,IAAU,EAAA,EAAI,OAAO,OAAA;AACjC,EAAA,OAAO,CAAA,EAAG,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,GAAA,EAAM,OAAA,CAAQ,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AACtD;AAEA,SAAS,WAAA,CAAY,EAAE,MAAA,EAAO,EAAoC;AAChE,EAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,OAAA,KAAY,MAAA,CAAO,SAAA;AACjD,EAAA,uBACEf,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,iBAAO,IAAA,EAAK,CAAA;AAAA,oBAChDD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,UAAK,SAAA,EAAU,mBAAA,EAAqB,UAAAa,cAAAA,CAAc,MAAA,CAAO,OAAO,CAAA,EAAE,CAAA;AAAA,MAClE,cAAA,oBAAkBd,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAwB,QAAA,EAAA;AAAA,QAAAc,cAAAA,CAAc,OAAO,SAAS,CAAA;AAAA,QAAE;AAAA,OAAA,EAAU;AAAA,KAAA,EACvG;AAAA,GAAA,EACF,CAAA;AAEJ;AAWO,SAAS,0BAAA,CAA2B;AAAA,EACzC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAA,EAAmB,WAAA;AAAA,IACnB,aAAA,EAAe,SAAS,SAAA,GAAY,SAAA;AAAA,IACpC,iBAAA,EAAmB,SAAS,SAAA,GAAY,SAAA;AAAA,IACxC,eAAA,EAAiB,SAAS,SAAA,GAAY,SAAA;AAAA,IACtC,gBAAA,EAAkB,SAAS,SAAA,GAAY,SAAA;AAAA,IACvC,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,mBAAA,EAAqB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC1C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,qBAAA,EAAuB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC5C,uBAAA,EAAyB,SAAS,SAAA,GAAY,SAAA;AAAA,IAC9C,gCAAA,EAAkC,KAAA;AAAA,IAClC,yBAAA,EAA2B,MAAA;AAAA,IAC3B,uBAAA,EAAyB,MAAA;AAAA,IACzB,8BAAA,EAAgC,QAAA;AAAA,IAChC,6BAAA,EAA+B;AAAA,GACjC;AAEA,EAAA,MAAM,SAAA,GAAY,cAAc,IAAA,KAAS,SAAA;AACzC,EAAA,MAAM,IAAA,GAAO,aAAA,CAAc,IAAA,KAAS,QAAA,GAAW,cAAc,IAAA,GAAO,IAAA;AAEpE,EAAA,uBACEd,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAqC,YAAA,EAAY,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,iBAAgB,EACvH,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,sBACjDD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,KAAC,QAAA,EAAA,EAAO,SAAA,EAAU,4BAA2B,OAAA,EAAS,SAAA,EAAW,UAAU,SAAA,EACzE,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,CAAA,yBAAA,EAA4B,SAAA,GAAY,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,cACnE,KAAA,EAAM,IAAA;AAAA,cACN,MAAA,EAAO,IAAA;AAAA,cACP,OAAA,EAAQ,WAAA;AAAA,cACR,IAAA,EAAK,MAAA;AAAA,cACL,aAAA,EAAW,IAAA;AAAA,cAEX,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,UAAK,CAAA,EAAE,8BAAA,EAA+B,QAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,gCACrGA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ;AAAA;AAAA;AAAA,WAC5G;AAAA,UAAM;AAAA,SAAA,EAER,CAAA;AAAA,wBACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAqB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAClE,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,aAAA,EAAW,IAAA,EACrE,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAuB,MAAA,EAAO,gBAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,GAC7F,CAAA,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,aAAA,oBAAiBA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EAAsB,QAAA,EAAAc,YAAAA,CAAY,aAAa,CAAA,EAAE,CAAA;AAAA,IAEjF,6BAAad,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAqB,QAAA,EAAA,eAAA,EAAQ,CAAA;AAAA,IAEzD,aAAA,CAAc,SAAS,OAAA,oBAAWA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,aAAA,CAAc,OAAA,EAAQ,CAAA;AAAA,IAE7F,IAAA,IAAQ,CAAC,IAAA,CAAK,MAAA,oBAAUD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EAAqB,QAAA,EAAA;AAAA,MAAA,uBAAA;AAAA,MAAsB,IAAA,CAAK,OAAA;AAAA,MAAQ;AAAA,KAAA,EAAC,CAAA;AAAA,IAEhG,IAAA,EAAM,MAAA,IAAU,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,oBAAKC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,IAEpG,IAAA,EAAM,MAAA,IAAU,IAAA,CAAK,QAAA,CAAS,MAAA,GAAS,CAAA,oBACtCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACZ,QAAA,EAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,qBAClBA,GAAAA,CAAC,WAAA,EAAA,EAA4C,MAAA,EAAQ,CAAA,EAAA,EAAnC,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,MAAA,IAAU,EAAA,CAAgB,CACzD,CAAA,EACH,CAAA;AAAA,oBAGFA,IAAC,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;ACzGO,SAAS,kBAAA,CAAmB,EAAE,OAAA,EAAQ,EAA4B;AACvE,EAAA,MAAM,EAAE,aAAA,EAAe,oBAAA,EAAsB,aAAA,EAAe,MAAA,KAAW,SAAA,EAAU;AACjF,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AAErD,EAAAC,UAAU,MAAM;AACd,IAAA,KAAK,oBAAA,EAAqB;AAAA,EAC5B,CAAA,EAAG,CAAC,oBAAoB,CAAC,CAAA;AAEzB,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAiB,OAAA,EAAS,SACvC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,0BAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA,EAAW,MAAM,oBAAA,EAAqB;AAAA,MACtC;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;AC5BA,SAAS,eAAe,GAAA,EAAqB;AAC3C,EAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,GAAA,CAAI,SAAS,CAAC,CAAA;AAC3C,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAM,MAAA,EAAQ,CAAA,EAAA,QAAW,CAAC,CAAA,GAAI,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA,GAAI,CAAA,EAAG,IAAI,CAAA,GAAI,CAAC,GAAG,EAAE,CAAA;AAC1F,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,KAAA,MAAW,CAAA,IAAK,KAAA,EAAO,GAAA,IAAO,MAAA,CAAO,aAAa,CAAC,CAAA;AACnD,EAAA,OAAO,IAAA,CAAK,GAAG,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAAE,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC5E;AAKA,SAAS,YAAA,GAAuB;AAC9B,EAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,EAAE,CAAA;AAC/B,EAAA,MAAA,CAAO,gBAAgB,KAAK,CAAA;AAC5B,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,KAAA,MAAW,CAAA,IAAK,KAAA,EAAO,GAAA,IAAO,MAAA,CAAO,aAAa,CAAC,CAAA;AACnD,EAAA,OAAO,IAAA,CAAK,GAAG,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAAE,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC5E;AAkBO,IAAM,sBAAA,GAA0C,OAAO,EAAE,SAAA,EAAU,KAAM;AAC9E,EAAA,MAAM,IAAA,GAAO,OAAO,QAAA,CAAS,QAAA;AAE7B,EAAA,IAAI;AACF,IAAA,MAAMe,SAAAA,GAAW,MAAM,mBAAA,CAAoB;AAAA,MACzC,WAAA,EAAa,EAAE,SAAA,EAAW,IAAA,EAAM,kBAAkB,UAAA;AAAW,KAC9D,CAAA;AACD,IAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAAA,SAAAA,EAAS;AAAA,EACnC,CAAA,CAAA,MAAQ;AAAA,EAER;AAEA,EAAA,MAAM,SAAS,YAAA,EAAa;AAC5B,EAAA,MAAM,QAAA,GAAW,MAAM,iBAAA,CAAkB;AAAA,IACvC,WAAA,EAAa;AAAA,MACX,SAAA;AAAA,MACA,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,MAAM,IAAA,EAAK;AAAA,MAC3B,MAAM,EAAE,EAAA,EAAI,QAAQ,IAAA,EAAM,cAAA,EAAgB,aAAa,cAAA,EAAe;AAAA;AAAA,MAEtE,kBAAkB,CAAC,EAAE,MAAM,YAAA,EAAc,GAAA,EAAK,IAAI,CAAA;AAAA,MAClD,sBAAA,EAAwB,EAAE,WAAA,EAAa,UAAA,EAAY,kBAAkB,UAAA,EAAW;AAAA,MAChF,WAAA,EAAa,MAAA;AAAA,MACb,OAAA,EAAS;AAAA;AACX,GACD,CAAA;AACD,EAAA,OAAO,EAAE,IAAA,EAAM,UAAA,EAAY,QAAA,EAAS;AACtC,CAAA;AASO,IAAM,oBAAA,GAAsC,OAAO,EAAE,YAAA,EAAc,WAAU,KAAM;AACxF,EAAA,MAAM,IAAA,GAAO,OAAO,QAAA,CAAS,QAAA;AAC7B,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,MAAM,mBAAA,CAAoB;AAAA,IAC7C,WAAA,EAAa;AAAA,MACX,SAAA,EAAW,eAAe,SAAS,CAAA;AAAA,MACnC,IAAA;AAAA,MACA,kBAAkB,CAAC,EAAE,IAAI,YAAA,EAAc,IAAA,EAAM,cAAc,CAAA;AAAA,MAC3D,gBAAA,EAAkB;AAAA;AACpB,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,mBAAmB,QAAA,CAAS,iBAAA;AAAA,IAC5B,gBAAgB,QAAA,CAAS,cAAA;AAAA,IACzB,WAAW,QAAA,CAAS;AAAA,GACtB;AACF,CAAA;ACpDA,IAAM,kBAAA,GAAmC;AAAA,EACvC,WAAA,EAAa,EAAE,IAAA,EAAM,EAAA,EAAG;AAAA,EACxB,QAAQ;AACV,CAAA;AAUA,SAAS,aAAA,CAAc,GAAkC,CAAA,EAA2C;AAClG,EAAA,IAAI,CAAA,KAAM,GAAG,OAAO,IAAA;AACpB,EAAA,IAAI,CAAC,CAAA,IAAK,CAAC,CAAA,EAAG,OAAO,KAAA;AACrB,EAAA,OACE,CAAA,CAAE,eAAA,KAAoB,CAAA,CAAE,eAAA,IACxB,EAAE,MAAA,KAAW,CAAA,CAAE,MAAA,IACf,CAAA,CAAE,WAAW,CAAA,CAAE,MAAA,IACf,CAAA,CAAE,KAAA,EAAO,gBAAgB,CAAA,CAAE,KAAA,EAAO,WAAA,IAClC,CAAA,CAAE,KAAA,EAAO,YAAA,KAAiB,CAAA,CAAE,KAAA,EAAO,gBACnC,CAAA,CAAE,KAAA,EAAO,SAAA,KAAc,CAAA,CAAE,OAAO,SAAA,IAChC,CAAA,CAAE,MAAA,EAAQ,OAAA,KAAY,EAAE,MAAA,EAAQ,OAAA;AAEpC;AAuFA,IAAM,aAAA,GAAgB,cAAyC,IAAI,CAAA;AAsC5D,SAAS,cAAA,CAAe;AAAA,EAC7B,MAAA;AAAA,EACA,SAAA,EAAW,aAAA;AAAA,EACX,EAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA,EAAwB;AAKtB,EAAA,MAAM,CAAC,YAAY,CAAA,GAAIZ,QAAAA;AAAA,IAAuB,MAC5C,MAAA,YAAkB,YAAA,GACd,MAAA,GACA,IAAI,YAAA,CAAa,EAAE,OAAA,EAAS,sBAAA,EAAwB,WAAA,EAAa,oBAAA,EAAsB,GAAG,QAAQ;AAAA,GACxG;AACA,EAAA,MAAM,CAAC,cAAc,eAAe,CAAA,GAAIA,SAAuB,MAAM,YAAA,CAAa,iBAAiB,CAAA;AACnG,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAwC,IAAI,CAAA;AAIpF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,aAAa,cAAc,CAAA,GAAIA,SAA2B,EAAE,IAAA,EAAM,QAAQ,CAAA;AACjF,EAAA,MAAM,CAAC,WAAW,YAAY,CAAA,GAAIA,SAAyB,EAAE,IAAA,EAAM,QAAQ,CAAA;AAC3E,EAAA,MAAM,CAAC,UAAU,WAAW,CAAA,GAAIA,SAAwB,EAAE,IAAA,EAAM,QAAQ,CAAA;AACxE,EAAA,MAAM,CAAC,eAAe,gBAAgB,CAAA,GAAIA,SAA6B,EAAE,IAAA,EAAM,QAAQ,CAAA;AACvF,EAAA,MAAM,CAAC,eAAe,gBAAgB,CAAA,GAAIA,SAA6B,EAAE,IAAA,EAAM,QAAQ,CAAA;AACvF,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,IAAIA,QAAAA,CAAuB,MAAM,iBAAiB,kBAAkB,CAAA;AAE5G,EAAAF,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,yBAAyB,cAAc,CAAA;AAAA,EAC7D,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,uBAAuB,YAAY,CAAA;AAAA,EACzD,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,sBAAsB,WAAW,CAAA;AAAA,EACvD,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,2BAA2B,gBAAgB,CAAA;AAAA,EACjE,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,2BAA2B,gBAAgB,CAAA;AAAA,EACjE,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,oBAAA,CAAqB,CAAC,KAAA,KAAU;AAClD,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,IACvB,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACvB,IAAA,OAAO,YAAA,CAAa,iBAAiB,gBAAgB,CAAA;AAAA,EACvD,CAAA,EAAG,CAAC,YAAA,EAAc,gBAAgB,CAAC,CAAA;AAEnC,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,YAAA,CAAa,iBAAA,CAAkB,CAAC,SAAA,KAAc;AACnD,MAAA,IAAI,SAAA,CAAU,SAAS,eAAA,EAAiB;AACtC,QAAA,eAAA,CAAgB,CAAC,SAAU,aAAA,CAAc,IAAA,EAAM,UAAU,OAAO,CAAA,GAAI,IAAA,GAAO,SAAA,CAAU,OAAQ,CAAA;AAI7F,QAAA,WAAA,CAAY,UAAU,QAAQ,CAAA;AAAA,MAChC,CAAA,MAAA,IAAW,SAAA,CAAU,IAAA,KAAS,MAAA,EAAQ;AACpC,QAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAMjB,EAAAA,UAAU,MAAM;AACd,IAAA,mBAAA,CAAoB,YAAA,CAAa,WAAW,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,kBAAkB,MAAA,EAAW;AACjC,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,YAAA,CACG,YAAA,EAAa,CACb,IAAA,CAAK,CAAC,OAAA,KAAY;AACjB,MAAA,IAAI,SAAA,IAAa,CAAC,OAAA,EAAS;AAC3B,MAAA,iBAAA,CAAkB,OAAuB,CAAA;AAAA,IAC3C,CAAC,CAAA,CACA,KAAA,CAAM,CAAC,GAAA,KAAQ;AACd,MAAA,YAAA,CAAa,SAAA,EAAU,CAAE,KAAA,CAAM,sCAAA,EAAwC,GAAG,CAAA;AAAA,IAC5E,CAAC,CAAA;AACH,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,aAAa,CAAC,CAAA;AAEhC,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIE,SAAS,KAAK,CAAA;AAC1D,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAIA,SAAS,KAAK,CAAA;AACtE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,QAAAA,CAI3C,EAAE,CAAA;AACL,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAClE,EAAA,MAAM,CAAC,sBAAA,EAAwB,yBAAyB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC1E,EAAA,MAAM,CAAC,sBAAA,EAAwB,yBAAyB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC1E,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAChE,EAAA,MAAM,CAAC,0BAAA,EAA4B,6BAA6B,CAAA,GAAIA,SAAS,KAAK,CAAA;AAKlF,EAAA,MAAM,aAAA,GAAgB,YAAA,EAAc,MAAA,EAAQ,OAAA,IAAW,EAAA;AACvD,EAAA,MAAM,YAAYQ,WAAAA,CAAY,MAAM,YAAA,EAAc,CAAC,YAAY,CAAC,CAAA;AAGhE,EAAA,MAAM,oBAAA,GAAuBA,YAAY,MAAM,YAAA,CAAa,gBAAe,EAAG,CAAC,YAAA,EAAc,aAAa,CAAC,CAAA;AAG3G,EAAA,MAAM,aAAA,GAAgBA,YAAY,MAAM,YAAA,CAAa,eAAc,EAAG,CAAC,YAAA,EAAc,aAAa,CAAC,CAAA;AAEnG,EAAA,MAAM,gBAAgB,EAAA,EAAI,aAAA;AAE1B,EAAA,MAAM,YAAA,GAAmC,QAAQ,MAAM;AACrD,IAAA,MAAM,MAAA,GAAuB,cAAA,CAAe,MAAA,IAAU,EAAC;AACvD,IAAA,OAAO;AAAA;AAAA,MAEL,aAAA;AAAA,MACA,eAAA,EAAiB,CAAC,CAAC,aAAA;AAAA,MACnB,QAAA;AAAA,MACA,UAAA,EAAY,aAAa,aAAA,EAAc;AAAA;AAAA,MAEvC,SAAA;AAAA;AAAA,MAEA,KAAA,EAAO,CAAC,OAAA,KAAgC,YAAA,CAAa,MAAM,OAAO,CAAA;AAAA,MAClE,MAAA,EAAQ,MAAM,YAAA,CAAa,MAAA,EAAO;AAAA,MAClC,cAAA,EAAgB,MAAM,iBAAA,CAAkB,IAAI,CAAA;AAAA;AAAA,MAE5C,EAAA,EAAI,WAAA;AAAA,MACJ,OAAA,EAAS,CAAC,SAAA,EAAW,MAAA,EAAQ,YAAY,YAAA,CAAa,OAAA,CAAQ,SAAA,EAAW,MAAA,EAAQ,OAAO,CAAA;AAAA,MACxF,eAAA,EAAiB,CAAC,WAAA,KAAyB,YAAA,CAAa,gBAAgB,WAAW,CAAA;AAAA,MACnF,MAAA,EAAQ,CAAC,WAAA,KAAwB,YAAA,CAAa,OAAO,WAAW,CAAA;AAAA,MAChE,QAAA,EAAU,CAAC,SAAA,KAAsB,YAAA,CAAa,SAAS,SAAS,CAAA;AAAA,MAChE,uBAAA,EAAyB,CAAC,SAAA,EAAW,MAAA,EAAQ,YAAY,YAAA,CAAa,uBAAA,CAAwB,SAAA,EAAW,MAAA,EAAQ,OAAO,CAAA;AAAA,MACxH,KAAA,EAAO,CAAC,SAAA,EAAW,MAAA,EAAQ,YAAY,YAAA,CAAa,KAAA,CAAM,SAAA,EAAW,MAAA,EAAQ,OAAO,CAAA;AAAA,MACpF,WAAA,EAAa,MAAM,uBAAA,CAAwB,IAAI,CAAA;AAAA;AAAA,MAE/C,SAAA;AAAA,MACA,kBAAA,EAAoB,MAAM,qBAAA,CAAsB,IAAI,CAAA;AAAA;AAAA,MAEpD,aAAA;AAAA,MACA,oBAAA;AAAA,MACA,sBAAA,EAAwB,MAAM,yBAAA,CAA0B,IAAI,CAAA;AAAA;AAAA,MAE5D,aAAA;AAAA,MACA,aAAA;AAAA,MACA,sBAAA,EAAwB,MAAM,yBAAA,CAA0B,IAAI,CAAA;AAAA;AAAA,MAE5D,aAAA,EAAe,MAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA,MAC1C,gBAAA,EAAkB,MAAM,mBAAA,CAAoB,IAAI,CAAA;AAAA;AAAA,MAEhD,QAAA;AAAA,MACA,iBAAA,EAAmB,MAAM,oBAAA,CAAqB,IAAI,CAAA;AAAA;AAAA,MAElD,0BAAA,EAA4B,MAAM,6BAAA,CAA8B,IAAI,CAAA;AAAA;AAAA,MAEpE,OAAA,EAAS,YAAA,CAAa,IAAA,KAAS,WAAA,GAAc,aAAa,OAAA,GAAU,SAAA;AAAA,MACpE,UAAA,EAAY,CAAC,OAAA,KAA4B,YAAA,CAAa,WAAW,OAAO,CAAA;AAAA;AAAA,MAExE,YAAA,EAAc,CAAC,OAAA,GAAU,EAAC,KAAM;AAC9B,QAAA,kBAAA,CAAmB,OAAO,CAAA;AAC1B,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,MACtB,CAAA;AAAA;AAAA,MAEA,aAAA,EAAe,MAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA;AAAA,MAE1C,SAAA,EAAW,cAAA;AAAA,MACX,MAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA,EAAG;AAAA,IACD,aAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,oBAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uBACEZ,IAAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,OAAO,YAAA,EAC5B,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,kCACCC,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,iBAAA,CAAkB,KAAK,CAAA,EACxD,QAAA,kBAAAA,IAAC,UAAA,EAAA,EAAW,OAAA,EAAS,MAAM,iBAAA,CAAkB,KAAK,GAAG,CAAA,EACvD,CAAA;AAAA,IAED,wCACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,uBAAA,CAAwB,KAAK,CAAA,EAC9D,QAAA,kBAAAA,IAAC,gBAAA,EAAA,EAAiB,OAAA,EAAS,MAAM,uBAAA,CAAwB,KAAK,GAAG,CAAA,EACnE,CAAA;AAAA,IAED,YAAA,oBACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,SAAS,MAAM,eAAA,CAAgB,KAAK,CAAA,EACtD,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAK,CAAA;AAAA,QACnC,GAAI,eAAA,CAAgB,OAAA,KAAY,UAAa,EAAE,OAAA,EAAS,gBAAgB,OAAA,EAAQ;AAAA,QAChF,GAAI,eAAA,CAAgB,KAAA,KAAU,UAAa,EAAE,KAAA,EAAO,gBAAgB,KAAA,EAAM;AAAA,QAC1E,GAAI,eAAA,CAAgB,UAAA,KAAe,UAAa,EAAE,UAAA,EAAY,gBAAgB,UAAA;AAAW;AAAA,KAC5F,EACF,CAAA;AAAA,IAED,iCACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,gBAAA,CAAiB,KAAK,CAAA,EACvD,QAAA,kBAAAA,IAAC,UAAA,EAAA,EAAW,OAAA,EAAS,MAAM,gBAAA,CAAiB,KAAK,GAAG,CAAA,EACtD,CAAA;AAAA,IAED,sCACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,qBAAA,CAAsB,KAAK,CAAA,EAC5D,QAAA,kBAAAA,IAAC,cAAA,EAAA,EAAe,OAAA,EAAS,MAAM,qBAAA,CAAsB,KAAK,GAAG,CAAA,EAC/D,CAAA;AAAA,IAED,0CACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,yBAAA,CAA0B,KAAK,CAAA,EAChE,QAAA,kBAAAA,IAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,yBAAA,CAA0B,KAAK,GAAG,CAAA,EACvE,CAAA;AAAA,IAED,0CACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,yBAAA,CAA0B,KAAK,CAAA,EAChE,QAAA,kBAAAA,IAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,yBAAA,CAA0B,KAAK,GAAG,CAAA,EACvE,CAAA;AAAA,IAED,iCACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,gBAAA,CAAiB,KAAK,CAAA,EACvD,QAAA,kBAAAA,IAAC,SAAA,EAAA,EAAU,OAAA,EAAS,MAAM,gBAAA,CAAiB,KAAK,GAAG,CAAA,EACrD,CAAA;AAAA,IAED,oCACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,mBAAA,CAAoB,KAAK,CAAA,EAC1D,QAAA,kBAAAA,IAAC,YAAA,EAAA,EAAa,OAAA,EAAS,MAAM,mBAAA,CAAoB,KAAK,GAAG,CAAA,EAC3D,CAAA;AAAA,IAED,qCACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,oBAAA,CAAqB,KAAK,CAAA,EAC3D,QAAA,kBAAAA,IAAC,aAAA,EAAA,EAAc,OAAA,EAAS,MAAM,oBAAA,CAAqB,KAAK,GAAG,CAAA,EAC7D,CAAA;AAAA,IAED,8CACCA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAS,MAAM,6BAAA,CAA8B,KAAK,CAAA,EACpE,QAAA,kBAAAA,IAAC,sBAAA,EAAA,EAAuB,OAAA,EAAS,MAAM,6BAAA,CAA8B,KAAK,GAAG,CAAA,EAC/E;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEO,SAAS,SAAA,GAAY;AAC1B,EAAA,MAAM,GAAA,GAAM,WAAW,aAAa,CAAA;AACpC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,GAAA;AACT;;;AC5cO,SAAS,wBAAiD,GAAA,EAAa;AAC5E,EAAA,OAAO,SAAS,gBAAA,GAAsC;AACpD,IAAA,MAAM,EAAE,QAAA,EAAU,eAAA,EAAgB,GAAI,SAAA,EAAU;AAChD,IAAA,MAAM,OAAA,GAAU,WAAW,GAAG,CAAA;AAE9B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,YAAA,EAAe,GAAG,CAAA,4BAAA,CAA8B,CAAA;AAAA,IAClE;AAEA,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACZ,MAAA,CAAO,QAAQ,OAAO,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,EAAE,CAAA,KAAM;AAAA,QAC1C,IAAA;AAAA,QACA,OAAO,MAAA,KAAqC;AAC1C,UAAA,MAAM,EAAE,mBAAA,EAAoB,GAAI,MAAM,GAAG,MAAM,CAAA;AAC/C,UAAA,OAAO,gBAAgB,mBAAmB,CAAA;AAAA,QAC5C;AAAA,OACD;AAAA,KACH;AAAA,EACF,CAAA;AACF;ACtBA,SAAS,UAAA,GAAa;AACpB,EAAA,uBAAOA,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,WAAA,EAAa,GAAA,EAAI,QAAA,EAAS,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,CAAA;AAChG;AA2BA,SAAS,WAAW,OAAA,EAAiB;AACnC,EAAA,IAAI,OAAA,CAAQ,MAAA,IAAU,EAAA,EAAI,OAAO,OAAA;AACjC,EAAA,OAAO,CAAA,EAAG,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,GAAA,EAAM,OAAA,CAAQ,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AACtD;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,aAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,eAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,uBACED,IAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,kBAAA,EAAmB,KAAA,EAAO,EAAE,eAAA,EAAiB,WAAA,EAAY,EAAG,SAAS,OAAA,EACnG,QAAA,EAAA;AAAA,sBAAAC,IAAC,UAAA,EAAA,EAAW,CAAA;AAAA,MAAE;AAAA,KAAA,EAEhB,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,KAAK,UAAA,EACnC,QAAA,EAAA;AAAA,oBAAAA,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAO,EAAE,eAAA,EAAiB,WAAA,EAAY;AAAA,QACtC,OAAA,EAAS,eAAe,MAAA,GAAY,YAAA;AAAA,QACpC,QAAA,EAAU,YAAA;AAAA,QACV,WAAA,EAAW,YAAA;AAAA,QAEX,QAAA,EAAA;AAAA,0BAAAC,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,UAAA,CAAW,aAAa,CAAA,EAAE,CAAA;AAAA,UAC7D,YAAA,mBACCD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EAAqB,OAAA,EAAQ,WAAA,EAAY,KAAA,EAAM,MAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,MAAA,EAAO,eAAW,IAAA,EACpG,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA,EAAE,KAAA,EAAM,MAAA,EAAO,wBAAA,EAAyB,WAAA,EAAY,KAAA,EAAM,CAAA;AAAA,4BAChFA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAG,GAAA;AAAA,gBACH,EAAA,EAAG,GAAA;AAAA,gBACH,CAAA,EAAE,KAAA;AAAA,gBACF,MAAA,EAAO,OAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,eAAA,EAAgB,MAAA;AAAA,gBAChB,SAAA,EAAU;AAAA;AAAA;AACZ,WAAA,EACF,oBAEAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,CAAA,cAAA,EAAiB,IAAA,GAAO,OAAA,GAAU,EAAE,CAAA,CAAA;AAAA,cAC/C,OAAA,EAAQ,WAAA;AAAA,cACR,IAAA,EAAK,MAAA;AAAA,cACL,MAAA,EAAO,cAAA;AAAA,cACP,WAAA,EAAY,GAAA;AAAA,cACZ,aAAA,EAAc,OAAA;AAAA,cACd,cAAA,EAAe,OAAA;AAAA,cAEf,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,cAAA,EAAe;AAAA;AAAA;AAClC;AAAA;AAAA,KAEJ;AAAA,IAEC,IAAA,oBACCD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,KAAA,EAAO,EAAE,eAAA,EAAiB,UAAA,EAAY,WAAA,EAAa,cAAA,EAAe,EACjG,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,MAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACrCA,GAAAA,CAAC,SAAA,EAAA,EAAQ,MAAA,EAAO,2BAAA,EAA4B;AAAA;AAAA;AAAA,SAC9C;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,SAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,CAAA;AAAA,8BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACtCA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qDAAA,EAAsD;AAAA;AAAA;AAAA,SAChE;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA0B,CAAA;AAAA,sBACzCD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,MAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,8BAChDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yDAAA,EAA0D;AAAA;AAAA;AAAA,SACpE;AAAA,QACC,SAAS,SAAA,GAAY;AAAA,OAAA,EACxB,CAAA;AAAA,sBACAD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,eAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,CAAA;AAAA,8BACvDA,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,8BAC9BA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,UAAA,EAAW;AAAA;AAAA;AAAA,SACrB;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,WAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4DAAA,EAA6D,CAAA;AAAA,8BACrEA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,CAAA;AAAA,8BAClCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACrCA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,cAAA,EAAe;AAAA;AAAA;AAAA,SAClC;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA0B,CAAA;AAAA,sBAEzCD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,MAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,CAAA;AAAA,8BAClCA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0BAAA,EAA2B,CAAA;AAAA,8BACnCA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,CAAA;AAAA,8BAClCA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0BAAA,EAA2B;AAAA;AAAA;AAAA,SACrC;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBAEAD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,KAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oCAAA,EAAqC,CAAA;AAAA,8BAC7CA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0BAAA,EAA2B,CAAA;AAAA,8BACnCA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB;AAAA;AAAA;AAAA,SACtC;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,mBAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI,CAAA;AAAA,8BAC7BA,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,8BAC7BA,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,8BAC9BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,IAAG,OAAA,EAAQ,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,OAAA,EAAQ,CAAA;AAAA,8BACjDA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,OAAA,EAAQ,IAAG,MAAA,EAAO,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,OAAA,EAAQ;AAAA;AAAA;AAAA,SAClD;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAG,OAAA,EAAS,UAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,CAAA;AAAA,8BACvDA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,SACxC;AAAA,QAAM;AAAA,OAAA,EAER,CAAA;AAAA,sBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA0B,CAAA;AAAA,sBACzCD,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,6BAAA,EAA8B,SAAS,QAAA,EACvD,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yCAAA,EAA0C,CAAA;AAAA,8BAClDA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,CAAA;AAAA,8BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,SACvC;AAAA,QAAM;AAAA,OAAA,EAER;AAAA,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AChSO,SAAS,YAAA,GAAe;AAC7B,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,sBAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,0BAAA;AAAA,IACA,EAAA,EAAI,WAAA;AAAA,IACJ;AAAA,MACE,SAAA,EAAU;AACd,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,SAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,UAAA,GAAaC,OAAuB,IAAI,CAAA;AAC9C,EAAA,MAAM,YAAA,GAAeA,OAA6C,IAAI,CAAA;AACtE,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,IAAA,KAAS,UAAA,IAAc,YAAY,IAAA,KAAS,SAAA;AAE7E,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,WAAA,GAAc,WAAU,GAAI,MAAA;AACrD,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AACzB,EAAA,MAAM,UAAA,GAAa,SAAS,SAAA,GAAY,MAAA;AACxC,EAAA,MAAM,cAAA,GAAiB,SAAS,SAAA,GAAY,SAAA;AAC5C,EAAA,MAAM,SAAA,GAAY,SAAS,SAAA,GAAY,SAAA;AAEvC,EAAAH,UAAU,MAAM;AACd,IAAA,SAAS,mBAAmB,CAAA,EAAe;AACzC,MAAA,IAAI,UAAA,CAAW,WAAW,CAAC,UAAA,CAAW,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AACxE,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,kBAAkB,CAAA;AACzD,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,kBAAkB,CAAA;AAAA,EAC3E,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAA,SAAAA;AAAA,IACE,MAAM,MAAM;AACV,MAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,IACtE,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,eAAe,UAAA,GAAa;AAC1B,IAAA,IAAI,CAAC,aAAA,EAAe;AACpB,IAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,aAAa,CAAA;AACjD,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,IAAI,YAAA,CAAa,OAAA,KAAY,IAAA,EAAM,YAAA,CAAa,aAAa,OAAO,CAAA;AACpE,IAAA,YAAA,CAAa,OAAA,GAAU,WAAW,MAAM;AACtC,MAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AACvB,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB,GAAG,IAAI,CAAA;AAAA,EACT;AAEA,EAAA,SAAS,YAAA,GAAe;AACtB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,SAAA,GAAY,MAAA,EAAO;AAAA,EACrB;AAEA,EAAA,SAAS,mBAAA,GAAsB;AAC7B,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,sBAAA,EAAuB;AAAA,EACzB;AAEA,EAAA,SAAS,eAAA,GAAkB;AACzB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,kBAAA,EAAmB;AAAA,EACrB;AAEA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,aAAA,EAAc;AAAA,EAChB;AAEA,EAAA,SAAS,aAAA,GAAgB;AACvB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,gBAAA,EAAiB;AAAA,EACnB;AAEA,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,iBAAA,EAAkB;AAAA,EACpB;AAEA,EAAA,SAAS,SAAA,GAAY;AACnB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,YAAA,EAAa;AAAA,EACf;AAEA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,aAAA,EAAc;AAAA,EAChB;AAEA,EAAA,SAAS,uBAAA,GAA0B;AACjC,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,0BAAA,EAA2B;AAAA,EAC7B;AAEA,EAAA,uBACED,GAAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,eAAe,aAAA,IAAiB,IAAA;AAAA,MAChC,WAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAc,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,MACrC,MAAA,EAAQ,UAAA;AAAA,MACR,eAAA,EAAiB,mBAAA;AAAA,MACjB,WAAA,EAAa,eAAA;AAAA,MACb,MAAA,EAAQ,UAAA;AAAA,MACR,SAAA,EAAW,aAAA;AAAA,MACX,UAAA,EAAY,cAAA;AAAA,MACZ,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ,UAAA;AAAA,MACR,mBAAA,EAAqB,uBAAA;AAAA,MACrB,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS;AAAA;AAAA,GACX;AAEJ","file":"index.mjs","sourcesContent":["module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n PATTERN_POSITION_TABLE : [\n\t [],\n\t [6, 18],\n\t [6, 22],\n\t [6, 26],\n\t [6, 30],\n\t [6, 34],\n\t [6, 22, 38],\n\t [6, 24, 42],\n\t [6, 26, 46],\n\t [6, 28, 50],\n\t [6, 30, 54],\t\t\n\t [6, 32, 58],\n\t [6, 34, 62],\n\t [6, 26, 46, 66],\n\t [6, 26, 48, 70],\n\t [6, 26, 50, 74],\n\t [6, 30, 54, 78],\n\t [6, 30, 56, 82],\n\t [6, 30, 58, 86],\n\t [6, 34, 62, 90],\n\t [6, 28, 50, 72, 94],\n\t [6, 26, 50, 74, 98],\n\t [6, 30, 54, 78, 102],\n\t [6, 28, 54, 80, 106],\n\t [6, 32, 58, 84, 110],\n\t [6, 30, 58, 86, 114],\n\t [6, 34, 62, 90, 118],\n\t [6, 26, 50, 74, 98, 122],\n\t [6, 30, 54, 78, 102, 126],\n\t [6, 26, 52, 78, 104, 130],\n\t [6, 30, 56, 82, 108, 134],\n\t [6, 34, 60, 86, 112, 138],\n\t [6, 30, 58, 86, 114, 142],\n\t [6, 34, 62, 90, 118, 146],\n\t [6, 30, 54, 78, 102, 126, 150],\n\t [6, 24, 50, 76, 102, 128, 154],\n\t [6, 28, 54, 80, 106, 132, 158],\n\t [6, 32, 58, 84, 110, 136, 162],\n\t [6, 26, 54, 82, 110, 138, 166],\n\t [6, 30, 58, 86, 114, 142, 170]\n ],\n\n G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n getBCHTypeInfo : function(data) {\n\t var d = data << 10;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t }\n\t return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n },\n\n getBCHTypeNumber : function(data) {\n\t var d = data << 12;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t }\n\t return (data << 12) | d;\n },\n\n getBCHDigit : function(data) {\n\n\t var digit = 0;\n\n\t while (data != 0) {\n\t\t digit++;\n\t\t data >>>= 1;\n\t }\n\n\t return digit;\n },\n\n getPatternPosition : function(typeNumber) {\n\t return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n\n getMask : function(maskPattern, i, j) {\n\t \n\t switch (maskPattern) {\n\t\t \n\t case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t default :\n\t\t throw new Error(\"bad maskPattern:\" + maskPattern);\n\t }\n },\n\n getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t var a = new Polynomial([1], 0);\n\n\t for (var i = 0; i < errorCorrectLength; i++) {\n\t\t a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t }\n\n\t return a;\n },\n\n getLengthInBits : function(mode, type) {\n\n\t if (1 <= type && type < 10) {\n\n\t\t // 1 - 9\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 10;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t case Mode.MODE_KANJI \t: return 8;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 27) {\n\n\t\t // 10 - 26\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 12;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 10;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 41) {\n\n\t\t // 27 - 40\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 14;\n\t\t case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 12;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else {\n\t\t throw new Error(\"type:\" + type);\n\t }\n },\n\n getLostPoint : function(qrCode) {\n\t \n\t var moduleCount = qrCode.getModuleCount();\n\t \n\t var lostPoint = 0;\n\t \n\t // LEVEL1\n\t \n\t for (var row = 0; row < moduleCount; row++) {\n\n\t\t for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t var sameCount = 0;\n\t\t\t var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t continue;\n\t\t\t\t }\n\n\t\t\t\t for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (r == 0 && c == 0) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t sameCount++;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\n\t\t\t if (sameCount > 5) {\n\t\t\t\t lostPoint += (3 + sameCount - 5);\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL2\n\n\t for (var row = 0; row < moduleCount - 1; row++) {\n\t\t for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t var count = 0;\n\t\t\t if (qrCode.isDark(row, col ) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col ) ) count++;\n\t\t\t if (qrCode.isDark(row, col + 1) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t if (count == 0 || count == 4) {\n\t\t\t\t lostPoint += 3;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL3\n\n\t for (var row = 0; row < moduleCount; row++) {\n\t\t for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t && qrCode.isDark(row, col + 2)\n\t\t\t\t\t && qrCode.isDark(row, col + 3)\n\t\t\t\t\t && qrCode.isDark(row, col + 4)\n\t\t\t\t\t && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t && qrCode.isDark(row, col + 6) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t && qrCode.isDark(row + 2, col)\n\t\t\t\t\t && qrCode.isDark(row + 3, col)\n\t\t\t\t\t && qrCode.isDark(row + 4, col)\n\t\t\t\t\t && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t && qrCode.isDark(row + 6, col) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL4\n\t \n\t var darkCount = 0;\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount; row++) {\n\t\t\t if (qrCode.isDark(row, col) ) {\n\t\t\t\t darkCount++;\n\t\t\t }\n\t\t }\n\t }\n\t \n\t var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t lostPoint += ratio * 10;\n\n\t return lostPoint;\t\t\n }\n};\n\nmodule.exports = QRUtil;\n","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col) {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint > lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+ totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","export const LOGO_POLLAR = 'https://pollar.xyz/assets/logo_pollar.png';\nexport const LOGO_GITHUB = 'https://pollar.xyz/assets/GitHub_Invertocat_White.png';\nexport const LOGO_FREIGHTER = 'https://pollar.xyz/assets/logo_freighter.png';\nexport const LOGO_ALBEDO = 'https://pollar.xyz/assets/logo_albedo.svg';\n","type StateStatus = 'NONE' | 'LOADING' | 'SUCCESS' | 'ERROR';\n\nimport type { PollarLogger } from '@pollar/core';\nimport { Component, type ReactNode } from 'react';\nimport { LOGO_POLLAR } from '../constants';\n\ndeclare const __POLLAR_VERSION__: string;\n\n// Module-level sink for the error boundary (a class component, so it can't read\n// React context inside `componentDidCatch`). `PollarProvider` points this at the\n// client's level-gated logger on mount; defaults to `console` until then.\nlet _modalLog: PollarLogger = console;\nexport function setModalErrorLogger(logger: PollarLogger): void {\n _modalLog = logger;\n}\n\ninterface ModalErrorBoundaryState {\n crashed: boolean;\n}\n\nexport class ModalErrorBoundary extends Component<{ children: ReactNode; onClose: () => void }, ModalErrorBoundaryState> {\n state: ModalErrorBoundaryState = { crashed: false };\n\n static getDerivedStateFromError(): ModalErrorBoundaryState {\n return { crashed: true };\n }\n\n componentDidCatch(error: unknown) {\n _modalLog.error('[PollarProvider] Modal crashed:', error);\n }\n\n render() {\n if (this.state.crashed) {\n this.props.onClose();\n return null;\n }\n return this.props.children;\n }\n}\n\nexport const PollarModalFooter = () => {\n return (\n <div className=\"pollar-footer\">\n <span className=\"pollar-footer-protected\">Protected by</span>\n <div className=\"pollar-footer-brand\">\n <img src={LOGO_POLLAR} alt=\"Pollar\" className=\"pollar-footer-logo\" />\n <span className=\"pollar-footer-name\">Pollar</span>\n <span className=\"pollar-footer-version\">v{__POLLAR_VERSION__}</span>\n </div>\n </div>\n );\n};\n\ninterface ModalStatusBannerProps {\n message: string;\n status: StateStatus;\n onCancel?: (() => void) | undefined;\n onRetry?: (() => void) | undefined;\n}\n\nexport function ModalStatusBanner({ message, status, onCancel, onRetry }: ModalStatusBannerProps) {\n if (!message && status === 'NONE') {\n return <div className=\"pollar-status\" />;\n }\n\n const isLoading = status === 'LOADING';\n const icon =\n status === 'ERROR' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M4.5 4.5l5 5M9.5 4.5l-5 5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ) : status === 'SUCCESS' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M3.5 7l2.5 2.5 4.5-5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ) : status === 'LOADING' ? (\n <></>\n ) : null;\n\n return (\n <div className=\"pollar-status\" data-kind={status}>\n {icon}\n <span>{message}</span>\n {isLoading && onCancel && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onCancel}>\n Cancel\n </button>\n )}\n {status === 'ERROR' && onRetry && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onRetry}>\n Retry\n </button>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { DistributionRule, DistributionRulesState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\ninterface DistributionRulesModalTemplateProps {\n theme: string;\n accentColor: string;\n state: DistributionRulesState;\n claimingId: string | null;\n claimErrors: Record<string, string>;\n claimedIds: Set<string>;\n onRefresh: () => void;\n onClaim: (rule: DistributionRule) => void;\n onClose: () => void;\n}\n\nconst PERIOD_LABEL: Record<DistributionRule['period'], string> = {\n DAY: 'every 24h',\n DAY_CALENDAR: 'daily',\n WEEK: 'every 7 days',\n MONTH: 'every 30 days',\n MONTH_CALENDAR: 'monthly',\n LIFETIME: 'one-time',\n};\n\n// Reasons returned by sdk-api are the ErrorCode enum values from\n// @pollar/shared. Mapped to short user-facing strings; anything unknown\n// falls back to \"Not available\".\nconst REASON_LABEL: Record<string, string> = {\n DISTRIBUTION_RULE_DISABLED: 'Disabled',\n DISTRIBUTION_RULE_NOT_STARTED: 'Not started yet',\n DISTRIBUTION_RULE_EXPIRED: 'Expired',\n DISTRIBUTION_RULE_EXHAUSTED: 'Fully claimed',\n // Per-user, per-window claim limit (resets next period) — not permanent.\n DISTRIBUTION_RATE_LIMIT_EXCEEDED: 'Claimed for this period',\n};\n\nfunction reasonLabel(reason: string | null): string {\n if (!reason) return 'Not available';\n return REASON_LABEL[reason] ?? 'Not available';\n}\n\nfunction formatAmount(amount: string): string {\n const n = parseFloat(amount);\n return isNaN(n) ? amount : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction formatValidity(rule: DistributionRule): string | null {\n const from = rule.validFrom ? new Date(rule.validFrom) : null;\n const until = rule.validUntil ? new Date(rule.validUntil) : null;\n if (!from && !until) return null;\n const fmt = (d: Date) => d.toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n if (from && until) return `${fmt(from)} → ${fmt(until)}`;\n if (until) return `Until ${fmt(until)}`;\n if (from) return `From ${fmt(from)}`;\n return null;\n}\n\nfunction RuleCard({\n rule,\n isClaiming,\n isClaimed,\n errorMessage,\n onClaim,\n}: {\n rule: DistributionRule;\n isClaiming: boolean;\n isClaimed: boolean;\n errorMessage?: string;\n onClaim: () => void;\n}) {\n const validity = formatValidity(rule);\n const effectivelyClaimable = rule.claimable && !isClaimed;\n\n return (\n <div className=\"pollar-dist-item\" data-claimable={effectivelyClaimable ? 'true' : 'false'}>\n <div className=\"pollar-dist-item-row\">\n <span className=\"pollar-dist-item-name\">{rule.name}</span>\n <span className=\"pollar-dist-item-amount\">\n {formatAmount(rule.amount)} <span className=\"pollar-dist-item-asset\">{rule.assetCode}</span>\n </span>\n </div>\n <div className=\"pollar-dist-item-meta\">\n <span>{PERIOD_LABEL[rule.period]}</span>\n {validity && <span>· {validity}</span>}\n </div>\n <div className=\"pollar-dist-item-action\">\n {isClaimed ? (\n <span className=\"pollar-dist-item-status\" data-kind=\"claimed\">\n Claimed\n </span>\n ) : effectivelyClaimable ? (\n <button type=\"button\" className=\"pollar-btn-primary pollar-dist-claim-btn\" onClick={onClaim} disabled={isClaiming}>\n {isClaiming ? 'Claiming…' : 'Claim'}\n </button>\n ) : (\n <span className=\"pollar-dist-item-status\" data-kind=\"unavailable\">\n {reasonLabel(rule.reason)}\n </span>\n )}\n </div>\n {errorMessage && <div className=\"pollar-dist-item-error\">{errorMessage}</div>}\n </div>\n );\n}\n\nexport function DistributionRulesModalTemplate({\n theme,\n accentColor,\n state,\n claimingId,\n claimErrors,\n claimedIds,\n onRefresh,\n onClaim,\n onClose,\n}: DistributionRulesModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = state.step === 'loading';\n const rules = state.step === 'loaded' ? state.rules : [];\n\n return (\n <div\n className=\"pollar-modal-card pollar-dist-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Distribution Rules</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-dist-list\">\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n {state.step === 'error' && <div className=\"pollar-modal-error\">{state.message}</div>}\n {state.step === 'loaded' && rules.length === 0 && (\n <div className=\"pollar-modal-empty\">No distribution rules available.</div>\n )}\n {rules.map((rule) => (\n <RuleCard\n key={rule.id}\n rule={rule}\n isClaiming={claimingId === rule.id}\n isClaimed={claimedIds.has(rule.id)}\n {...(claimErrors[rule.id] && { errorMessage: claimErrors[rule.id] })}\n onClaim={() => onClaim(rule)}\n />\n ))}\n </div>\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { DistributionRule, DistributionRulesState } from '@pollar/core';\nimport { useCallback, useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './DistributionRulesModal.css';\nimport { DistributionRulesModalTemplate } from './DistributionRulesModalTemplate';\n\ninterface DistributionRulesModalProps {\n onClose: () => void;\n}\n\nexport function DistributionRulesModal({ onClose }: DistributionRulesModalProps) {\n const { getClient, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [state, setState] = useState<DistributionRulesState>({ step: 'idle' });\n const [claimingId, setClaimingId] = useState<string | null>(null);\n const [claimErrors, setClaimErrors] = useState<Record<string, string>>({});\n const [claimedIds, setClaimedIds] = useState<Set<string>>(() => new Set());\n\n const load = useCallback(async () => {\n setState({ step: 'loading' });\n try {\n const rules = await getClient().listDistributionRules();\n setState({ step: 'loaded', rules });\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to load distribution rules';\n setState({ step: 'error', message });\n }\n }, [getClient]);\n\n useEffect(() => {\n void load();\n }, [load]);\n\n const handleClaim = useCallback(\n async (rule: DistributionRule) => {\n setClaimingId(rule.id);\n setClaimErrors((prev) => {\n if (!prev[rule.id]) return prev;\n const next = { ...prev };\n delete next[rule.id];\n return next;\n });\n try {\n await getClient().claimDistributionRule({ ruleId: rule.id });\n setClaimedIds((prev) => {\n const next = new Set(prev);\n next.add(rule.id);\n return next;\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Claim failed';\n setClaimErrors((prev) => ({ ...prev, [rule.id]: message }));\n } finally {\n setClaimingId(null);\n }\n },\n [getClient],\n );\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <DistributionRulesModalTemplate\n theme={theme}\n accentColor={accentColor}\n state={state}\n claimingId={claimingId}\n claimErrors={claimErrors}\n claimedIds={claimedIds}\n onRefresh={() => void load()}\n onClaim={handleClaim}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { EnabledAssetRecord, EnabledAssetsState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nfunction cropAddress(address: string): string {\n if (address.length <= 16) return address;\n return `${address.slice(0, 8)}...${address.slice(-8)}`;\n}\n\nfunction AssetItem({ record }: { record: EnabledAssetRecord }) {\n const established = record.trustlineEstablished;\n return (\n <div className=\"pollar-asset-item\">\n <div className=\"pollar-asset-info\">\n <span className=\"pollar-asset-code\">{record.code}</span>\n {record.name && <span className=\"pollar-asset-name\">{record.name}</span>}\n </div>\n <span className={`pollar-asset-trustline${established ? ' established' : ''}`}>\n {established ? 'Trustline active' : 'Needs trustline'}\n </span>\n </div>\n );\n}\n\nexport interface EnabledAssetsModalTemplateProps {\n theme: string;\n accentColor: string;\n enabledAssets: EnabledAssetsState;\n walletAddress: string;\n onRefresh: () => void;\n onClose: () => void;\n}\n\nexport function EnabledAssetsModalTemplate({\n theme,\n accentColor,\n enabledAssets,\n walletAddress,\n onRefresh,\n onClose,\n}: EnabledAssetsModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = enabledAssets.step === 'loading';\n const data = enabledAssets.step === 'loaded' ? enabledAssets.data : null;\n\n return (\n <div className=\"pollar-modal-card pollar-asset-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Enabled Assets</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {walletAddress && <div className=\"pollar-asset-address\">{cropAddress(walletAddress)}</div>}\n\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n\n {enabledAssets.step === 'error' && <div className=\"pollar-modal-error\">{enabledAssets.message}</div>}\n\n {data && !data.exists && <div className=\"pollar-modal-empty\">Account not found on {data.network}.</div>}\n\n {data && data.assets.length === 0 && <div className=\"pollar-modal-empty\">No assets enabled for this application.</div>}\n\n {data && data.assets.length > 0 && (\n <div className=\"pollar-asset-list\">\n {data.assets.map((a) => (\n <AssetItem key={a.code + (a.issuer ?? '')} record={a} />\n ))}\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './EnabledAssetsModal.css';\nimport { EnabledAssetsModalTemplate } from './EnabledAssetsModalTemplate';\n\ninterface EnabledAssetsModalProps {\n onClose: () => void;\n}\n\nexport function EnabledAssetsModal({ onClose }: EnabledAssetsModalProps) {\n const { enabledAssets, refreshAssets, walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n useEffect(() => {\n void refreshAssets();\n }, [refreshAssets]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <EnabledAssetsModalTemplate\n theme={theme}\n accentColor={accentColor}\n enabledAssets={enabledAssets}\n walletAddress={walletAddress}\n onRefresh={() => refreshAssets()}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport type { KycStatus as KycStatusValue } from '@pollar/core';\nimport type { CSSProperties } from 'react';\n\ninterface KycStatusProps {\n status: KycStatusValue;\n className?: string;\n}\n\nconst STATUS_CONFIG: Record<KycStatusValue, { label: string; color: string; dot: boolean }> = {\n none: { label: 'Not started', color: '#6b7280', dot: false },\n pending: { label: 'Pending review', color: '#f59e0b', dot: true },\n approved: { label: 'Verified', color: '#10b981', dot: false },\n rejected: { label: 'Rejected', color: '#ef4444', dot: false },\n};\n\nexport function KycStatus({ status, className }: KycStatusProps) {\n const config = STATUS_CONFIG[status] ?? STATUS_CONFIG.none;\n return (\n <span\n className={`pollar-kyc-badge${className ? ` ${className}` : ''}`}\n style={{ '--pollar-kyc-color': config.color } as CSSProperties}\n >\n {config.dot && <span className=\"pollar-kyc-badge-dot\" />}\n {config.label}\n </span>\n );\n}\n","'use client';\n\nimport type { KycProvider, KycStartResponse, KycStatus as KycStatusValue } from '@pollar/core';\nimport type { CSSProperties } from 'react';\nimport { KycStatus as KycStatusBadge } from './KycStatus';\n\nexport type KycStep = 'select_provider' | 'verifying' | 'polling' | 'done';\n\ninterface KycModalTemplateProps {\n theme: string;\n accentColor: string;\n step: KycStep;\n providers: KycProvider[];\n selectedProvider: KycProvider | null;\n session: KycStartResponse | null;\n kycStatus: KycStatusValue;\n isLoading: boolean;\n onSelectProvider: (provider: KycProvider) => void;\n onDoneVerifying: () => void;\n onClose: () => void;\n}\n\nexport function KycModalTemplate({\n theme,\n accentColor,\n step,\n providers,\n selectedProvider,\n session,\n kycStatus,\n isLoading,\n onSelectProvider,\n onDoneVerifying,\n onClose,\n}: KycModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n '--pollar-modal-padding': '2rem',\n '--pollar-modal-heading-size': '1.375rem',\n '--pollar-modal-subtitle-size': '0.9rem',\n } as CSSProperties;\n\n return (\n <div className=\"pollar-modal-card pollar-kyc-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-kyc-header\">\n <h2 className=\"pollar-kyc-title\">Identity verification</h2>\n <p className=\"pollar-kyc-subtitle\">\n {step === 'select_provider' && 'Choose your verification provider'}\n {step === 'verifying' && `Verifying with ${selectedProvider?.name}`}\n {step === 'polling' && 'Waiting for verification result'}\n {step === 'done' && 'Verification complete'}\n </p>\n </div>\n\n {step === 'select_provider' && (\n <div className=\"pollar-kyc-providers\">\n {providers.length === 0 && (\n <p style={{ color: 'var(--pollar-muted)', textAlign: 'center' }}>No providers available for your country.</p>\n )}\n {providers.map((p) => (\n <button\n key={p.id}\n type=\"button\"\n className=\"pollar-kyc-provider-btn\"\n disabled={isLoading}\n onClick={() => onSelectProvider(p)}\n >\n <span className=\"pollar-kyc-provider-name\">{p.name}</span>\n <span className=\"pollar-kyc-provider-flow\">{p.flow}</span>\n </button>\n ))}\n </div>\n )}\n\n {step === 'verifying' && selectedProvider && (\n <>\n <div className=\"pollar-kyc-iframe-wrap\">\n {session?.kycUrl ? (\n <iframe className=\"pollar-kyc-iframe\" src={session.kycUrl} title=\"KYC verification\" allow=\"camera; microphone\" />\n ) : (\n <div className=\"pollar-kyc-iframe-mock\">\n <span>🔒</span>\n <span>\n {selectedProvider.flow === 'form'\n ? 'The identity verification form will appear here.'\n : 'Identity verification will open here.'}\n </span>\n </div>\n )}\n </div>\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onDoneVerifying}>\n I've completed verification\n </button>\n </div>\n </>\n )}\n\n {step === 'polling' && (\n <div className=\"pollar-kyc-polling\">\n <div className=\"pollar-spinner\" />\n <p className=\"pollar-kyc-polling-text\">Checking verification status…</p>\n </div>\n )}\n\n {step === 'done' && (\n <div className=\"pollar-kyc-result\">\n <span className=\"pollar-kyc-result-icon\">{kycStatus === 'approved' ? '✅' : '❌'}</span>\n <KycStatusBadge status={kycStatus} />\n <p className=\"pollar-kyc-result-text\">\n {kycStatus === 'approved'\n ? 'Your identity has been verified successfully.'\n : 'Verification was not approved. Please try again.'}\n </p>\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onClose}>\n Close\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { type KycProvider, type KycStartResponse, type KycStatus as KycStatusValue } from '@pollar/core';\nimport { useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport type { KycStep } from './KycModalTemplate';\nimport { KycModalTemplate } from './KycModalTemplate';\nimport '../shared.css';\nimport './KycModal.css';\n\ninterface KycModalProps {\n onClose: () => void;\n /** ISO 3166-1 alpha-2 country code to filter providers. Defaults to 'MX'. */\n country?: string;\n /** KYC level required. Defaults to 'basic'. */\n level?: 'basic' | 'intermediate' | 'enhanced';\n /** Called when KYC is successfully approved. */\n onApproved?: () => void;\n}\n\nexport function KycModal({ onClose, country = 'MX', level = 'basic', onApproved }: KycModalProps) {\n const { getClient, styles } = usePollar();\n\n const [step, setStep] = useState<KycStep>('select_provider');\n const [providers, setProviders] = useState<KycProvider[]>([]);\n const [selectedProvider, setSelectedProvider] = useState<KycProvider | null>(null);\n const [session, setSession] = useState<KycStartResponse | null>(null);\n const [kycStatus, setKycStatus] = useState<KycStatusValue>('none');\n const [isLoading, setIsLoading] = useState(false);\n\n const client = getClient();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n useEffect(() => {\n setIsLoading(true);\n getClient()\n .getKycProviders(country)\n .then((result) => setProviders(result.providers))\n .catch(() => setProviders([]))\n .finally(() => setIsLoading(false));\n }, [getClient, country]);\n\n async function handleSelectProvider(provider: KycProvider) {\n setSelectedProvider(provider);\n setIsLoading(true);\n try {\n const result = await client.resolveKyc(provider.id, level);\n if (result.alreadyApproved) {\n setKycStatus('approved');\n setStep('done');\n onApproved?.();\n return;\n }\n setSession(result as KycStartResponse);\n setStep('verifying');\n } catch {\n setStep('select_provider');\n } finally {\n setIsLoading(false);\n }\n }\n\n async function handleDoneVerifying() {\n if (!selectedProvider) return;\n setStep('polling');\n try {\n const finalStatus = await client.pollKycStatus(selectedProvider.id, { intervalMs: 3000, timeoutMs: 120_000 });\n setKycStatus(finalStatus);\n setStep('done');\n if (finalStatus === 'approved') onApproved?.();\n } catch {\n setKycStatus('rejected');\n setStep('done');\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <KycModalTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n providers={providers}\n selectedProvider={selectedProvider}\n session={session}\n kycStatus={kycStatus}\n isLoading={isLoading}\n onSelectProvider={handleSelectProvider}\n onDoneVerifying={handleDoneVerifying}\n onClose={onClose}\n />\n </div>\n );\n}\n","import { useRef, useState } from 'react';\n\ninterface EmailCodeInputProps {\n email?: string;\n onSubmit: (code: string) => void;\n}\n\nexport function EmailCodeInput({ email, onSubmit }: EmailCodeInputProps) {\n const [digits, setDigits] = useState(['', '', '', '', '', '']);\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n function submit(next: string[]) {\n if (next.every(Boolean)) onSubmit(next.join(''));\n }\n\n function handleChange(index: number, value: string) {\n const cleaned = value.replace(/\\D/g, '').slice(-1);\n const next = digits.map((d, i) => (i === index ? cleaned : d));\n setDigits(next);\n if (cleaned && index < 5) inputRefs.current[index + 1]?.focus();\n submit(next);\n }\n\n function handleKeyDown(index: number, e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === 'Backspace' && !digits[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n }\n\n function handlePaste(e: React.ClipboardEvent<HTMLInputElement>) {\n e.preventDefault();\n const text = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, 6);\n const next = Array.from({ length: 6 }, (_, i) => text[i] ?? '');\n setDigits(next);\n inputRefs.current[Math.min(text.length - 1, 5)]?.focus();\n submit(next);\n }\n\n return (\n <div className=\"pollar-code-section\">\n <p className=\"pollar-code-label\">Enter the 6-digit code sent to {email ? <strong>{email}</strong> : 'your email'}</p>\n <div className=\"pollar-code-inputs\">\n {digits.map((digit, i) => (\n <input\n key={i}\n ref={(el) => {\n inputRefs.current[i] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={2}\n value={digit}\n className=\"pollar-code-input\"\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n />\n ))}\n </div>\n </div>\n );\n}\n","// https://brand.github.com/foundations/logo\nimport './GithubButton.css';\n\nexport const GithubButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"github-button\" disabled={disabled} onClick={onClick}>\n <svg className=\"github-button-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden>\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <span className=\"github-button-contents\">GitHub</span>\n </button>\n );\n};\n","// https://developers.google.com/identity/branding-guidelines\nimport './GoogleButton.css';\n\nexport const GoogleButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"gsi-material-button\" disabled={disabled} onClick={onClick}>\n <div className=\"gsi-material-button-state\"></div>\n <div className=\"gsi-material-button-content-wrapper\">\n <div className=\"gsi-material-button-icon\">\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" style={{ display: 'block' }}>\n <path\n fill=\"#EA4335\"\n d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\n ></path>\n <path\n fill=\"#4285F4\"\n d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\n ></path>\n <path\n fill=\"#FBBC05\"\n d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\n ></path>\n <path\n fill=\"#34A853\"\n d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\n ></path>\n <path fill=\"none\" d=\"M0 0h48v48H0z\"></path>\n </svg>\n </div>\n <span className=\"gsi-material-button-contents\">Google</span>\n <span style={{ display: 'none' }}>Google</span>\n </div>\n </button>\n );\n};\n","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, WalletId, WalletType } from '@pollar/core';\n\ntype StateStatus = 'NONE' | 'LOADING' | 'SUCCESS' | 'ERROR';\nimport { type CSSProperties, useState } from 'react';\nimport { LOGO_ALBEDO, LOGO_FREIGHTER, LOGO_POLLAR } from '../../constants';\nimport type { RenderWalletsSlot } from '../../types';\nimport { ModalStatusBanner, PollarModalFooter } from '../commons';\nimport { EmailCodeInput } from './EmailCodeInput';\nimport { GithubButton } from './GithubButton';\nimport { GoogleButton } from './GoogleButton';\n\nfunction DefaultFreighterAlbedoButtons({ onConnect, isLoading }: { onConnect: (id: WalletId) => void; isLoading: boolean }) {\n return (\n <div className=\"pollar-wallet-list\">\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-list-btn\"\n onClick={() => onConnect(WalletType.FREIGHTER)}\n >\n <img src={LOGO_FREIGHTER} alt=\"Freighter\" className=\"pollar-wallet-list-icon\" />\n <span className=\"pollar-wallet-list-name\">Freighter</span>\n </button>\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-list-btn\"\n onClick={() => onConnect(WalletType.ALBEDO)}\n >\n <img src={LOGO_ALBEDO} alt=\"Albedo\" className=\"pollar-wallet-list-icon\" />\n <span className=\"pollar-wallet-list-name\">Albedo</span>\n </button>\n </div>\n );\n}\n\nconst AUTH_STATE_MESSAGES: Record<AuthState['step'], string> = {\n idle: '',\n creating_session: 'Initializing…',\n entering_email: '',\n sending_email: 'Sending…',\n entering_code: 'Code sent — check your inbox',\n verifying_email_code: 'Verifying…',\n opening_oauth: 'Redirecting…',\n connecting_wallet: 'Connecting wallet…',\n wallet_not_installed: 'Wallet not installed',\n authenticating_wallet: 'Signing in with wallet…',\n creating_passkey: 'Waiting for passkey…',\n deploying_smart_account: 'Creating your wallet…',\n authenticating: 'Authenticating…',\n authenticated: 'Welcome!',\n error: '',\n};\n\nfunction authStateToStatus(step: AuthState['step']): StateStatus {\n const loading: AuthState['step'][] = [\n 'creating_session',\n 'sending_email',\n 'verifying_email_code',\n 'opening_oauth',\n 'connecting_wallet',\n 'authenticating_wallet',\n 'creating_passkey',\n 'deploying_smart_account',\n 'authenticating',\n ];\n const success: AuthState['step'][] = ['authenticated', 'entering_code'];\n const error: AuthState['step'][] = ['error', 'wallet_not_installed'];\n\n if (loading.includes(step)) return 'LOADING';\n if (success.includes(step)) return 'SUCCESS';\n if (error.includes(step)) return 'ERROR';\n return 'NONE';\n}\n\ninterface LoginModalTemplateProps {\n theme: string;\n accentColor: string;\n logoUrl: string | null;\n emailEnabled: boolean;\n embeddedWallets: boolean;\n /** Show the \"Smart Wallet\" (passkey) option. Optional & defaults to off so\n * adding it isn't a breaking change for existing template consumers. */\n smartWallet?: boolean;\n providers: {\n google: boolean;\n discord: boolean;\n x: boolean;\n github: boolean;\n apple: boolean;\n };\n appName: string;\n email?: string;\n onEmailChange?: (email: string) => void;\n onEmailSubmit?: () => void;\n onSocialLogin?: (provider: 'google' | 'github') => void;\n onWalletConnect?: (id: WalletId) => void;\n onSmartWallet?: () => void;\n /** Optional override for the wallet picker view. Defaults to a Freighter+Albedo list. */\n renderWallets?: RenderWalletsSlot;\n authState: AuthState;\n codeInputKey?: number;\n onCodeSubmit?: (code: string) => void;\n onBack: () => void;\n onCancel: () => void;\n onRetry: () => void;\n}\n\nexport function LoginModalTemplate({\n theme,\n accentColor,\n logoUrl,\n emailEnabled,\n embeddedWallets,\n smartWallet = false,\n providers,\n appName,\n email = '',\n onEmailChange,\n onEmailSubmit,\n onSocialLogin,\n onWalletConnect,\n onSmartWallet,\n renderWallets,\n authState,\n codeInputKey,\n onCodeSubmit,\n onBack,\n onCancel,\n onRetry,\n}: LoginModalTemplateProps) {\n const [showWalletPicker, setShowWalletPicker] = useState(false);\n\n const isDark = theme === 'dark';\n const enabledSocial = Object.entries(providers).filter(([, enabled]) => enabled);\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n '--pollar-modal-padding': '2rem',\n '--pollar-modal-heading-size': '1.375rem',\n '--pollar-modal-subtitle-size': '0.9rem',\n } as CSSProperties;\n\n const status = authStateToStatus(authState.step);\n const isLoading = status === 'LOADING';\n const isEmailCodeError =\n authState.step === 'error' &&\n (authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_EXPIRED ||\n authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID);\n const awaitingEmailCode = authState.step === 'entering_code' || authState.step === 'verifying_email_code' || isEmailCodeError;\n const statusMessage = authState.step === 'error' ? authState.message : AUTH_STATE_MESSAGES[authState.step];\n\n const BackButton = ({ onClick }: { onClick: () => void }) => (\n <button type=\"button\" className=\"pollar-back-btn\" onClick={onClick} aria-label=\"Back\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n );\n\n return (\n <div className=\"pollar-modal-card pollar-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className=\"pollar-close-btn\" onClick={onCancel} aria-label=\"Close\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n <div className=\"pollar-header\">\n <div className=\"pollar-logo-wrap\">\n <img src={logoUrl ?? LOGO_POLLAR} alt=\"Logo\" className=\"pollar-logo\" />\n </div>\n <h2 className=\"pollar-title\">{appName}</h2>\n <p className=\"pollar-subtitle\">Log in or sign up</p>\n </div>\n\n {awaitingEmailCode ? (\n <>\n <BackButton onClick={onBack} />\n <EmailCodeInput key={codeInputKey} email={email} onSubmit={onCodeSubmit ?? (() => {})} />\n </>\n ) : showWalletPicker ? (\n <>\n <BackButton onClick={() => setShowWalletPicker(false)} />\n {renderWallets ? (\n renderWallets({ onConnect: onWalletConnect ?? (() => {}), authState })\n ) : (\n <DefaultFreighterAlbedoButtons onConnect={onWalletConnect ?? (() => {})} isLoading={isLoading} />\n )}\n </>\n ) : (\n <>\n {emailEnabled && (\n <div className=\"pollar-email-section\">\n <input\n type=\"email\"\n placeholder=\"you@email.com\"\n value={email}\n disabled={isLoading}\n className=\"pollar-email-input\"\n onChange={(e) => onEmailChange?.(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && onEmailSubmit?.()}\n />\n <button\n type=\"button\"\n disabled={isLoading || !email}\n className=\"pollar-btn-primary\"\n style={{ marginTop: '0.75rem', width: '100%' }}\n onClick={onEmailSubmit}\n >\n Submit\n </button>\n </div>\n )}\n\n {emailEnabled && enabledSocial.length > 0 && (\n <div className=\"pollar-divider\">\n <div className=\"pollar-divider-line\" />\n <div className=\"pollar-divider-label\">\n <span className=\"pollar-divider-text\">or continue with</span>\n </div>\n </div>\n )}\n\n {enabledSocial.length > 0 && (\n <div className=\"pollar-social-list\">\n {enabledSocial.some(([key]) => key === 'google') && (\n <GoogleButton disabled={isLoading} onClick={() => onSocialLogin?.('google')} />\n )}\n {enabledSocial.some(([key]) => key === 'github') && (\n <GithubButton disabled={isLoading} onClick={() => onSocialLogin?.('github')} />\n )}\n </div>\n )}\n\n {(embeddedWallets || smartWallet) && (\n <div className=\"pollar-wallet-section\">\n {embeddedWallets && (\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-entry-btn\"\n onClick={() => setShowWalletPicker(true)}\n >\n <svg\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z\" />\n </svg>\n Wallet\n </button>\n )}\n\n {smartWallet && (\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-entry-btn\"\n onClick={onSmartWallet}\n >\n <svg\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M16 8V6a4 4 0 00-8 0v2M5 8h14a1 1 0 011 1v10a1 1 0 01-1 1H5a1 1 0 01-1-1V9a1 1 0 011-1zm7 5v2\" />\n </svg>\n Smart Wallet\n </button>\n )}\n </div>\n )}\n </>\n )}\n\n <ModalStatusBanner\n message={statusMessage}\n status={status}\n onCancel={onCancel}\n onRetry={isEmailCodeError ? undefined : onRetry}\n />\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, WalletId } from '@pollar/core';\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { LoginModalTemplate } from './LoginModalTemplate';\nimport '../shared.css';\nimport './LoginModal.css';\n\ntype TimeoutHandle = ReturnType<typeof setTimeout>;\n\ninterface LoginModalProps {\n onClose: () => void;\n}\n\nexport function LoginModal({ onClose }: LoginModalProps) {\n const [email, setEmail] = useState('');\n const { getClient, styles, appConfig: config, renderWallets } = usePollar();\n const [authState, setAuthState] = useState<AuthState>(() => getClient().getAuthState());\n const [codeInputKey, setCodeInputKey] = useState(0);\n const pendingEmail = useRef<string | null>(null);\n\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n const autoCloseTimer = useRef<TimeoutHandle | null>(null);\n\n useEffect(() => {\n const unsubscribe = getClient().onAuthStateChange((next) => {\n setAuthState(next);\n if (next.step === 'entering_email' && pendingEmail.current) {\n getClient().sendEmailCode(pendingEmail.current);\n pendingEmail.current = null;\n }\n if (next.step === 'error' && next.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID) {\n setCodeInputKey((k) => k + 1);\n }\n if (next.step === 'authenticated') {\n autoCloseTimer.current = setTimeout(() => {\n autoCloseTimer.current = null;\n onCloseRef.current();\n }, 1000);\n }\n });\n return () => {\n unsubscribe();\n if (autoCloseTimer.current !== null) {\n clearTimeout(autoCloseTimer.current);\n autoCloseTimer.current = null;\n }\n };\n }, [getClient]);\n\n const { theme = 'light', accentColor = '#005DB4', logoUrl, emailEnabled, embeddedWallets, providers } = styles;\n // `smartWallet` isn't in the server-driven styles type yet — read it\n // defensively and default to shown (web).\n const smartWallet = (styles as { smartWallet?: boolean }).smartWallet ?? true;\n\n function handleClose() {\n setEmail('');\n getClient().cancelLogin();\n onClose();\n }\n\n function handleEmailSubmit() {\n if (!email) return;\n pendingEmail.current = email;\n getClient().beginEmailLogin();\n }\n\n function handleSocialLogin(provider: 'google' | 'github') {\n getClient().login({ provider });\n }\n\n function handleWalletConnect(type: WalletId) {\n getClient().loginWallet(type);\n }\n\n function handleSmartWallet() {\n getClient().loginSmartWallet();\n }\n\n function handleVerifyCode(code: string) {\n getClient().verifyEmailCode(code);\n }\n\n function handleBack() {\n setEmail('');\n getClient().cancelLogin();\n }\n\n function handleRetry() {\n getClient().logout();\n if (styles.emailEnabled) {\n getClient().beginEmailLogin();\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={handleClose}>\n <LoginModalTemplate\n theme={theme}\n accentColor={accentColor}\n logoUrl={logoUrl ?? null}\n emailEnabled={!!emailEnabled}\n embeddedWallets={!!embeddedWallets}\n smartWallet={smartWallet}\n providers={{\n google: !!providers?.google,\n discord: !!providers?.discord,\n x: !!providers?.x,\n github: !!providers?.github,\n apple: !!providers?.apple,\n }}\n appName={config.application?.name ?? 'Pollar'}\n email={email}\n onEmailChange={setEmail}\n onEmailSubmit={handleEmailSubmit}\n onSocialLogin={handleSocialLogin}\n onWalletConnect={handleWalletConnect}\n onSmartWallet={handleSmartWallet}\n {...(renderWallets !== undefined && { renderWallets })}\n authState={authState}\n codeInputKey={codeInputKey}\n onCodeSubmit={handleVerifyCode}\n onBack={handleBack}\n onCancel={handleClose}\n onRetry={handleRetry}\n />\n </div>\n );\n}\n","'use client';\n\nimport type { RampQuote } from '@pollar/core';\n\ninterface RouteDisplayProps {\n quote: RampQuote;\n onSelect: (quote: RampQuote) => void;\n}\n\nconst RAIL_LABELS: Record<string, string> = {\n SPEI: 'SPEI (Mexico)',\n PIX: 'PIX (Brazil)',\n PSE: 'PSE (Colombia)',\n ACH: 'ACH (US)',\n};\n\nexport function RouteDisplay({ quote, onSelect }: RouteDisplayProps) {\n return (\n <div\n className=\"pollar-ramp-route-card\"\n data-recommended={quote.recommended}\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(quote)}\n onKeyDown={(e) => e.key === 'Enter' && onSelect(quote)}\n >\n <div className=\"pollar-ramp-route-left\">\n <span className=\"pollar-ramp-route-provider\">{quote.provider}</span>\n <span className=\"pollar-ramp-route-meta\">\n {RAIL_LABELS[quote.rail] ?? quote.rail} · {quote.protocol} · {quote.estimatedTime}\n </span>\n </div>\n <div className=\"pollar-ramp-route-right\">\n <span className=\"pollar-ramp-route-fee\">{quote.fee}% fee</span>\n {quote.recommended && <span className=\"pollar-ramp-route-badge\">Best rate</span>}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport type { PaymentInstructions, RampDirection, RampQuote } from '@pollar/core';\nimport type { CSSProperties } from 'react';\nimport { RouteDisplay } from './RouteDisplay';\n\nexport type RampStep = 'input' | 'loading_quote' | 'select_route' | 'payment_instructions';\n\ninterface RampWidgetTemplateProps {\n theme: string;\n accentColor: string;\n step: RampStep;\n direction: RampDirection;\n amount: string;\n currency: string;\n country: string;\n quotes: RampQuote[];\n paymentInstructions: PaymentInstructions | null;\n isLoading: boolean;\n onDirectionChange: (d: RampDirection) => void;\n onAmountChange: (v: string) => void;\n onCurrencyChange: (v: string) => void;\n onCountryChange: (v: string) => void;\n onFindRoute: () => void;\n onSelectQuote: (q: RampQuote) => void;\n onCopy: (value: string) => void;\n onClose: () => void;\n}\n\nconst LOADING_STEPS = ['Detecting your country…', 'Consulting providers…', 'Route found!'];\n\nconst COUNTRY_CURRENCIES: Record<string, string> = {\n MX: 'MXN',\n BR: 'BRL',\n CO: 'COP',\n CL: 'CLP',\n PE: 'PEN',\n AR: 'ARS',\n};\n\nexport function RampWidgetTemplate({\n theme,\n accentColor,\n step,\n direction,\n amount,\n currency,\n country,\n quotes,\n paymentInstructions,\n isLoading,\n onDirectionChange,\n onAmountChange,\n onCurrencyChange,\n onCountryChange,\n onFindRoute,\n onSelectQuote,\n onCopy,\n onClose,\n}: RampWidgetTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n '--pollar-modal-padding': '2rem',\n '--pollar-modal-heading-size': '1.375rem',\n '--pollar-modal-subtitle-size': '0.9rem',\n } as CSSProperties;\n\n const stepTitle: Record<RampStep, string> = {\n input: direction === 'onramp' ? 'Buy crypto' : 'Sell crypto',\n loading_quote: 'Finding best route',\n select_route: 'Select provider',\n payment_instructions: 'Payment instructions',\n };\n\n const stepSubtitle: Record<RampStep, string> = {\n input: direction === 'onramp' ? 'Enter the amount you want to deposit' : 'Enter the amount you want to withdraw',\n loading_quote: 'Comparing providers in real time…',\n select_route: 'All prices include fees',\n payment_instructions: 'Send the exact amount to complete your transaction',\n };\n\n return (\n <div className=\"pollar-modal-card pollar-ramp-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-ramp-header\">\n <h2 className=\"pollar-ramp-title\">{stepTitle[step]}</h2>\n <p className=\"pollar-ramp-subtitle\">{stepSubtitle[step]}</p>\n </div>\n\n {step === 'input' && (\n <>\n <div className=\"pollar-ramp-tabs\">\n <button\n type=\"button\"\n className=\"pollar-ramp-tab\"\n data-active={direction === 'onramp'}\n onClick={() => onDirectionChange('onramp')}\n >\n Buy\n </button>\n <button\n type=\"button\"\n className=\"pollar-ramp-tab\"\n data-active={direction === 'offramp'}\n onClick={() => onDirectionChange('offramp')}\n >\n Sell\n </button>\n </div>\n\n <div className=\"pollar-ramp-input-row\">\n <div className=\"pollar-ramp-field\">\n <label className=\"pollar-ramp-label\">Amount</label>\n <input\n type=\"number\"\n className=\"pollar-ramp-input\"\n placeholder=\"0.00\"\n value={amount}\n min=\"0\"\n onChange={(e) => onAmountChange(e.target.value)}\n />\n </div>\n <div className=\"pollar-ramp-field\" style={{ maxWidth: 90 }}>\n <label className=\"pollar-ramp-label\">Currency</label>\n <input\n type=\"text\"\n className=\"pollar-ramp-input\"\n placeholder=\"MXN\"\n value={currency}\n maxLength={5}\n onChange={(e) => onCurrencyChange(e.target.value.toUpperCase())}\n />\n </div>\n </div>\n\n <div className=\"pollar-ramp-field\">\n <label className=\"pollar-ramp-label\">Country</label>\n <select\n className=\"pollar-ramp-input\"\n value={country}\n onChange={(e) => {\n const c = e.target.value;\n onCountryChange(c);\n if (COUNTRY_CURRENCIES[c]) onCurrencyChange(COUNTRY_CURRENCIES[c]);\n }}\n >\n <option value=\"MX\">🇲🇽 Mexico</option>\n <option value=\"BR\">🇧🇷 Brazil</option>\n <option value=\"CO\">🇨🇴 Colombia</option>\n <option value=\"CL\">🇨🇱 Chile</option>\n <option value=\"PE\">🇵🇪 Peru</option>\n <option value=\"AR\">🇦🇷 Argentina</option>\n </select>\n </div>\n\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n <button type=\"button\" className=\"pollar-btn-primary\" disabled={!amount || isLoading} onClick={onFindRoute}>\n Find best route\n </button>\n </div>\n </>\n )}\n\n {step === 'loading_quote' && (\n <div className=\"pollar-ramp-loading\">\n {LOADING_STEPS.map((text, i) => (\n <div key={i} className=\"pollar-ramp-loading-row\">\n <div className=\"pollar-ramp-loading-dot\" />\n <span>{text}</span>\n </div>\n ))}\n </div>\n )}\n\n {step === 'select_route' && (\n <>\n <div className=\"pollar-ramp-route-list\">\n {quotes.map((q, i) => (\n <RouteDisplay key={i} quote={q} onSelect={onSelectQuote} />\n ))}\n </div>\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n </>\n )}\n\n {step === 'payment_instructions' && paymentInstructions && (\n <div className=\"pollar-ramp-payment\">\n <p className=\"pollar-ramp-payment-title\">{paymentInstructions.type}</p>\n\n <div className=\"pollar-ramp-payment-field\">\n <span className=\"pollar-ramp-payment-label\">\n {paymentInstructions.type === 'CLABE'\n ? 'CLABE number'\n : paymentInstructions.type === 'PIX'\n ? 'PIX key'\n : 'Account number'}\n </span>\n <div className=\"pollar-ramp-payment-value\">\n <code>{paymentInstructions.value}</code>\n <button type=\"button\" className=\"pollar-ramp-copy-btn\" onClick={() => onCopy(paymentInstructions.value)}>\n Copy\n </button>\n </div>\n </div>\n\n <div className=\"pollar-ramp-payment-field\">\n <span className=\"pollar-ramp-payment-label\">Amount to send</span>\n <div className=\"pollar-ramp-payment-value\">\n <code>\n {paymentInstructions.amount.toLocaleString()} {paymentInstructions.currency}\n </code>\n <button\n type=\"button\"\n className=\"pollar-ramp-copy-btn\"\n onClick={() => onCopy(`${paymentInstructions.amount} ${paymentInstructions.currency}`)}\n >\n Copy\n </button>\n </div>\n </div>\n\n {paymentInstructions.expiresAt && (\n <p className=\"pollar-ramp-payment-note\">\n Instructions expire at {new Date(paymentInstructions.expiresAt).toLocaleTimeString()}\n </p>\n )}\n\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onClose}>\n Done\n </button>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { type PaymentInstructions, type RampDirection, type RampQuote, type RampsOnrampBody } from '@pollar/core';\nimport { useState } from 'react';\nimport { usePollar } from '../../context';\nimport type { RampStep } from './RampWidgetTemplate';\nimport { RampWidgetTemplate } from './RampWidgetTemplate';\nimport '../shared.css';\nimport './RampWidget.css';\n\ninterface RampWidgetProps {\n onClose: () => void;\n}\n\n// ─── Demo fallback data, used when the /ramps/quote and /ramps/onramp calls fail ──\n\nconst MOCK_DEFAULT_QUOTES: RampQuote[] = [\n {\n quoteId: 'meld-default',\n provider: 'Meld',\n fee: 1.2,\n feeCurrency: 'USD',\n rate: 1,\n rail: 'ACH',\n protocol: 'REST',\n estimatedTime: '~20 min',\n recommended: true,\n },\n];\n\nconst MOCK_QUOTES: Partial<Record<string, RampQuote[]>> & { DEFAULT: RampQuote[] } = {\n MX: [\n {\n quoteId: 'etherfuse-mx',\n provider: 'Etherfuse',\n fee: 0.5,\n feeCurrency: 'MXN',\n rate: 17.2,\n rail: 'SPEI',\n protocol: 'SEP-24',\n estimatedTime: '~10 min',\n recommended: true,\n },\n {\n quoteId: 'alfredpay-mx',\n provider: 'AlfredPay',\n fee: 0.8,\n feeCurrency: 'MXN',\n rate: 17.1,\n rail: 'SPEI',\n protocol: 'REST',\n estimatedTime: '~15 min',\n recommended: false,\n },\n ],\n BR: [\n {\n quoteId: 'abroad-br',\n provider: 'Abroad',\n fee: 0.6,\n feeCurrency: 'BRL',\n rate: 5.1,\n rail: 'PIX',\n protocol: 'REST',\n estimatedTime: '~5 min',\n recommended: true,\n },\n ],\n CO: [\n {\n quoteId: 'abroad-co',\n provider: 'Abroad',\n fee: 0.7,\n feeCurrency: 'COP',\n rate: 4100,\n rail: 'PSE',\n protocol: 'REST',\n estimatedTime: '~10 min',\n recommended: true,\n },\n {\n quoteId: 'koywe-co',\n provider: 'Koywe',\n fee: 0.9,\n feeCurrency: 'COP',\n rate: 4095,\n rail: 'PSE',\n protocol: 'REST',\n estimatedTime: '~15 min',\n recommended: false,\n },\n ],\n DEFAULT: MOCK_DEFAULT_QUOTES,\n};\n\nconst MOCK_PAYMENT: PaymentInstructions = {\n type: 'CLABE',\n value: '646180157088723456',\n amount: 1000,\n currency: 'MXN',\n expiresAt: new Date(Date.now() + 30 * 60 * 1000).toISOString(),\n};\n\n// ────────────────────────────────────────────────────────────────────────────────\n\nexport function RampWidget({ onClose }: RampWidgetProps) {\n const { getClient, walletAddress, styles } = usePollar();\n\n const [step, setStep] = useState<RampStep>('input');\n const [direction, setDirection] = useState<RampDirection>('onramp');\n const [amount, setAmount] = useState('');\n const [currency, setCurrency] = useState('MXN');\n const [country, setCountry] = useState('MX');\n const [quotes, setQuotes] = useState<RampQuote[]>([]);\n const [paymentInstructions, setPaymentInstructions] = useState<PaymentInstructions | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const client = getClient();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n async function handleFindRoute() {\n setStep('loading_quote');\n setIsLoading(true);\n\n try {\n const result = await client.getRampsQuote({\n country,\n amount: Number(amount),\n currency,\n direction,\n });\n if (result.quotes) setQuotes(result.quotes);\n } catch {\n // On any quote error, fall back to demo data so the UI stays usable.\n await new Promise((r) => setTimeout(r, 1500));\n setQuotes(MOCK_QUOTES[country] ?? MOCK_DEFAULT_QUOTES);\n } finally {\n setIsLoading(false);\n setStep('select_route');\n }\n }\n\n async function handleSelectQuote(quote: RampQuote) {\n if (!walletAddress) return;\n setIsLoading(true);\n\n const body: RampsOnrampBody = {\n quoteId: `${quote.provider}-${Date.now()}`,\n amount: Number(amount),\n currency,\n country,\n walletAddress,\n };\n\n try {\n const result = await client.createOnRamp(body);\n setPaymentInstructions(result.paymentInstructions);\n } catch {\n // On any on-ramp error, fall back to demo data so the UI stays usable.\n await new Promise((r) => setTimeout(r, 800));\n setPaymentInstructions({ ...MOCK_PAYMENT, currency });\n } finally {\n setIsLoading(false);\n setStep('payment_instructions');\n }\n }\n\n function handleCopy(value: string) {\n navigator.clipboard.writeText(value).catch(() => {});\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <RampWidgetTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n direction={direction}\n amount={amount}\n currency={currency}\n country={country}\n quotes={quotes}\n paymentInstructions={paymentInstructions}\n isLoading={isLoading}\n onDirectionChange={setDirection}\n onAmountChange={setAmount}\n onCurrencyChange={setCurrency}\n onCountryChange={setCountry}\n onFindRoute={handleFindRoute}\n onSelectQuote={handleSelectQuote}\n onCopy={handleCopy}\n onClose={onClose}\n />\n </div>\n );\n}\n","/**\n * QRCode component — vendored from react-qr-code (MIT License)\n * Original: https://github.com/rosskhanas/react-qr-code\n * Adapted: removed prop-types dependency, added TypeScript types.\n *\n * MIT License\n * Copyright (c) 2018 Ross Khanas\n */\n\n// @ts-expect-error — qr.js ships CJS without type declarations; bundled via noExternal\nimport ErrorCorrectLevel from 'qr.js/lib/ErrorCorrectLevel';\n// @ts-expect-error — same as above\nimport QRCodeImpl from 'qr.js/lib/QRCode';\nimport { forwardRef, type SVGProps } from 'react';\n\n// ─── Internal SVG renderer ────────────────────────────────────────────────────\n\ninterface QRCodeSvgProps extends SVGProps<SVGSVGElement> {\n bgColor: string;\n bgD: string;\n fgColor: string;\n fgD: string;\n size: number;\n title?: string;\n viewBoxSize: number;\n xmlns?: string | undefined;\n}\n\nconst QRCodeSvg = forwardRef<SVGSVGElement, QRCodeSvgProps>(function QRCodeSvg(\n { bgColor, bgD, fgD, fgColor, size, title, viewBoxSize, xmlns = 'http://www.w3.org/2000/svg', ...props },\n ref,\n) {\n return (\n <svg {...props} height={size} ref={ref} viewBox={`0 0 ${viewBoxSize} ${viewBoxSize}`} width={size} xmlns={xmlns}>\n {title ? <title>{title}</title> : null}\n <path d={bgD} fill={bgColor} />\n <path d={fgD} fill={fgColor} />\n </svg>\n );\n});\n\nQRCodeSvg.displayName = 'QRCodeSvg';\n\n// ─── Public component ─────────────────────────────────────────────────────────\n\nexport interface QRCodeProps extends SVGProps<SVGSVGElement> {\n value: string;\n size?: number;\n bgColor?: string;\n fgColor?: string;\n level?: 'L' | 'M' | 'Q' | 'H';\n title?: string;\n}\n\nfunction bytesToBinaryString(bytes: number[]): string {\n return bytes.map((b) => String.fromCharCode(b & 0xff)).join('');\n}\n\nfunction encodeStringToUtf8Bytes(input: string): number[] {\n return Array.from(new TextEncoder().encode(input));\n}\n\nexport const QRCode = forwardRef<SVGSVGElement, QRCodeProps>(function QRCode(\n { bgColor = '#FFFFFF', fgColor = '#000000', level = 'L', size = 256, value, ...props },\n ref,\n) {\n const qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n const utf8Bytes = encodeStringToUtf8Bytes(value);\n const binaryString = bytesToBinaryString(utf8Bytes);\n qrcode.addData(binaryString, 'Byte');\n qrcode.make();\n\n const cells: boolean[][] = qrcode.modules;\n\n return (\n <QRCodeSvg\n {...props}\n bgColor={bgColor}\n bgD={cells\n .map((row, rowIndex) =>\n row.map((cell, cellIndex) => (!cell ? `M ${cellIndex} ${rowIndex} l 1 0 0 1 -1 0 Z` : '')).join(' '),\n )\n .join(' ')}\n fgColor={fgColor}\n fgD={cells\n .map((row, rowIndex) =>\n row.map((cell, cellIndex) => (cell ? `M ${cellIndex} ${rowIndex} l 1 0 0 1 -1 0 Z` : '')).join(' '),\n )\n .join(' ')}\n ref={ref}\n size={size}\n viewBoxSize={cells.length}\n />\n );\n});\n","'use client';\n\nimport { type CSSProperties } from 'react';\nimport { QRCode } from '../../lib/qr-code';\nimport { PollarModalFooter } from '../commons';\n\nexport interface ReceiveModalTemplateProps {\n theme: string;\n accentColor: string;\n walletAddress: string;\n copied: boolean;\n onCopy: () => void;\n onClose: () => void;\n}\n\nexport function ReceiveModalTemplate({\n theme,\n accentColor,\n walletAddress,\n copied,\n onCopy,\n onClose,\n}: ReceiveModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n return (\n <div\n className=\"pollar-modal-card pollar-receive-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Receive</h2>\n <div className=\"pollar-modal-header-actions\">\n <button type=\"button\" className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {/* QR code */}\n {walletAddress ? (\n <>\n <div className=\"pollar-receive-qr\">\n <QRCode value={walletAddress} size={180} fgColor={isDark ? '#ffffff' : '#111827'} bgColor=\"transparent\" />\n </div>\n\n <p className=\"pollar-receive-instructions\">\n Share your Stellar address to receive any asset. Only send Stellar assets to this address.\n </p>\n\n {/* Address + copy */}\n <div className=\"pollar-receive-address-row\">\n <span className=\"pollar-receive-address\">{walletAddress}</span>\n <button type=\"button\" className=\"pollar-receive-copy-btn\" onClick={onCopy} aria-label=\"Copy address\">\n {copied ? (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path\n d=\"M3.5 7l2.5 2.5 4.5-5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Copied!\n </>\n ) : (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M3 9H2a1 1 0 01-1-1V2a1 1 0 011-1h6a1 1 0 011 1v1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n Copy address\n </>\n )}\n </button>\n </div>\n </>\n ) : (\n <div className=\"pollar-modal-empty\">No wallet connected.</div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './ReceiveModal.css';\nimport { ReceiveModalTemplate } from './ReceiveModalTemplate';\n\ninterface ReceiveModalProps {\n onClose: () => void;\n}\n\nexport function ReceiveModal({ onClose }: ReceiveModalProps) {\n const { walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const [copied, setCopied] = useState(false);\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n function handleCopy() {\n if (!walletAddress) return;\n navigator.clipboard.writeText(walletAddress).then(() => {\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 2000);\n });\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <ReceiveModalTemplate\n theme={theme}\n accentColor={accentColor}\n walletAddress={walletAddress}\n copied={copied}\n onCopy={handleCopy}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TransactionState, WalletId, WalletType } from '@pollar/core';\nimport { LOGO_ALBEDO, LOGO_FREIGHTER, LOGO_POLLAR } from '../../constants';\nimport { ModalStatusBanner } from '../commons';\n\nconst STATUS_MESSAGES: Record<TransactionState['step'], string> = {\n idle: '',\n building: 'Building transaction…',\n built: 'Ready to sign and send',\n signing: 'Signing transaction…',\n signed: 'Signed — ready to submit',\n submitting: 'Submitting transaction…',\n submitted: 'Submitted — waiting for confirmation…',\n 'signing-submitting': 'Signing and submitting transaction…',\n 'building-signing-submitting': 'Processing transaction…',\n success: 'Transaction sent successfully',\n error: 'Transaction failed',\n};\n\n/** Step values that represent in-flight work (spinner / non-cancellable UI). */\nconst IN_FLIGHT_STEPS = new Set<TransactionState['step']>([\n 'building',\n 'signing',\n 'submitting',\n 'submitted',\n 'signing-submitting',\n 'building-signing-submitting',\n]);\n\n/** Step values that should show the transaction details panel. */\nconst SHOW_DETAILS_STEPS = new Set<TransactionState['step']>([\n 'built',\n 'signing',\n 'signed',\n 'submitting',\n 'submitted',\n 'signing-submitting',\n 'success',\n]);\n\nexport interface TxStatusViewProps {\n transaction: TransactionState;\n showXdr: boolean;\n copied: boolean;\n explorerUrl: string | null;\n walletType?: WalletId | null | undefined;\n onSignAndSend: () => void;\n onToggleXdr: () => void;\n onCopyHash: () => void;\n onRetry?: (() => void) | undefined;\n onDone: () => void;\n}\n\nexport function TxStatusView({\n transaction,\n showXdr,\n copied,\n explorerUrl,\n walletType,\n onSignAndSend,\n onToggleXdr,\n onCopyHash,\n onRetry,\n onDone,\n}: TxStatusViewProps) {\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const errorDetails = transaction.step === 'error' ? (transaction.details ?? null) : null;\n\n const isBuilt = transaction.step === 'built';\n const isInFlight = IN_FLIGHT_STEPS.has(transaction.step);\n const isSuccess = transaction.step === 'success';\n const isError = transaction.step === 'error';\n const showDetails = buildData !== null && SHOW_DETAILS_STEPS.has(transaction.step);\n\n const walletImg =\n walletType === WalletType.FREIGHTER ? LOGO_FREIGHTER : walletType === WalletType.ALBEDO ? LOGO_ALBEDO : LOGO_POLLAR;\n\n const walletAlt = walletType === WalletType.FREIGHTER ? 'Freighter' : walletType === WalletType.ALBEDO ? 'Albedo' : 'Pollar';\n\n return (\n <>\n {showDetails && buildData && (\n <>\n <div className=\"pollar-tx-summary\">\n <p className=\"pollar-tx-summary-title\">Details</p>\n <ul className=\"pollar-tx-summary-lines\">\n {buildData.summary.lines.map((line, i) => (\n <li key={i} className=\"pollar-tx-summary-line\">\n {line}\n </li>\n ))}\n </ul>\n </div>\n <div className=\"pollar-tx-meta\">\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Network</span>\n <span className=\"pollar-tx-meta-value\">{buildData.summary.network}</span>\n </div>\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Fee</span>\n <span className=\"pollar-tx-meta-value\">{buildData.summary.fee}</span>\n </div>\n </div>\n <div className=\"pollar-tx-xdr\">\n <button className=\"pollar-tx-xdr-toggle\" onClick={onToggleXdr}>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden\n style={{ transform: showXdr ? 'rotate(90deg)' : 'rotate(0deg)', transition: 'transform 150ms' }}\n >\n <path d=\"M4 2l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Raw transaction (XDR)\n </button>\n {showXdr && <pre className=\"pollar-tx-xdr-content\">{buildData.unsignedXdr}</pre>}\n </div>\n </>\n )}\n\n {isError && errorDetails && (\n <div className=\"pollar-tx-error-details\">\n <p className=\"pollar-tx-error-details-label\">Error details</p>\n <pre className=\"pollar-tx-error-details-content\">{errorDetails}</pre>\n </div>\n )}\n\n {isBuilt && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" onClick={onSignAndSend}>\n Sign &amp; Send\n </button>\n )}\n\n {(isInFlight || isSuccess || isError) && (\n <div className=\"pollar-tx-wallet-spinner\">\n <div className=\"pollar-tx-spinner-ring\">\n <svg\n viewBox=\"0 0 88 88\"\n width=\"88\"\n height=\"88\"\n className={`pollar-tx-spinner-svg${isInFlight ? ' pollar-tx-spinner-rotating' : ''}`}\n aria-hidden\n >\n <circle cx=\"44\" cy=\"44\" r=\"36\" fill=\"none\" stroke=\"var(--pollar-border)\" strokeWidth=\"3\" />\n <circle\n cx=\"44\"\n cy=\"44\"\n r=\"36\"\n fill=\"none\"\n stroke={\n isSuccess ? 'var(--pollar-success-text)' : isError ? 'var(--pollar-error-text)' : 'var(--pollar-accent)'\n }\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeDasharray={isInFlight ? '169.6 56.6' : '999 0'}\n transform=\"rotate(-90 44 44)\"\n style={{ transition: isInFlight ? 'none' : 'stroke 400ms, stroke-dasharray 400ms' }}\n />\n </svg>\n <div className=\"pollar-tx-wallet-icon\">\n <img src={walletImg} alt={walletAlt} className=\"pollar-tx-wallet-img\" />\n </div>\n </div>\n\n {isInFlight && (\n <p className=\"pollar-tx-spinner-label\">\n {walletType === WalletType.FREIGHTER\n ? 'Waiting for Freighter…'\n : walletType === WalletType.ALBEDO\n ? 'Waiting for Albedo…'\n : 'Signing and sending…'}\n </p>\n )}\n\n {isError && onRetry && 'buildData' in transaction && transaction.buildData && (\n <button className=\"pollar-btn-secondary pollar-tx-retry-btn\" onClick={onRetry}>\n Try again\n </button>\n )}\n </div>\n )}\n\n {isSuccess && hash && (\n <div className=\"pollar-tx-result\">\n <span className=\"pollar-tx-result-label\">Transaction hash</span>\n <span className=\"pollar-tx-result-hash\">{hash}</span>\n <div className=\"pollar-tx-result-actions\">\n <button className=\"pollar-tx-result-btn\" onClick={onCopyHash}>\n {copied ? (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path\n d=\"M3.5 7l2.5 2.5 4.5-5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Copied!\n </>\n ) : (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M3 9H2a1 1 0 01-1-1V2a1 1 0 011-1h6a1 1 0 011 1v1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n Copy hash\n </>\n )}\n </button>\n {explorerUrl && (\n <a className=\"pollar-tx-result-btn\" href={explorerUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <path\n d=\"M5 2H2a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8 1h4m0 0v4m0-4L6 7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n View on Explorer\n </a>\n )}\n </div>\n </div>\n )}\n\n {isSuccess && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" onClick={onDone}>\n Done\n </button>\n )}\n\n <ModalStatusBanner\n message={STATUS_MESSAGES[transaction.step]}\n status={isError ? 'ERROR' : isInFlight ? 'LOADING' : isSuccess ? 'SUCCESS' : 'NONE'}\n />\n </>\n );\n}\n","'use client';\n\nimport { TransactionState, WalletBalanceRecord, WalletId } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\nimport { TxStatusView } from '../transaction-modal/TxStatusView';\n\nfunction formatBalance(balance: string): string {\n const n = parseFloat(balance);\n return isNaN(n) ? balance : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction assetKey(record: WalletBalanceRecord): string {\n return `${record.code}:${record.issuer ?? 'native'}`;\n}\n\nexport interface SendModalTemplateProps {\n theme: string;\n accentColor: string;\n step: 'form' | 'tx';\n txTitle: string;\n assets: WalletBalanceRecord[];\n selectedAsset: WalletBalanceRecord | null;\n amount: string;\n destination: string;\n formError: string;\n isLoadingBalance: boolean;\n transaction: TransactionState;\n showXdr: boolean;\n copied: boolean;\n explorerUrl: string | null;\n walletType?: WalletId | null | undefined;\n showBack: boolean;\n isInProgress: boolean;\n onClose: () => void;\n onBack: () => void;\n onSelectAsset: (asset: WalletBalanceRecord) => void;\n onAmountChange: (value: string) => void;\n onDestinationChange: (value: string) => void;\n onSubmit: () => void;\n onSignAndSend: () => void;\n onToggleXdr: () => void;\n onCopyHash: () => void;\n onRetry: () => void;\n onDone: () => void;\n}\n\nexport function SendModalTemplate({\n theme,\n accentColor,\n step,\n txTitle,\n assets,\n selectedAsset,\n amount,\n destination,\n formError,\n isLoadingBalance,\n transaction,\n showXdr,\n copied,\n explorerUrl,\n walletType,\n showBack,\n isInProgress,\n onClose,\n onBack,\n onSelectAsset,\n onAmountChange,\n onDestinationChange,\n onSubmit,\n onSignAndSend,\n onToggleXdr,\n onCopyHash,\n onRetry,\n onDone,\n}: SendModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const enabledAssets = assets.filter((a) => a.enabledInApp);\n const otherAssets = assets.filter((a) => !a.enabledInApp);\n const selectedKey = selectedAsset ? assetKey(selectedAsset) : '';\n const canSubmit = !!selectedAsset && !!amount && !!destination.trim() && !isLoadingBalance;\n\n const title = step === 'form' ? 'Send' : txTitle;\n\n return (\n <div\n className=\"pollar-modal-card pollar-send-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div className=\"pollar-modal-header\">\n <div className=\"pollar-send-header-left\">\n {showBack && (\n <button type=\"button\" className=\"pollar-modal-close\" onClick={onBack} aria-label=\"Back\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M10 3L5 8l5 5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n )}\n <h2 className=\"pollar-modal-title\">{title}</h2>\n </div>\n {!isInProgress && (\n <div className=\"pollar-modal-header-actions\">\n <button type=\"button\" className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n\n {/* Form step */}\n {step === 'form' && (\n <>\n {/* Asset selector */}\n <div className=\"pollar-send-field\">\n <label className=\"pollar-send-label\">Asset</label>\n {isLoadingBalance ? (\n <div className=\"pollar-send-skeleton\" />\n ) : (\n <select\n className=\"pollar-input pollar-send-select\"\n value={selectedKey}\n onChange={(e) => {\n const all = [...enabledAssets, ...otherAssets];\n const found = all.find((a) => assetKey(a) === e.target.value);\n if (found) onSelectAsset(found);\n }}\n >\n <option value=\"\" disabled>\n Select asset\n </option>\n {enabledAssets.length > 0 && (\n <optgroup label=\"App assets\">\n {enabledAssets.map((a) => (\n <option key={assetKey(a)} value={assetKey(a)}>\n {a.code} — {formatBalance(a.available)} available\n </option>\n ))}\n </optgroup>\n )}\n {otherAssets.length > 0 && (\n <optgroup label=\"Other assets\">\n {otherAssets.map((a) => (\n <option key={assetKey(a)} value={assetKey(a)}>\n {a.code} — {formatBalance(a.available)} available\n </option>\n ))}\n </optgroup>\n )}\n </select>\n )}\n </div>\n\n {/* Amount */}\n <div className=\"pollar-send-field\">\n <div className=\"pollar-send-label-row\">\n <label className=\"pollar-send-label\">Amount</label>\n {selectedAsset && (\n <span className=\"pollar-send-hint\">\n Available: {formatBalance(selectedAsset.available)} {selectedAsset.code}\n </span>\n )}\n </div>\n <input\n className=\"pollar-input\"\n type=\"text\"\n inputMode=\"decimal\"\n placeholder=\"0.00\"\n value={amount}\n onChange={(e) => onAmountChange(e.target.value)}\n />\n </div>\n\n {/* Destination */}\n <div className=\"pollar-send-field\">\n <label className=\"pollar-send-label\">Destination wallet</label>\n <input\n className=\"pollar-input\"\n type=\"text\"\n placeholder=\"G…\"\n value={destination}\n onChange={(e) => onDestinationChange(e.target.value)}\n />\n </div>\n\n {formError && <div className=\"pollar-modal-error\">{formError}</div>}\n\n <div className=\"pollar-modal-actions\">\n <button className=\"pollar-btn-primary\" onClick={onSubmit} disabled={!canSubmit}>\n Continue\n </button>\n </div>\n </>\n )}\n\n {/* Transaction step */}\n {step === 'tx' && (\n <TxStatusView\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n onSignAndSend={onSignAndSend}\n onToggleXdr={onToggleXdr}\n onCopyHash={onCopyHash}\n onRetry={onRetry}\n onDone={onDone}\n />\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { WalletBalanceRecord } from '@pollar/core';\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport '../transaction-modal/TransactionModal.css';\nimport './SendModal.css';\nimport { SendModalTemplate } from './SendModalTemplate';\n\ninterface SendModalProps {\n onClose: () => void;\n}\n\nfunction assetParam(record: WalletBalanceRecord) {\n if (record.type === 'native') return { type: 'native' as const };\n if (record.type === 'credit_alphanum4') {\n return { type: 'credit_alphanum4' as const, code: record.code, issuer: record.issuer! };\n }\n return { type: 'credit_alphanum12' as const, code: record.code, issuer: record.issuer! };\n}\n\nexport function SendModal({ onClose }: SendModalProps) {\n const {\n walletBalance,\n refreshWalletBalance,\n buildTx,\n signAndSubmitTx,\n tx: transaction,\n walletType,\n network,\n styles,\n } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [step, setStep] = useState<'form' | 'tx'>('form');\n const [amount, setAmount] = useState('');\n const [destination, setDestination] = useState('');\n const [selectedAsset, setSelectedAsset] = useState<WalletBalanceRecord | null>(null);\n const [showXdr, setShowXdr] = useState(false);\n const [copied, setCopied] = useState(false);\n const [formError, setFormError] = useState('');\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n void refreshWalletBalance();\n }, [refreshWalletBalance]);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n const balanceData = walletBalance.step === 'loaded' ? walletBalance.data : null;\n const allAssets = balanceData?.balances ?? [];\n const sortedAssets = [\n ...allAssets.filter((b) => b.enabledInApp),\n ...allAssets.filter((b) => !b.enabledInApp && parseFloat(b.balance) > 0),\n ];\n\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const explorerNetwork = buildData?.summary.network?.toLowerCase().includes('testnet')\n ? 'testnet'\n : buildData\n ? 'public'\n : network === 'testnet'\n ? 'testnet'\n : 'public';\n const explorerUrl = hash ? `https://stellar.expert/explorer/${explorerNetwork}/tx/${hash}` : null;\n\n const IN_FLIGHT_STEPS = [\n 'building',\n 'signing',\n 'submitting',\n 'submitted',\n 'signing-submitting',\n 'building-signing-submitting',\n ] as const;\n const isInProgress = (IN_FLIGHT_STEPS as readonly string[]).includes(transaction.step);\n const showBack = step === 'tx' && (transaction.step === 'error' || transaction.step === 'success') && !isInProgress;\n\n const txTitle = isInProgress\n ? 'Sending…'\n : transaction.step === 'success'\n ? 'Sent!'\n : transaction.step === 'error'\n ? 'Send failed'\n : 'Confirm Send';\n\n async function handleSubmit() {\n setFormError('');\n if (!selectedAsset) {\n setFormError('Select an asset');\n return;\n }\n const parsed = parseFloat(amount);\n if (!amount || isNaN(parsed) || parsed <= 0) {\n setFormError('Enter a valid amount');\n return;\n }\n if (parsed > parseFloat(selectedAsset.available)) {\n setFormError('Insufficient balance');\n return;\n }\n if (!destination.trim()) {\n setFormError('Enter a destination address');\n return;\n }\n\n setStep('tx');\n await buildTx('payment', { destination: destination.trim(), amount, asset: assetParam(selectedAsset) });\n }\n\n function handleSignAndSend() {\n if (transaction.step === 'built') {\n void signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n function handleCopyHash() {\n if (!hash) return;\n navigator.clipboard.writeText(hash).then(() => {\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 2000);\n });\n }\n\n async function handleRetry() {\n if (transaction.step === 'error' && transaction.buildData) {\n await signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n function handleBack() {\n setStep('form');\n setShowXdr(false);\n setCopied(false);\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={!isInProgress ? onClose : undefined}>\n <SendModalTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n txTitle={txTitle}\n assets={sortedAssets}\n selectedAsset={selectedAsset}\n amount={amount}\n destination={destination}\n formError={formError}\n isLoadingBalance={walletBalance.step === 'loading'}\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n showBack={showBack}\n isInProgress={isInProgress}\n onClose={onClose}\n onBack={handleBack}\n onSelectAsset={setSelectedAsset}\n onAmountChange={setAmount}\n onDestinationChange={setDestination}\n onSubmit={() => void handleSubmit()}\n onSignAndSend={handleSignAndSend}\n onToggleXdr={() => setShowXdr((v) => !v)}\n onCopyHash={handleCopyHash}\n onRetry={() => void handleRetry()}\n onDone={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport type { SessionInfo, SessionsState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nexport type { SessionsState };\n\nexport interface SessionsModalTemplateProps {\n theme: string;\n accentColor: string;\n state: SessionsState;\n revokingFamilyId: string | null;\n signingOutEverywhere: boolean;\n onRefresh: () => void;\n onRevoke: (familyId: string) => void;\n onLogoutEverywhere: () => void;\n onClose: () => void;\n}\n\n/**\n * Heuristic device label. Prefers the explicit `deviceLabel` set via\n * `PollarClientConfig`; falls back to a stripped User-Agent.\n */\nfunction describeDevice(s: SessionInfo): string {\n if (s.deviceLabel) return s.deviceLabel;\n if (!s.userAgent) return 'Unknown device';\n return parseUserAgent(s.userAgent);\n}\n\nfunction detectBrowser(ua: string): string | null {\n // Order matters: Edge / Opera contain \"Chrome\" in their UA, so check them first.\n if (/Edg\\//.test(ua)) return 'Edge';\n if (/OPR\\//.test(ua)) return 'Opera';\n if (/(Chrome|CriOS)\\//.test(ua)) return 'Chrome';\n if (/(Firefox|FxiOS)\\//.test(ua)) return 'Firefox';\n if (/Safari\\//.test(ua)) return 'Safari';\n return null;\n}\n\nfunction detectOS(ua: string): string | null {\n if (/iPhone|iPad|iPod/.test(ua)) return 'iOS';\n if (/Android/.test(ua)) return 'Android';\n if (/Mac OS X/.test(ua)) return 'macOS';\n if (/Windows NT/.test(ua)) return 'Windows';\n if (/Linux/.test(ua)) return 'Linux';\n return null;\n}\n\nfunction parseUserAgent(ua: string): string {\n const browser = detectBrowser(ua);\n const os = detectOS(ua);\n if (browser && os) return `${os} — ${browser}`;\n if (os) return os;\n if (browser) return browser;\n return ua.slice(0, 48);\n}\n\nfunction formatRelative(iso: string | null): string {\n if (!iso) return '—';\n const ts = new Date(iso).getTime();\n if (!Number.isFinite(ts)) return '—';\n const diffSec = Math.round((Date.now() - ts) / 1000);\n if (diffSec < 0) return 'just now';\n if (diffSec < 60) return `${diffSec}s ago`;\n const diffMin = Math.round(diffSec / 60);\n if (diffMin < 60) return `${diffMin}m ago`;\n const diffHr = Math.round(diffMin / 60);\n if (diffHr < 24) return `${diffHr}h ago`;\n const diffDay = Math.round(diffHr / 24);\n if (diffDay < 30) return `${diffDay}d ago`;\n return new Date(iso).toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n}\n\nfunction shortIp(hash: string | null): string {\n if (!hash) return '';\n return hash.slice(0, 8);\n}\n\nexport function SessionsModalTemplate({\n theme,\n accentColor,\n state,\n revokingFamilyId,\n signingOutEverywhere,\n onRefresh,\n onRevoke,\n onLogoutEverywhere,\n onClose,\n}: SessionsModalTemplateProps) {\n const isDark = theme === 'dark';\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = state.step === 'loading';\n const sessions = state.step === 'loaded' ? state.sessions : [];\n const otherCount = sessions.filter((s) => !s.current).length;\n\n return (\n <div\n className=\"pollar-modal-card pollar-sessions-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Active sessions</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-sessions-list\">\n {state.step === 'idle' && <div className=\"pollar-modal-empty\">Loading…</div>}\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n {state.step === 'error' && <div className=\"pollar-modal-empty\">{state.message}</div>}\n {state.step === 'loaded' && sessions.length === 0 && <div className=\"pollar-modal-empty\">No active sessions.</div>}\n {sessions.map((s) => {\n const isRevoking = revokingFamilyId === s.familyId;\n return (\n <div key={s.familyId} className=\"pollar-sessions-item\" data-current={s.current || undefined}>\n <div className=\"pollar-sessions-item-main\">\n <span className=\"pollar-sessions-item-device\">{describeDevice(s)}</span>\n {s.current && <span className=\"pollar-sessions-item-badge\">This device</span>}\n </div>\n <div className=\"pollar-sessions-item-meta\">\n <span>Last used {formatRelative(s.lastUsedAt ?? s.createdAt)}</span>\n {s.ipHash && (\n <>\n <span>·</span>\n <span title={`ip-hash ${s.ipHash}`}>ip {shortIp(s.ipHash)}</span>\n </>\n )}\n </div>\n {!s.current && (\n <button\n className=\"pollar-sessions-item-revoke\"\n onClick={() => onRevoke(s.familyId)}\n disabled={isRevoking || signingOutEverywhere}\n >\n {isRevoking ? 'Revoking…' : 'Revoke'}\n </button>\n )}\n </div>\n );\n })}\n </div>\n\n {state.step === 'loaded' && sessions.length > 0 && (\n <div className=\"pollar-sessions-actions\">\n <button\n className=\"pollar-sessions-logout-all\"\n onClick={onLogoutEverywhere}\n disabled={signingOutEverywhere || otherCount === 0}\n title={otherCount === 0 ? 'No other devices to sign out' : undefined}\n >\n {signingOutEverywhere ? 'Signing out…' : 'Sign out everywhere'}\n </button>\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './SessionsModal.css';\nimport { SessionsModalTemplate } from './SessionsModalTemplate';\n\ninterface SessionsModalProps {\n onClose: () => void;\n}\n\nexport function SessionsModal({ onClose }: SessionsModalProps) {\n const { getClient, styles, sessions } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n // Only the per-action button spinners are local UI state. The list itself\n // (idle/loading/loaded/error) lives in the client's observable `sessions`\n // store, read straight from the provider — so this component is a pure\n // reader and there's no `await`-then-`setState` to guard against unmount.\n const [revokingFamilyId, setRevokingFamilyId] = useState<string | null>(null);\n const [signingOutEverywhere, setSigningOutEverywhere] = useState(false);\n\n const load = useCallback(() => {\n void getClient().fetchSessions();\n }, [getClient]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n // Auto-close on logout (logoutEverywhere from this modal, or eventual\n // 401-on-current-family-revoke). The provider clears session state when\n // the user becomes unauthenticated; mirror that here so the modal\n // tears down instead of showing stale data.\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n useEffect(() => {\n return getClient().onAuthStateChange((authState) => {\n if (authState.step === 'idle') onCloseRef.current();\n });\n }, [getClient]);\n\n const handleRevoke = useCallback(\n async (familyId: string) => {\n setRevokingFamilyId(familyId);\n try {\n await getClient().revokeSession(familyId);\n } catch {\n // Swallow — the refresh below resyncs the list with server truth, so a\n // failed revoke simply leaves the (still-active) row in place.\n } finally {\n setRevokingFamilyId(null);\n // Refresh from the server so the row disappears from the list.\n load();\n }\n },\n [getClient, load],\n );\n\n const handleLogoutEverywhere = useCallback(async () => {\n setSigningOutEverywhere(true);\n try {\n await getClient().logoutEverywhere();\n // After logout-everywhere the auth state flips to 'idle' — the\n // provider closes the parent overlay automatically. Belt-and-braces:\n // call onClose so the modal also tears down even if the consumer\n // wired it up outside the provider.\n onClose();\n } catch {\n setSigningOutEverywhere(false);\n }\n }, [getClient, onClose]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <SessionsModalTemplate\n theme={theme}\n accentColor={accentColor}\n state={sessions}\n revokingFamilyId={revokingFamilyId}\n signingOutEverywhere={signingOutEverywhere}\n onRefresh={() => load()}\n onRevoke={(familyId) => void handleRevoke(familyId)}\n onLogoutEverywhere={() => void handleLogoutEverywhere()}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TransactionState, WalletId } from '@pollar/core';\nimport React from 'react';\nimport { PollarModalFooter } from '../commons';\nimport { TxStatusView } from './TxStatusView';\n\nexport interface TransactionModalTemplateProps {\n theme: string;\n accentColor: string;\n transaction: TransactionState;\n showXdr: boolean;\n copied: boolean;\n explorerUrl: string | null;\n walletType?: WalletId | null;\n onClose: () => void;\n onSignAndSend: () => void;\n onToggleXdr: () => void;\n onCopyHash: () => void;\n onRetry?: () => void;\n}\n\nexport function TransactionModalTemplate({\n theme,\n accentColor,\n transaction,\n showXdr,\n copied,\n explorerUrl,\n walletType,\n onClose,\n onSignAndSend,\n onToggleXdr,\n onCopyHash,\n onRetry,\n}: TransactionModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as React.CSSProperties;\n\n return (\n <div className=\"pollar-modal-card pollar-tx-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Transaction</h2>\n </div>\n <button type=\"button\" className=\"pollar-close-btn\" onClick={onClose} aria-label=\"Close\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n\n <TxStatusView\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n onSignAndSend={onSignAndSend}\n onToggleXdr={onToggleXdr}\n onCopyHash={onCopyHash}\n onRetry={onRetry}\n onDone={onClose}\n />\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './TransactionModal.css';\nimport { TransactionModalTemplate } from './TransactionModalTemplate';\n\ninterface TransactionModalProps {\n onClose: () => void;\n}\n\nexport function TransactionModal({ onClose }: TransactionModalProps) {\n const { getClient, styles, tx: transaction, network, walletType } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [showXdr, setShowXdr] = useState(false);\n const [copied, setCopied] = useState(false);\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const explorerNetwork = buildData?.summary.network?.toLowerCase().includes('testnet')\n ? 'testnet'\n : buildData\n ? 'public'\n : network === 'testnet'\n ? 'testnet'\n : 'public';\n const explorerUrl = hash ? `https://stellar.expert/explorer/${explorerNetwork}/tx/${hash}` : null;\n\n function handleSignAndSend() {\n if (transaction.step === 'built') {\n void getClient().signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n function handleCopyHash() {\n if (!hash) return;\n navigator.clipboard.writeText(hash).then(() => {\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 2000);\n });\n }\n\n async function handleRetry() {\n if (transaction.step === 'error' && transaction.buildData) {\n await getClient().signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TransactionModalTemplate\n theme={theme}\n accentColor={accentColor}\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n onClose={onClose}\n onSignAndSend={handleSignAndSend}\n onToggleXdr={() => setShowXdr((v) => !v)}\n onCopyHash={handleCopyHash}\n onRetry={handleRetry}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TxHistoryRecord, TxHistoryState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nconst PAGE_SIZE = 10;\n\ninterface TxHistoryModalTemplateProps {\n theme: string;\n accentColor: string;\n txHistory: TxHistoryState;\n offset: number;\n onRefresh: () => void;\n onPrev: () => void;\n onNext: () => void;\n onClose: () => void;\n}\n\nfunction StatusBadge({ status }: { status: TxHistoryRecord['status'] }) {\n return (\n <span className=\"pollar-hist-item-badge\" data-status={status}>\n {status}\n </span>\n );\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n}\n\nexport function TxHistoryModalTemplate({\n theme,\n accentColor,\n txHistory,\n offset,\n onRefresh,\n onPrev,\n onNext,\n onClose,\n}: TxHistoryModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = txHistory.step === 'loading';\n const records = txHistory.step === 'loaded' ? txHistory.data.records : [];\n const total = txHistory.step === 'loaded' ? txHistory.data.total : 0;\n const hasPrev = offset > 0;\n const hasNext = offset + PAGE_SIZE < total;\n const showPagination = txHistory.step === 'loaded' && total > PAGE_SIZE;\n\n return (\n <div\n className=\"pollar-modal-card pollar-hist-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Transaction History</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-hist-list\">\n {txHistory.step === 'idle' && <div className=\"pollar-modal-empty\">Click Refresh to load transactions.</div>}\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n {txHistory.step === 'error' && <div className=\"pollar-modal-empty\">{txHistory.message}</div>}\n {txHistory.step === 'loaded' && records.length === 0 && <div className=\"pollar-modal-empty\">No transactions yet.</div>}\n {records.map((record) => {\n const explorerUrl = `https://stellar.expert/explorer/${record.network === 'testnet' ? 'testnet' : 'public'}/tx/${record.hash}`;\n return (\n <div key={record.id} className=\"pollar-hist-item\">\n <span className=\"pollar-hist-item-summary\">{record.summary}</span>\n <StatusBadge status={record.status} />\n <span className=\"pollar-hist-item-meta\">\n <span>{record.operation}</span>\n {record.feeXlm && <span>· {record.feeXlm} XLM</span>}\n <span>· {formatDate(record.createdAt)}</span>\n <span>·</span>\n <a\n className=\"pollar-hist-item-explorer\"\n href={explorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"View on Stellar Explorer\"\n >\n <svg width=\"11\" height=\"11\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <path\n d=\"M5 2H2a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8 1h4m0 0v4m0-4L6 7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Explorer\n </a>\n </span>\n </div>\n );\n })}\n </div>\n\n {showPagination && (\n <div className=\"pollar-hist-pagination\">\n <span className=\"pollar-hist-pagination-info\">\n {offset + 1}–{Math.min(offset + PAGE_SIZE, total)} of {total}\n </span>\n <div className=\"pollar-hist-pagination-btns\">\n <button className=\"pollar-hist-page-btn\" onClick={onPrev} disabled={!hasPrev}>\n ← Prev\n </button>\n <button className=\"pollar-hist-page-btn\" onClick={onNext} disabled={!hasNext}>\n Next →\n </button>\n </div>\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './TxHistoryModal.css';\nimport { TxHistoryModalTemplate } from './TxHistoryModalTemplate';\n\nconst PAGE_SIZE = 10;\n\ninterface TxHistoryModalProps {\n onClose: () => void;\n}\n\nexport function TxHistoryModal({ onClose }: TxHistoryModalProps) {\n const { getClient, styles, txHistory } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const [offset, setOffset] = useState(0);\n\n const load = useCallback(\n (nextOffset: number) => {\n setOffset(nextOffset);\n void getClient().fetchTxHistory({ limit: PAGE_SIZE, offset: nextOffset });\n },\n [getClient],\n );\n\n useEffect(() => {\n load(0);\n }, [load]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TxHistoryModalTemplate\n theme={theme}\n accentColor={accentColor}\n txHistory={txHistory}\n offset={offset}\n onRefresh={() => load(offset)}\n onPrev={() => load(Math.max(0, offset - PAGE_SIZE))}\n onNext={() => load(offset + PAGE_SIZE)}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { WalletBalanceRecord, WalletBalanceState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nfunction formatBalance(balance: string): string {\n const n = parseFloat(balance);\n return isNaN(n) ? balance : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction cropAddress(address: string): string {\n if (address.length <= 16) return address;\n return `${address.slice(0, 8)}...${address.slice(-8)}`;\n}\n\nfunction BalanceItem({ record }: { record: WalletBalanceRecord }) {\n const balanceDiffers = record.balance !== record.available;\n return (\n <div className=\"pollar-bal-item\">\n <span className=\"pollar-bal-asset\">{record.code}</span>\n <div className=\"pollar-bal-amounts\">\n <span className=\"pollar-bal-amount\">{formatBalance(record.balance)}</span>\n {balanceDiffers && <span className=\"pollar-bal-available\">{formatBalance(record.available)} available</span>}\n </div>\n </div>\n );\n}\n\nexport interface WalletBalanceModalTemplateProps {\n theme: string;\n accentColor: string;\n walletBalance: WalletBalanceState;\n walletAddress: string;\n onRefresh: () => void;\n onClose: () => void;\n}\n\nexport function WalletBalanceModalTemplate({\n theme,\n accentColor,\n walletBalance,\n walletAddress,\n onRefresh,\n onClose,\n}: WalletBalanceModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = walletBalance.step === 'loading';\n const data = walletBalance.step === 'loaded' ? walletBalance.data : null;\n\n return (\n <div className=\"pollar-modal-card pollar-bal-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Wallet Balance</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {walletAddress && <div className=\"pollar-bal-address\">{cropAddress(walletAddress)}</div>}\n\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n\n {walletBalance.step === 'error' && <div className=\"pollar-modal-error\">{walletBalance.message}</div>}\n\n {data && !data.exists && <div className=\"pollar-modal-empty\">Account not found on {data.network}.</div>}\n\n {data?.exists && data.balances.length === 0 && <div className=\"pollar-modal-empty\">No balances found.</div>}\n\n {data?.exists && data.balances.length > 0 && (\n <div className=\"pollar-bal-list\">\n {data.balances.map((b) => (\n <BalanceItem key={b.code + (b.issuer ?? '')} record={b} />\n ))}\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './WalletBalanceModal.css';\nimport { WalletBalanceModalTemplate } from './WalletBalanceModalTemplate';\n\ninterface WalletBalanceModalProps {\n onClose: () => void;\n}\n\nexport function WalletBalanceModal({ onClose }: WalletBalanceModalProps) {\n const { walletBalance, refreshWalletBalance, walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n useEffect(() => {\n void refreshWalletBalance();\n }, [refreshWalletBalance]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <WalletBalanceModalTemplate\n theme={theme}\n accentColor={accentColor}\n walletBalance={walletBalance}\n walletAddress={walletAddress}\n onRefresh={() => refreshWalletBalance()}\n onClose={onClose}\n />\n </div>\n );\n}\n","import type { PasskeyCeremony, PasskeySigner } from '@pollar/core';\nimport { startAuthentication, startRegistration } from '@simplewebauthn/browser';\n\n// hex → base64url, for passing the raw auth digest as the WebAuthn challenge.\nfunction hexToBase64url(hex: string): string {\n const bytes = new Uint8Array(hex.length / 2);\n for (let i = 0; i < bytes.length; i++) bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);\n let bin = '';\n for (const b of bytes) bin += String.fromCharCode(b);\n return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n// WebAuthn user.id must be a base64url string in the JSON options. It is a\n// per-credential opaque handle (the authenticator stores it for the account\n// picker); the server identifies users by credentialId, not this.\nfunction randomUserId(): string {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n let bin = '';\n for (const b of bytes) bin += String.fromCharCode(b);\n return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n/**\n * Browser passkey ceremony for `loginSmartWallet()`.\n *\n * Autodetect: try `get()` first (returning user — the OS shows the account\n * picker for discoverable credentials on this domain). If there's no usable\n * credential it falls through to `create()` (new user → the server then\n * deploys the C-address).\n *\n * Known tradeoff: WebAuthn surfaces \"no credential\" and \"user cancelled\" as\n * the same `NotAllowedError`, so cancelling the login prompt falls through to\n * registration and would create a new wallet. A dedicated \"create another\n * wallet\" action would disambiguate the two.\n *\n * rpId = the current page's hostname (the customer app's domain), which is what\n * the passkey is bound to — the anti-phishing guarantee.\n */\nexport const browserPasskeyCeremony: PasskeyCeremony = async ({ challenge }) => {\n const rpId = window.location.hostname;\n\n try {\n const response = await startAuthentication({\n optionsJSON: { challenge, rpId, userVerification: 'required' },\n });\n return { kind: 'login', response };\n } catch {\n // No usable credential (or the user opted out) → register a new passkey.\n }\n\n const userId = randomUserId();\n const response = await startRegistration({\n optionsJSON: {\n challenge,\n rp: { id: rpId, name: rpId },\n user: { id: userId, name: 'Smart Wallet', displayName: 'Smart Wallet' },\n // ES256 (secp256r1) — the curve the on-chain WebAuthn verifier expects.\n pubKeyCredParams: [{ type: 'public-key', alg: -7 }],\n authenticatorSelection: { residentKey: 'required', userVerification: 'required' },\n attestation: 'none',\n timeout: 60_000,\n },\n });\n return { kind: 'register', response };\n};\n\n/**\n * Browser passkey signer for smart-wallet transactions. Runs a WebAuthn `get()`\n * whose challenge is the raw auth digest (the on-chain verifier checks\n * clientDataJSON.challenge === base64url(digest)), and returns the public\n * assertion fields (base64url) for the server to assemble into the Soroban auth\n * entry. The secp256r1 key never leaves the device.\n */\nexport const browserPasskeySigner: PasskeySigner = async ({ credentialId, challenge }) => {\n const rpId = window.location.hostname;\n const { response } = await startAuthentication({\n optionsJSON: {\n challenge: hexToBase64url(challenge),\n rpId,\n allowCredentials: [{ id: credentialId, type: 'public-key' }],\n userVerification: 'required',\n },\n });\n // @simplewebauthn/browser returns these as base64url strings.\n return {\n authenticatorData: response.authenticatorData,\n clientDataJSON: response.clientDataJSON,\n signature: response.signature,\n };\n};\n","'use client';\n\nimport {\n BuildOutcome,\n EnabledAssetsState,\n NetworkState,\n OnStorageDegrade,\n PollarAdapters,\n PollarClient,\n PollarClientConfig,\n PollarLoginOptions,\n PollarPersistedSession,\n SessionsState,\n SignOutcome,\n StellarNetwork,\n SubmitOutcome,\n TransactionState,\n TxBuildBody,\n TxHistoryState,\n WalletBalanceState,\n WalletId,\n} from '@pollar/core';\nimport { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { ModalErrorBoundary, setModalErrorLogger } from './components/commons';\nimport { DistributionRulesModal } from './components/distribution-rules-modal/DistributionRulesModal';\nimport { EnabledAssetsModal } from './components/enabled-assets-modal/EnabledAssetsModal';\nimport { KycModal } from './components/kyc-modal/KycModal';\nimport { LoginModal } from './components/login-modal/LoginModal';\nimport { RampWidget } from './components/ramp-widget/RampWidget';\nimport { ReceiveModal } from './components/receive-modal/ReceiveModal';\nimport { SendModal } from './components/send-modal/SendModal';\nimport { SessionsModal } from './components/sessions-modal/SessionsModal';\nimport { TransactionModal } from './components/transaction-modal/TransactionModal';\nimport { TxHistoryModal } from './components/tx-history-modal/TxHistoryModal';\nimport { WalletBalanceModal } from './components/wallet-balance-modal/WalletBalanceModal';\nimport { browserPasskeyCeremony, browserPasskeySigner } from './lib/passkey-ceremony';\nimport type { PollarConfig, PollarStyles, RenderWalletsSlot } from './types';\n\nconst DEFAULT_APP_CONFIG: PollarConfig = {\n application: { name: '' },\n styles: {},\n};\n\n/**\n * Compares the fields of a persisted session that actually drive UI re-renders.\n * Replaces a per-listener `JSON.stringify(...) !== JSON.stringify(...)` call —\n * cheaper, allocation-free, and explicit about what counts as \"changed\".\n *\n * If a field is added to `PollarPersistedSession` that consumers read through\n * context, list it here too.\n */\nfunction sessionsEqual(a: PollarPersistedSession | null, b: PollarPersistedSession | null): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n return (\n a.clientSessionId === b.clientSessionId &&\n a.userId === b.userId &&\n a.status === b.status &&\n a.token?.accessToken === b.token?.accessToken &&\n a.token?.refreshToken === b.token?.refreshToken &&\n a.token?.expiresAt === b.token?.expiresAt &&\n a.wallet?.address === b.wallet?.address\n );\n}\n\ninterface PollarContextValue {\n walletAddress: string;\n getClient: () => PollarClient;\n openLoginModal: () => void;\n\n isAuthenticated: boolean;\n /**\n * `true` once the server has confirmed the session (login / refresh /\n * `/auth/session/resume`). `false` while a cold-start session is still\n * optimistic — gate sensitive actions (e.g. signing) on this.\n */\n verified: boolean;\n login: (options: PollarLoginOptions) => void;\n logout: () => void;\n // sessions\n sessions: SessionsState;\n /** Open the active-sessions modal. */\n openSessionsModal: () => void;\n appConfig: PollarConfig;\n styles: PollarStyles;\n /** UI slot for wallet picker (forwarded from provider props). */\n renderWallets?: RenderWalletsSlot;\n // transactions\n openTxModal: () => void;\n tx: TransactionState;\n buildTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<BuildOutcome>;\n signAndSubmitTx: (unsignedXdr?: string) => Promise<SubmitOutcome>;\n /** External-wallet only. Custodial flows should use `signAndSubmitTx`. */\n signTx: (unsignedXdr: string) => Promise<SignOutcome>;\n submitTx: (signedXdr: string) => Promise<SubmitOutcome>;\n /** One-shot: build → sign → submit. Drives the same TransactionState flow as the split calls. */\n buildAndSignAndSubmitTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<SubmitOutcome>;\n /** Alias of `buildAndSignAndSubmitTx`. */\n runTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<SubmitOutcome>;\n walletType: WalletId | null;\n // network\n network: StellarNetwork;\n setNetwork: (network: StellarNetwork) => void;\n // wallet balance\n walletBalance: WalletBalanceState;\n refreshWalletBalance: () => Promise<void>;\n // enabled assets\n /**\n * The application's dashboard-enabled assets paired with the authenticated\n * wallet's on-chain trustline state (`trustlineEstablished` per asset). Driven\n * by {@link refreshAssets}; mirrors {@link walletBalance}.\n */\n enabledAssets: EnabledAssetsState;\n refreshAssets: () => Promise<void>;\n /** Open the enabled-assets / trustline-state modal. */\n openEnabledAssetsModal: () => void;\n // kyc\n openKycModal: (options?: {\n country?: string;\n level?: 'basic' | 'intermediate' | 'enhanced';\n onApproved?: () => void;\n }) => void;\n // ramps\n openRampModal: () => void;\n // tx history\n txHistory: TxHistoryState;\n openTxHistoryModal: () => void;\n // wallet balance modal\n openWalletBalanceModal: () => void;\n // send / receive\n openSendModal: () => void;\n openReceiveModal: () => void;\n // distribution\n openDistributionRulesModal: () => void;\n // adapters\n adapters?: PollarAdapters;\n}\n\nconst PollarContext = createContext<PollarContextValue | null>(null);\n\ninterface PollarProviderProps {\n /**\n * Either a pre-built `PollarClient` instance (useful for testing or for\n * reusing the same client outside React) or a `PollarClientConfig` that the\n * provider will use to construct one on mount.\n *\n * The client is locked at first render: changing this prop afterwards is\n * ignored. To swap clients, unmount and remount the provider.\n */\n client: PollarClient | PollarClientConfig;\n /**\n * Local override of the `/applications/config` response. If provided (even\n * `{}`), the remote fetch is skipped and missing fields fall back to the\n * defaults in `LoginModalTemplate`. If `undefined`, the SDK fetches\n * `/applications/config` on mount.\n */\n appConfig?: PollarConfig;\n /** UI customization slots. */\n ui?: {\n /** Replaces the default Freighter/Albedo wallet picker. */\n renderWallets?: RenderWalletsSlot;\n };\n adapters?: PollarAdapters;\n /**\n * Notified when persistent storage silently degrades to in-memory mode\n * (Safari private browsing quota errors, sandboxed iframes, etc.). Use this\n * to surface a UI hint that the session won't survive a reload, log to\n * telemetry, or fall back to a different storage strategy.\n *\n * Fires at most once per provider lifetime; late mounts get the latched\n * state replayed on subscribe.\n */\n onStorageDegrade?: OnStorageDegrade;\n children: ReactNode;\n}\n\nexport function PollarProvider({\n client,\n appConfig: appConfigProp,\n ui,\n adapters,\n onStorageDegrade,\n children,\n}: PollarProviderProps) {\n // When the consumer passes a config (not a ready client), inject the browser\n // passkey ceremony so `loginSmartWallet()` works out of the box on web. The\n // consumer can override it (e.g. a React Native native provider) via\n // `client.passkey`.\n const [pollarClient] = useState<PollarClient>(() =>\n client instanceof PollarClient\n ? client\n : new PollarClient({ passkey: browserPasskeyCeremony, passkeySign: browserPasskeySigner, ...client }),\n );\n const [networkState, setNetworkState] = useState<NetworkState>(() => pollarClient.getNetworkState());\n const [sessionState, setSessionState] = useState<PollarPersistedSession | null>(null);\n // `true` once the server has confirmed the restored session (via login,\n // refresh, or `/auth/session/resume`). Use it to gate sensitive actions\n // while a cold-start session is still optimistic.\n const [verified, setVerified] = useState(false);\n const [transaction, setTransaction] = useState<TransactionState>({ step: 'idle' });\n const [txHistory, setTxHistory] = useState<TxHistoryState>({ step: 'idle' });\n const [sessions, setSessions] = useState<SessionsState>({ step: 'idle' });\n const [walletBalance, setWalletBalance] = useState<WalletBalanceState>({ step: 'idle' });\n const [enabledAssets, setEnabledAssets] = useState<EnabledAssetsState>({ step: 'idle' });\n const [resolvedConfig, setResolvedConfig] = useState<PollarConfig>(() => appConfigProp ?? DEFAULT_APP_CONFIG);\n\n useEffect(() => {\n return pollarClient.onTransactionStateChange(setTransaction);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onTxHistoryStateChange(setTxHistory);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onSessionsStateChange(setSessions);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onWalletBalanceStateChange(setWalletBalance);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onEnabledAssetsStateChange(setEnabledAssets);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onNetworkStateChange((state) => {\n setNetworkState(state);\n });\n }, [pollarClient]);\n\n useEffect(() => {\n if (!onStorageDegrade) return;\n return pollarClient.onStorageDegrade(onStorageDegrade);\n }, [pollarClient, onStorageDegrade]);\n\n useEffect(() => {\n return pollarClient.onAuthStateChange((authState) => {\n if (authState.step === 'authenticated') {\n setSessionState((prev) => (sessionsEqual(prev, authState.session) ? prev : authState.session));\n // The session object is identical between the optimistic restore and\n // the post-resume confirmation, so `verified` is tracked separately —\n // otherwise the sessionsEqual short-circuit would swallow the flip.\n setVerified(authState.verified);\n } else if (authState.step === 'idle') {\n setSessionState(null);\n setVerified(false);\n }\n });\n }, [pollarClient]);\n\n // Presence of `appConfig` is the opt-out: if the consumer passes it (even\n // `{}`), we trust them and skip the remote fetch.\n // Route the modal error boundary's logs through the client's level-gated\n // logger (it's a class component that can't read context directly).\n useEffect(() => {\n setModalErrorLogger(pollarClient.getLogger());\n }, [pollarClient]);\n\n useEffect(() => {\n if (appConfigProp !== undefined) return;\n let cancelled = false;\n pollarClient\n .getAppConfig()\n .then((fetched) => {\n if (cancelled || !fetched) return;\n setResolvedConfig(fetched as PollarConfig);\n })\n .catch((err) => {\n pollarClient.getLogger().error('[PollarProvider] getAppConfig failed', err);\n });\n return () => {\n cancelled = true;\n };\n }, [pollarClient, appConfigProp]);\n\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n const [transactionModalOpen, setTransactionModalOpen] = useState(false);\n const [kycModalOpen, setKycModalOpen] = useState(false);\n const [kycModalOptions, setKycModalOptions] = useState<{\n country?: string;\n level?: 'basic' | 'intermediate' | 'enhanced';\n onApproved?: () => void;\n }>({});\n const [rampModalOpen, setRampModalOpen] = useState(false);\n const [txHistoryModalOpen, setTxHistoryModalOpen] = useState(false);\n const [walletBalanceModalOpen, setWalletBalanceModalOpen] = useState(false);\n const [enabledAssetsModalOpen, setEnabledAssetsModalOpen] = useState(false);\n const [sendModalOpen, setSendModalOpen] = useState(false);\n const [receiveModalOpen, setReceiveModalOpen] = useState(false);\n const [sessionsModalOpen, setSessionsModalOpen] = useState(false);\n const [distributionRulesModalOpen, setDistributionRulesModalOpen] = useState(false);\n\n // PII (incl. providers.wallet.address) lives on `client.getUserProfile()`, not on the\n // persisted session. For every wallet type, `wallet.address` holds the on-chain\n // address we care about.\n const walletAddress = sessionState?.wallet?.address || '';\n const getClient = useCallback(() => pollarClient, [pollarClient]);\n // refreshBalance resolves the own wallet server-side from the session;\n // walletAddress stays in deps so the callback re-binds when the wallet changes.\n const refreshWalletBalance = useCallback(() => pollarClient.refreshBalance(), [pollarClient, walletAddress]);\n // refreshAssets resolves the own wallet server-side from the session;\n // walletAddress stays in deps so the callback re-binds when the wallet changes.\n const refreshAssets = useCallback(() => pollarClient.refreshAssets(), [pollarClient, walletAddress]);\n\n const renderWallets = ui?.renderWallets;\n\n const contextValue: PollarContextValue = useMemo(() => {\n const styles: PollarStyles = resolvedConfig.styles ?? {};\n return {\n // session\n walletAddress,\n isAuthenticated: !!walletAddress,\n verified,\n walletType: pollarClient.getWalletType(),\n // client\n getClient,\n // auth\n login: (options: PollarLoginOptions) => pollarClient.login(options),\n logout: () => pollarClient.logout(),\n openLoginModal: () => setLoginModalOpen(true),\n // transactions\n tx: transaction,\n buildTx: (operation, params, options) => pollarClient.buildTx(operation, params, options),\n signAndSubmitTx: (unsignedXdr?: string) => pollarClient.signAndSubmitTx(unsignedXdr),\n signTx: (unsignedXdr: string) => pollarClient.signTx(unsignedXdr),\n submitTx: (signedXdr: string) => pollarClient.submitTx(signedXdr),\n buildAndSignAndSubmitTx: (operation, params, options) => pollarClient.buildAndSignAndSubmitTx(operation, params, options),\n runTx: (operation, params, options) => pollarClient.runTx(operation, params, options),\n openTxModal: () => setTransactionModalOpen(true),\n // tx history\n txHistory,\n openTxHistoryModal: () => setTxHistoryModalOpen(true),\n // wallet balance\n walletBalance,\n refreshWalletBalance,\n openWalletBalanceModal: () => setWalletBalanceModalOpen(true),\n // enabled assets\n enabledAssets,\n refreshAssets,\n openEnabledAssetsModal: () => setEnabledAssetsModalOpen(true),\n // send / receive\n openSendModal: () => setSendModalOpen(true),\n openReceiveModal: () => setReceiveModalOpen(true),\n // sessions\n sessions,\n openSessionsModal: () => setSessionsModalOpen(true),\n // distribution\n openDistributionRulesModal: () => setDistributionRulesModalOpen(true),\n // network\n network: networkState.step === 'connected' ? networkState.network : 'testnet',\n setNetwork: (network: StellarNetwork) => pollarClient.setNetwork(network),\n // kyc\n openKycModal: (options = {}) => {\n setKycModalOptions(options);\n setKycModalOpen(true);\n },\n // ramp\n openRampModal: () => setRampModalOpen(true),\n // config\n appConfig: resolvedConfig,\n styles,\n renderWallets,\n adapters,\n } as PollarContextValue;\n }, [\n walletAddress,\n verified,\n pollarClient,\n getClient,\n transaction,\n txHistory,\n sessions,\n walletBalance,\n refreshWalletBalance,\n enabledAssets,\n refreshAssets,\n networkState,\n resolvedConfig,\n adapters,\n renderWallets,\n ]);\n\n return (\n <PollarContext.Provider value={contextValue}>\n {children}\n {loginModalOpen && (\n <ModalErrorBoundary onClose={() => setLoginModalOpen(false)}>\n <LoginModal onClose={() => setLoginModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {transactionModalOpen && (\n <ModalErrorBoundary onClose={() => setTransactionModalOpen(false)}>\n <TransactionModal onClose={() => setTransactionModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {kycModalOpen && (\n <ModalErrorBoundary onClose={() => setKycModalOpen(false)}>\n <KycModal\n onClose={() => setKycModalOpen(false)}\n {...(kycModalOptions.country !== undefined && { country: kycModalOptions.country })}\n {...(kycModalOptions.level !== undefined && { level: kycModalOptions.level })}\n {...(kycModalOptions.onApproved !== undefined && { onApproved: kycModalOptions.onApproved })}\n />\n </ModalErrorBoundary>\n )}\n {rampModalOpen && (\n <ModalErrorBoundary onClose={() => setRampModalOpen(false)}>\n <RampWidget onClose={() => setRampModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {txHistoryModalOpen && (\n <ModalErrorBoundary onClose={() => setTxHistoryModalOpen(false)}>\n <TxHistoryModal onClose={() => setTxHistoryModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {walletBalanceModalOpen && (\n <ModalErrorBoundary onClose={() => setWalletBalanceModalOpen(false)}>\n <WalletBalanceModal onClose={() => setWalletBalanceModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {enabledAssetsModalOpen && (\n <ModalErrorBoundary onClose={() => setEnabledAssetsModalOpen(false)}>\n <EnabledAssetsModal onClose={() => setEnabledAssetsModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {sendModalOpen && (\n <ModalErrorBoundary onClose={() => setSendModalOpen(false)}>\n <SendModal onClose={() => setSendModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {receiveModalOpen && (\n <ModalErrorBoundary onClose={() => setReceiveModalOpen(false)}>\n <ReceiveModal onClose={() => setReceiveModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {sessionsModalOpen && (\n <ModalErrorBoundary onClose={() => setSessionsModalOpen(false)}>\n <SessionsModal onClose={() => setSessionsModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {distributionRulesModalOpen && (\n <ModalErrorBoundary onClose={() => setDistributionRulesModalOpen(false)}>\n <DistributionRulesModal onClose={() => setDistributionRulesModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n </PollarContext.Provider>\n );\n}\n\nexport function usePollar() {\n const ctx = useContext(PollarContext);\n if (!ctx) {\n throw new Error('usePollar must be used inside <PollarProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport type { PollarAdapter, SubmitOutcome } from '@pollar/core';\nimport { usePollar } from './context';\n\ntype WrappedAdapter<T extends PollarAdapter> = {\n [K in keyof T]: (params: Parameters<T[K]>[0]) => Promise<SubmitOutcome>;\n};\n\nexport function createPollarAdapterHook<T extends PollarAdapter>(key: string) {\n return function usePollarAdapter(): WrappedAdapter<T> {\n const { adapters, signAndSubmitTx } = usePollar();\n const adapter = adapters?.[key] as T | undefined;\n\n if (!adapter) {\n throw new Error(`No adapter \"${key}\" provided to PollarProvider`);\n }\n\n return Object.fromEntries(\n Object.entries(adapter).map(([name, fn]) => [\n name,\n async (params: Parameters<typeof fn>[0]) => {\n const { unsignedTransaction } = await fn(params);\n return signAndSubmitTx(unsignedTransaction);\n },\n ]),\n ) as WrappedAdapter<T>;\n };\n}\n","'use client';\n\nimport { WalletId } from '@pollar/core';\nimport { LOGO_POLLAR } from '../../constants';\nimport './WalletButton.css';\n\nfunction ButtonLogo() {\n return <img src={LOGO_POLLAR} alt=\"Pollar\" width={22} height={22} className=\"wallet-btn-logo\" />;\n}\n\nexport interface WalletButtonTemplateProps {\n walletAddress: string | null;\n accentColor: string;\n open: boolean;\n copied: boolean;\n dropdownBg: string;\n dropdownBorder: string;\n itemColor: string;\n wrapperRef: React.RefObject<HTMLDivElement>;\n isInProgress: boolean;\n walletType: WalletId | null;\n onToggleOpen: () => void;\n onCopy: () => void;\n onWalletBalance: () => void;\n onTxHistory: () => void;\n onSend: () => void;\n onReceive: () => void;\n onSessions: () => void;\n onKyc: () => void;\n onRamp: () => void;\n onDistributionRules: () => void;\n onLogout: () => void;\n onLogin: () => void;\n}\n\nfunction cropWallet(address: string) {\n if (address.length <= 12) return address;\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n}\n\nexport function WalletButtonTemplate({\n walletAddress,\n accentColor,\n open,\n copied,\n dropdownBg,\n dropdownBorder,\n itemColor,\n wrapperRef,\n isInProgress,\n onToggleOpen,\n onCopy,\n onWalletBalance,\n onTxHistory,\n onSend,\n onReceive,\n onSessions,\n onKyc,\n onRamp,\n onDistributionRules,\n onLogout,\n onLogin,\n}: WalletButtonTemplateProps) {\n if (!walletAddress) {\n return (\n <button type=\"button\" className=\"wallet-login-btn\" style={{ backgroundColor: accentColor }} onClick={onLogin}>\n <ButtonLogo />\n Login with Pollar\n </button>\n );\n }\n\n return (\n <div className=\"wallet-wrapper\" ref={wrapperRef}>\n <button\n className=\"wallet-btn\"\n style={{ backgroundColor: accentColor }}\n onClick={isInProgress ? undefined : onToggleOpen}\n disabled={isInProgress}\n aria-busy={isInProgress}\n >\n <span className=\"wallet-btn-label\">{cropWallet(walletAddress)}</span>\n {isInProgress ? (\n <svg className=\"wallet-btn-spinner\" viewBox=\"0 0 12 12\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden>\n <circle cx=\"6\" cy=\"6\" r=\"4.5\" stroke=\"rgba(255,255,255,0.35)\" strokeWidth=\"1.5\" />\n <circle\n cx=\"6\"\n cy=\"6\"\n r=\"4.5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeDasharray=\"14 9\"\n transform=\"rotate(-90 6 6)\"\n />\n </svg>\n ) : (\n <svg\n className={`wallet-chevron${open ? ' open' : ''}`}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"2,4 6,8 10,4\" />\n </svg>\n )}\n </button>\n\n {open && (\n <div className=\"wallet-dropdown\" style={{ backgroundColor: dropdownBg, borderColor: dropdownBorder }}>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onSend}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\" />\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\" />\n </svg>\n Send\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onReceive}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"8 17 12 21 16 17\" />\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\" />\n <path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\" />\n </svg>\n Receive\n </button>\n <div className=\"wallet-dropdown-divider\" />\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onCopy}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n {copied ? 'Copied!' : 'Copy address'}\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onWalletBalance}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\" />\n <circle cx=\"16\" cy=\"12\" r=\"2\" />\n <path d=\"M22 8H12\" />\n </svg>\n Wallet balance\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onTxHistory}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14,2 14,8 20,8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10,9 9,9 8,9\" />\n </svg>\n Transaction history\n </button>\n <div className=\"wallet-dropdown-divider\" />\n {/* Buy / Sell (ramp) */}\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onRamp}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"17 1 21 5 17 9\" />\n <path d=\"M3 11V9a4 4 0 0 1 4-4h14\" />\n <polyline points=\"7 23 3 19 7 15\" />\n <path d=\"M21 13v2a4 4 0 0 1-4 4H3\" />\n </svg>\n Buy / Sell\n </button>\n {/* Identity verification */}\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onKyc}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z\" />\n <path d=\"M2 21v-1a6 6 0 0 1 6-6h2\" />\n <polyline points=\"16 11 18 13 22 9\" />\n </svg>\n Identity verification\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onDistributionRules}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"18\" cy=\"5\" r=\"3\" />\n <circle cx=\"6\" cy=\"12\" r=\"3\" />\n <circle cx=\"18\" cy=\"19\" r=\"3\" />\n <line x1=\"8.59\" y1=\"13.51\" x2=\"15.42\" y2=\"17.49\" />\n <line x1=\"15.41\" y1=\"6.51\" x2=\"8.59\" y2=\"10.49\" />\n </svg>\n Distribution rules\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onSessions}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\" />\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n </svg>\n Active sessions\n </button>\n <div className=\"wallet-dropdown-divider\" />\n <button className=\"wallet-dropdown-item danger\" onClick={onLogout}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16,17 21,12 16,7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n Log out\n </button>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { WalletButtonTemplate } from './WalletButtonTemplate';\nimport './WalletButton.css';\n\nexport function WalletButton() {\n const {\n getClient,\n walletAddress,\n styles,\n openLoginModal,\n openTxHistoryModal,\n openWalletBalanceModal,\n openSendModal,\n openReceiveModal,\n openSessionsModal,\n openKycModal,\n openRampModal,\n openDistributionRulesModal,\n tx: transaction,\n walletType,\n } = usePollar();\n const [open, setOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isInProgress = transaction.step === 'building' || transaction.step === 'signing';\n\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const isDark = theme === 'dark';\n const dropdownBg = isDark ? '#18181b' : '#fff';\n const dropdownBorder = isDark ? '#3f3f46' : '#e4e4e7';\n const itemColor = isDark ? '#fafafa' : '#18181b';\n\n useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n async function handleCopy() {\n if (!walletAddress) return;\n await navigator.clipboard.writeText(walletAddress);\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 1500);\n }\n\n function handleLogout() {\n setOpen(false);\n getClient().logout();\n }\n\n function handleWalletBalance() {\n setOpen(false);\n openWalletBalanceModal();\n }\n\n function handleTxHistory() {\n setOpen(false);\n openTxHistoryModal();\n }\n\n function handleSend() {\n setOpen(false);\n openSendModal();\n }\n\n function handleReceive() {\n setOpen(false);\n openReceiveModal();\n }\n\n function handleSessions() {\n setOpen(false);\n openSessionsModal();\n }\n\n function handleKyc() {\n setOpen(false);\n openKycModal();\n }\n\n function handleRamp() {\n setOpen(false);\n openRampModal();\n }\n\n function handleDistributionRules() {\n setOpen(false);\n openDistributionRulesModal();\n }\n\n return (\n <WalletButtonTemplate\n walletAddress={walletAddress ?? null}\n accentColor={accentColor}\n open={open}\n copied={copied}\n dropdownBg={dropdownBg}\n dropdownBorder={dropdownBorder}\n itemColor={itemColor}\n wrapperRef={wrapperRef}\n isInProgress={isInProgress}\n walletType={walletType}\n onToggleOpen={() => setOpen((v) => !v)}\n onCopy={handleCopy}\n onWalletBalance={handleWalletBalance}\n onTxHistory={handleTxHistory}\n onSend={handleSend}\n onReceive={handleReceive}\n onSessions={handleSessions}\n onKyc={handleKyc}\n onRamp={handleRamp}\n onDistributionRules={handleDistributionRules}\n onLogout={handleLogout}\n onLogin={openLoginModal}\n />\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/qr.js/lib/ErrorCorrectLevel.js","../../../node_modules/qr.js/lib/mode.js","../../../node_modules/qr.js/lib/8BitByte.js","../../../node_modules/qr.js/lib/RSBlock.js","../../../node_modules/qr.js/lib/BitBuffer.js","../../../node_modules/qr.js/lib/math.js","../../../node_modules/qr.js/lib/Polynomial.js","../../../node_modules/qr.js/lib/util.js","../../../node_modules/qr.js/lib/QRCode.js","../src/constants.ts","../src/components/commons.tsx","../src/components/distribution-rules-modal/DistributionRulesModalTemplate.tsx","../src/components/distribution-rules-modal/DistributionRulesModal.tsx","../src/components/enabled-assets-modal/EnabledAssetsModalTemplate.tsx","../src/components/enabled-assets-modal/EnabledAssetsModal.tsx","../src/components/kyc-modal/KycStatus.tsx","../src/components/kyc-modal/KycModalTemplate.tsx","../src/components/kyc-modal/KycModal.tsx","../src/components/login-modal/EmailCodeInput.tsx","../src/components/login-modal/GithubButton.tsx","../src/components/login-modal/GoogleButton.tsx","../src/components/login-modal/LoginModalTemplate.tsx","../src/components/login-modal/LoginModal.tsx","../src/components/ramp-widget/RouteDisplay.tsx","../src/components/ramp-widget/RampWidgetTemplate.tsx","../src/components/ramp-widget/RampWidget.tsx","../src/lib/qr-code/index.tsx","../src/components/receive-modal/ReceiveModalTemplate.tsx","../src/components/receive-modal/ReceiveModal.tsx","../src/components/transaction-modal/TxStatusView.tsx","../src/components/send-modal/SendModalTemplate.tsx","../src/components/send-modal/SendModal.tsx","../src/components/sessions-modal/SessionsModalTemplate.tsx","../src/components/sessions-modal/SessionsModal.tsx","../src/components/transaction-modal/TransactionModalTemplate.tsx","../src/components/transaction-modal/TransactionModal.tsx","../src/components/tx-history-modal/TxHistoryModalTemplate.tsx","../src/components/tx-history-modal/TxHistoryModal.tsx","../src/components/wallet-balance-modal/WalletBalanceModalTemplate.tsx","../src/components/wallet-balance-modal/WalletBalanceModal.tsx","../src/lib/passkey-ceremony.ts","../src/context.tsx","../src/usePollarAdapter.ts","../src/components/wallet-button/WalletButtonTemplate.tsx","../src/components/wallet-button/WalletButton.tsx"],"names":["QRCode","jsxs","jsx","useState","assetKey","useEffect","useCallback","Fragment","useRef","AUTH_ERROR_CODES","QRCodeSvg","QRCodeImpl","ErrorCorrectLevel","WalletType","IN_FLIGHT_STEPS","PAGE_SIZE","formatBalance","cropAddress","response"],"mappings":"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","file":"index.mjs","sourcesContent":["module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n PATTERN_POSITION_TABLE : [\n\t [],\n\t [6, 18],\n\t [6, 22],\n\t [6, 26],\n\t [6, 30],\n\t [6, 34],\n\t [6, 22, 38],\n\t [6, 24, 42],\n\t [6, 26, 46],\n\t [6, 28, 50],\n\t [6, 30, 54],\t\t\n\t [6, 32, 58],\n\t [6, 34, 62],\n\t [6, 26, 46, 66],\n\t [6, 26, 48, 70],\n\t [6, 26, 50, 74],\n\t [6, 30, 54, 78],\n\t [6, 30, 56, 82],\n\t [6, 30, 58, 86],\n\t [6, 34, 62, 90],\n\t [6, 28, 50, 72, 94],\n\t [6, 26, 50, 74, 98],\n\t [6, 30, 54, 78, 102],\n\t [6, 28, 54, 80, 106],\n\t [6, 32, 58, 84, 110],\n\t [6, 30, 58, 86, 114],\n\t [6, 34, 62, 90, 118],\n\t [6, 26, 50, 74, 98, 122],\n\t [6, 30, 54, 78, 102, 126],\n\t [6, 26, 52, 78, 104, 130],\n\t [6, 30, 56, 82, 108, 134],\n\t [6, 34, 60, 86, 112, 138],\n\t [6, 30, 58, 86, 114, 142],\n\t [6, 34, 62, 90, 118, 146],\n\t [6, 30, 54, 78, 102, 126, 150],\n\t [6, 24, 50, 76, 102, 128, 154],\n\t [6, 28, 54, 80, 106, 132, 158],\n\t [6, 32, 58, 84, 110, 136, 162],\n\t [6, 26, 54, 82, 110, 138, 166],\n\t [6, 30, 58, 86, 114, 142, 170]\n ],\n\n G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n getBCHTypeInfo : function(data) {\n\t var d = data << 10;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t }\n\t return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n },\n\n getBCHTypeNumber : function(data) {\n\t var d = data << 12;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t }\n\t return (data << 12) | d;\n },\n\n getBCHDigit : function(data) {\n\n\t var digit = 0;\n\n\t while (data != 0) {\n\t\t digit++;\n\t\t data >>>= 1;\n\t }\n\n\t return digit;\n },\n\n getPatternPosition : function(typeNumber) {\n\t return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n\n getMask : function(maskPattern, i, j) {\n\t \n\t switch (maskPattern) {\n\t\t \n\t case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t default :\n\t\t throw new Error(\"bad maskPattern:\" + maskPattern);\n\t }\n },\n\n getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t var a = new Polynomial([1], 0);\n\n\t for (var i = 0; i < errorCorrectLength; i++) {\n\t\t a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t }\n\n\t return a;\n },\n\n getLengthInBits : function(mode, type) {\n\n\t if (1 <= type && type < 10) {\n\n\t\t // 1 - 9\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 10;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t case Mode.MODE_KANJI \t: return 8;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 27) {\n\n\t\t // 10 - 26\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 12;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 10;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 41) {\n\n\t\t // 27 - 40\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 14;\n\t\t case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 12;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else {\n\t\t throw new Error(\"type:\" + type);\n\t }\n },\n\n getLostPoint : function(qrCode) {\n\t \n\t var moduleCount = qrCode.getModuleCount();\n\t \n\t var lostPoint = 0;\n\t \n\t // LEVEL1\n\t \n\t for (var row = 0; row < moduleCount; row++) {\n\n\t\t for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t var sameCount = 0;\n\t\t\t var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t continue;\n\t\t\t\t }\n\n\t\t\t\t for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (r == 0 && c == 0) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t sameCount++;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\n\t\t\t if (sameCount > 5) {\n\t\t\t\t lostPoint += (3 + sameCount - 5);\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL2\n\n\t for (var row = 0; row < moduleCount - 1; row++) {\n\t\t for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t var count = 0;\n\t\t\t if (qrCode.isDark(row, col ) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col ) ) count++;\n\t\t\t if (qrCode.isDark(row, col + 1) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t if (count == 0 || count == 4) {\n\t\t\t\t lostPoint += 3;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL3\n\n\t for (var row = 0; row < moduleCount; row++) {\n\t\t for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t && qrCode.isDark(row, col + 2)\n\t\t\t\t\t && qrCode.isDark(row, col + 3)\n\t\t\t\t\t && qrCode.isDark(row, col + 4)\n\t\t\t\t\t && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t && qrCode.isDark(row, col + 6) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t && qrCode.isDark(row + 2, col)\n\t\t\t\t\t && qrCode.isDark(row + 3, col)\n\t\t\t\t\t && qrCode.isDark(row + 4, col)\n\t\t\t\t\t && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t && qrCode.isDark(row + 6, col) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL4\n\t \n\t var darkCount = 0;\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount; row++) {\n\t\t\t if (qrCode.isDark(row, col) ) {\n\t\t\t\t darkCount++;\n\t\t\t }\n\t\t }\n\t }\n\t \n\t var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t lostPoint += ratio * 10;\n\n\t return lostPoint;\t\t\n }\n};\n\nmodule.exports = QRUtil;\n","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col) {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint > lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+ totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","export const LOGO_POLLAR = 'https://pollar.xyz/assets/logo_pollar.png';\nexport const LOGO_GITHUB = 'https://pollar.xyz/assets/GitHub_Invertocat_White.png';\nexport const LOGO_FREIGHTER = 'https://pollar.xyz/assets/logo_freighter.png';\nexport const LOGO_ALBEDO = 'https://pollar.xyz/assets/logo_albedo.svg';\n","type StateStatus = 'NONE' | 'LOADING' | 'SUCCESS' | 'ERROR';\n\nimport type { PollarLogger } from '@pollar/core';\nimport { Component, type ReactNode } from 'react';\nimport { LOGO_POLLAR } from '../constants';\n\ndeclare const __POLLAR_VERSION__: string;\n\n// Module-level sink for the error boundary (a class component, so it can't read\n// React context inside `componentDidCatch`). `PollarProvider` points this at the\n// client's level-gated logger on mount; defaults to `console` until then.\nlet _modalLog: PollarLogger = console;\nexport function setModalErrorLogger(logger: PollarLogger): void {\n _modalLog = logger;\n}\n\ninterface ModalErrorBoundaryState {\n crashed: boolean;\n}\n\nexport class ModalErrorBoundary extends Component<{ children: ReactNode; onClose: () => void }, ModalErrorBoundaryState> {\n state: ModalErrorBoundaryState = { crashed: false };\n\n static getDerivedStateFromError(): ModalErrorBoundaryState {\n return { crashed: true };\n }\n\n componentDidCatch(error: unknown) {\n _modalLog.error('[PollarProvider] Modal crashed:', error);\n }\n\n render() {\n if (this.state.crashed) {\n this.props.onClose();\n return null;\n }\n return this.props.children;\n }\n}\n\nexport const PollarModalFooter = () => {\n return (\n <div className=\"pollar-footer\">\n <span className=\"pollar-footer-protected\">Protected by</span>\n <div className=\"pollar-footer-brand\">\n <img src={LOGO_POLLAR} alt=\"Pollar\" className=\"pollar-footer-logo\" />\n <span className=\"pollar-footer-name\">Pollar</span>\n <span className=\"pollar-footer-version\">v{__POLLAR_VERSION__}</span>\n </div>\n </div>\n );\n};\n\ninterface ModalStatusBannerProps {\n message: string;\n status: StateStatus;\n onCancel?: (() => void) | undefined;\n onRetry?: (() => void) | undefined;\n}\n\nexport function ModalStatusBanner({ message, status, onCancel, onRetry }: ModalStatusBannerProps) {\n if (!message && status === 'NONE') {\n return <div className=\"pollar-status\" />;\n }\n\n const isLoading = status === 'LOADING';\n const icon =\n status === 'ERROR' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M4.5 4.5l5 5M9.5 4.5l-5 5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ) : status === 'SUCCESS' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M3.5 7l2.5 2.5 4.5-5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ) : status === 'LOADING' ? (\n <></>\n ) : null;\n\n return (\n <div className=\"pollar-status\" data-kind={status}>\n {icon}\n <span>{message}</span>\n {isLoading && onCancel && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onCancel}>\n Cancel\n </button>\n )}\n {status === 'ERROR' && onRetry && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onRetry}>\n Retry\n </button>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { DistributionRule, DistributionRulesState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\ninterface DistributionRulesModalTemplateProps {\n theme: string;\n accentColor: string;\n state: DistributionRulesState;\n claimingId: string | null;\n claimErrors: Record<string, string>;\n claimedIds: Set<string>;\n onRefresh: () => void;\n onClaim: (rule: DistributionRule) => void;\n onClose: () => void;\n}\n\nconst PERIOD_LABEL: Record<DistributionRule['period'], string> = {\n DAY: 'every 24h',\n DAY_CALENDAR: 'daily',\n WEEK: 'every 7 days',\n MONTH: 'every 30 days',\n MONTH_CALENDAR: 'monthly',\n LIFETIME: 'one-time',\n};\n\n// Reasons returned by sdk-api are the ErrorCode enum values from\n// @pollar/shared. Mapped to short user-facing strings; anything unknown\n// falls back to \"Not available\".\nconst REASON_LABEL: Record<string, string> = {\n DISTRIBUTION_RULE_DISABLED: 'Disabled',\n DISTRIBUTION_RULE_NOT_STARTED: 'Not started yet',\n DISTRIBUTION_RULE_EXPIRED: 'Expired',\n DISTRIBUTION_RULE_EXHAUSTED: 'Fully claimed',\n // Per-user, per-window claim limit (resets next period) — not permanent.\n DISTRIBUTION_RATE_LIMIT_EXCEEDED: 'Claimed for this period',\n};\n\nfunction reasonLabel(reason: string | null): string {\n if (!reason) return 'Not available';\n return REASON_LABEL[reason] ?? 'Not available';\n}\n\nfunction formatAmount(amount: string): string {\n const n = parseFloat(amount);\n return isNaN(n) ? amount : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction formatValidity(rule: DistributionRule): string | null {\n const from = rule.validFrom ? new Date(rule.validFrom) : null;\n const until = rule.validUntil ? new Date(rule.validUntil) : null;\n if (!from && !until) return null;\n const fmt = (d: Date) => d.toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n if (from && until) return `${fmt(from)} → ${fmt(until)}`;\n if (until) return `Until ${fmt(until)}`;\n if (from) return `From ${fmt(from)}`;\n return null;\n}\n\nfunction RuleCard({\n rule,\n isClaiming,\n isClaimed,\n errorMessage,\n onClaim,\n}: {\n rule: DistributionRule;\n isClaiming: boolean;\n isClaimed: boolean;\n errorMessage?: string;\n onClaim: () => void;\n}) {\n const validity = formatValidity(rule);\n const effectivelyClaimable = rule.claimable && !isClaimed;\n\n return (\n <div className=\"pollar-dist-item\" data-claimable={effectivelyClaimable ? 'true' : 'false'}>\n <div className=\"pollar-dist-item-row\">\n <span className=\"pollar-dist-item-name\">{rule.name}</span>\n <span className=\"pollar-dist-item-amount\">\n {formatAmount(rule.amount)} <span className=\"pollar-dist-item-asset\">{rule.assetCode}</span>\n </span>\n </div>\n <div className=\"pollar-dist-item-meta\">\n <span>{PERIOD_LABEL[rule.period]}</span>\n {validity && <span>· {validity}</span>}\n </div>\n <div className=\"pollar-dist-item-action\">\n {isClaimed ? (\n <span className=\"pollar-dist-item-status\" data-kind=\"claimed\">\n Claimed\n </span>\n ) : effectivelyClaimable ? (\n <button type=\"button\" className=\"pollar-btn-primary pollar-dist-claim-btn\" onClick={onClaim} disabled={isClaiming}>\n {isClaiming ? 'Claiming…' : 'Claim'}\n </button>\n ) : (\n <span className=\"pollar-dist-item-status\" data-kind=\"unavailable\">\n {reasonLabel(rule.reason)}\n </span>\n )}\n </div>\n {errorMessage && <div className=\"pollar-dist-item-error\">{errorMessage}</div>}\n </div>\n );\n}\n\nexport function DistributionRulesModalTemplate({\n theme,\n accentColor,\n state,\n claimingId,\n claimErrors,\n claimedIds,\n onRefresh,\n onClaim,\n onClose,\n}: DistributionRulesModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = state.step === 'loading';\n const rules = state.step === 'loaded' ? state.rules : [];\n\n return (\n <div\n className=\"pollar-modal-card pollar-dist-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Distribution Rules</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-dist-list\">\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n {state.step === 'error' && <div className=\"pollar-modal-error\">{state.message}</div>}\n {state.step === 'loaded' && rules.length === 0 && (\n <div className=\"pollar-modal-empty\">No distribution rules available.</div>\n )}\n {rules.map((rule) => (\n <RuleCard\n key={rule.id}\n rule={rule}\n isClaiming={claimingId === rule.id}\n isClaimed={claimedIds.has(rule.id)}\n {...(claimErrors[rule.id] && { errorMessage: claimErrors[rule.id] })}\n onClaim={() => onClaim(rule)}\n />\n ))}\n </div>\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { DistributionRule, DistributionRulesState } from '@pollar/core';\nimport { useCallback, useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './DistributionRulesModal.css';\nimport { DistributionRulesModalTemplate } from './DistributionRulesModalTemplate';\n\ninterface DistributionRulesModalProps {\n onClose: () => void;\n}\n\nexport function DistributionRulesModal({ onClose }: DistributionRulesModalProps) {\n const { getClient, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [state, setState] = useState<DistributionRulesState>({ step: 'idle' });\n const [claimingId, setClaimingId] = useState<string | null>(null);\n const [claimErrors, setClaimErrors] = useState<Record<string, string>>({});\n const [claimedIds, setClaimedIds] = useState<Set<string>>(() => new Set());\n\n const load = useCallback(async () => {\n setState({ step: 'loading' });\n try {\n const rules = await getClient().listDistributionRules();\n setState({ step: 'loaded', rules });\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to load distribution rules';\n setState({ step: 'error', message });\n }\n }, [getClient]);\n\n useEffect(() => {\n void load();\n }, [load]);\n\n const handleClaim = useCallback(\n async (rule: DistributionRule) => {\n setClaimingId(rule.id);\n setClaimErrors((prev) => {\n if (!prev[rule.id]) return prev;\n const next = { ...prev };\n delete next[rule.id];\n return next;\n });\n try {\n await getClient().claimDistributionRule({ ruleId: rule.id });\n setClaimedIds((prev) => {\n const next = new Set(prev);\n next.add(rule.id);\n return next;\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Claim failed';\n setClaimErrors((prev) => ({ ...prev, [rule.id]: message }));\n } finally {\n setClaimingId(null);\n }\n },\n [getClient],\n );\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <DistributionRulesModalTemplate\n theme={theme}\n accentColor={accentColor}\n state={state}\n claimingId={claimingId}\n claimErrors={claimErrors}\n claimedIds={claimedIds}\n onRefresh={() => void load()}\n onClaim={handleClaim}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { EnabledAssetRecord, EnabledAssetsState } from '@pollar/core';\nimport { useState, type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nfunction cropAddress(address: string): string {\n if (address.length <= 16) return address;\n return `${address.slice(0, 8)}...${address.slice(-8)}`;\n}\n\nfunction cssVarsFor(theme: string, accentColor: string): CSSProperties {\n const isDark = theme === 'dark';\n return {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n}\n\nfunction assetKey(record: { code: string; issuer?: string }): string {\n return record.code + (record.issuer ?? '');\n}\n\nfunction AssetItem({\n record,\n busy,\n disabled,\n onToggle,\n}: {\n record: EnabledAssetRecord;\n busy: boolean;\n disabled: boolean;\n onToggle: (record: EnabledAssetRecord) => void;\n}) {\n const established = record.trustlineEstablished;\n const isNative = record.type === 'native';\n\n return (\n <div className=\"pollar-asset-item\">\n <div className=\"pollar-asset-info\">\n <div className=\"pollar-asset-code-row\">\n <span className=\"pollar-asset-code\">{record.code}</span>\n {record.enabledInApp && <span className=\"pollar-asset-tag\">App</span>}\n </div>\n {record.name && <span className=\"pollar-asset-name\">{record.name}</span>}\n {!isNative && record.enabledInApp && (\n <span className=\"pollar-asset-sponsor\">\n {record.sponsored ? 'Reserve sponsored by the app' : 'You pay the reserve (~0.5 XLM)'}\n </span>\n )}\n </div>\n <div className=\"pollar-asset-actions\">\n <span className={`pollar-asset-trustline${established ? ' established' : ''}`}>\n {established ? 'Trustline active' : 'Needs trustline'}\n </span>\n {!isNative && (\n <button\n className={`pollar-asset-btn${established ? ' danger' : ''}`}\n onClick={() => onToggle(record)}\n disabled={busy || disabled}\n >\n {busy ? '…' : established ? 'Disable' : 'Enable'}\n </button>\n )}\n </div>\n </div>\n );\n}\n\nexport interface EnabledAssetsModalTemplateProps {\n theme: string;\n accentColor: string;\n enabledAssets: EnabledAssetsState;\n walletAddress: string;\n /** Key (`code+issuer`) of the asset whose trustline action is in flight. */\n busyKey: string | null;\n actionError: string | null;\n onRefresh: () => void;\n onClose: () => void;\n onToggleTrustline: (record: EnabledAssetRecord) => void;\n onAddCustom: () => void;\n}\n\nexport function EnabledAssetsModalTemplate({\n theme,\n accentColor,\n enabledAssets,\n walletAddress,\n busyKey,\n actionError,\n onRefresh,\n onClose,\n onToggleTrustline,\n onAddCustom,\n}: EnabledAssetsModalTemplateProps) {\n const cssVars = cssVarsFor(theme, accentColor);\n\n const isLoading = enabledAssets.step === 'loading';\n const data = enabledAssets.step === 'loaded' ? enabledAssets.data : null;\n const busy = busyKey !== null;\n\n return (\n <div className=\"pollar-modal-card pollar-asset-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Trustlines</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading || busy}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {walletAddress && <div className=\"pollar-asset-address\">{cropAddress(walletAddress)}</div>}\n\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n\n {enabledAssets.step === 'error' && <div className=\"pollar-modal-error\">{enabledAssets.message}</div>}\n\n {actionError && <div className=\"pollar-modal-action-error\">{actionError}</div>}\n\n {data && !data.exists && <div className=\"pollar-modal-empty\">Account not found on {data.network}.</div>}\n\n {data && data.assets.length === 0 && <div className=\"pollar-modal-empty\">No trustlines found.</div>}\n\n {data && data.assets.length > 0 && (\n <div className=\"pollar-asset-list\">\n {data.assets.map((a) => (\n <AssetItem\n key={assetKey(a)}\n record={a}\n busy={busyKey === assetKey(a)}\n disabled={busy && busyKey !== assetKey(a)}\n onToggle={onToggleTrustline}\n />\n ))}\n </div>\n )}\n\n <button className=\"pollar-asset-add-custom\" onClick={onAddCustom} disabled={busy}>\n + Add custom trustline\n </button>\n\n <PollarModalFooter />\n </div>\n );\n}\n\nexport interface CustomTrustlineModalTemplateProps {\n theme: string;\n accentColor: string;\n busy: boolean;\n actionError: string | null;\n onBack: () => void;\n onClose: () => void;\n onSubmit: (input: { code: string; issuer: string; limit?: string }) => void;\n}\n\nfunction isValidIssuer(issuer: string): boolean {\n return issuer.length === 56 && issuer.startsWith('G');\n}\n\nexport function CustomTrustlineModalTemplate({\n theme,\n accentColor,\n busy,\n actionError,\n onBack,\n onClose,\n onSubmit,\n}: CustomTrustlineModalTemplateProps) {\n const cssVars = cssVarsFor(theme, accentColor);\n\n const [code, setCode] = useState('');\n const [issuer, setIssuer] = useState('');\n const [limit, setLimit] = useState('');\n\n const codeOk = code.trim().length >= 1 && code.trim().length <= 12;\n const issuerOk = isValidIssuer(issuer.trim());\n const canSubmit = codeOk && issuerOk && !busy;\n\n const submit = () => {\n if (!canSubmit) return;\n const trimmedLimit = limit.trim();\n onSubmit({ code: code.trim(), issuer: issuer.trim(), ...(trimmedLimit ? { limit: trimmedLimit } : {}) });\n };\n\n return (\n <div className=\"pollar-modal-card pollar-asset-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-back\" onClick={onBack} disabled={busy} aria-label=\"Back\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M10 3L5 8l5 5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <h2 className=\"pollar-modal-title\">Add custom trustline</h2>\n </div>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n\n <p className=\"pollar-asset-custom-hint\">\n Custom trustlines aren&apos;t sponsored — your wallet pays the 0.5 XLM reserve and the transaction fee.\n </p>\n\n <div className=\"pollar-field\">\n <label className=\"pollar-label\" htmlFor=\"pollar-trustline-code\">\n Asset code\n </label>\n <input\n id=\"pollar-trustline-code\"\n className=\"pollar-input\"\n value={code}\n onChange={(e) => setCode(e.target.value)}\n placeholder=\"USDC\"\n maxLength={12}\n autoComplete=\"off\"\n spellCheck={false}\n disabled={busy}\n />\n </div>\n\n <div className=\"pollar-field\">\n <label className=\"pollar-label\" htmlFor=\"pollar-trustline-issuer\">\n Issuer\n </label>\n <input\n id=\"pollar-trustline-issuer\"\n className=\"pollar-input\"\n value={issuer}\n onChange={(e) => setIssuer(e.target.value)}\n placeholder=\"G…\"\n autoComplete=\"off\"\n spellCheck={false}\n disabled={busy}\n />\n {issuer.trim().length > 0 && !issuerOk && (\n <span className=\"pollar-field-error\">Issuer must be a 56-character Stellar address starting with G.</span>\n )}\n </div>\n\n <div className=\"pollar-field\">\n <label className=\"pollar-label\" htmlFor=\"pollar-trustline-limit\">\n Limit <span className=\"pollar-label-optional\">(optional)</span>\n </label>\n <input\n id=\"pollar-trustline-limit\"\n className=\"pollar-input\"\n value={limit}\n onChange={(e) => setLimit(e.target.value)}\n placeholder=\"Maximum\"\n inputMode=\"decimal\"\n autoComplete=\"off\"\n spellCheck={false}\n disabled={busy}\n />\n </div>\n\n {actionError && <div className=\"pollar-modal-action-error\">{actionError}</div>}\n\n <button className=\"pollar-asset-submit\" onClick={submit} disabled={!canSubmit}>\n {busy ? 'Enabling…' : 'Enable trustline'}\n </button>\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { EnabledAssetRecord } from '@pollar/core';\nimport { useCallback, useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './EnabledAssetsModal.css';\nimport { CustomTrustlineModalTemplate, EnabledAssetsModalTemplate } from './EnabledAssetsModalTemplate';\n\ninterface EnabledAssetsModalProps {\n onClose: () => void;\n}\n\nfunction assetKey(record: { code: string; issuer?: string }): string {\n return record.code + (record.issuer ?? '');\n}\n\nexport function EnabledAssetsModal({ onClose }: EnabledAssetsModalProps) {\n const { enabledAssets, refreshAssets, setTrustline, walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [view, setView] = useState<'list' | 'custom'>('list');\n // Key of the in-flight asset (`code+issuer`), or 'custom' for the custom form.\n const [busyKey, setBusyKey] = useState<string | null>(null);\n const [actionError, setActionError] = useState<string | null>(null);\n\n useEffect(() => {\n void refreshAssets();\n }, [refreshAssets]);\n\n const runAction = useCallback(\n async (\n key: string,\n asset: { code: string; issuer: string },\n opts: { limit?: string; sponsored?: boolean },\n ): Promise<boolean> => {\n setBusyKey(key);\n setActionError(null);\n const res = await setTrustline(asset, opts);\n if (res.status === 'error') {\n setActionError(res.details || 'Trustline update failed. Please try again.');\n setBusyKey(null);\n return false;\n }\n await refreshAssets();\n setBusyKey(null);\n return true;\n },\n [setTrustline, refreshAssets],\n );\n\n const handleToggle = useCallback(\n (record: EnabledAssetRecord) => {\n const removing = record.trustlineEstablished;\n void runAction(\n assetKey(record),\n { code: record.code, issuer: record.issuer ?? '' },\n { ...(removing ? { limit: '0' } : {}), sponsored: record.sponsored ?? false },\n );\n },\n [runAction],\n );\n\n const handleCustomSubmit = useCallback(\n async (input: { code: string; issuer: string; limit?: string }) => {\n // Custom (non-configured) assets are never app-sponsored — the user pays.\n const ok = await runAction(\n 'custom',\n { code: input.code, issuer: input.issuer },\n { ...(input.limit ? { limit: input.limit } : {}), sponsored: false },\n );\n if (ok) setView('list');\n },\n [runAction],\n );\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n {view === 'list' ? (\n <EnabledAssetsModalTemplate\n theme={theme}\n accentColor={accentColor}\n enabledAssets={enabledAssets}\n walletAddress={walletAddress}\n busyKey={busyKey}\n actionError={actionError}\n onRefresh={() => refreshAssets()}\n onClose={onClose}\n onToggleTrustline={handleToggle}\n onAddCustom={() => {\n setActionError(null);\n setView('custom');\n }}\n />\n ) : (\n <CustomTrustlineModalTemplate\n theme={theme}\n accentColor={accentColor}\n busy={busyKey === 'custom'}\n actionError={actionError}\n onBack={() => {\n setActionError(null);\n setView('list');\n }}\n onClose={onClose}\n onSubmit={handleCustomSubmit}\n />\n )}\n </div>\n );\n}\n","'use client';\n\nimport type { KycStatus as KycStatusValue } from '@pollar/core';\nimport type { CSSProperties } from 'react';\n\ninterface KycStatusProps {\n status: KycStatusValue;\n className?: string;\n}\n\nconst STATUS_CONFIG: Record<KycStatusValue, { label: string; color: string; dot: boolean }> = {\n none: { label: 'Not started', color: '#6b7280', dot: false },\n pending: { label: 'Pending review', color: '#f59e0b', dot: true },\n approved: { label: 'Verified', color: '#10b981', dot: false },\n rejected: { label: 'Rejected', color: '#ef4444', dot: false },\n};\n\nexport function KycStatus({ status, className }: KycStatusProps) {\n const config = STATUS_CONFIG[status] ?? STATUS_CONFIG.none;\n return (\n <span\n className={`pollar-kyc-badge${className ? ` ${className}` : ''}`}\n style={{ '--pollar-kyc-color': config.color } as CSSProperties}\n >\n {config.dot && <span className=\"pollar-kyc-badge-dot\" />}\n {config.label}\n </span>\n );\n}\n","'use client';\n\nimport type { KycProvider, KycStartResponse, KycStatus as KycStatusValue } from '@pollar/core';\nimport type { CSSProperties } from 'react';\nimport { KycStatus as KycStatusBadge } from './KycStatus';\n\nexport type KycStep = 'select_provider' | 'verifying' | 'polling' | 'done';\n\ninterface KycModalTemplateProps {\n theme: string;\n accentColor: string;\n step: KycStep;\n providers: KycProvider[];\n selectedProvider: KycProvider | null;\n session: KycStartResponse | null;\n kycStatus: KycStatusValue;\n isLoading: boolean;\n onSelectProvider: (provider: KycProvider) => void;\n onDoneVerifying: () => void;\n onClose: () => void;\n}\n\nexport function KycModalTemplate({\n theme,\n accentColor,\n step,\n providers,\n selectedProvider,\n session,\n kycStatus,\n isLoading,\n onSelectProvider,\n onDoneVerifying,\n onClose,\n}: KycModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n '--pollar-modal-padding': '2rem',\n '--pollar-modal-heading-size': '1.375rem',\n '--pollar-modal-subtitle-size': '0.9rem',\n } as CSSProperties;\n\n return (\n <div className=\"pollar-modal-card pollar-kyc-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-kyc-header\">\n <h2 className=\"pollar-kyc-title\">Identity verification</h2>\n <p className=\"pollar-kyc-subtitle\">\n {step === 'select_provider' && 'Choose your verification provider'}\n {step === 'verifying' && `Verifying with ${selectedProvider?.name}`}\n {step === 'polling' && 'Waiting for verification result'}\n {step === 'done' && 'Verification complete'}\n </p>\n </div>\n\n {step === 'select_provider' && (\n <div className=\"pollar-kyc-providers\">\n {providers.length === 0 && (\n <p style={{ color: 'var(--pollar-muted)', textAlign: 'center' }}>No providers available for your country.</p>\n )}\n {providers.map((p) => (\n <button\n key={p.id}\n type=\"button\"\n className=\"pollar-kyc-provider-btn\"\n disabled={isLoading}\n onClick={() => onSelectProvider(p)}\n >\n <span className=\"pollar-kyc-provider-name\">{p.name}</span>\n <span className=\"pollar-kyc-provider-flow\">{p.flow}</span>\n </button>\n ))}\n </div>\n )}\n\n {step === 'verifying' && selectedProvider && (\n <>\n <div className=\"pollar-kyc-iframe-wrap\">\n {session?.kycUrl ? (\n <iframe className=\"pollar-kyc-iframe\" src={session.kycUrl} title=\"KYC verification\" allow=\"camera; microphone\" />\n ) : (\n <div className=\"pollar-kyc-iframe-mock\">\n <span>🔒</span>\n <span>\n {selectedProvider.flow === 'form'\n ? 'The identity verification form will appear here.'\n : 'Identity verification will open here.'}\n </span>\n </div>\n )}\n </div>\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onDoneVerifying}>\n I've completed verification\n </button>\n </div>\n </>\n )}\n\n {step === 'polling' && (\n <div className=\"pollar-kyc-polling\">\n <div className=\"pollar-spinner\" />\n <p className=\"pollar-kyc-polling-text\">Checking verification status…</p>\n </div>\n )}\n\n {step === 'done' && (\n <div className=\"pollar-kyc-result\">\n <span className=\"pollar-kyc-result-icon\">{kycStatus === 'approved' ? '✅' : '❌'}</span>\n <KycStatusBadge status={kycStatus} />\n <p className=\"pollar-kyc-result-text\">\n {kycStatus === 'approved'\n ? 'Your identity has been verified successfully.'\n : 'Verification was not approved. Please try again.'}\n </p>\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onClose}>\n Close\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { type KycProvider, type KycStartResponse, type KycStatus as KycStatusValue } from '@pollar/core';\nimport { useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport type { KycStep } from './KycModalTemplate';\nimport { KycModalTemplate } from './KycModalTemplate';\nimport '../shared.css';\nimport './KycModal.css';\n\ninterface KycModalProps {\n onClose: () => void;\n /** ISO 3166-1 alpha-2 country code to filter providers. Defaults to 'MX'. */\n country?: string;\n /** KYC level required. Defaults to 'basic'. */\n level?: 'basic' | 'intermediate' | 'enhanced';\n /** Called when KYC is successfully approved. */\n onApproved?: () => void;\n}\n\nexport function KycModal({ onClose, country = 'MX', level = 'basic', onApproved }: KycModalProps) {\n const { getClient, styles } = usePollar();\n\n const [step, setStep] = useState<KycStep>('select_provider');\n const [providers, setProviders] = useState<KycProvider[]>([]);\n const [selectedProvider, setSelectedProvider] = useState<KycProvider | null>(null);\n const [session, setSession] = useState<KycStartResponse | null>(null);\n const [kycStatus, setKycStatus] = useState<KycStatusValue>('none');\n const [isLoading, setIsLoading] = useState(false);\n\n const client = getClient();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n useEffect(() => {\n setIsLoading(true);\n getClient()\n .getKycProviders(country)\n .then((result) => setProviders(result.providers))\n .catch(() => setProviders([]))\n .finally(() => setIsLoading(false));\n }, [getClient, country]);\n\n async function handleSelectProvider(provider: KycProvider) {\n setSelectedProvider(provider);\n setIsLoading(true);\n try {\n const result = await client.resolveKyc(provider.id, level);\n if (result.alreadyApproved) {\n setKycStatus('approved');\n setStep('done');\n onApproved?.();\n return;\n }\n setSession(result as KycStartResponse);\n setStep('verifying');\n } catch {\n setStep('select_provider');\n } finally {\n setIsLoading(false);\n }\n }\n\n async function handleDoneVerifying() {\n if (!selectedProvider) return;\n setStep('polling');\n try {\n const finalStatus = await client.pollKycStatus(selectedProvider.id, { intervalMs: 3000, timeoutMs: 120_000 });\n setKycStatus(finalStatus);\n setStep('done');\n if (finalStatus === 'approved') onApproved?.();\n } catch {\n setKycStatus('rejected');\n setStep('done');\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <KycModalTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n providers={providers}\n selectedProvider={selectedProvider}\n session={session}\n kycStatus={kycStatus}\n isLoading={isLoading}\n onSelectProvider={handleSelectProvider}\n onDoneVerifying={handleDoneVerifying}\n onClose={onClose}\n />\n </div>\n );\n}\n","import { useRef, useState } from 'react';\n\ninterface EmailCodeInputProps {\n email?: string;\n onSubmit: (code: string) => void;\n}\n\nexport function EmailCodeInput({ email, onSubmit }: EmailCodeInputProps) {\n const [digits, setDigits] = useState(['', '', '', '', '', '']);\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n function submit(next: string[]) {\n if (next.every(Boolean)) onSubmit(next.join(''));\n }\n\n function handleChange(index: number, value: string) {\n const cleaned = value.replace(/\\D/g, '').slice(-1);\n const next = digits.map((d, i) => (i === index ? cleaned : d));\n setDigits(next);\n if (cleaned && index < 5) inputRefs.current[index + 1]?.focus();\n submit(next);\n }\n\n function handleKeyDown(index: number, e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === 'Backspace' && !digits[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n }\n\n function handlePaste(e: React.ClipboardEvent<HTMLInputElement>) {\n e.preventDefault();\n const text = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, 6);\n const next = Array.from({ length: 6 }, (_, i) => text[i] ?? '');\n setDigits(next);\n inputRefs.current[Math.min(text.length - 1, 5)]?.focus();\n submit(next);\n }\n\n return (\n <div className=\"pollar-code-section\">\n <p className=\"pollar-code-label\">Enter the 6-digit code sent to {email ? <strong>{email}</strong> : 'your email'}</p>\n <div className=\"pollar-code-inputs\">\n {digits.map((digit, i) => (\n <input\n key={i}\n ref={(el) => {\n inputRefs.current[i] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={2}\n value={digit}\n className=\"pollar-code-input\"\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n />\n ))}\n </div>\n </div>\n );\n}\n","// https://brand.github.com/foundations/logo\nimport './GithubButton.css';\n\nexport const GithubButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"github-button\" disabled={disabled} onClick={onClick}>\n <svg className=\"github-button-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden>\n <path\n fillRule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <span className=\"github-button-contents\">GitHub</span>\n </button>\n );\n};\n","// https://developers.google.com/identity/branding-guidelines\nimport './GoogleButton.css';\n\nexport const GoogleButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"gsi-material-button\" disabled={disabled} onClick={onClick}>\n <div className=\"gsi-material-button-state\"></div>\n <div className=\"gsi-material-button-content-wrapper\">\n <div className=\"gsi-material-button-icon\">\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" style={{ display: 'block' }}>\n <path\n fill=\"#EA4335\"\n d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\n ></path>\n <path\n fill=\"#4285F4\"\n d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\n ></path>\n <path\n fill=\"#FBBC05\"\n d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\n ></path>\n <path\n fill=\"#34A853\"\n d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\n ></path>\n <path fill=\"none\" d=\"M0 0h48v48H0z\"></path>\n </svg>\n </div>\n <span className=\"gsi-material-button-contents\">Google</span>\n <span style={{ display: 'none' }}>Google</span>\n </div>\n </button>\n );\n};\n","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, WalletId, WalletType } from '@pollar/core';\n\ntype StateStatus = 'NONE' | 'LOADING' | 'SUCCESS' | 'ERROR';\nimport { type CSSProperties, useState } from 'react';\nimport { LOGO_ALBEDO, LOGO_FREIGHTER, LOGO_POLLAR } from '../../constants';\nimport type { RenderWalletsSlot } from '../../types';\nimport { ModalStatusBanner, PollarModalFooter } from '../commons';\nimport { EmailCodeInput } from './EmailCodeInput';\nimport { GithubButton } from './GithubButton';\nimport { GoogleButton } from './GoogleButton';\n\nfunction DefaultFreighterAlbedoButtons({ onConnect, isLoading }: { onConnect: (id: WalletId) => void; isLoading: boolean }) {\n return (\n <div className=\"pollar-wallet-list\">\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-list-btn\"\n onClick={() => onConnect(WalletType.FREIGHTER)}\n >\n <img src={LOGO_FREIGHTER} alt=\"Freighter\" className=\"pollar-wallet-list-icon\" />\n <span className=\"pollar-wallet-list-name\">Freighter</span>\n </button>\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-list-btn\"\n onClick={() => onConnect(WalletType.ALBEDO)}\n >\n <img src={LOGO_ALBEDO} alt=\"Albedo\" className=\"pollar-wallet-list-icon\" />\n <span className=\"pollar-wallet-list-name\">Albedo</span>\n </button>\n </div>\n );\n}\n\nconst AUTH_STATE_MESSAGES: Record<AuthState['step'], string> = {\n idle: '',\n creating_session: 'Initializing…',\n entering_email: '',\n sending_email: 'Sending…',\n entering_code: 'Code sent — check your inbox',\n verifying_email_code: 'Verifying…',\n opening_oauth: 'Redirecting…',\n connecting_wallet: 'Connecting wallet…',\n wallet_not_installed: 'Wallet not installed',\n authenticating_wallet: 'Signing in with wallet…',\n creating_passkey: 'Waiting for passkey…',\n deploying_smart_account: 'Creating your wallet…',\n authenticating: 'Authenticating…',\n authenticated: 'Welcome!',\n error: '',\n};\n\nfunction authStateToStatus(step: AuthState['step']): StateStatus {\n const loading: AuthState['step'][] = [\n 'creating_session',\n 'sending_email',\n 'verifying_email_code',\n 'opening_oauth',\n 'connecting_wallet',\n 'authenticating_wallet',\n 'creating_passkey',\n 'deploying_smart_account',\n 'authenticating',\n ];\n const success: AuthState['step'][] = ['authenticated', 'entering_code'];\n const error: AuthState['step'][] = ['error', 'wallet_not_installed'];\n\n if (loading.includes(step)) return 'LOADING';\n if (success.includes(step)) return 'SUCCESS';\n if (error.includes(step)) return 'ERROR';\n return 'NONE';\n}\n\ninterface LoginModalTemplateProps {\n theme: string;\n accentColor: string;\n logoUrl: string | null;\n emailEnabled: boolean;\n embeddedWallets: boolean;\n /** Show the \"Smart Wallet\" (passkey) option. Optional & defaults to off so\n * adding it isn't a breaking change for existing template consumers. */\n smartWallet?: boolean;\n providers: {\n google: boolean;\n discord: boolean;\n x: boolean;\n github: boolean;\n apple: boolean;\n };\n appName: string;\n email?: string;\n onEmailChange?: (email: string) => void;\n onEmailSubmit?: () => void;\n onSocialLogin?: (provider: 'google' | 'github') => void;\n onWalletConnect?: (id: WalletId) => void;\n /** Log in with an existing passkey (returning user). */\n onLoginSmartWallet?: () => void;\n /** Create a new passkey + smart wallet (new user). */\n onCreateSmartWallet?: () => void;\n /** Optional override for the wallet picker view. Defaults to a Freighter+Albedo list. */\n renderWallets?: RenderWalletsSlot;\n authState: AuthState;\n codeInputKey?: number;\n onCodeSubmit?: (code: string) => void;\n onBack: () => void;\n onCancel: () => void;\n onRetry: () => void;\n}\n\nexport function LoginModalTemplate({\n theme,\n accentColor,\n logoUrl,\n emailEnabled,\n embeddedWallets,\n smartWallet = false,\n providers,\n appName,\n email = '',\n onEmailChange,\n onEmailSubmit,\n onSocialLogin,\n onWalletConnect,\n onLoginSmartWallet,\n onCreateSmartWallet,\n renderWallets,\n authState,\n codeInputKey,\n onCodeSubmit,\n onBack,\n onCancel,\n onRetry,\n}: LoginModalTemplateProps) {\n const [showWalletPicker, setShowWalletPicker] = useState(false);\n const [showPasskeyChooser, setShowPasskeyChooser] = useState(false);\n\n const isDark = theme === 'dark';\n const enabledSocial = Object.entries(providers).filter(([, enabled]) => enabled);\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n '--pollar-modal-padding': '2rem',\n '--pollar-modal-heading-size': '1.375rem',\n '--pollar-modal-subtitle-size': '0.9rem',\n } as CSSProperties;\n\n const status = authStateToStatus(authState.step);\n const isLoading = status === 'LOADING';\n const isEmailCodeError =\n authState.step === 'error' &&\n (authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_EXPIRED ||\n authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID);\n const awaitingEmailCode = authState.step === 'entering_code' || authState.step === 'verifying_email_code' || isEmailCodeError;\n const statusMessage = authState.step === 'error' ? authState.message : AUTH_STATE_MESSAGES[authState.step];\n\n const BackButton = ({ onClick }: { onClick: () => void }) => (\n <button type=\"button\" className=\"pollar-back-btn\" onClick={onClick} aria-label=\"Back\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n );\n\n return (\n <div className=\"pollar-modal-card pollar-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className=\"pollar-close-btn\" onClick={onCancel} aria-label=\"Close\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n <div className=\"pollar-header\">\n <div className=\"pollar-logo-wrap\">\n <img src={logoUrl ?? LOGO_POLLAR} alt=\"Logo\" className=\"pollar-logo\" />\n </div>\n <h2 className=\"pollar-title\">{appName}</h2>\n <p className=\"pollar-subtitle\">Log in or sign up</p>\n </div>\n\n {awaitingEmailCode ? (\n <>\n <BackButton onClick={onBack} />\n <EmailCodeInput key={codeInputKey} email={email} onSubmit={onCodeSubmit ?? (() => {})} />\n </>\n ) : showWalletPicker ? (\n <>\n <BackButton onClick={() => setShowWalletPicker(false)} />\n {renderWallets ? (\n renderWallets({ onConnect: onWalletConnect ?? (() => {}), authState })\n ) : (\n <DefaultFreighterAlbedoButtons onConnect={onWalletConnect ?? (() => {})} isLoading={isLoading} />\n )}\n </>\n ) : showPasskeyChooser ? (\n <>\n <BackButton onClick={() => setShowPasskeyChooser(false)} />\n <div className=\"pollar-wallet-section\">\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-btn-primary\"\n style={{ width: '100%' }}\n onClick={onCreateSmartWallet}\n >\n Create a new wallet\n </button>\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-entry-btn\"\n onClick={onLoginSmartWallet}\n >\n Log in with an existing wallet\n </button>\n </div>\n </>\n ) : (\n <>\n {emailEnabled && (\n <div className=\"pollar-email-section\">\n <input\n type=\"email\"\n placeholder=\"you@email.com\"\n value={email}\n disabled={isLoading}\n className=\"pollar-email-input\"\n onChange={(e) => onEmailChange?.(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && onEmailSubmit?.()}\n />\n <button\n type=\"button\"\n disabled={isLoading || !email}\n className=\"pollar-btn-primary\"\n style={{ marginTop: '0.75rem', width: '100%' }}\n onClick={onEmailSubmit}\n >\n Submit\n </button>\n </div>\n )}\n\n {emailEnabled && enabledSocial.length > 0 && (\n <div className=\"pollar-divider\">\n <div className=\"pollar-divider-line\" />\n <div className=\"pollar-divider-label\">\n <span className=\"pollar-divider-text\">or continue with</span>\n </div>\n </div>\n )}\n\n {enabledSocial.length > 0 && (\n <div className=\"pollar-social-list\">\n {enabledSocial.some(([key]) => key === 'google') && (\n <GoogleButton disabled={isLoading} onClick={() => onSocialLogin?.('google')} />\n )}\n {enabledSocial.some(([key]) => key === 'github') && (\n <GithubButton disabled={isLoading} onClick={() => onSocialLogin?.('github')} />\n )}\n </div>\n )}\n\n {(embeddedWallets || smartWallet) && (\n <div className=\"pollar-wallet-section\">\n {embeddedWallets && (\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-entry-btn\"\n onClick={() => setShowWalletPicker(true)}\n >\n <svg\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z\" />\n </svg>\n Wallet\n </button>\n )}\n\n {smartWallet && (\n <button\n type=\"button\"\n disabled={isLoading}\n className=\"pollar-wallet-entry-btn\"\n onClick={() => setShowPasskeyChooser(true)}\n >\n <svg\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M16 8V6a4 4 0 00-8 0v2M5 8h14a1 1 0 011 1v10a1 1 0 01-1 1H5a1 1 0 01-1-1V9a1 1 0 011-1zm7 5v2\" />\n </svg>\n Smart Wallet\n </button>\n )}\n </div>\n )}\n </>\n )}\n\n <ModalStatusBanner\n message={statusMessage}\n status={status}\n onCancel={onCancel}\n onRetry={isEmailCodeError ? undefined : onRetry}\n />\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, WalletId } from '@pollar/core';\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { LoginModalTemplate } from './LoginModalTemplate';\nimport '../shared.css';\nimport './LoginModal.css';\n\ntype TimeoutHandle = ReturnType<typeof setTimeout>;\n\ninterface LoginModalProps {\n onClose: () => void;\n}\n\nexport function LoginModal({ onClose }: LoginModalProps) {\n const [email, setEmail] = useState('');\n const { getClient, styles, appConfig: config, renderWallets } = usePollar();\n const [authState, setAuthState] = useState<AuthState>(() => getClient().getAuthState());\n const [codeInputKey, setCodeInputKey] = useState(0);\n const pendingEmail = useRef<string | null>(null);\n\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n const autoCloseTimer = useRef<TimeoutHandle | null>(null);\n\n useEffect(() => {\n const unsubscribe = getClient().onAuthStateChange((next) => {\n setAuthState(next);\n if (next.step === 'entering_email' && pendingEmail.current) {\n getClient().sendEmailCode(pendingEmail.current);\n pendingEmail.current = null;\n }\n if (next.step === 'error' && next.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID) {\n setCodeInputKey((k) => k + 1);\n }\n if (next.step === 'authenticated') {\n // Clear any timer already pending — if `authenticated` fires more than\n // once, overwriting the handle would orphan the previous timeout\n // (cleanup only tracks the latest).\n if (autoCloseTimer.current !== null) {\n clearTimeout(autoCloseTimer.current);\n }\n autoCloseTimer.current = setTimeout(() => {\n autoCloseTimer.current = null;\n onCloseRef.current();\n }, 1000);\n }\n });\n return () => {\n unsubscribe();\n if (autoCloseTimer.current !== null) {\n clearTimeout(autoCloseTimer.current);\n autoCloseTimer.current = null;\n }\n };\n }, [getClient]);\n\n const { theme = 'light', accentColor = '#005DB4', logoUrl, emailEnabled, embeddedWallets, smartWallet, providers } = styles;\n // Opt-in: the Smart Wallet (passkey) option only shows when the dashboard\n // explicitly enables it. Absent → hidden.\n const smartWalletEnabled = smartWallet ?? false;\n\n function handleClose() {\n setEmail('');\n getClient().cancelLogin();\n onClose();\n }\n\n function handleEmailSubmit() {\n if (!email) return;\n pendingEmail.current = email;\n getClient().beginEmailLogin();\n }\n\n function handleSocialLogin(provider: 'google' | 'github') {\n getClient().login({ provider });\n }\n\n function handleWalletConnect(type: WalletId) {\n getClient().loginWallet(type);\n }\n\n function handleLoginSmartWallet() {\n getClient().loginSmartWallet();\n }\n\n function handleCreateSmartWallet() {\n getClient().createSmartWallet();\n }\n\n function handleVerifyCode(code: string) {\n getClient().verifyEmailCode(code);\n }\n\n function handleBack() {\n setEmail('');\n getClient().cancelLogin();\n }\n\n function handleRetry() {\n getClient().logout();\n if (styles.emailEnabled) {\n getClient().beginEmailLogin();\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={handleClose}>\n <LoginModalTemplate\n theme={theme}\n accentColor={accentColor}\n logoUrl={logoUrl ?? null}\n emailEnabled={!!emailEnabled}\n embeddedWallets={!!embeddedWallets}\n smartWallet={smartWalletEnabled}\n providers={{\n google: !!providers?.google,\n discord: !!providers?.discord,\n x: !!providers?.x,\n github: !!providers?.github,\n apple: !!providers?.apple,\n }}\n appName={config.application?.name ?? 'Pollar'}\n email={email}\n onEmailChange={setEmail}\n onEmailSubmit={handleEmailSubmit}\n onSocialLogin={handleSocialLogin}\n onWalletConnect={handleWalletConnect}\n onLoginSmartWallet={handleLoginSmartWallet}\n onCreateSmartWallet={handleCreateSmartWallet}\n {...(renderWallets !== undefined && { renderWallets })}\n authState={authState}\n codeInputKey={codeInputKey}\n onCodeSubmit={handleVerifyCode}\n onBack={handleBack}\n onCancel={handleClose}\n onRetry={handleRetry}\n />\n </div>\n );\n}\n","'use client';\n\nimport type { RampQuote } from '@pollar/core';\n\ninterface RouteDisplayProps {\n quote: RampQuote;\n onSelect: (quote: RampQuote) => void;\n}\n\nconst RAIL_LABELS: Record<string, string> = {\n SPEI: 'SPEI (Mexico)',\n PIX: 'PIX (Brazil)',\n PSE: 'PSE (Colombia)',\n ACH: 'ACH (US)',\n};\n\nexport function RouteDisplay({ quote, onSelect }: RouteDisplayProps) {\n return (\n <div\n className=\"pollar-ramp-route-card\"\n data-recommended={quote.recommended}\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(quote)}\n onKeyDown={(e) => e.key === 'Enter' && onSelect(quote)}\n >\n <div className=\"pollar-ramp-route-left\">\n <span className=\"pollar-ramp-route-provider\">{quote.provider}</span>\n <span className=\"pollar-ramp-route-meta\">\n {RAIL_LABELS[quote.rail] ?? quote.rail} · {quote.protocol} · {quote.estimatedTime}\n </span>\n </div>\n <div className=\"pollar-ramp-route-right\">\n <span className=\"pollar-ramp-route-fee\">{quote.fee}% fee</span>\n {quote.recommended && <span className=\"pollar-ramp-route-badge\">Best rate</span>}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport type { PaymentInstructions, RampDirection, RampQuote } from '@pollar/core';\nimport type { CSSProperties } from 'react';\nimport { RouteDisplay } from './RouteDisplay';\n\nexport type RampStep = 'input' | 'loading_quote' | 'select_route' | 'payment_instructions';\n\ninterface RampWidgetTemplateProps {\n theme: string;\n accentColor: string;\n step: RampStep;\n direction: RampDirection;\n amount: string;\n currency: string;\n country: string;\n quotes: RampQuote[];\n paymentInstructions: PaymentInstructions | null;\n isLoading: boolean;\n onDirectionChange: (d: RampDirection) => void;\n onAmountChange: (v: string) => void;\n onCurrencyChange: (v: string) => void;\n onCountryChange: (v: string) => void;\n onFindRoute: () => void;\n onSelectQuote: (q: RampQuote) => void;\n onCopy: (value: string) => void;\n onClose: () => void;\n}\n\nconst LOADING_STEPS = ['Detecting your country…', 'Consulting providers…', 'Route found!'];\n\nconst COUNTRY_CURRENCIES: Record<string, string> = {\n MX: 'MXN',\n BR: 'BRL',\n CO: 'COP',\n CL: 'CLP',\n PE: 'PEN',\n AR: 'ARS',\n};\n\nexport function RampWidgetTemplate({\n theme,\n accentColor,\n step,\n direction,\n amount,\n currency,\n country,\n quotes,\n paymentInstructions,\n isLoading,\n onDirectionChange,\n onAmountChange,\n onCurrencyChange,\n onCountryChange,\n onFindRoute,\n onSelectQuote,\n onCopy,\n onClose,\n}: RampWidgetTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n '--pollar-modal-padding': '2rem',\n '--pollar-modal-heading-size': '1.375rem',\n '--pollar-modal-subtitle-size': '0.9rem',\n } as CSSProperties;\n\n const stepTitle: Record<RampStep, string> = {\n input: direction === 'onramp' ? 'Buy crypto' : 'Sell crypto',\n loading_quote: 'Finding best route',\n select_route: 'Select provider',\n payment_instructions: 'Payment instructions',\n };\n\n const stepSubtitle: Record<RampStep, string> = {\n input: direction === 'onramp' ? 'Enter the amount you want to deposit' : 'Enter the amount you want to withdraw',\n loading_quote: 'Comparing providers in real time…',\n select_route: 'All prices include fees',\n payment_instructions: 'Send the exact amount to complete your transaction',\n };\n\n return (\n <div className=\"pollar-modal-card pollar-ramp-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-ramp-header\">\n <h2 className=\"pollar-ramp-title\">{stepTitle[step]}</h2>\n <p className=\"pollar-ramp-subtitle\">{stepSubtitle[step]}</p>\n </div>\n\n {step === 'input' && (\n <>\n <div className=\"pollar-ramp-tabs\">\n <button\n type=\"button\"\n className=\"pollar-ramp-tab\"\n data-active={direction === 'onramp'}\n onClick={() => onDirectionChange('onramp')}\n >\n Buy\n </button>\n <button\n type=\"button\"\n className=\"pollar-ramp-tab\"\n data-active={direction === 'offramp'}\n onClick={() => onDirectionChange('offramp')}\n >\n Sell\n </button>\n </div>\n\n <div className=\"pollar-ramp-input-row\">\n <div className=\"pollar-ramp-field\">\n <label className=\"pollar-ramp-label\">Amount</label>\n <input\n type=\"number\"\n className=\"pollar-ramp-input\"\n placeholder=\"0.00\"\n value={amount}\n min=\"0\"\n onChange={(e) => onAmountChange(e.target.value)}\n />\n </div>\n <div className=\"pollar-ramp-field\" style={{ maxWidth: 90 }}>\n <label className=\"pollar-ramp-label\">Currency</label>\n <input\n type=\"text\"\n className=\"pollar-ramp-input\"\n placeholder=\"MXN\"\n value={currency}\n maxLength={5}\n onChange={(e) => onCurrencyChange(e.target.value.toUpperCase())}\n />\n </div>\n </div>\n\n <div className=\"pollar-ramp-field\">\n <label className=\"pollar-ramp-label\">Country</label>\n <select\n className=\"pollar-ramp-input\"\n value={country}\n onChange={(e) => {\n const c = e.target.value;\n onCountryChange(c);\n if (COUNTRY_CURRENCIES[c]) onCurrencyChange(COUNTRY_CURRENCIES[c]);\n }}\n >\n <option value=\"MX\">🇲🇽 Mexico</option>\n <option value=\"BR\">🇧🇷 Brazil</option>\n <option value=\"CO\">🇨🇴 Colombia</option>\n <option value=\"CL\">🇨🇱 Chile</option>\n <option value=\"PE\">🇵🇪 Peru</option>\n <option value=\"AR\">🇦🇷 Argentina</option>\n </select>\n </div>\n\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n <button type=\"button\" className=\"pollar-btn-primary\" disabled={!amount || isLoading} onClick={onFindRoute}>\n Find best route\n </button>\n </div>\n </>\n )}\n\n {step === 'loading_quote' && (\n <div className=\"pollar-ramp-loading\">\n {LOADING_STEPS.map((text, i) => (\n <div key={i} className=\"pollar-ramp-loading-row\">\n <div className=\"pollar-ramp-loading-dot\" />\n <span>{text}</span>\n </div>\n ))}\n </div>\n )}\n\n {step === 'select_route' && (\n <>\n <div className=\"pollar-ramp-route-list\">\n {quotes.map((q, i) => (\n <RouteDisplay key={i} quote={q} onSelect={onSelectQuote} />\n ))}\n </div>\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n </>\n )}\n\n {step === 'payment_instructions' && paymentInstructions && (\n <div className=\"pollar-ramp-payment\">\n <p className=\"pollar-ramp-payment-title\">{paymentInstructions.type}</p>\n\n <div className=\"pollar-ramp-payment-field\">\n <span className=\"pollar-ramp-payment-label\">\n {paymentInstructions.type === 'CLABE'\n ? 'CLABE number'\n : paymentInstructions.type === 'PIX'\n ? 'PIX key'\n : 'Account number'}\n </span>\n <div className=\"pollar-ramp-payment-value\">\n <code>{paymentInstructions.value}</code>\n <button type=\"button\" className=\"pollar-ramp-copy-btn\" onClick={() => onCopy(paymentInstructions.value)}>\n Copy\n </button>\n </div>\n </div>\n\n <div className=\"pollar-ramp-payment-field\">\n <span className=\"pollar-ramp-payment-label\">Amount to send</span>\n <div className=\"pollar-ramp-payment-value\">\n <code>\n {paymentInstructions.amount.toLocaleString()} {paymentInstructions.currency}\n </code>\n <button\n type=\"button\"\n className=\"pollar-ramp-copy-btn\"\n onClick={() => onCopy(`${paymentInstructions.amount} ${paymentInstructions.currency}`)}\n >\n Copy\n </button>\n </div>\n </div>\n\n {paymentInstructions.expiresAt && (\n <p className=\"pollar-ramp-payment-note\">\n Instructions expire at {new Date(paymentInstructions.expiresAt).toLocaleTimeString()}\n </p>\n )}\n\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onClose}>\n Done\n </button>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { type PaymentInstructions, type RampDirection, type RampQuote, type RampsOnrampBody } from '@pollar/core';\nimport { useState } from 'react';\nimport { usePollar } from '../../context';\nimport type { RampStep } from './RampWidgetTemplate';\nimport { RampWidgetTemplate } from './RampWidgetTemplate';\nimport '../shared.css';\nimport './RampWidget.css';\n\ninterface RampWidgetProps {\n onClose: () => void;\n}\n\n// ─── Demo fallback data, used when the /ramps/quote and /ramps/onramp calls fail ──\n\nconst MOCK_DEFAULT_QUOTES: RampQuote[] = [\n {\n quoteId: 'meld-default',\n provider: 'Meld',\n fee: 1.2,\n feeCurrency: 'USD',\n rate: 1,\n rail: 'ACH',\n protocol: 'REST',\n estimatedTime: '~20 min',\n recommended: true,\n },\n];\n\nconst MOCK_QUOTES: Partial<Record<string, RampQuote[]>> & { DEFAULT: RampQuote[] } = {\n MX: [\n {\n quoteId: 'etherfuse-mx',\n provider: 'Etherfuse',\n fee: 0.5,\n feeCurrency: 'MXN',\n rate: 17.2,\n rail: 'SPEI',\n protocol: 'SEP-24',\n estimatedTime: '~10 min',\n recommended: true,\n },\n {\n quoteId: 'alfredpay-mx',\n provider: 'AlfredPay',\n fee: 0.8,\n feeCurrency: 'MXN',\n rate: 17.1,\n rail: 'SPEI',\n protocol: 'REST',\n estimatedTime: '~15 min',\n recommended: false,\n },\n ],\n BR: [\n {\n quoteId: 'abroad-br',\n provider: 'Abroad',\n fee: 0.6,\n feeCurrency: 'BRL',\n rate: 5.1,\n rail: 'PIX',\n protocol: 'REST',\n estimatedTime: '~5 min',\n recommended: true,\n },\n ],\n CO: [\n {\n quoteId: 'abroad-co',\n provider: 'Abroad',\n fee: 0.7,\n feeCurrency: 'COP',\n rate: 4100,\n rail: 'PSE',\n protocol: 'REST',\n estimatedTime: '~10 min',\n recommended: true,\n },\n {\n quoteId: 'koywe-co',\n provider: 'Koywe',\n fee: 0.9,\n feeCurrency: 'COP',\n rate: 4095,\n rail: 'PSE',\n protocol: 'REST',\n estimatedTime: '~15 min',\n recommended: false,\n },\n ],\n DEFAULT: MOCK_DEFAULT_QUOTES,\n};\n\nconst MOCK_PAYMENT: PaymentInstructions = {\n type: 'CLABE',\n value: '646180157088723456',\n amount: 1000,\n currency: 'MXN',\n expiresAt: new Date(Date.now() + 30 * 60 * 1000).toISOString(),\n};\n\n// ────────────────────────────────────────────────────────────────────────────────\n\nexport function RampWidget({ onClose }: RampWidgetProps) {\n const { getClient, walletAddress, styles } = usePollar();\n\n const [step, setStep] = useState<RampStep>('input');\n const [direction, setDirection] = useState<RampDirection>('onramp');\n const [amount, setAmount] = useState('');\n const [currency, setCurrency] = useState('MXN');\n const [country, setCountry] = useState('MX');\n const [quotes, setQuotes] = useState<RampQuote[]>([]);\n const [paymentInstructions, setPaymentInstructions] = useState<PaymentInstructions | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const client = getClient();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n async function handleFindRoute() {\n setStep('loading_quote');\n setIsLoading(true);\n\n try {\n const result = await client.getRampsQuote({\n country,\n amount: Number(amount),\n currency,\n direction,\n });\n if (result.quotes) setQuotes(result.quotes);\n } catch {\n // On any quote error, fall back to demo data so the UI stays usable.\n await new Promise((r) => setTimeout(r, 1500));\n setQuotes(MOCK_QUOTES[country] ?? MOCK_DEFAULT_QUOTES);\n } finally {\n setIsLoading(false);\n setStep('select_route');\n }\n }\n\n async function handleSelectQuote(quote: RampQuote) {\n if (!walletAddress) return;\n setIsLoading(true);\n\n const body: RampsOnrampBody = {\n quoteId: `${quote.provider}-${Date.now()}`,\n amount: Number(amount),\n currency,\n country,\n walletAddress,\n };\n\n try {\n const result = await client.createOnRamp(body);\n setPaymentInstructions(result.paymentInstructions);\n } catch {\n // On any on-ramp error, fall back to demo data so the UI stays usable.\n await new Promise((r) => setTimeout(r, 800));\n setPaymentInstructions({ ...MOCK_PAYMENT, currency });\n } finally {\n setIsLoading(false);\n setStep('payment_instructions');\n }\n }\n\n function handleCopy(value: string) {\n navigator.clipboard.writeText(value).catch(() => {});\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <RampWidgetTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n direction={direction}\n amount={amount}\n currency={currency}\n country={country}\n quotes={quotes}\n paymentInstructions={paymentInstructions}\n isLoading={isLoading}\n onDirectionChange={setDirection}\n onAmountChange={setAmount}\n onCurrencyChange={setCurrency}\n onCountryChange={setCountry}\n onFindRoute={handleFindRoute}\n onSelectQuote={handleSelectQuote}\n onCopy={handleCopy}\n onClose={onClose}\n />\n </div>\n );\n}\n","/**\n * QRCode component — vendored from react-qr-code (MIT License)\n * Original: https://github.com/rosskhanas/react-qr-code\n * Adapted: removed prop-types dependency, added TypeScript types.\n *\n * MIT License\n * Copyright (c) 2018 Ross Khanas\n */\n\n// @ts-expect-error — qr.js ships CJS without type declarations; bundled via noExternal\nimport ErrorCorrectLevel from 'qr.js/lib/ErrorCorrectLevel';\n// @ts-expect-error — same as above\nimport QRCodeImpl from 'qr.js/lib/QRCode';\nimport { forwardRef, type SVGProps } from 'react';\n\n// ─── Internal SVG renderer ────────────────────────────────────────────────────\n\ninterface QRCodeSvgProps extends SVGProps<SVGSVGElement> {\n bgColor: string;\n bgD: string;\n fgColor: string;\n fgD: string;\n size: number;\n title?: string;\n viewBoxSize: number;\n xmlns?: string | undefined;\n}\n\nconst QRCodeSvg = forwardRef<SVGSVGElement, QRCodeSvgProps>(function QRCodeSvg(\n { bgColor, bgD, fgD, fgColor, size, title, viewBoxSize, xmlns = 'http://www.w3.org/2000/svg', ...props },\n ref,\n) {\n return (\n <svg {...props} height={size} ref={ref} viewBox={`0 0 ${viewBoxSize} ${viewBoxSize}`} width={size} xmlns={xmlns}>\n {title ? <title>{title}</title> : null}\n <path d={bgD} fill={bgColor} />\n <path d={fgD} fill={fgColor} />\n </svg>\n );\n});\n\nQRCodeSvg.displayName = 'QRCodeSvg';\n\n// ─── Public component ─────────────────────────────────────────────────────────\n\nexport interface QRCodeProps extends SVGProps<SVGSVGElement> {\n value: string;\n size?: number;\n bgColor?: string;\n fgColor?: string;\n level?: 'L' | 'M' | 'Q' | 'H';\n title?: string;\n}\n\nfunction bytesToBinaryString(bytes: number[]): string {\n return bytes.map((b) => String.fromCharCode(b & 0xff)).join('');\n}\n\nfunction encodeStringToUtf8Bytes(input: string): number[] {\n return Array.from(new TextEncoder().encode(input));\n}\n\nexport const QRCode = forwardRef<SVGSVGElement, QRCodeProps>(function QRCode(\n { bgColor = '#FFFFFF', fgColor = '#000000', level = 'L', size = 256, value, ...props },\n ref,\n) {\n const qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n const utf8Bytes = encodeStringToUtf8Bytes(value);\n const binaryString = bytesToBinaryString(utf8Bytes);\n qrcode.addData(binaryString, 'Byte');\n qrcode.make();\n\n const cells: boolean[][] = qrcode.modules;\n\n return (\n <QRCodeSvg\n {...props}\n bgColor={bgColor}\n bgD={cells\n .map((row, rowIndex) =>\n row.map((cell, cellIndex) => (!cell ? `M ${cellIndex} ${rowIndex} l 1 0 0 1 -1 0 Z` : '')).join(' '),\n )\n .join(' ')}\n fgColor={fgColor}\n fgD={cells\n .map((row, rowIndex) =>\n row.map((cell, cellIndex) => (cell ? `M ${cellIndex} ${rowIndex} l 1 0 0 1 -1 0 Z` : '')).join(' '),\n )\n .join(' ')}\n ref={ref}\n size={size}\n viewBoxSize={cells.length}\n />\n );\n});\n","'use client';\n\nimport { type CSSProperties } from 'react';\nimport { QRCode } from '../../lib/qr-code';\nimport { PollarModalFooter } from '../commons';\n\nexport interface ReceiveModalTemplateProps {\n theme: string;\n accentColor: string;\n walletAddress: string;\n copied: boolean;\n onCopy: () => void;\n onClose: () => void;\n}\n\nexport function ReceiveModalTemplate({\n theme,\n accentColor,\n walletAddress,\n copied,\n onCopy,\n onClose,\n}: ReceiveModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n return (\n <div\n className=\"pollar-modal-card pollar-receive-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Receive</h2>\n <div className=\"pollar-modal-header-actions\">\n <button type=\"button\" className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {/* QR code */}\n {walletAddress ? (\n <>\n <div className=\"pollar-receive-qr\">\n <QRCode value={walletAddress} size={180} fgColor={isDark ? '#ffffff' : '#111827'} bgColor=\"transparent\" />\n </div>\n\n <p className=\"pollar-receive-instructions\">\n Share your Stellar address to receive any asset. Only send Stellar assets to this address.\n </p>\n\n {/* Address + copy */}\n <div className=\"pollar-receive-address-row\">\n <span className=\"pollar-receive-address\">{walletAddress}</span>\n <button type=\"button\" className=\"pollar-receive-copy-btn\" onClick={onCopy} aria-label=\"Copy address\">\n {copied ? (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path\n d=\"M3.5 7l2.5 2.5 4.5-5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Copied!\n </>\n ) : (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M3 9H2a1 1 0 01-1-1V2a1 1 0 011-1h6a1 1 0 011 1v1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n Copy address\n </>\n )}\n </button>\n </div>\n </>\n ) : (\n <div className=\"pollar-modal-empty\">No wallet connected.</div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './ReceiveModal.css';\nimport { ReceiveModalTemplate } from './ReceiveModalTemplate';\n\ninterface ReceiveModalProps {\n onClose: () => void;\n}\n\nexport function ReceiveModal({ onClose }: ReceiveModalProps) {\n const { walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const [copied, setCopied] = useState(false);\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n function handleCopy() {\n if (!walletAddress) return;\n navigator.clipboard.writeText(walletAddress).then(() => {\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 2000);\n });\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <ReceiveModalTemplate\n theme={theme}\n accentColor={accentColor}\n walletAddress={walletAddress}\n copied={copied}\n onCopy={handleCopy}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TransactionState, WalletId, WalletType } from '@pollar/core';\nimport { LOGO_ALBEDO, LOGO_FREIGHTER, LOGO_POLLAR } from '../../constants';\nimport { ModalStatusBanner } from '../commons';\n\nconst STATUS_MESSAGES: Record<TransactionState['step'], string> = {\n idle: '',\n building: 'Building transaction…',\n built: 'Ready to sign and send',\n signing: 'Signing transaction…',\n signed: 'Signed — ready to submit',\n submitting: 'Submitting transaction…',\n submitted: 'Submitted — waiting for confirmation…',\n 'signing-submitting': 'Signing and submitting transaction…',\n 'building-signing-submitting': 'Processing transaction…',\n success: 'Transaction sent successfully',\n error: 'Transaction failed',\n};\n\n/** Step values that represent in-flight work (spinner / non-cancellable UI). */\nconst IN_FLIGHT_STEPS = new Set<TransactionState['step']>([\n 'building',\n 'signing',\n 'submitting',\n 'submitted',\n 'signing-submitting',\n 'building-signing-submitting',\n]);\n\n/** Step values that should show the transaction details panel. */\nconst SHOW_DETAILS_STEPS = new Set<TransactionState['step']>([\n 'built',\n 'signing',\n 'signed',\n 'submitting',\n 'submitted',\n 'signing-submitting',\n 'success',\n]);\n\nexport interface TxStatusViewProps {\n transaction: TransactionState;\n showXdr: boolean;\n copied: boolean;\n explorerUrl: string | null;\n walletType?: WalletId | null | undefined;\n onSignAndSend: () => void;\n onToggleXdr: () => void;\n onCopyHash: () => void;\n onRetry?: (() => void) | undefined;\n onDone: () => void;\n}\n\nexport function TxStatusView({\n transaction,\n showXdr,\n copied,\n explorerUrl,\n walletType,\n onSignAndSend,\n onToggleXdr,\n onCopyHash,\n onRetry,\n onDone,\n}: TxStatusViewProps) {\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const errorDetails = transaction.step === 'error' ? (transaction.details ?? null) : null;\n\n const isBuilt = transaction.step === 'built';\n const isInFlight = IN_FLIGHT_STEPS.has(transaction.step);\n const isSuccess = transaction.step === 'success';\n const isError = transaction.step === 'error';\n const showDetails = buildData !== null && SHOW_DETAILS_STEPS.has(transaction.step);\n\n const walletImg =\n walletType === WalletType.FREIGHTER ? LOGO_FREIGHTER : walletType === WalletType.ALBEDO ? LOGO_ALBEDO : LOGO_POLLAR;\n\n const walletAlt = walletType === WalletType.FREIGHTER ? 'Freighter' : walletType === WalletType.ALBEDO ? 'Albedo' : 'Pollar';\n\n return (\n <>\n {showDetails && buildData && (\n <>\n <div className=\"pollar-tx-summary\">\n <p className=\"pollar-tx-summary-title\">Details</p>\n <ul className=\"pollar-tx-summary-lines\">\n {buildData.summary.lines.map((line, i) => (\n <li key={i} className=\"pollar-tx-summary-line\">\n {line}\n </li>\n ))}\n </ul>\n </div>\n <div className=\"pollar-tx-meta\">\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Network</span>\n <span className=\"pollar-tx-meta-value\">{buildData.summary.network}</span>\n </div>\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Fee</span>\n <span className=\"pollar-tx-meta-value\">{buildData.summary.fee}</span>\n </div>\n </div>\n <div className=\"pollar-tx-xdr\">\n <button className=\"pollar-tx-xdr-toggle\" onClick={onToggleXdr}>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden\n style={{ transform: showXdr ? 'rotate(90deg)' : 'rotate(0deg)', transition: 'transform 150ms' }}\n >\n <path d=\"M4 2l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Raw transaction (XDR)\n </button>\n {showXdr && <pre className=\"pollar-tx-xdr-content\">{buildData.unsignedXdr}</pre>}\n </div>\n </>\n )}\n\n {isError && errorDetails && (\n <div className=\"pollar-tx-error-details\">\n <p className=\"pollar-tx-error-details-label\">Error details</p>\n <pre className=\"pollar-tx-error-details-content\">{errorDetails}</pre>\n </div>\n )}\n\n {isBuilt && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" onClick={onSignAndSend}>\n Sign &amp; Send\n </button>\n )}\n\n {(isInFlight || isSuccess || isError) && (\n <div className=\"pollar-tx-wallet-spinner\">\n <div className=\"pollar-tx-spinner-ring\">\n <svg\n viewBox=\"0 0 88 88\"\n width=\"88\"\n height=\"88\"\n className={`pollar-tx-spinner-svg${isInFlight ? ' pollar-tx-spinner-rotating' : ''}`}\n aria-hidden\n >\n <circle cx=\"44\" cy=\"44\" r=\"36\" fill=\"none\" stroke=\"var(--pollar-border)\" strokeWidth=\"3\" />\n <circle\n cx=\"44\"\n cy=\"44\"\n r=\"36\"\n fill=\"none\"\n stroke={\n isSuccess ? 'var(--pollar-success-text)' : isError ? 'var(--pollar-error-text)' : 'var(--pollar-accent)'\n }\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeDasharray={isInFlight ? '169.6 56.6' : '999 0'}\n transform=\"rotate(-90 44 44)\"\n style={{ transition: isInFlight ? 'none' : 'stroke 400ms, stroke-dasharray 400ms' }}\n />\n </svg>\n <div className=\"pollar-tx-wallet-icon\">\n <img src={walletImg} alt={walletAlt} className=\"pollar-tx-wallet-img\" />\n </div>\n </div>\n\n {isInFlight && (\n <p className=\"pollar-tx-spinner-label\">\n {walletType === WalletType.FREIGHTER\n ? 'Waiting for Freighter…'\n : walletType === WalletType.ALBEDO\n ? 'Waiting for Albedo…'\n : 'Signing and sending…'}\n </p>\n )}\n\n {isError && onRetry && 'buildData' in transaction && transaction.buildData && (\n <button className=\"pollar-btn-secondary pollar-tx-retry-btn\" onClick={onRetry}>\n Try again\n </button>\n )}\n </div>\n )}\n\n {isSuccess && hash && (\n <div className=\"pollar-tx-result\">\n <span className=\"pollar-tx-result-label\">Transaction hash</span>\n <span className=\"pollar-tx-result-hash\">{hash}</span>\n <div className=\"pollar-tx-result-actions\">\n <button className=\"pollar-tx-result-btn\" onClick={onCopyHash}>\n {copied ? (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path\n d=\"M3.5 7l2.5 2.5 4.5-5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Copied!\n </>\n ) : (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M3 9H2a1 1 0 01-1-1V2a1 1 0 011-1h6a1 1 0 011 1v1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n Copy hash\n </>\n )}\n </button>\n {explorerUrl && (\n <a className=\"pollar-tx-result-btn\" href={explorerUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <path\n d=\"M5 2H2a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8 1h4m0 0v4m0-4L6 7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n View on Explorer\n </a>\n )}\n </div>\n </div>\n )}\n\n {isSuccess && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" onClick={onDone}>\n Done\n </button>\n )}\n\n <ModalStatusBanner\n message={STATUS_MESSAGES[transaction.step]}\n status={isError ? 'ERROR' : isInFlight ? 'LOADING' : isSuccess ? 'SUCCESS' : 'NONE'}\n />\n </>\n );\n}\n","'use client';\n\nimport { TransactionState, WalletBalanceRecord, WalletId } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\nimport { TxStatusView } from '../transaction-modal/TxStatusView';\n\nfunction formatBalance(balance: string): string {\n const n = parseFloat(balance);\n return isNaN(n) ? balance : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction assetKey(record: WalletBalanceRecord): string {\n return `${record.code}:${record.issuer ?? 'native'}`;\n}\n\nexport interface SendModalTemplateProps {\n theme: string;\n accentColor: string;\n step: 'form' | 'tx';\n txTitle: string;\n assets: WalletBalanceRecord[];\n selectedAsset: WalletBalanceRecord | null;\n amount: string;\n destination: string;\n formError: string;\n isLoadingBalance: boolean;\n transaction: TransactionState;\n showXdr: boolean;\n copied: boolean;\n explorerUrl: string | null;\n walletType?: WalletId | null | undefined;\n showBack: boolean;\n isInProgress: boolean;\n onClose: () => void;\n onBack: () => void;\n onSelectAsset: (asset: WalletBalanceRecord) => void;\n onAmountChange: (value: string) => void;\n onDestinationChange: (value: string) => void;\n onSubmit: () => void;\n onSignAndSend: () => void;\n onToggleXdr: () => void;\n onCopyHash: () => void;\n onRetry: () => void;\n onDone: () => void;\n}\n\nexport function SendModalTemplate({\n theme,\n accentColor,\n step,\n txTitle,\n assets,\n selectedAsset,\n amount,\n destination,\n formError,\n isLoadingBalance,\n transaction,\n showXdr,\n copied,\n explorerUrl,\n walletType,\n showBack,\n isInProgress,\n onClose,\n onBack,\n onSelectAsset,\n onAmountChange,\n onDestinationChange,\n onSubmit,\n onSignAndSend,\n onToggleXdr,\n onCopyHash,\n onRetry,\n onDone,\n}: SendModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const enabledAssets = assets.filter((a) => a.enabledInApp);\n const otherAssets = assets.filter((a) => !a.enabledInApp);\n const selectedKey = selectedAsset ? assetKey(selectedAsset) : '';\n const canSubmit = !!selectedAsset && !!amount && !!destination.trim() && !isLoadingBalance;\n\n const title = step === 'form' ? 'Send' : txTitle;\n\n return (\n <div\n className=\"pollar-modal-card pollar-send-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div className=\"pollar-modal-header\">\n <div className=\"pollar-send-header-left\">\n {showBack && (\n <button type=\"button\" className=\"pollar-modal-close\" onClick={onBack} aria-label=\"Back\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M10 3L5 8l5 5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n )}\n <h2 className=\"pollar-modal-title\">{title}</h2>\n </div>\n {!isInProgress && (\n <div className=\"pollar-modal-header-actions\">\n <button type=\"button\" className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n\n {/* Form step */}\n {step === 'form' && (\n <>\n {/* Asset selector */}\n <div className=\"pollar-send-field\">\n <label className=\"pollar-send-label\">Asset</label>\n {isLoadingBalance ? (\n <div className=\"pollar-send-skeleton\" />\n ) : (\n <select\n className=\"pollar-input pollar-send-select\"\n value={selectedKey}\n onChange={(e) => {\n const all = [...enabledAssets, ...otherAssets];\n const found = all.find((a) => assetKey(a) === e.target.value);\n if (found) onSelectAsset(found);\n }}\n >\n <option value=\"\" disabled>\n Select asset\n </option>\n {enabledAssets.length > 0 && (\n <optgroup label=\"App assets\">\n {enabledAssets.map((a) => (\n <option key={assetKey(a)} value={assetKey(a)}>\n {a.code} — {formatBalance(a.available)} available\n </option>\n ))}\n </optgroup>\n )}\n {otherAssets.length > 0 && (\n <optgroup label=\"Other assets\">\n {otherAssets.map((a) => (\n <option key={assetKey(a)} value={assetKey(a)}>\n {a.code} — {formatBalance(a.available)} available\n </option>\n ))}\n </optgroup>\n )}\n </select>\n )}\n </div>\n\n {/* Amount */}\n <div className=\"pollar-send-field\">\n <div className=\"pollar-send-label-row\">\n <label className=\"pollar-send-label\">Amount</label>\n {selectedAsset && (\n <span className=\"pollar-send-hint\">\n Available: {formatBalance(selectedAsset.available)} {selectedAsset.code}\n </span>\n )}\n </div>\n <input\n className=\"pollar-input\"\n type=\"text\"\n inputMode=\"decimal\"\n placeholder=\"0.00\"\n value={amount}\n onChange={(e) => onAmountChange(e.target.value)}\n />\n </div>\n\n {/* Destination */}\n <div className=\"pollar-send-field\">\n <label className=\"pollar-send-label\">Destination wallet</label>\n <input\n className=\"pollar-input\"\n type=\"text\"\n placeholder=\"G…\"\n value={destination}\n onChange={(e) => onDestinationChange(e.target.value)}\n />\n </div>\n\n {formError && <div className=\"pollar-modal-error\">{formError}</div>}\n\n <div className=\"pollar-modal-actions\">\n <button className=\"pollar-btn-primary\" onClick={onSubmit} disabled={!canSubmit}>\n Continue\n </button>\n </div>\n </>\n )}\n\n {/* Transaction step */}\n {step === 'tx' && (\n <TxStatusView\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n onSignAndSend={onSignAndSend}\n onToggleXdr={onToggleXdr}\n onCopyHash={onCopyHash}\n onRetry={onRetry}\n onDone={onDone}\n />\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { WalletBalanceRecord } from '@pollar/core';\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport '../transaction-modal/TransactionModal.css';\nimport './SendModal.css';\nimport { SendModalTemplate } from './SendModalTemplate';\n\ninterface SendModalProps {\n onClose: () => void;\n}\n\nfunction assetParam(record: WalletBalanceRecord) {\n if (record.type === 'native') return { type: 'native' as const };\n if (record.type === 'credit_alphanum4') {\n return { type: 'credit_alphanum4' as const, code: record.code, issuer: record.issuer! };\n }\n return { type: 'credit_alphanum12' as const, code: record.code, issuer: record.issuer! };\n}\n\nexport function SendModal({ onClose }: SendModalProps) {\n const {\n walletBalance,\n refreshWalletBalance,\n buildTx,\n signAndSubmitTx,\n tx: transaction,\n walletType,\n network,\n styles,\n } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [step, setStep] = useState<'form' | 'tx'>('form');\n const [amount, setAmount] = useState('');\n const [destination, setDestination] = useState('');\n const [selectedAsset, setSelectedAsset] = useState<WalletBalanceRecord | null>(null);\n const [showXdr, setShowXdr] = useState(false);\n const [copied, setCopied] = useState(false);\n const [formError, setFormError] = useState('');\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n void refreshWalletBalance();\n }, [refreshWalletBalance]);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n const balanceData = walletBalance.step === 'loaded' ? walletBalance.data : null;\n const allAssets = balanceData?.balances ?? [];\n const sortedAssets = [\n ...allAssets.filter((b) => b.enabledInApp),\n ...allAssets.filter((b) => !b.enabledInApp && parseFloat(b.balance) > 0),\n ];\n\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const explorerNetwork = buildData?.summary.network?.toLowerCase().includes('testnet')\n ? 'testnet'\n : buildData\n ? 'public'\n : network === 'testnet'\n ? 'testnet'\n : 'public';\n const explorerUrl = hash ? `https://stellar.expert/explorer/${explorerNetwork}/tx/${hash}` : null;\n\n const IN_FLIGHT_STEPS = [\n 'building',\n 'signing',\n 'submitting',\n 'submitted',\n 'signing-submitting',\n 'building-signing-submitting',\n ] as const;\n const isInProgress = (IN_FLIGHT_STEPS as readonly string[]).includes(transaction.step);\n const showBack = step === 'tx' && (transaction.step === 'error' || transaction.step === 'success') && !isInProgress;\n\n const txTitle = isInProgress\n ? 'Sending…'\n : transaction.step === 'success'\n ? 'Sent!'\n : transaction.step === 'error'\n ? 'Send failed'\n : 'Confirm Send';\n\n async function handleSubmit() {\n setFormError('');\n if (!selectedAsset) {\n setFormError('Select an asset');\n return;\n }\n const parsed = parseFloat(amount);\n if (!amount || isNaN(parsed) || parsed <= 0) {\n setFormError('Enter a valid amount');\n return;\n }\n if (parsed > parseFloat(selectedAsset.available)) {\n setFormError('Insufficient balance');\n return;\n }\n if (!destination.trim()) {\n setFormError('Enter a destination address');\n return;\n }\n\n setStep('tx');\n await buildTx('payment', { destination: destination.trim(), amount, asset: assetParam(selectedAsset) });\n }\n\n function handleSignAndSend() {\n if (transaction.step === 'built') {\n void signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n function handleCopyHash() {\n if (!hash) return;\n navigator.clipboard.writeText(hash).then(() => {\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 2000);\n });\n }\n\n async function handleRetry() {\n if (transaction.step === 'error' && transaction.buildData) {\n await signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n function handleBack() {\n setStep('form');\n setShowXdr(false);\n setCopied(false);\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={!isInProgress ? onClose : undefined}>\n <SendModalTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n txTitle={txTitle}\n assets={sortedAssets}\n selectedAsset={selectedAsset}\n amount={amount}\n destination={destination}\n formError={formError}\n isLoadingBalance={walletBalance.step === 'loading'}\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n showBack={showBack}\n isInProgress={isInProgress}\n onClose={onClose}\n onBack={handleBack}\n onSelectAsset={setSelectedAsset}\n onAmountChange={setAmount}\n onDestinationChange={setDestination}\n onSubmit={() => void handleSubmit()}\n onSignAndSend={handleSignAndSend}\n onToggleXdr={() => setShowXdr((v) => !v)}\n onCopyHash={handleCopyHash}\n onRetry={() => void handleRetry()}\n onDone={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport type { SessionInfo, SessionsState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nexport type { SessionsState };\n\nexport interface SessionsModalTemplateProps {\n theme: string;\n accentColor: string;\n state: SessionsState;\n revokingFamilyId: string | null;\n signingOutEverywhere: boolean;\n onRefresh: () => void;\n onRevoke: (familyId: string) => void;\n onLogoutEverywhere: () => void;\n onClose: () => void;\n}\n\n/**\n * Heuristic device label. Prefers the explicit `deviceLabel` set via\n * `PollarClientConfig`; falls back to a stripped User-Agent.\n */\nfunction describeDevice(s: SessionInfo): string {\n if (s.deviceLabel) return s.deviceLabel;\n if (!s.userAgent) return 'Unknown device';\n return parseUserAgent(s.userAgent);\n}\n\nfunction detectBrowser(ua: string): string | null {\n // Order matters: Edge / Opera contain \"Chrome\" in their UA, so check them first.\n if (/Edg\\//.test(ua)) return 'Edge';\n if (/OPR\\//.test(ua)) return 'Opera';\n if (/(Chrome|CriOS)\\//.test(ua)) return 'Chrome';\n if (/(Firefox|FxiOS)\\//.test(ua)) return 'Firefox';\n if (/Safari\\//.test(ua)) return 'Safari';\n return null;\n}\n\nfunction detectOS(ua: string): string | null {\n if (/iPhone|iPad|iPod/.test(ua)) return 'iOS';\n if (/Android/.test(ua)) return 'Android';\n if (/Mac OS X/.test(ua)) return 'macOS';\n if (/Windows NT/.test(ua)) return 'Windows';\n if (/Linux/.test(ua)) return 'Linux';\n return null;\n}\n\nfunction parseUserAgent(ua: string): string {\n const browser = detectBrowser(ua);\n const os = detectOS(ua);\n if (browser && os) return `${os} — ${browser}`;\n if (os) return os;\n if (browser) return browser;\n return ua.slice(0, 48);\n}\n\nfunction formatRelative(iso: string | null): string {\n if (!iso) return '—';\n const ts = new Date(iso).getTime();\n if (!Number.isFinite(ts)) return '—';\n const diffSec = Math.round((Date.now() - ts) / 1000);\n if (diffSec < 0) return 'just now';\n if (diffSec < 60) return `${diffSec}s ago`;\n const diffMin = Math.round(diffSec / 60);\n if (diffMin < 60) return `${diffMin}m ago`;\n const diffHr = Math.round(diffMin / 60);\n if (diffHr < 24) return `${diffHr}h ago`;\n const diffDay = Math.round(diffHr / 24);\n if (diffDay < 30) return `${diffDay}d ago`;\n return new Date(iso).toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n}\n\nfunction shortIp(hash: string | null): string {\n if (!hash) return '';\n return hash.slice(0, 8);\n}\n\nexport function SessionsModalTemplate({\n theme,\n accentColor,\n state,\n revokingFamilyId,\n signingOutEverywhere,\n onRefresh,\n onRevoke,\n onLogoutEverywhere,\n onClose,\n}: SessionsModalTemplateProps) {\n const isDark = theme === 'dark';\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = state.step === 'loading';\n const sessions = state.step === 'loaded' ? state.sessions : [];\n const otherCount = sessions.filter((s) => !s.current).length;\n\n return (\n <div\n className=\"pollar-modal-card pollar-sessions-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Active sessions</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-sessions-list\">\n {state.step === 'idle' && <div className=\"pollar-modal-empty\">Loading…</div>}\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n {state.step === 'error' && <div className=\"pollar-modal-empty\">{state.message}</div>}\n {state.step === 'loaded' && sessions.length === 0 && <div className=\"pollar-modal-empty\">No active sessions.</div>}\n {sessions.map((s) => {\n const isRevoking = revokingFamilyId === s.familyId;\n return (\n <div key={s.familyId} className=\"pollar-sessions-item\" data-current={s.current || undefined}>\n <div className=\"pollar-sessions-item-main\">\n <span className=\"pollar-sessions-item-device\">{describeDevice(s)}</span>\n {s.current && <span className=\"pollar-sessions-item-badge\">This device</span>}\n </div>\n <div className=\"pollar-sessions-item-meta\">\n <span>Last used {formatRelative(s.lastUsedAt ?? s.createdAt)}</span>\n {s.ipHash && (\n <>\n <span>·</span>\n <span title={`ip-hash ${s.ipHash}`}>ip {shortIp(s.ipHash)}</span>\n </>\n )}\n </div>\n {!s.current && (\n <button\n className=\"pollar-sessions-item-revoke\"\n onClick={() => onRevoke(s.familyId)}\n disabled={isRevoking || signingOutEverywhere}\n >\n {isRevoking ? 'Revoking…' : 'Revoke'}\n </button>\n )}\n </div>\n );\n })}\n </div>\n\n {state.step === 'loaded' && sessions.length > 0 && (\n <div className=\"pollar-sessions-actions\">\n <button\n className=\"pollar-sessions-logout-all\"\n onClick={onLogoutEverywhere}\n disabled={signingOutEverywhere || otherCount === 0}\n title={otherCount === 0 ? 'No other devices to sign out' : undefined}\n >\n {signingOutEverywhere ? 'Signing out…' : 'Sign out everywhere'}\n </button>\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './SessionsModal.css';\nimport { SessionsModalTemplate } from './SessionsModalTemplate';\n\ninterface SessionsModalProps {\n onClose: () => void;\n}\n\nexport function SessionsModal({ onClose }: SessionsModalProps) {\n const { getClient, styles, sessions } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n // Only the per-action button spinners are local UI state. The list itself\n // (idle/loading/loaded/error) lives in the client's observable `sessions`\n // store, read straight from the provider — so this component is a pure\n // reader and there's no `await`-then-`setState` to guard against unmount.\n const [revokingFamilyId, setRevokingFamilyId] = useState<string | null>(null);\n const [signingOutEverywhere, setSigningOutEverywhere] = useState(false);\n\n const load = useCallback(() => {\n void getClient().fetchSessions();\n }, [getClient]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n // Auto-close on logout (logoutEverywhere from this modal, or eventual\n // 401-on-current-family-revoke). The provider clears session state when\n // the user becomes unauthenticated; mirror that here so the modal\n // tears down instead of showing stale data.\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n useEffect(() => {\n return getClient().onAuthStateChange((authState) => {\n if (authState.step === 'idle') onCloseRef.current();\n });\n }, [getClient]);\n\n const handleRevoke = useCallback(\n async (familyId: string) => {\n setRevokingFamilyId(familyId);\n try {\n await getClient().revokeSession(familyId);\n } catch {\n // Swallow — the refresh below resyncs the list with server truth, so a\n // failed revoke simply leaves the (still-active) row in place.\n } finally {\n setRevokingFamilyId(null);\n // Refresh from the server so the row disappears from the list.\n load();\n }\n },\n [getClient, load],\n );\n\n const handleLogoutEverywhere = useCallback(async () => {\n setSigningOutEverywhere(true);\n try {\n await getClient().logoutEverywhere();\n // After logout-everywhere the auth state flips to 'idle' — the\n // provider closes the parent overlay automatically. Belt-and-braces:\n // call onClose so the modal also tears down even if the consumer\n // wired it up outside the provider.\n onClose();\n } catch {\n setSigningOutEverywhere(false);\n }\n }, [getClient, onClose]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <SessionsModalTemplate\n theme={theme}\n accentColor={accentColor}\n state={sessions}\n revokingFamilyId={revokingFamilyId}\n signingOutEverywhere={signingOutEverywhere}\n onRefresh={() => load()}\n onRevoke={(familyId) => void handleRevoke(familyId)}\n onLogoutEverywhere={() => void handleLogoutEverywhere()}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TransactionState, WalletId } from '@pollar/core';\nimport React from 'react';\nimport { PollarModalFooter } from '../commons';\nimport { TxStatusView } from './TxStatusView';\n\nexport interface TransactionModalTemplateProps {\n theme: string;\n accentColor: string;\n transaction: TransactionState;\n showXdr: boolean;\n copied: boolean;\n explorerUrl: string | null;\n walletType?: WalletId | null;\n onClose: () => void;\n onSignAndSend: () => void;\n onToggleXdr: () => void;\n onCopyHash: () => void;\n onRetry?: () => void;\n}\n\nexport function TransactionModalTemplate({\n theme,\n accentColor,\n transaction,\n showXdr,\n copied,\n explorerUrl,\n walletType,\n onClose,\n onSignAndSend,\n onToggleXdr,\n onCopyHash,\n onRetry,\n}: TransactionModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as React.CSSProperties;\n\n return (\n <div className=\"pollar-modal-card pollar-tx-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Transaction</h2>\n </div>\n <button type=\"button\" className=\"pollar-close-btn\" onClick={onClose} aria-label=\"Close\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n\n <TxStatusView\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n onSignAndSend={onSignAndSend}\n onToggleXdr={onToggleXdr}\n onCopyHash={onCopyHash}\n onRetry={onRetry}\n onDone={onClose}\n />\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './TransactionModal.css';\nimport { TransactionModalTemplate } from './TransactionModalTemplate';\n\ninterface TransactionModalProps {\n onClose: () => void;\n}\n\nexport function TransactionModal({ onClose }: TransactionModalProps) {\n const { getClient, styles, tx: transaction, network, walletType } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n const [showXdr, setShowXdr] = useState(false);\n const [copied, setCopied] = useState(false);\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const explorerNetwork = buildData?.summary.network?.toLowerCase().includes('testnet')\n ? 'testnet'\n : buildData\n ? 'public'\n : network === 'testnet'\n ? 'testnet'\n : 'public';\n const explorerUrl = hash ? `https://stellar.expert/explorer/${explorerNetwork}/tx/${hash}` : null;\n\n function handleSignAndSend() {\n if (transaction.step === 'built') {\n void getClient().signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n function handleCopyHash() {\n if (!hash) return;\n navigator.clipboard.writeText(hash).then(() => {\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 2000);\n });\n }\n\n async function handleRetry() {\n if (transaction.step === 'error' && transaction.buildData) {\n await getClient().signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TransactionModalTemplate\n theme={theme}\n accentColor={accentColor}\n transaction={transaction}\n showXdr={showXdr}\n copied={copied}\n explorerUrl={explorerUrl}\n walletType={walletType}\n onClose={onClose}\n onSignAndSend={handleSignAndSend}\n onToggleXdr={() => setShowXdr((v) => !v)}\n onCopyHash={handleCopyHash}\n onRetry={handleRetry}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TxHistoryRecord, TxHistoryState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nconst PAGE_SIZE = 10;\n\ninterface TxHistoryModalTemplateProps {\n theme: string;\n accentColor: string;\n txHistory: TxHistoryState;\n offset: number;\n onRefresh: () => void;\n onPrev: () => void;\n onNext: () => void;\n onClose: () => void;\n}\n\nfunction StatusBadge({ status }: { status: TxHistoryRecord['status'] }) {\n return (\n <span className=\"pollar-hist-item-badge\" data-status={status}>\n {status}\n </span>\n );\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n}\n\nexport function TxHistoryModalTemplate({\n theme,\n accentColor,\n txHistory,\n offset,\n onRefresh,\n onPrev,\n onNext,\n onClose,\n}: TxHistoryModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = txHistory.step === 'loading';\n const records = txHistory.step === 'loaded' ? txHistory.data.records : [];\n const total = txHistory.step === 'loaded' ? txHistory.data.total : 0;\n const hasPrev = offset > 0;\n const hasNext = offset + PAGE_SIZE < total;\n const showPagination = txHistory.step === 'loaded' && total > PAGE_SIZE;\n\n return (\n <div\n className=\"pollar-modal-card pollar-hist-modal\"\n data-theme={theme}\n style={cssVars}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Transaction History</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-hist-list\">\n {txHistory.step === 'idle' && <div className=\"pollar-modal-empty\">Click Refresh to load transactions.</div>}\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n {txHistory.step === 'error' && <div className=\"pollar-modal-empty\">{txHistory.message}</div>}\n {txHistory.step === 'loaded' && records.length === 0 && <div className=\"pollar-modal-empty\">No transactions yet.</div>}\n {records.map((record) => {\n const explorerUrl = `https://stellar.expert/explorer/${record.network === 'testnet' ? 'testnet' : 'public'}/tx/${record.hash}`;\n return (\n <div key={record.id} className=\"pollar-hist-item\">\n <span className=\"pollar-hist-item-summary\">{record.summary}</span>\n <StatusBadge status={record.status} />\n <span className=\"pollar-hist-item-meta\">\n <span>{record.operation}</span>\n {record.feeXlm && <span>· {record.feeXlm} XLM</span>}\n <span>· {formatDate(record.createdAt)}</span>\n <span>·</span>\n <a\n className=\"pollar-hist-item-explorer\"\n href={explorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"View on Stellar Explorer\"\n >\n <svg width=\"11\" height=\"11\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <path\n d=\"M5 2H2a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8 1h4m0 0v4m0-4L6 7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Explorer\n </a>\n </span>\n </div>\n );\n })}\n </div>\n\n {showPagination && (\n <div className=\"pollar-hist-pagination\">\n <span className=\"pollar-hist-pagination-info\">\n {offset + 1}–{Math.min(offset + PAGE_SIZE, total)} of {total}\n </span>\n <div className=\"pollar-hist-pagination-btns\">\n <button className=\"pollar-hist-page-btn\" onClick={onPrev} disabled={!hasPrev}>\n ← Prev\n </button>\n <button className=\"pollar-hist-page-btn\" onClick={onNext} disabled={!hasNext}>\n Next →\n </button>\n </div>\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './TxHistoryModal.css';\nimport { TxHistoryModalTemplate } from './TxHistoryModalTemplate';\n\nconst PAGE_SIZE = 10;\n\ninterface TxHistoryModalProps {\n onClose: () => void;\n}\n\nexport function TxHistoryModal({ onClose }: TxHistoryModalProps) {\n const { getClient, styles, txHistory } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const [offset, setOffset] = useState(0);\n\n const load = useCallback(\n (nextOffset: number) => {\n setOffset(nextOffset);\n void getClient().fetchTxHistory({ limit: PAGE_SIZE, offset: nextOffset });\n },\n [getClient],\n );\n\n useEffect(() => {\n load(0);\n }, [load]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TxHistoryModalTemplate\n theme={theme}\n accentColor={accentColor}\n txHistory={txHistory}\n offset={offset}\n onRefresh={() => load(offset)}\n onPrev={() => load(Math.max(0, offset - PAGE_SIZE))}\n onNext={() => load(offset + PAGE_SIZE)}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { WalletBalanceRecord, WalletBalanceState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nfunction formatBalance(balance: string): string {\n const n = parseFloat(balance);\n return isNaN(n) ? balance : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction cropAddress(address: string): string {\n if (address.length <= 16) return address;\n return `${address.slice(0, 8)}...${address.slice(-8)}`;\n}\n\nfunction BalanceItem({ record }: { record: WalletBalanceRecord }) {\n const balanceDiffers = record.balance !== record.available;\n return (\n <div className=\"pollar-bal-item\">\n <span className=\"pollar-bal-asset\">{record.code}</span>\n <div className=\"pollar-bal-amounts\">\n <span className=\"pollar-bal-amount\">{formatBalance(record.balance)}</span>\n {balanceDiffers && <span className=\"pollar-bal-available\">{formatBalance(record.available)} available</span>}\n </div>\n </div>\n );\n}\n\nexport interface WalletBalanceModalTemplateProps {\n theme: string;\n accentColor: string;\n walletBalance: WalletBalanceState;\n walletAddress: string;\n onRefresh: () => void;\n onClose: () => void;\n}\n\nexport function WalletBalanceModalTemplate({\n theme,\n accentColor,\n walletBalance,\n walletAddress,\n onRefresh,\n onClose,\n}: WalletBalanceModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-input-height': '44px',\n '--pollar-input-border-radius': '0.5rem',\n '--pollar-card-border-radius': '10px',\n } as CSSProperties;\n\n const isLoading = walletBalance.step === 'loading';\n const data = walletBalance.step === 'loaded' ? walletBalance.data : null;\n\n return (\n <div className=\"pollar-modal-card pollar-bal-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Wallet Balance</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {walletAddress && <div className=\"pollar-bal-address\">{cropAddress(walletAddress)}</div>}\n\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n\n {walletBalance.step === 'error' && <div className=\"pollar-modal-error\">{walletBalance.message}</div>}\n\n {data && !data.exists && <div className=\"pollar-modal-empty\">Account not found on {data.network}.</div>}\n\n {data?.exists && data.balances.length === 0 && <div className=\"pollar-modal-empty\">No balances found.</div>}\n\n {data?.exists && data.balances.length > 0 && (\n <div className=\"pollar-bal-list\">\n {data.balances.map((b) => (\n <BalanceItem key={b.code + (b.issuer ?? '')} record={b} />\n ))}\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './WalletBalanceModal.css';\nimport { WalletBalanceModalTemplate } from './WalletBalanceModalTemplate';\n\ninterface WalletBalanceModalProps {\n onClose: () => void;\n}\n\nexport function WalletBalanceModal({ onClose }: WalletBalanceModalProps) {\n const { walletBalance, refreshWalletBalance, walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n useEffect(() => {\n void refreshWalletBalance();\n }, [refreshWalletBalance]);\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <WalletBalanceModalTemplate\n theme={theme}\n accentColor={accentColor}\n walletBalance={walletBalance}\n walletAddress={walletAddress}\n onRefresh={() => refreshWalletBalance()}\n onClose={onClose}\n />\n </div>\n );\n}\n","import type { PasskeyCeremony, PasskeySigner } from '@pollar/core';\nimport { startAuthentication, startRegistration } from '@simplewebauthn/browser';\n\n// hex → base64url, for passing the raw auth digest as the WebAuthn challenge.\nfunction hexToBase64url(hex: string): string {\n const bytes = new Uint8Array(hex.length / 2);\n for (let i = 0; i < bytes.length; i++) bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);\n let bin = '';\n for (const b of bytes) bin += String.fromCharCode(b);\n return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n// WebAuthn user.id must be a base64url string in the JSON options. It is a\n// per-credential opaque handle (the authenticator stores it for the account\n// picker); the server identifies users by credentialId, not this.\nfunction randomUserId(): string {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n let bin = '';\n for (const b of bytes) bin += String.fromCharCode(b);\n return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n/**\n * Browser passkey ceremony for the smart-wallet flow.\n *\n * `mode` is set explicitly by the caller's button, so there's no ambiguous\n * autodetect:\n * - `'login'` → `get()` only (returning user — the OS shows the account\n * picker for discoverable credentials on this domain). A\n * failure here is surfaced as-is; it never falls through to\n * registration, so cancelling the prompt can't accidentally\n * create a second wallet.\n * - `'register'` → `create()` only (new user → the server deploys the\n * C-address).\n *\n * rpId = the current page's hostname (the customer app's domain), which is what\n * the passkey is bound to — the anti-phishing guarantee.\n */\nexport const browserPasskeyCeremony: PasskeyCeremony = async ({ challenge, mode }) => {\n const rpId = window.location.hostname;\n\n if (mode === 'login') {\n const response = await startAuthentication({\n optionsJSON: { challenge, rpId, userVerification: 'required' },\n });\n return { kind: 'login', response };\n }\n\n const userId = randomUserId();\n const response = await startRegistration({\n optionsJSON: {\n challenge,\n rp: { id: rpId, name: rpId },\n user: { id: userId, name: 'Smart Wallet', displayName: 'Smart Wallet' },\n // ES256 (secp256r1) — the curve the on-chain WebAuthn verifier expects.\n pubKeyCredParams: [{ type: 'public-key', alg: -7 }],\n authenticatorSelection: { residentKey: 'required', userVerification: 'required' },\n attestation: 'none',\n timeout: 60_000,\n },\n });\n return { kind: 'register', response };\n};\n\n/**\n * Browser passkey signer for smart-wallet transactions. Runs a WebAuthn `get()`\n * whose challenge is the raw auth digest (the on-chain verifier checks\n * clientDataJSON.challenge === base64url(digest)), and returns the public\n * assertion fields (base64url) for the server to assemble into the Soroban auth\n * entry. The secp256r1 key never leaves the device.\n */\nexport const browserPasskeySigner: PasskeySigner = async ({ credentialId, challenge }) => {\n const rpId = window.location.hostname;\n const { response } = await startAuthentication({\n optionsJSON: {\n challenge: hexToBase64url(challenge),\n rpId,\n allowCredentials: [{ id: credentialId, type: 'public-key' }],\n userVerification: 'required',\n },\n });\n // @simplewebauthn/browser returns these as base64url strings.\n return {\n authenticatorData: response.authenticatorData,\n clientDataJSON: response.clientDataJSON,\n signature: response.signature,\n };\n};\n","'use client';\n\nimport {\n BuildOutcome,\n EnabledAssetsState,\n NetworkState,\n OnStorageDegrade,\n PollarAdapters,\n PollarClient,\n PollarClientConfig,\n PollarLoginOptions,\n PollarPersistedSession,\n SessionsState,\n SignOutcome,\n StellarNetwork,\n SubmitOutcome,\n TrustlineOutcome,\n TransactionState,\n TxBuildBody,\n TxHistoryState,\n WalletBalanceState,\n WalletId,\n} from '@pollar/core';\nimport { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { ModalErrorBoundary, setModalErrorLogger } from './components/commons';\nimport { DistributionRulesModal } from './components/distribution-rules-modal/DistributionRulesModal';\nimport { EnabledAssetsModal } from './components/enabled-assets-modal/EnabledAssetsModal';\nimport { KycModal } from './components/kyc-modal/KycModal';\nimport { LoginModal } from './components/login-modal/LoginModal';\nimport { RampWidget } from './components/ramp-widget/RampWidget';\nimport { ReceiveModal } from './components/receive-modal/ReceiveModal';\nimport { SendModal } from './components/send-modal/SendModal';\nimport { SessionsModal } from './components/sessions-modal/SessionsModal';\nimport { TransactionModal } from './components/transaction-modal/TransactionModal';\nimport { TxHistoryModal } from './components/tx-history-modal/TxHistoryModal';\nimport { WalletBalanceModal } from './components/wallet-balance-modal/WalletBalanceModal';\nimport { browserPasskeyCeremony, browserPasskeySigner } from './lib/passkey-ceremony';\nimport type { PollarConfig, PollarStyles, RenderWalletsSlot } from './types';\n\nconst DEFAULT_APP_CONFIG: PollarConfig = {\n application: { name: '' },\n styles: {},\n};\n\n/**\n * Compares the fields of a persisted session that actually drive UI re-renders.\n * Replaces a per-listener `JSON.stringify(...) !== JSON.stringify(...)` call —\n * cheaper, allocation-free, and explicit about what counts as \"changed\".\n *\n * If a field is added to `PollarPersistedSession` that consumers read through\n * context, list it here too.\n */\nfunction sessionsEqual(a: PollarPersistedSession | null, b: PollarPersistedSession | null): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n return (\n a.clientSessionId === b.clientSessionId &&\n a.userId === b.userId &&\n a.status === b.status &&\n a.token?.accessToken === b.token?.accessToken &&\n a.token?.refreshToken === b.token?.refreshToken &&\n a.token?.expiresAt === b.token?.expiresAt &&\n a.wallet?.address === b.wallet?.address\n );\n}\n\ninterface PollarContextValue {\n walletAddress: string;\n getClient: () => PollarClient;\n openLoginModal: () => void;\n\n isAuthenticated: boolean;\n /**\n * `true` once the server has confirmed the session (login / refresh /\n * `/auth/session/resume`). `false` while a cold-start session is still\n * optimistic — gate sensitive actions (e.g. signing) on this.\n */\n verified: boolean;\n login: (options: PollarLoginOptions) => void;\n logout: () => void;\n // sessions\n sessions: SessionsState;\n /** Open the active-sessions modal. */\n openSessionsModal: () => void;\n appConfig: PollarConfig;\n styles: PollarStyles;\n /** UI slot for wallet picker (forwarded from provider props). */\n renderWallets?: RenderWalletsSlot;\n // transactions\n openTxModal: () => void;\n tx: TransactionState;\n buildTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<BuildOutcome>;\n signAndSubmitTx: (unsignedXdr?: string) => Promise<SubmitOutcome>;\n /** External-wallet only. Custodial flows should use `signAndSubmitTx`. */\n signTx: (unsignedXdr: string) => Promise<SignOutcome>;\n submitTx: (signedXdr: string) => Promise<SubmitOutcome>;\n /** One-shot: build → sign → submit. Drives the same TransactionState flow as the split calls. */\n buildAndSignAndSubmitTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<SubmitOutcome>;\n /** Alias of `buildAndSignAndSubmitTx`. */\n runTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<SubmitOutcome>;\n walletType: WalletId | null;\n // network\n network: StellarNetwork;\n setNetwork: (network: StellarNetwork) => void;\n // wallet balance\n walletBalance: WalletBalanceState;\n refreshWalletBalance: () => Promise<void>;\n // enabled assets\n /**\n * The application's dashboard-enabled assets paired with the authenticated\n * wallet's on-chain trustline state (`trustlineEstablished` per asset). Driven\n * by {@link refreshAssets}; mirrors {@link walletBalance}.\n */\n enabledAssets: EnabledAssetsState;\n refreshAssets: () => Promise<void>;\n /**\n * Establishes (omit `limit`) or removes (`limit: '0'`) a trustline for an\n * asset. Pass the asset's `sponsored` flag so the app covers the reserve + fee\n * when eligible; otherwise the user's own wallet pays. Mirrors\n * {@link PollarClient.setTrustline}.\n */\n setTrustline: (asset: { code: string; issuer: string }, opts?: { limit?: string; sponsored?: boolean }) => Promise<TrustlineOutcome>;\n /** Open the enabled-assets / trustline-state modal. */\n openEnabledAssetsModal: () => void;\n // kyc\n openKycModal: (options?: {\n country?: string;\n level?: 'basic' | 'intermediate' | 'enhanced';\n onApproved?: () => void;\n }) => void;\n // ramps\n openRampModal: () => void;\n // tx history\n txHistory: TxHistoryState;\n openTxHistoryModal: () => void;\n // wallet balance modal\n openWalletBalanceModal: () => void;\n // send / receive\n openSendModal: () => void;\n openReceiveModal: () => void;\n // distribution\n openDistributionRulesModal: () => void;\n // adapters\n adapters?: PollarAdapters;\n}\n\nconst PollarContext = createContext<PollarContextValue | null>(null);\n\ninterface PollarProviderProps {\n /**\n * Either a pre-built `PollarClient` instance (useful for testing or for\n * reusing the same client outside React) or a `PollarClientConfig` that the\n * provider will use to construct one on mount.\n *\n * The client is locked at first render: changing this prop afterwards is\n * ignored. To swap clients, unmount and remount the provider.\n */\n client: PollarClient | PollarClientConfig;\n /**\n * Local override of the `/applications/config` response. If provided (even\n * `{}`), the remote fetch is skipped and missing fields fall back to the\n * defaults in `LoginModalTemplate`. If `undefined`, the SDK fetches\n * `/applications/config` on mount.\n */\n appConfig?: PollarConfig;\n /** UI customization slots. */\n ui?: {\n /** Replaces the default Freighter/Albedo wallet picker. */\n renderWallets?: RenderWalletsSlot;\n };\n adapters?: PollarAdapters;\n /**\n * Notified when persistent storage silently degrades to in-memory mode\n * (Safari private browsing quota errors, sandboxed iframes, etc.). Use this\n * to surface a UI hint that the session won't survive a reload, log to\n * telemetry, or fall back to a different storage strategy.\n *\n * Fires at most once per provider lifetime; late mounts get the latched\n * state replayed on subscribe.\n */\n onStorageDegrade?: OnStorageDegrade;\n children: ReactNode;\n}\n\nexport function PollarProvider({\n client,\n appConfig: appConfigProp,\n ui,\n adapters,\n onStorageDegrade,\n children,\n}: PollarProviderProps) {\n // When the consumer passes a config (not a ready client), inject the browser\n // passkey ceremony so `loginSmartWallet()` works out of the box on web. The\n // consumer can override it (e.g. a React Native native provider) via\n // `client.passkey`.\n const [pollarClient] = useState<PollarClient>(() =>\n client instanceof PollarClient\n ? client\n : new PollarClient({ passkey: browserPasskeyCeremony, passkeySign: browserPasskeySigner, ...client }),\n );\n const [networkState, setNetworkState] = useState<NetworkState>(() => pollarClient.getNetworkState());\n const [sessionState, setSessionState] = useState<PollarPersistedSession | null>(null);\n // `true` once the server has confirmed the restored session (via login,\n // refresh, or `/auth/session/resume`). Use it to gate sensitive actions\n // while a cold-start session is still optimistic.\n const [verified, setVerified] = useState(false);\n const [transaction, setTransaction] = useState<TransactionState>({ step: 'idle' });\n const [txHistory, setTxHistory] = useState<TxHistoryState>({ step: 'idle' });\n const [sessions, setSessions] = useState<SessionsState>({ step: 'idle' });\n const [walletBalance, setWalletBalance] = useState<WalletBalanceState>({ step: 'idle' });\n const [enabledAssets, setEnabledAssets] = useState<EnabledAssetsState>({ step: 'idle' });\n const [resolvedConfig, setResolvedConfig] = useState<PollarConfig>(() => appConfigProp ?? DEFAULT_APP_CONFIG);\n\n useEffect(() => {\n return pollarClient.onTransactionStateChange(setTransaction);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onTxHistoryStateChange(setTxHistory);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onSessionsStateChange(setSessions);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onWalletBalanceStateChange(setWalletBalance);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onEnabledAssetsStateChange(setEnabledAssets);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onNetworkStateChange((state) => {\n setNetworkState(state);\n });\n }, [pollarClient]);\n\n useEffect(() => {\n if (!onStorageDegrade) return;\n return pollarClient.onStorageDegrade(onStorageDegrade);\n }, [pollarClient, onStorageDegrade]);\n\n useEffect(() => {\n return pollarClient.onAuthStateChange((authState) => {\n if (authState.step === 'authenticated') {\n setSessionState((prev) => (sessionsEqual(prev, authState.session) ? prev : authState.session));\n // The session object is identical between the optimistic restore and\n // the post-resume confirmation, so `verified` is tracked separately —\n // otherwise the sessionsEqual short-circuit would swallow the flip.\n setVerified(authState.verified);\n } else if (authState.step === 'idle') {\n setSessionState(null);\n setVerified(false);\n }\n });\n }, [pollarClient]);\n\n // Presence of `appConfig` is the opt-out: if the consumer passes it (even\n // `{}`), we trust them and skip the remote fetch.\n // Route the modal error boundary's logs through the client's level-gated\n // logger (it's a class component that can't read context directly).\n useEffect(() => {\n setModalErrorLogger(pollarClient.getLogger());\n }, [pollarClient]);\n\n useEffect(() => {\n if (appConfigProp !== undefined) return;\n let cancelled = false;\n pollarClient\n .getAppConfig()\n .then((fetched) => {\n if (cancelled || !fetched) return;\n setResolvedConfig(fetched as PollarConfig);\n })\n .catch((err) => {\n pollarClient.getLogger().error('[PollarProvider] getAppConfig failed', err);\n });\n return () => {\n cancelled = true;\n };\n }, [pollarClient, appConfigProp]);\n\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n const [transactionModalOpen, setTransactionModalOpen] = useState(false);\n const [kycModalOpen, setKycModalOpen] = useState(false);\n const [kycModalOptions, setKycModalOptions] = useState<{\n country?: string;\n level?: 'basic' | 'intermediate' | 'enhanced';\n onApproved?: () => void;\n }>({});\n const [rampModalOpen, setRampModalOpen] = useState(false);\n const [txHistoryModalOpen, setTxHistoryModalOpen] = useState(false);\n const [walletBalanceModalOpen, setWalletBalanceModalOpen] = useState(false);\n const [enabledAssetsModalOpen, setEnabledAssetsModalOpen] = useState(false);\n const [sendModalOpen, setSendModalOpen] = useState(false);\n const [receiveModalOpen, setReceiveModalOpen] = useState(false);\n const [sessionsModalOpen, setSessionsModalOpen] = useState(false);\n const [distributionRulesModalOpen, setDistributionRulesModalOpen] = useState(false);\n\n // PII (incl. providers.wallet.address) lives on `client.getUserProfile()`, not on the\n // persisted session. For every wallet type, `wallet.address` holds the on-chain\n // address we care about.\n const walletAddress = sessionState?.wallet?.address || '';\n const getClient = useCallback(() => pollarClient, [pollarClient]);\n // refreshBalance resolves the own wallet server-side from the session;\n // walletAddress stays in deps so the callback re-binds when the wallet changes.\n const refreshWalletBalance = useCallback(() => pollarClient.refreshBalance(), [pollarClient, walletAddress]);\n // refreshAssets resolves the own wallet server-side from the session;\n // walletAddress stays in deps so the callback re-binds when the wallet changes.\n const refreshAssets = useCallback(() => pollarClient.refreshAssets(), [pollarClient, walletAddress]);\n\n const renderWallets = ui?.renderWallets;\n\n const contextValue: PollarContextValue = useMemo(() => {\n const styles: PollarStyles = resolvedConfig.styles ?? {};\n return {\n // session\n walletAddress,\n isAuthenticated: !!walletAddress,\n verified,\n walletType: pollarClient.getWalletType(),\n // client\n getClient,\n // auth\n login: (options: PollarLoginOptions) => pollarClient.login(options),\n logout: () => pollarClient.logout(),\n openLoginModal: () => setLoginModalOpen(true),\n // transactions\n tx: transaction,\n buildTx: (operation, params, options) => pollarClient.buildTx(operation, params, options),\n signAndSubmitTx: (unsignedXdr?: string) => pollarClient.signAndSubmitTx(unsignedXdr),\n signTx: (unsignedXdr: string) => pollarClient.signTx(unsignedXdr),\n submitTx: (signedXdr: string) => pollarClient.submitTx(signedXdr),\n buildAndSignAndSubmitTx: (operation, params, options) => pollarClient.buildAndSignAndSubmitTx(operation, params, options),\n runTx: (operation, params, options) => pollarClient.runTx(operation, params, options),\n openTxModal: () => setTransactionModalOpen(true),\n // tx history\n txHistory,\n openTxHistoryModal: () => setTxHistoryModalOpen(true),\n // wallet balance\n walletBalance,\n refreshWalletBalance,\n openWalletBalanceModal: () => setWalletBalanceModalOpen(true),\n // enabled assets\n enabledAssets,\n refreshAssets,\n setTrustline: (asset, opts) => pollarClient.setTrustline(asset, opts),\n openEnabledAssetsModal: () => setEnabledAssetsModalOpen(true),\n // send / receive\n openSendModal: () => setSendModalOpen(true),\n openReceiveModal: () => setReceiveModalOpen(true),\n // sessions\n sessions,\n openSessionsModal: () => setSessionsModalOpen(true),\n // distribution\n openDistributionRulesModal: () => setDistributionRulesModalOpen(true),\n // network\n network: networkState.step === 'connected' ? networkState.network : 'testnet',\n setNetwork: (network: StellarNetwork) => pollarClient.setNetwork(network),\n // kyc\n openKycModal: (options = {}) => {\n setKycModalOptions(options);\n setKycModalOpen(true);\n },\n // ramp\n openRampModal: () => setRampModalOpen(true),\n // config\n appConfig: resolvedConfig,\n styles,\n renderWallets,\n adapters,\n } as PollarContextValue;\n }, [\n walletAddress,\n verified,\n pollarClient,\n getClient,\n transaction,\n txHistory,\n sessions,\n walletBalance,\n refreshWalletBalance,\n enabledAssets,\n refreshAssets,\n networkState,\n resolvedConfig,\n adapters,\n renderWallets,\n ]);\n\n return (\n <PollarContext.Provider value={contextValue}>\n {children}\n {loginModalOpen && (\n <ModalErrorBoundary onClose={() => setLoginModalOpen(false)}>\n <LoginModal onClose={() => setLoginModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {transactionModalOpen && (\n <ModalErrorBoundary onClose={() => setTransactionModalOpen(false)}>\n <TransactionModal onClose={() => setTransactionModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {kycModalOpen && (\n <ModalErrorBoundary onClose={() => setKycModalOpen(false)}>\n <KycModal\n onClose={() => setKycModalOpen(false)}\n {...(kycModalOptions.country !== undefined && { country: kycModalOptions.country })}\n {...(kycModalOptions.level !== undefined && { level: kycModalOptions.level })}\n {...(kycModalOptions.onApproved !== undefined && { onApproved: kycModalOptions.onApproved })}\n />\n </ModalErrorBoundary>\n )}\n {rampModalOpen && (\n <ModalErrorBoundary onClose={() => setRampModalOpen(false)}>\n <RampWidget onClose={() => setRampModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {txHistoryModalOpen && (\n <ModalErrorBoundary onClose={() => setTxHistoryModalOpen(false)}>\n <TxHistoryModal onClose={() => setTxHistoryModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {walletBalanceModalOpen && (\n <ModalErrorBoundary onClose={() => setWalletBalanceModalOpen(false)}>\n <WalletBalanceModal onClose={() => setWalletBalanceModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {enabledAssetsModalOpen && (\n <ModalErrorBoundary onClose={() => setEnabledAssetsModalOpen(false)}>\n <EnabledAssetsModal onClose={() => setEnabledAssetsModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {sendModalOpen && (\n <ModalErrorBoundary onClose={() => setSendModalOpen(false)}>\n <SendModal onClose={() => setSendModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {receiveModalOpen && (\n <ModalErrorBoundary onClose={() => setReceiveModalOpen(false)}>\n <ReceiveModal onClose={() => setReceiveModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {sessionsModalOpen && (\n <ModalErrorBoundary onClose={() => setSessionsModalOpen(false)}>\n <SessionsModal onClose={() => setSessionsModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {distributionRulesModalOpen && (\n <ModalErrorBoundary onClose={() => setDistributionRulesModalOpen(false)}>\n <DistributionRulesModal onClose={() => setDistributionRulesModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n </PollarContext.Provider>\n );\n}\n\nexport function usePollar() {\n const ctx = useContext(PollarContext);\n if (!ctx) {\n throw new Error('usePollar must be used inside <PollarProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport type { PollarAdapter, SubmitOutcome } from '@pollar/core';\nimport { usePollar } from './context';\n\ntype WrappedAdapter<T extends PollarAdapter> = {\n [K in keyof T]: (params: Parameters<T[K]>[0]) => Promise<SubmitOutcome>;\n};\n\nexport function createPollarAdapterHook<T extends PollarAdapter>(key: string) {\n return function usePollarAdapter(): WrappedAdapter<T> {\n const { adapters, signAndSubmitTx } = usePollar();\n const adapter = adapters?.[key] as T | undefined;\n\n if (!adapter) {\n throw new Error(`No adapter \"${key}\" provided to PollarProvider`);\n }\n\n return Object.fromEntries(\n Object.entries(adapter).map(([name, fn]) => [\n name,\n async (params: Parameters<typeof fn>[0]) => {\n const { unsignedTransaction } = await fn(params);\n return signAndSubmitTx(unsignedTransaction);\n },\n ]),\n ) as WrappedAdapter<T>;\n };\n}\n","'use client';\n\nimport { WalletId } from '@pollar/core';\nimport { LOGO_POLLAR } from '../../constants';\nimport './WalletButton.css';\n\nfunction ButtonLogo() {\n return <img src={LOGO_POLLAR} alt=\"Pollar\" width={22} height={22} className=\"wallet-btn-logo\" />;\n}\n\nexport interface WalletButtonTemplateProps {\n walletAddress: string | null;\n accentColor: string;\n open: boolean;\n copied: boolean;\n dropdownBg: string;\n dropdownBorder: string;\n itemColor: string;\n wrapperRef: React.RefObject<HTMLDivElement>;\n isInProgress: boolean;\n walletType: WalletId | null;\n onToggleOpen: () => void;\n onCopy: () => void;\n onWalletBalance: () => void;\n onTxHistory: () => void;\n onSend: () => void;\n onReceive: () => void;\n onSessions: () => void;\n onKyc: () => void;\n onRamp: () => void;\n onDistributionRules: () => void;\n onLogout: () => void;\n onLogin: () => void;\n}\n\nfunction cropWallet(address: string) {\n if (address.length <= 12) return address;\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n}\n\nexport function WalletButtonTemplate({\n walletAddress,\n accentColor,\n open,\n copied,\n dropdownBg,\n dropdownBorder,\n itemColor,\n wrapperRef,\n isInProgress,\n onToggleOpen,\n onCopy,\n onWalletBalance,\n onTxHistory,\n onSend,\n onReceive,\n onSessions,\n onKyc,\n onRamp,\n onDistributionRules,\n onLogout,\n onLogin,\n}: WalletButtonTemplateProps) {\n if (!walletAddress) {\n return (\n <button type=\"button\" className=\"wallet-login-btn\" style={{ backgroundColor: accentColor }} onClick={onLogin}>\n <ButtonLogo />\n Login with Pollar\n </button>\n );\n }\n\n return (\n <div className=\"wallet-wrapper\" ref={wrapperRef}>\n <button\n className=\"wallet-btn\"\n style={{ backgroundColor: accentColor }}\n onClick={isInProgress ? undefined : onToggleOpen}\n disabled={isInProgress}\n aria-busy={isInProgress}\n >\n <span className=\"wallet-btn-label\">{cropWallet(walletAddress)}</span>\n {isInProgress ? (\n <svg className=\"wallet-btn-spinner\" viewBox=\"0 0 12 12\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden>\n <circle cx=\"6\" cy=\"6\" r=\"4.5\" stroke=\"rgba(255,255,255,0.35)\" strokeWidth=\"1.5\" />\n <circle\n cx=\"6\"\n cy=\"6\"\n r=\"4.5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeDasharray=\"14 9\"\n transform=\"rotate(-90 6 6)\"\n />\n </svg>\n ) : (\n <svg\n className={`wallet-chevron${open ? ' open' : ''}`}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"2,4 6,8 10,4\" />\n </svg>\n )}\n </button>\n\n {open && (\n <div className=\"wallet-dropdown\" style={{ backgroundColor: dropdownBg, borderColor: dropdownBorder }}>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onSend}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\" />\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\" />\n </svg>\n Send\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onReceive}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"8 17 12 21 16 17\" />\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\" />\n <path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\" />\n </svg>\n Receive\n </button>\n <div className=\"wallet-dropdown-divider\" />\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onCopy}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n {copied ? 'Copied!' : 'Copy address'}\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onWalletBalance}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\" />\n <circle cx=\"16\" cy=\"12\" r=\"2\" />\n <path d=\"M22 8H12\" />\n </svg>\n Wallet balance\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onTxHistory}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14,2 14,8 20,8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10,9 9,9 8,9\" />\n </svg>\n Transaction history\n </button>\n <div className=\"wallet-dropdown-divider\" />\n {/* Buy / Sell (ramp) */}\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onRamp}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"17 1 21 5 17 9\" />\n <path d=\"M3 11V9a4 4 0 0 1 4-4h14\" />\n <polyline points=\"7 23 3 19 7 15\" />\n <path d=\"M21 13v2a4 4 0 0 1-4 4H3\" />\n </svg>\n Buy / Sell\n </button>\n {/* Identity verification */}\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onKyc}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z\" />\n <path d=\"M2 21v-1a6 6 0 0 1 6-6h2\" />\n <polyline points=\"16 11 18 13 22 9\" />\n </svg>\n Identity verification\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onDistributionRules}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"18\" cy=\"5\" r=\"3\" />\n <circle cx=\"6\" cy=\"12\" r=\"3\" />\n <circle cx=\"18\" cy=\"19\" r=\"3\" />\n <line x1=\"8.59\" y1=\"13.51\" x2=\"15.42\" y2=\"17.49\" />\n <line x1=\"15.41\" y1=\"6.51\" x2=\"8.59\" y2=\"10.49\" />\n </svg>\n Distribution rules\n </button>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={onSessions}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\" />\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n </svg>\n Active sessions\n </button>\n <div className=\"wallet-dropdown-divider\" />\n <button className=\"wallet-dropdown-item danger\" onClick={onLogout}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16,17 21,12 16,7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n Log out\n </button>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { WalletButtonTemplate } from './WalletButtonTemplate';\nimport './WalletButton.css';\n\nexport function WalletButton() {\n const {\n getClient,\n walletAddress,\n styles,\n openLoginModal,\n openTxHistoryModal,\n openWalletBalanceModal,\n openSendModal,\n openReceiveModal,\n openSessionsModal,\n openKycModal,\n openRampModal,\n openDistributionRulesModal,\n tx: transaction,\n walletType,\n } = usePollar();\n const [open, setOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isInProgress = transaction.step === 'building' || transaction.step === 'signing';\n\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const isDark = theme === 'dark';\n const dropdownBg = isDark ? '#18181b' : '#fff';\n const dropdownBorder = isDark ? '#3f3f46' : '#e4e4e7';\n const itemColor = isDark ? '#fafafa' : '#18181b';\n\n useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n useEffect(\n () => () => {\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n },\n [],\n );\n\n async function handleCopy() {\n if (!walletAddress) return;\n await navigator.clipboard.writeText(walletAddress);\n setCopied(true);\n if (copyTimerRef.current !== null) clearTimeout(copyTimerRef.current);\n copyTimerRef.current = setTimeout(() => {\n copyTimerRef.current = null;\n setCopied(false);\n }, 1500);\n }\n\n function handleLogout() {\n setOpen(false);\n getClient().logout();\n }\n\n function handleWalletBalance() {\n setOpen(false);\n openWalletBalanceModal();\n }\n\n function handleTxHistory() {\n setOpen(false);\n openTxHistoryModal();\n }\n\n function handleSend() {\n setOpen(false);\n openSendModal();\n }\n\n function handleReceive() {\n setOpen(false);\n openReceiveModal();\n }\n\n function handleSessions() {\n setOpen(false);\n openSessionsModal();\n }\n\n function handleKyc() {\n setOpen(false);\n openKycModal();\n }\n\n function handleRamp() {\n setOpen(false);\n openRampModal();\n }\n\n function handleDistributionRules() {\n setOpen(false);\n openDistributionRulesModal();\n }\n\n return (\n <WalletButtonTemplate\n walletAddress={walletAddress ?? null}\n accentColor={accentColor}\n open={open}\n copied={copied}\n dropdownBg={dropdownBg}\n dropdownBorder={dropdownBorder}\n itemColor={itemColor}\n wrapperRef={wrapperRef}\n isInProgress={isInProgress}\n walletType={walletType}\n onToggleOpen={() => setOpen((v) => !v)}\n onCopy={handleCopy}\n onWalletBalance={handleWalletBalance}\n onTxHistory={handleTxHistory}\n onSend={handleSend}\n onReceive={handleReceive}\n onSessions={handleSessions}\n onKyc={handleKyc}\n onRamp={handleRamp}\n onDistributionRules={handleDistributionRules}\n onLogout={handleLogout}\n onLogin={openLoginModal}\n />\n );\n}\n"]}