zerc20-client-sdk 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +34 -9
  2. package/dist/assets/abi/Verifier.json +2093 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/operations/receive/__tests__/redeemTransaction.test.js +38 -0
  8. package/dist/operations/receive/__tests__/redeemTransaction.test.js.map +1 -1
  9. package/dist/operations/receive/index.d.ts +1 -1
  10. package/dist/operations/receive/index.d.ts.map +1 -1
  11. package/dist/operations/receive/index.js.map +1 -1
  12. package/dist/operations/receive/redeemTransaction.d.ts +2 -1
  13. package/dist/operations/receive/redeemTransaction.d.ts.map +1 -1
  14. package/dist/operations/receive/redeemTransaction.js +11 -5
  15. package/dist/operations/receive/redeemTransaction.js.map +1 -1
  16. package/dist/operations/receive/types.d.ts +25 -2
  17. package/dist/operations/receive/types.d.ts.map +1 -1
  18. package/dist/operations/relay/__tests__/relay.test.d.ts +2 -0
  19. package/dist/operations/relay/__tests__/relay.test.d.ts.map +1 -0
  20. package/dist/operations/relay/__tests__/relay.test.js +421 -0
  21. package/dist/operations/relay/__tests__/relay.test.js.map +1 -0
  22. package/dist/operations/relay/index.d.ts +3 -0
  23. package/dist/operations/relay/index.d.ts.map +1 -0
  24. package/dist/operations/relay/index.js +2 -0
  25. package/dist/operations/relay/index.js.map +1 -0
  26. package/dist/operations/relay/relay.d.ts +18 -0
  27. package/dist/operations/relay/relay.d.ts.map +1 -0
  28. package/dist/operations/relay/relay.js +162 -0
  29. package/dist/operations/relay/relay.js.map +1 -0
  30. package/dist/operations/relay/types.d.ts +70 -0
  31. package/dist/operations/relay/types.d.ts.map +1 -0
  32. package/dist/operations/relay/types.js +2 -0
  33. package/dist/operations/relay/types.js.map +1 -0
  34. package/package.json +16 -16
@@ -1 +1,2093 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"endpoint","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"activateEmergency","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deactivateEmergency","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"globalTransferRoots","inputs":[{"name":"index","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"hubEid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"token_","type":"address","internalType":"address"},{"name":"hubEid_","type":"uint32","internalType":"uint32"},{"name":"delegate","type":"address","internalType":"address"},{"name":"rootDecider_","type":"address","internalType":"address"},{"name":"withdrawGlobalDecider_","type":"address","internalType":"address"},{"name":"withdrawLocalDecider_","type":"address","internalType":"address"},{"name":"singleWithdrawGlobalVerifier_","type":"address","internalType":"address"},{"name":"singleWithdrawLocalVerifier_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isUpToDate","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestAggSeq","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestProvedIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestRelayedIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestReservedIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"proveTransferRoot","inputs":[{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"provedTransferRoots","inputs":[{"name":"index","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quoteRelay","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"relayTransferRoot","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"receipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reserveHashChain","inputs":[],"outputs":[{"name":"index","type":"uint64","internalType":"uint64"},{"name":"hashChain","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"reservedHashChains","inputs":[{"name":"index","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rootDecider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVerifiers","inputs":[{"name":"newRootDecider","type":"address","internalType":"address"},{"name":"newWithdrawGlobalDecider","type":"address","internalType":"address"},{"name":"newWithdrawLocalDecider","type":"address","internalType":"address"},{"name":"newSingleWithdrawGlobalVerifier","type":"address","internalType":"address"},{"name":"newSingleWithdrawLocalVerifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"singleTeleport","inputs":[{"name":"isGlobal","type":"bool","internalType":"bool"},{"name":"rootHint","type":"uint64","internalType":"uint64"},{"name":"gr","type":"tuple","internalType":"struct GeneralRecipientLib.GeneralRecipient","components":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"tweak","type":"bytes32","internalType":"bytes32"}]},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"singleWithdrawGlobalVerifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"singleWithdrawLocalVerifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"teleport","inputs":[{"name":"isGlobal","type":"bool","internalType":"bool"},{"name":"rootHint","type":"uint64","internalType":"uint64"},{"name":"gr","type":"tuple","internalType":"struct GeneralRecipientLib.GeneralRecipient","components":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"tweak","type":"bytes32","internalType":"bytes32"}]},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalTeleported","inputs":[{"name":"recipient","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawGlobalDecider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawLocalDecider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DeactivateEmergency","inputs":[],"anonymous":false},{"type":"event","name":"EmergencyTriggered","inputs":[{"name":"index","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"root1","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"root2","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GlobalRootSaved","inputs":[{"name":"aggSeq","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"root","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"HashChainReserved","inputs":[{"name":"index","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"hashChain","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Teleport","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"isGlobal","type":"bool","indexed":false,"internalType":"bool"},{"name":"rootHint","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"transferRoot","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gr","type":"tuple","indexed":false,"internalType":"struct GeneralRecipientLib.GeneralRecipient","components":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"tweak","type":"bytes32","internalType":"bytes32"}]}],"anonymous":false},{"type":"event","name":"TransferRootProved","inputs":[{"name":"index","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"root","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TransferRootRelayed","inputs":[{"name":"index","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"root","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lzMsgId","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VerifiersSet","inputs":[{"name":"rootDecider","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawGlobalDecider","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawLocalDecider","type":"address","indexed":false,"internalType":"address"},{"name":"singleWithdrawGlobalVerifier","type":"address","indexed":false,"internalType":"address"},{"name":"singleWithdrawLocalVerifier","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ExpectedRootZero","inputs":[{"name":"rootHint","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"FinalRecipientMismatch","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FinalTransferRootMismatch","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientMsgValue","inputs":[{"name":"required","type":"uint256","internalType":"uint256"},{"name":"provided","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidHubSource","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"InvalidInitialLastLeafIndex","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialTotalValue","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidProof","inputs":[]},{"type":"error","name":"InvalidRecipientChainId","inputs":[{"name":"provided","type":"uint64","internalType":"uint64"},{"name":"expected","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NewHashChainMismatch","inputs":[{"name":"index","type":"uint64","internalType":"uint64"},{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NoProvedRoot","inputs":[]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NothingToWithdraw","inputs":[{"name":"currentTotal","type":"uint256","internalType":"uint256"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OldRootMismatch","inputs":[{"name":"index","type":"uint64","internalType":"uint64"},{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OldRootZero","inputs":[{"name":"index","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"RecipientMismatch","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ReserveHashChainNotFound","inputs":[{"name":"index","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TransferRootMismatch","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroToken","inputs":[]}],"bytecode":{"object":"0x60c06040523060a052348015610013575f5ffd5b50604051613b1f380380613b1f83398101604081905261003291610128565b6001600160a01b038116608081905261005e576040516307def60560e11b815260040160405180910390fd5b61006661006c565b50610155565b5f54610100900460ff16156100d75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610126575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610138575f5ffd5b81516001600160a01b038116811461014e575f5ffd5b9392505050565b60805160a0516139636101bc5f395f8181610c6501528181610ca501528181610f7201528181610fb2015261102901525f818161043901528181610a580152818161186901528181611e1e0152818161234101528181612864015261291b01526139635ff3fe608060405260043610610249575f3560e01c806382413eac11610134578063ca466380116100b3578063e9debe0511610078578063e9debe05146106d8578063f2fde38b146106ec578063fa6869481461070b578063fc0c546a1461071f578063ff53cc0414610733578063ff7bd03d14610747575f5ffd5b8063ca46638014610653578063ca5eb5e114610667578063d22f96df14610686578063d4d122441461069a578063e2910dd3146106b9575f5ffd5b80639f487dbd116100f95780639f487dbd1461059d578063a97f176f146105b1578063bb0b6a53146105c5578063be6a2c1514610615578063c172e9e314610634575f5ffd5b806382413eac1461050e57806386106a291461052d5780638da5cb5b1461054d5780638fe64dd41461056a5780639854265f1461057e575f5ffd5b80634a80034f116101cb5780635e280f11116101905780635e280f111461042857806363373bdc1461045b57806369cc1d271461048e578063715018a6146104ad578063755d89f2146104c15780637d25a05e146104d5575f5ffd5b80634a80034f1461039f5780634edddf6b146103cb5780634f1ef286146103ea57806352d1902d146103fd5780635c975abb14610411575f5ffd5b80633400288b116102115780633400288b146103005780633659cfe61461031f578063442bde041461033e578063457e8b97146103625780634600f17c14610376575f5ffd5b806311d297231461024d57806313137d651461026e57806317442b70146102815780631bb29877146102a757806326efeb2b146102d4575b5f5ffd5b348015610258575f5ffd5b5061026c610267366004612d79565b610766565b005b61026c61027c366004612de1565b610a56565b34801561028c575f5ffd5b50604080516001815260026020820152015b60405180910390f35b3480156102b2575f5ffd5b506102c66102c1366004612e8f565b610b11565b60405190815260200161029e565b3480156102df575f5ffd5b506102f36102ee366004612d79565b610b3b565b60405161029e9190612eaa565b34801561030b575f5ffd5b5061026c61031a366004612ed9565b610bdd565b34801561032a575f5ffd5b5061026c610339366004612f01565b610c5b565b348015610349575f5ffd5b50610352610d22565b604051901515815260200161029e565b34801561036d575f5ffd5b5061026c610d4b565b348015610381575f5ffd5b5061038a610d5d565b60405163ffffffff909116815260200161029e565b3480156103aa575f5ffd5b506103b3610d79565b6040516001600160a01b03909116815260200161029e565b3480156103d6575f5ffd5b5061026c6103e5366004612f1c565b610d94565b61026c6103f836600461302a565b610f68565b348015610408575f5ffd5b506102c661101d565b34801561041c575f5ffd5b5060655460ff16610352565b348015610433575f5ffd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b348015610466575f5ffd5b5061046f6110ce565b604080516001600160401b03909316835260208301919091520161029e565b348015610499575f5ffd5b506102c66104a83660046130cf565b61122c565b3480156104b8575f5ffd5b5061026c611248565b3480156104cc575f5ffd5b506103b3611259565b3480156104e0575f5ffd5b506104f66104ef366004612ed9565b5f92915050565b6040516001600160401b03909116815260200161029e565b348015610519575f5ffd5b506103526105283660046130e6565b611274565b61054061053b366004612d79565b611289565b60405161029e9190613148565b348015610558575f5ffd5b506033546001600160a01b03166103b3565b348015610575575f5ffd5b506103b36114a1565b348015610589575f5ffd5b5061026c610598366004613196565b6114bc565b3480156105a8575f5ffd5b506104f661167f565b3480156105bc575f5ffd5b506104f661169a565b3480156105d0575f5ffd5b506102c66105df36600461320b565b63ffffffff165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b348015610620575f5ffd5b5061026c61062f366004613224565b6116bc565b34801561063f575f5ffd5b506102c661064e366004612e8f565b6117fd565b34801561065e575f5ffd5b506103b3611827565b348015610672575f5ffd5b5061026c610681366004612f01565b611842565b348015610691575f5ffd5b506103b36118c3565b3480156106a5575f5ffd5b5061026c6106b4366004613196565b6118de565b3480156106c4575f5ffd5b506102c66106d3366004612e8f565b6119eb565b3480156106e3575f5ffd5b506104f6611a15565b3480156106f7575f5ffd5b5061026c610706366004612f01565b611a37565b348015610716575f5ffd5b5061026c611aad565b34801561072a575f5ffd5b506103b3611ae7565b34801561073e575f5ffd5b506104f6611aff565b348015610752575f5ffd5b50610352610761366004613291565b611b21565b61076e611b3e565b5f61077b828401846132ab565b60208101516060820151608083015160a084015160c08501519495509293919290915f6107a6611b84565b600181015460405163bd70b10d60e01b81529192506001600160a01b03169063bd70b10d906107d9908a90600401613312565b602060405180830381865afa1580156107f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108189190613343565b610835576040516309bde33960e01b815260040160405180910390fd5b858561086557604051633e4231c560e21b81526001600160401b0390911660048201526024015b60405180910390fd5b506001600160401b0386165f9081526008820160205260409020548681878082146108bc5760405163330cc0b760e21b81526001600160401b0390931660048401526024830191909152604482015260640161085c565b5050506001600160401b0385165f90815260078301602052604090205485816109045760405163028fb25160e11b81526001600160401b03909116600482015260240161085c565b5085818681811461094157604051637588dabf60e11b81526001600160401b0390931660048401526024830191909152604482015260640161085c565b5050506001600160401b0386165f908152600884016020526040902054801580159061096d5750848114155b156109cd5761097a611c05565b60408051828152602081018790526001600160401b038916917f02c176cf3735d2128d6be5286548b0a34500e9c9826cac57be03a380cb3da3a091015b60405180910390a2505050505050505050505050565b6001600160401b038088165f818152600887016020526040902087905560068601549091161015610a175760068401805467ffffffffffffffff19166001600160401b0389161790555b866001600160401b03167fdea8bdf257f42e5441e81fcac8c8b04c3eb571a8896ea38adf6a8d9989594e13866040516109b791815260200190565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610aa1576040516391ac5e4f60e01b815233600482015260240161085c565b60208701803590610abb90610ab6908a61320b565b611c5f565b14610af957610acd602088018861320b565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161085c565b610b0887878787878787611cc2565b50505050505050565b5f610b1a611b84565b6001600160401b039092165f90815260089290920160205250604090205490565b604080518082019091525f8082526020820152604080515f6020820181905291810182905260600160405160208183030381529060405290505f610b7d611b84565b9050610bd2815f0160149054906101000a900463ffffffff168387878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509250611e09915050565b925050505b92915050565b610be5611ee7565b63ffffffff82165f8181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052815190927f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b92908290030190a1505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ca35760405162461bcd60e51b815260040161085c9061335e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610cd5611f41565b6001600160a01b031614610cfb5760405162461bcd60e51b815260040161085c906133aa565b610d0481611f55565b604080515f80825260208201909252610d1f91839190611f5d565b50565b5f5f610d2c611b84565b600601546001600160401b03808216600160801b909204161492915050565b610d53611ee7565b610d5b611c05565b565b5f610d66611b84565b54600160a01b900463ffffffff16919050565b5f610d82611b84565b600401546001600160a01b0316919050565b5f54610100900460ff1615808015610db257505f54600160ff909116105b80610dcb5750303b158015610dcb57505f5460ff166001145b610e2e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161085c565b5f805460ff191660011790558015610e4f575f805461ff0019166101001790555b6001600160a01b038916610e765760405163ad1991f560e01b815260040160405180910390fd5b6001600160a01b0386161580610e9357506001600160a01b038516155b80610ea557506001600160a01b038416155b80610eb757506001600160a01b038316155b80610ec957506001600160a01b038216155b15610ee75760405163d92e233d60e01b815260040160405180910390fd5b610eef6120cc565b610ef8876120fa565b610f00612135565b610f0f8989888888888861215b565b610f18876122bf565b8015610f5d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fb05760405162461bcd60e51b815260040161085c9061335e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fe2611f41565b6001600160a01b0316146110085760405162461bcd60e51b815260040161085c906133aa565b61101182611f55565b610a5282826001611f5d565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110bc5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161085c565b505f5160206138e75f395f51905f5290565b5f5f5f6110d9611b84565b805460408051632986c0e560e01b815290519293506001600160a01b03909116915f918391632986c0e5916004808201926020929091908290030181865afa158015611127573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114b91906133f6565b90505f826001600160a01b031663c841eccb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ae91906133f6565b6001600160401b0383165f81815260078701602090815260409182902084905560058801805467ffffffffffffffff60a01b1916600160a01b8502179055905183815292935090917f31003eef6c7b1b23395ce30d66bb400da7d389a879a5d1e174103a072a4da15f910160405180910390a2909590945092505050565b5f611235611b84565b5f928352600a0160205250604090205490565b611250611ee7565b610d5b5f6122bf565b5f611262611b84565b600501546001600160a01b0316919050565b6001600160a01b03811630145b949350505050565b611291612cf5565b611299611b3e565b5f6112a2611b84565b60068101546001600160401b03165f8181526008830160205260408120549293509091908190036112e6576040516342a5a05760e01b815260040160405180910390fd5b5f818360405160200161130c9291909182526001600160401b0316602082015260400190565b60408051808303601f1901815286546020601f8b018190048102850181019093528984529093505f9261136a92600160a01b90920463ffffffff16918591908c908c90819084018382808284375f9201829052509250611e09915050565b805190915034101561139b578051604051631f2dda7760e21b8152600481019190915234602482015260440161085c565b6040805180820182523481526020838101518183015287548351601f8c018390048302810183019094528a8452919261140292600160a01b900463ffffffff16918691908d908d90819084018382808284375f920191909152508792503391506123109050565b9650846001600160401b03167fbecd78746ad6fbb4486ef62d297810172e63cfafbd02a8306c4e639b8d2a99fd85895f015160405160200161144691815260200190565b60408051601f1981840301815290829052611461929161343b565b60405180910390a2505050600690920180546001600160401b03909216600160801b0267ffffffffffffffff60801b199092169190911790555092915050565b5f6114aa611b84565b600101546001600160a01b0316919050565b6114c4611b3e565b5f6114d182840184613453565b6020810151604082015160608301519293509091801561150757604051632e86b29d60e01b815260040161085c91815260200190565b506080830151801561152f57604051631dfca83b60e01b815260040161085c91815260200190565b5060a08301518281811461155f57604051635701303960e11b81526004810192909252602482015260440161085c565b505060c083015181818114611590576040516328cc402560e11b81526004810192909252602482015260440161085c565b50506101008301515f6115a1611b84565b90505f8a6115bc5760038201546001600160a01b03166115cb565b60028201546001600160a01b03165b604051633b7f43e160e11b81529091506001600160a01b038216906376fe87c2906115fa908990600401613482565b602060405180830381865afa158015611615573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116399190613343565b611656576040516309bde33960e01b815260040160405180910390fd5b6116728b8b878761166c368f90038f018f6134aa565b88612416565b5050505050505050505050565b5f611688611b84565b600601546001600160401b0316919050565b5f6116a3611b84565b60060154600160401b90046001600160401b0316919050565b6116c4611ee7565b6001600160a01b03851615806116e157506001600160a01b038416155b806116f357506001600160a01b038316155b8061170557506001600160a01b038216155b8061171757506001600160a01b038116155b156117355760405163d92e233d60e01b815260040160405180910390fd5b5f61173e611b84565b6001810180546001600160a01b038981166001600160a01b031992831681179093556002840180548a831690841681179091556003850180548a841690851681179091556004860180548a85169086168117909155600587018054948a1694909516841790945560408051958652602086019290925290840152606083019190915260808201529091507f86e921feae1a6de3eeb32b9dc98b020ef7315fcc4e001aa492a401a87f08c3329060a00160405180910390a1505050505050565b5f611806611b84565b6001600160401b039092165f90815260099290920160205250604090205490565b5f611830611b84565b600301546001600160a01b0316919050565b61184a611ee7565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156118aa575f5ffd5b505af11580156118bc573d5f5f3e3d5ffd5b5050505050565b5f6118cc611b84565b600201546001600160a01b0316919050565b6118e6611b3e565b5f8080806118f685870187613540565b93509350935093505f611907611b84565b90505f8a6119225760058201546001600160a01b0316611931565b60048201546001600160a01b03165b6040516308a3cff560e11b81529091506001600160a01b038216906311479fea90611966908990899089908990600401613645565b602060405180830381865afa158015611981573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a59190613343565b6119c2576040516309bde33960e01b815260040160405180910390fd5b82516020840151611672918d918d91906119e1368f90038f018f6134aa565b6040890151612416565b5f6119f4611b84565b6001600160401b039092165f90815260079290920160205250604090205490565b5f611a1e611b84565b60050154600160a01b90046001600160401b0316919050565b611a3f611ee7565b6001600160a01b038116611aa45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085c565b610d1f816122bf565b611ab5611ee7565b611abd6126b0565b6040517fdfa56b6600f240ff7756b305d2d62f4944b4ac961293b1dcc8bd8440da55131d905f90a1565b5f611af0611b84565b546001600160a01b0316919050565b5f611b08611b84565b60060154600160801b90046001600160401b0316919050565b5f60208201803590611b37906105df908561320b565b1492915050565b60655460ff1615610d5b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161085c565b60408051808201909152601781527f7a65726332302e73746f726167652e76657269666965720000000000000000006020909101527f9185b5f3f898f91cdf6d1ed1d9474630ec25b82655201747372f331a8bbfccee5f908152807fdc881cb05e4e981d28f2c49ec9604b5a0676bcc75afb8e4a2cd07140c6b7ae00610bd7565b611c0d611b3e565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c423390565b6040516001600160a01b03909116815260200160405180910390a1565b63ffffffff81165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f9006020819052604082205480611cbb5760405163f6ff4fb760e01b815263ffffffff8516600482015260240161085c565b9392505050565b5f611ccb611b84565b8054909150600160a01b900463ffffffff16611cea60208a018a61320b565b63ffffffff1614611cfe60208a018a61320b565b90611d2557604051631a59c90d60e01b815263ffffffff909116600482015260240161085c565b505f80611d34878901896136c8565b6001600160401b0381165f90815260098601602052604081205492945090925003611db0576001600160401b0381165f81815260098501602052604090819020849055517fb063c3c8bed53deba8a716145e50ba4052865173924535149e9d4f706f0dcf0390611da79085815260200190565b60405180910390a25b60068301546001600160401b03600160401b90910481169082161115611dfd576006830180546fffffffffffffffff00000000000000001916600160401b6001600160401b038416021790555b50505050505050505050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611e6b89611c5f565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ea09291906136f6565b6040805180830381865afa158015611eba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ede91906137ba565b95945050505050565b6033546001600160a01b03163314610d5b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085c565b5f5f5160206138e75f395f51905f52611af0565b610d1f611ee7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f9557611f90836126e9565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611fef575060408051601f3d908101601f19168201909252611fec918101906133f6565b60015b6120525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161085c565b5f5160206138e75f395f51905f5281146120c05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161085c565b50611f90838383612784565b5f54610100900460ff166120f25760405162461bcd60e51b815260040161085c906137d4565b610d5b6127ae565b5f54610100900460ff166121205760405162461bcd60e51b815260040161085c906137d4565b612129816127dd565b612131612135565b610d1f5b5f54610100900460ff16610d5b5760405162461bcd60e51b815260040161085c906137d4565b5f54610100900460ff166121815760405162461bcd60e51b815260040161085c906137d4565b61218961280c565b5f612192611b84565b80546001600160a01b038a81166001600160c01b031990921691909117600160a01b63ffffffff8b16021782556001820180546001600160a01b03199081168a841690811790925560028401805482168a851690811790915560038501805483168a861690811790915560048601805484168a871690811790915560058701805490941695891695861790935560408051948552602085019290925290830152606082015260808101919091529091507f86e921feae1a6de3eeb32b9dc98b020ef7315fcc4e001aa492a401a87f08c3329060a00160405180910390a15f80805260088201602052604090207f1334fa4b552f00ef403361c935c1abcf896851003c40daa93bb0fd0a0bb9a8819055600601805467ffffffffffffffff60801b1916905550505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b612318612cf5565b5f612325845f015161283a565b60208501519091501561233f5761233f8460200151612861565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161238f8c611c5f565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b81526004016123ca9291906136f6565b60806040518083038185885af11580156123e6573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061240b919061381f565b979650505050505050565b5f61241f611b84565b90505f87612446576001600160401b0387165f908152600883016020526040902054612461565b6001600160401b0387165f9081526009830160205260409020545b9050868161248e5760405163098bd70560e01b81526001600160401b03909116600482015260240161085c565b5080868181146124ba57604051631d7b51f760e11b81526004810192909252602482015260440161085c565b50505f6124c685612940565b905080868082146124f35760405163971ca9a960e01b81526004810192909252602482015260440161085c565b505084514690816001600160401b03828116908216146125395760405163117fcbdd60e11b81526001600160401b0392831660048201529116602482015260440161085c565b50505f878152600a85016020526040902054808681811161257657604051630ba6546d60e11b81526004810192909252602482015260440161085c565b505f9050612584828861387d565b90508086600a015f8b81526020019081526020015f205f8282546125a89190613890565b9091555050602088015186546040516304ddf0a560e01b81526001600160a01b03808416600483015260248201859052909116906304ddf0a5906044015f604051808303815f87803b1580156125fc575f5ffd5b505af115801561260e573d5f5f3e3d5ffd5b50505050806001600160a01b03167f30ce5e5a039f8d58997d73d7977f2b4bee9bd3917a6232f95277cc1b5fc62621838f8f8f8e6040516126999594939291909485529215156020808601919091526001600160401b039283166040808701919091526060860192909252835190921660808501529082015160a0840152015160c082015260e00190565b60405180910390a250505050505050505050505050565b6126b86129f2565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611c42565b6001600160a01b0381163b6127565760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161085c565b5f5160206138e75f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61278d83612a3b565b5f825111806127995750805b15611f90576127a88383612a7a565b50505050565b5f54610100900460ff166127d45760405162461bcd60e51b815260040161085c906137d4565b610d5b336122bf565b5f54610100900460ff166128035760405162461bcd60e51b815260040161085c906137d4565b610d1f81612a9f565b5f54610100900460ff166128325760405162461bcd60e51b815260040161085c906137d4565b610d5b612aec565b5f81341461285d576040516304fb820960e51b815234600482015260240161085c565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128e291906138a3565b90506001600160a01b03811661290b576040516329b99a9560e11b815260040160405180910390fd5b610a526001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612b1e565b5f5f6002835f0151846020015185604001516040516020016129849392919060c09390931b6001600160c01b03191683526008830191909152602882015260480190565b60408051601f198184030181529082905261299e916138be565b602060405180830381855afa1580156129b9573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906129dc91906133f6565b6001600160f81b0316600160f81b179392505050565b60655460ff16610d5b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161085c565b612a44816126e9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611cbb838360405180606001604052806027815260200161390760279139612b78565b5f54610100900460ff16612ac55760405162461bcd60e51b815260040161085c906137d4565b6001600160a01b03811661184a57604051632d618d8160e21b815260040160405180910390fd5b5f54610100900460ff16612b125760405162461bcd60e51b815260040161085c906137d4565b6065805460ff19169055565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526127a8908590612bec565b60605f5f856001600160a01b031685604051612b9491906138be565b5f60405180830381855af49150503d805f8114612bcc576040519150601f19603f3d011682016040523d82523d5f602084013e612bd1565b606091505b5091509150612be286838387612c58565b9695505050505050565b5f5f60205f8451602086015f885af180612c0b576040513d5f823e3d81fd5b50505f513d91508115612c22578060011415612c2f565b6001600160a01b0384163b155b156127a857604051635274afe760e01b81526001600160a01b038516600482015260240161085c565b60608315612cc65782515f03612cbf576001600160a01b0385163b612cbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161085c565b5081611281565b6112818383815115612cdb5781518083602001fd5b8060405162461bcd60e51b815260040161085c91906138d4565b60405180606001604052805f81526020015f6001600160401b03168152602001612d3060405180604001604052805f81526020015f81525090565b905290565b5f5f83601f840112612d45575f5ffd5b5081356001600160401b03811115612d5b575f5ffd5b602083019150836020828501011115612d72575f5ffd5b9250929050565b5f5f60208385031215612d8a575f5ffd5b82356001600160401b03811115612d9f575f5ffd5b612dab85828601612d35565b90969095509350505050565b5f60608284031215612dc7575f5ffd5b50919050565b6001600160a01b0381168114610d1f575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612df7575f5ffd5b612e018989612db7565b96506060880135955060808801356001600160401b03811115612e22575f5ffd5b612e2e8a828b01612d35565b90965094505060a0880135612e4281612dcd565b925060c08801356001600160401b03811115612e5c575f5ffd5b612e688a828b01612d35565b989b979a50959850939692959293505050565b6001600160401b0381168114610d1f575f5ffd5b5f60208284031215612e9f575f5ffd5b8135611cbb81612e7b565b815181526020808301519082015260408101610bd7565b803563ffffffff81168114612ed4575f5ffd5b919050565b5f5f60408385031215612eea575f5ffd5b612ef383612ec1565b946020939093013593505050565b5f60208284031215612f11575f5ffd5b8135611cbb81612dcd565b5f5f5f5f5f5f5f5f610100898b031215612f34575f5ffd5b8835612f3f81612dcd565b9750612f4d60208a01612ec1565b96506040890135612f5d81612dcd565b95506060890135612f6d81612dcd565b94506080890135612f7d81612dcd565b935060a0890135612f8d81612dcd565b925060c0890135612f9d81612dcd565b915060e0890135612fad81612dcd565b809150509295985092959890939650565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612ff457612ff4612fbe565b60405290565b604051601f8201601f191681016001600160401b038111828210171561302257613022612fbe565b604052919050565b5f5f6040838503121561303b575f5ffd5b823561304681612dcd565b915060208301356001600160401b03811115613060575f5ffd5b8301601f81018513613070575f5ffd5b80356001600160401b0381111561308957613089612fbe565b61309c601f8201601f1916602001612ffa565b8181528660208385010111156130b0575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f602082840312156130df575f5ffd5b5035919050565b5f5f5f5f60a085870312156130f9575f5ffd5b6131038686612db7565b935060608501356001600160401b0381111561311d575f5ffd5b61312987828801612d35565b909450925050608085013561313d81612dcd565b939692955090935050565b5f608082019050825182526001600160401b0360208401511660208301526040830151613182604084018280518252602090810151910152565b5092915050565b8015158114610d1f575f5ffd5b5f5f5f5f5f60c086880312156131aa575f5ffd5b85356131b581613189565b945060208601356131c581612e7b565b93506131d48760408801612db7565b925060a08601356001600160401b038111156131ee575f5ffd5b6131fa88828901612d35565b969995985093965092949392505050565b5f6020828403121561321b575f5ffd5b611cbb82612ec1565b5f5f5f5f5f60a08688031215613238575f5ffd5b853561324381612dcd565b9450602086013561325381612dcd565b9350604086013561326381612dcd565b9250606086013561327381612dcd565b9150608086013561328381612dcd565b809150509295509295909350565b5f606082840312156132a1575f5ffd5b611cbb8383612db7565b5f61040082840312156132bc575f5ffd5b5f83601f8401126132cb575f5ffd5b505f806104006132da81612ffa565b92508291508401858111156132ed575f5ffd5b845b818110156133075780358452602093840193016132ef565b509095945050505050565b610400810181835f5b602081101561333a57815183526020928301929091019060010161331b565b50505092915050565b5f60208284031215613353575f5ffd5b8151611cbb81613189565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215613406575f5ffd5b5051919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b828152604060208201525f611281604083018461340d565b5f6104408284031215613464575f5ffd5b5f83601f840112613473575f5ffd5b505f806104406132da81612ffa565b610440810181835f5b602281101561333a57815183526020928301929091019060010161348b565b5f60608284031280156134bb575f5ffd5b506134c4612fd2565b82356134cf81612e7b565b8152602083810135908201526040928301359281019290925250919050565b5f82601f8301126134fd575f5ffd5b5f6135086040612ffa565b905080604084018581111561351b575f5ffd5b845b8181101561353557803583526020928301920161351d565b509195945050505050565b5f5f5f5f6101608587031215613554575f5ffd5b61355e86866134ee565b935085605f86011261356e575f5ffd5b604061357981612ffa565b8060c088018981111561358a575f5ffd5b604089015b818110156135b0576135a18b826134ee565b8452602090930192840161358f565b508196506135be8a826134ee565b95505050505061010085015f87601f8301126135d8575f5ffd5b5f6135e36060612ffa565b905080606084018a8111156135f6575f5ffd5b5b808510156136125784358252602094850194909101906135f7565b509699959850939650929450505050565b805f5b60028110156127a8578151845260209384019390910190600101613626565b61016081016136548287613623565b60408201855f5b60028110156136855761366f838351613623565b604092909201916020919091019060010161365b565b50505061369560c0830185613623565b6101008201835f5b60038110156136bc57815183526020928301929091019060010161369d565b50505095945050505050565b5f5f604083850312156136d9575f5ffd5b8235915060208301356136eb81612e7b565b809150509250929050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261372b60e084018261340d565b90506060850151603f198483030160a0850152613748828261340d565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f6040828403121561377e575f5ffd5b604080519081016001600160401b03811182821017156137a0576137a0612fbe565b604052825181526020928301519281019290925250919050565b5f604082840312156137ca575f5ffd5b611cbb838361376e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f6080828403128015613830575f5ffd5b50613839612fd2565b82518152602083015161384b81612e7b565b602082015261385d846040850161376e565b60408201529392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd757610bd7613869565b80820180821115610bd757610bd7613869565b5f602082840312156138b3575f5ffd5b8151611cbb81612dcd565b5f82518060208501845e5f920191825250919050565b602081525f611cbb602083018461340d56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d32b578e40a972d6f3aca838b2c04d9a67bee70da651d9f64f0a1875106552f464736f6c634300081e0033","sourceMap":"1295:21758:157:-:0;;;1198:4:112;1155:48;;6470:161:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:42:49;;;;;;6536:56:157::1;;6571:21;;-1:-1:-1::0;;;6571:21:157::1;;;;;;;;;;;6536:56;6602:22;:20;:22::i;:::-;6470:161:::0;1295:21758;;5939:280:111;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:111;;511:2:175;5998:66:111;;;493:21:175;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:175;;;633:37;687:19;;5998:66:111;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:111;6140:15;6125:30;;;;;;6174:28;;859:36:175;;;6174:28:111;;847:2:175;832:18;6174:28:111;;;;;;;6074:139;5939:280::o;14:290:175:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:175;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:175:o;717:184::-;1295:21758:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610249575f3560e01c806382413eac11610134578063ca466380116100b3578063e9debe0511610078578063e9debe05146106d8578063f2fde38b146106ec578063fa6869481461070b578063fc0c546a1461071f578063ff53cc0414610733578063ff7bd03d14610747575f5ffd5b8063ca46638014610653578063ca5eb5e114610667578063d22f96df14610686578063d4d122441461069a578063e2910dd3146106b9575f5ffd5b80639f487dbd116100f95780639f487dbd1461059d578063a97f176f146105b1578063bb0b6a53146105c5578063be6a2c1514610615578063c172e9e314610634575f5ffd5b806382413eac1461050e57806386106a291461052d5780638da5cb5b1461054d5780638fe64dd41461056a5780639854265f1461057e575f5ffd5b80634a80034f116101cb5780635e280f11116101905780635e280f111461042857806363373bdc1461045b57806369cc1d271461048e578063715018a6146104ad578063755d89f2146104c15780637d25a05e146104d5575f5ffd5b80634a80034f1461039f5780634edddf6b146103cb5780634f1ef286146103ea57806352d1902d146103fd5780635c975abb14610411575f5ffd5b80633400288b116102115780633400288b146103005780633659cfe61461031f578063442bde041461033e578063457e8b97146103625780634600f17c14610376575f5ffd5b806311d297231461024d57806313137d651461026e57806317442b70146102815780631bb29877146102a757806326efeb2b146102d4575b5f5ffd5b348015610258575f5ffd5b5061026c610267366004612d79565b610766565b005b61026c61027c366004612de1565b610a56565b34801561028c575f5ffd5b50604080516001815260026020820152015b60405180910390f35b3480156102b2575f5ffd5b506102c66102c1366004612e8f565b610b11565b60405190815260200161029e565b3480156102df575f5ffd5b506102f36102ee366004612d79565b610b3b565b60405161029e9190612eaa565b34801561030b575f5ffd5b5061026c61031a366004612ed9565b610bdd565b34801561032a575f5ffd5b5061026c610339366004612f01565b610c5b565b348015610349575f5ffd5b50610352610d22565b604051901515815260200161029e565b34801561036d575f5ffd5b5061026c610d4b565b348015610381575f5ffd5b5061038a610d5d565b60405163ffffffff909116815260200161029e565b3480156103aa575f5ffd5b506103b3610d79565b6040516001600160a01b03909116815260200161029e565b3480156103d6575f5ffd5b5061026c6103e5366004612f1c565b610d94565b61026c6103f836600461302a565b610f68565b348015610408575f5ffd5b506102c661101d565b34801561041c575f5ffd5b5060655460ff16610352565b348015610433575f5ffd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b348015610466575f5ffd5b5061046f6110ce565b604080516001600160401b03909316835260208301919091520161029e565b348015610499575f5ffd5b506102c66104a83660046130cf565b61122c565b3480156104b8575f5ffd5b5061026c611248565b3480156104cc575f5ffd5b506103b3611259565b3480156104e0575f5ffd5b506104f66104ef366004612ed9565b5f92915050565b6040516001600160401b03909116815260200161029e565b348015610519575f5ffd5b506103526105283660046130e6565b611274565b61054061053b366004612d79565b611289565b60405161029e9190613148565b348015610558575f5ffd5b506033546001600160a01b03166103b3565b348015610575575f5ffd5b506103b36114a1565b348015610589575f5ffd5b5061026c610598366004613196565b6114bc565b3480156105a8575f5ffd5b506104f661167f565b3480156105bc575f5ffd5b506104f661169a565b3480156105d0575f5ffd5b506102c66105df36600461320b565b63ffffffff165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b348015610620575f5ffd5b5061026c61062f366004613224565b6116bc565b34801561063f575f5ffd5b506102c661064e366004612e8f565b6117fd565b34801561065e575f5ffd5b506103b3611827565b348015610672575f5ffd5b5061026c610681366004612f01565b611842565b348015610691575f5ffd5b506103b36118c3565b3480156106a5575f5ffd5b5061026c6106b4366004613196565b6118de565b3480156106c4575f5ffd5b506102c66106d3366004612e8f565b6119eb565b3480156106e3575f5ffd5b506104f6611a15565b3480156106f7575f5ffd5b5061026c610706366004612f01565b611a37565b348015610716575f5ffd5b5061026c611aad565b34801561072a575f5ffd5b506103b3611ae7565b34801561073e575f5ffd5b506104f6611aff565b348015610752575f5ffd5b50610352610761366004613291565b611b21565b61076e611b3e565b5f61077b828401846132ab565b60208101516060820151608083015160a084015160c08501519495509293919290915f6107a6611b84565b600181015460405163bd70b10d60e01b81529192506001600160a01b03169063bd70b10d906107d9908a90600401613312565b602060405180830381865afa1580156107f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108189190613343565b610835576040516309bde33960e01b815260040160405180910390fd5b858561086557604051633e4231c560e21b81526001600160401b0390911660048201526024015b60405180910390fd5b506001600160401b0386165f9081526008820160205260409020548681878082146108bc5760405163330cc0b760e21b81526001600160401b0390931660048401526024830191909152604482015260640161085c565b5050506001600160401b0385165f90815260078301602052604090205485816109045760405163028fb25160e11b81526001600160401b03909116600482015260240161085c565b5085818681811461094157604051637588dabf60e11b81526001600160401b0390931660048401526024830191909152604482015260640161085c565b5050506001600160401b0386165f908152600884016020526040902054801580159061096d5750848114155b156109cd5761097a611c05565b60408051828152602081018790526001600160401b038916917f02c176cf3735d2128d6be5286548b0a34500e9c9826cac57be03a380cb3da3a091015b60405180910390a2505050505050505050505050565b6001600160401b038088165f818152600887016020526040902087905560068601549091161015610a175760068401805467ffffffffffffffff19166001600160401b0389161790555b866001600160401b03167fdea8bdf257f42e5441e81fcac8c8b04c3eb571a8896ea38adf6a8d9989594e13866040516109b791815260200190565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610aa1576040516391ac5e4f60e01b815233600482015260240161085c565b60208701803590610abb90610ab6908a61320b565b611c5f565b14610af957610acd602088018861320b565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161085c565b610b0887878787878787611cc2565b50505050505050565b5f610b1a611b84565b6001600160401b039092165f90815260089290920160205250604090205490565b604080518082019091525f8082526020820152604080515f6020820181905291810182905260600160405160208183030381529060405290505f610b7d611b84565b9050610bd2815f0160149054906101000a900463ffffffff168387878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509250611e09915050565b925050505b92915050565b610be5611ee7565b63ffffffff82165f8181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052815190927f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b92908290030190a1505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ca35760405162461bcd60e51b815260040161085c9061335e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610cd5611f41565b6001600160a01b031614610cfb5760405162461bcd60e51b815260040161085c906133aa565b610d0481611f55565b604080515f80825260208201909252610d1f91839190611f5d565b50565b5f5f610d2c611b84565b600601546001600160401b03808216600160801b909204161492915050565b610d53611ee7565b610d5b611c05565b565b5f610d66611b84565b54600160a01b900463ffffffff16919050565b5f610d82611b84565b600401546001600160a01b0316919050565b5f54610100900460ff1615808015610db257505f54600160ff909116105b80610dcb5750303b158015610dcb57505f5460ff166001145b610e2e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161085c565b5f805460ff191660011790558015610e4f575f805461ff0019166101001790555b6001600160a01b038916610e765760405163ad1991f560e01b815260040160405180910390fd5b6001600160a01b0386161580610e9357506001600160a01b038516155b80610ea557506001600160a01b038416155b80610eb757506001600160a01b038316155b80610ec957506001600160a01b038216155b15610ee75760405163d92e233d60e01b815260040160405180910390fd5b610eef6120cc565b610ef8876120fa565b610f00612135565b610f0f8989888888888861215b565b610f18876122bf565b8015610f5d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fb05760405162461bcd60e51b815260040161085c9061335e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fe2611f41565b6001600160a01b0316146110085760405162461bcd60e51b815260040161085c906133aa565b61101182611f55565b610a5282826001611f5d565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110bc5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161085c565b505f5160206138e75f395f51905f5290565b5f5f5f6110d9611b84565b805460408051632986c0e560e01b815290519293506001600160a01b03909116915f918391632986c0e5916004808201926020929091908290030181865afa158015611127573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114b91906133f6565b90505f826001600160a01b031663c841eccb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ae91906133f6565b6001600160401b0383165f81815260078701602090815260409182902084905560058801805467ffffffffffffffff60a01b1916600160a01b8502179055905183815292935090917f31003eef6c7b1b23395ce30d66bb400da7d389a879a5d1e174103a072a4da15f910160405180910390a2909590945092505050565b5f611235611b84565b5f928352600a0160205250604090205490565b611250611ee7565b610d5b5f6122bf565b5f611262611b84565b600501546001600160a01b0316919050565b6001600160a01b03811630145b949350505050565b611291612cf5565b611299611b3e565b5f6112a2611b84565b60068101546001600160401b03165f8181526008830160205260408120549293509091908190036112e6576040516342a5a05760e01b815260040160405180910390fd5b5f818360405160200161130c9291909182526001600160401b0316602082015260400190565b60408051808303601f1901815286546020601f8b018190048102850181019093528984529093505f9261136a92600160a01b90920463ffffffff16918591908c908c90819084018382808284375f9201829052509250611e09915050565b805190915034101561139b578051604051631f2dda7760e21b8152600481019190915234602482015260440161085c565b6040805180820182523481526020838101518183015287548351601f8c018390048302810183019094528a8452919261140292600160a01b900463ffffffff16918691908d908d90819084018382808284375f920191909152508792503391506123109050565b9650846001600160401b03167fbecd78746ad6fbb4486ef62d297810172e63cfafbd02a8306c4e639b8d2a99fd85895f015160405160200161144691815260200190565b60408051601f1981840301815290829052611461929161343b565b60405180910390a2505050600690920180546001600160401b03909216600160801b0267ffffffffffffffff60801b199092169190911790555092915050565b5f6114aa611b84565b600101546001600160a01b0316919050565b6114c4611b3e565b5f6114d182840184613453565b6020810151604082015160608301519293509091801561150757604051632e86b29d60e01b815260040161085c91815260200190565b506080830151801561152f57604051631dfca83b60e01b815260040161085c91815260200190565b5060a08301518281811461155f57604051635701303960e11b81526004810192909252602482015260440161085c565b505060c083015181818114611590576040516328cc402560e11b81526004810192909252602482015260440161085c565b50506101008301515f6115a1611b84565b90505f8a6115bc5760038201546001600160a01b03166115cb565b60028201546001600160a01b03165b604051633b7f43e160e11b81529091506001600160a01b038216906376fe87c2906115fa908990600401613482565b602060405180830381865afa158015611615573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116399190613343565b611656576040516309bde33960e01b815260040160405180910390fd5b6116728b8b878761166c368f90038f018f6134aa565b88612416565b5050505050505050505050565b5f611688611b84565b600601546001600160401b0316919050565b5f6116a3611b84565b60060154600160401b90046001600160401b0316919050565b6116c4611ee7565b6001600160a01b03851615806116e157506001600160a01b038416155b806116f357506001600160a01b038316155b8061170557506001600160a01b038216155b8061171757506001600160a01b038116155b156117355760405163d92e233d60e01b815260040160405180910390fd5b5f61173e611b84565b6001810180546001600160a01b038981166001600160a01b031992831681179093556002840180548a831690841681179091556003850180548a841690851681179091556004860180548a85169086168117909155600587018054948a1694909516841790945560408051958652602086019290925290840152606083019190915260808201529091507f86e921feae1a6de3eeb32b9dc98b020ef7315fcc4e001aa492a401a87f08c3329060a00160405180910390a1505050505050565b5f611806611b84565b6001600160401b039092165f90815260099290920160205250604090205490565b5f611830611b84565b600301546001600160a01b0316919050565b61184a611ee7565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156118aa575f5ffd5b505af11580156118bc573d5f5f3e3d5ffd5b5050505050565b5f6118cc611b84565b600201546001600160a01b0316919050565b6118e6611b3e565b5f8080806118f685870187613540565b93509350935093505f611907611b84565b90505f8a6119225760058201546001600160a01b0316611931565b60048201546001600160a01b03165b6040516308a3cff560e11b81529091506001600160a01b038216906311479fea90611966908990899089908990600401613645565b602060405180830381865afa158015611981573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a59190613343565b6119c2576040516309bde33960e01b815260040160405180910390fd5b82516020840151611672918d918d91906119e1368f90038f018f6134aa565b6040890151612416565b5f6119f4611b84565b6001600160401b039092165f90815260079290920160205250604090205490565b5f611a1e611b84565b60050154600160a01b90046001600160401b0316919050565b611a3f611ee7565b6001600160a01b038116611aa45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085c565b610d1f816122bf565b611ab5611ee7565b611abd6126b0565b6040517fdfa56b6600f240ff7756b305d2d62f4944b4ac961293b1dcc8bd8440da55131d905f90a1565b5f611af0611b84565b546001600160a01b0316919050565b5f611b08611b84565b60060154600160801b90046001600160401b0316919050565b5f60208201803590611b37906105df908561320b565b1492915050565b60655460ff1615610d5b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161085c565b60408051808201909152601781527f7a65726332302e73746f726167652e76657269666965720000000000000000006020909101527f9185b5f3f898f91cdf6d1ed1d9474630ec25b82655201747372f331a8bbfccee5f908152807fdc881cb05e4e981d28f2c49ec9604b5a0676bcc75afb8e4a2cd07140c6b7ae00610bd7565b611c0d611b3e565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c423390565b6040516001600160a01b03909116815260200160405180910390a1565b63ffffffff81165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f9006020819052604082205480611cbb5760405163f6ff4fb760e01b815263ffffffff8516600482015260240161085c565b9392505050565b5f611ccb611b84565b8054909150600160a01b900463ffffffff16611cea60208a018a61320b565b63ffffffff1614611cfe60208a018a61320b565b90611d2557604051631a59c90d60e01b815263ffffffff909116600482015260240161085c565b505f80611d34878901896136c8565b6001600160401b0381165f90815260098601602052604081205492945090925003611db0576001600160401b0381165f81815260098501602052604090819020849055517fb063c3c8bed53deba8a716145e50ba4052865173924535149e9d4f706f0dcf0390611da79085815260200190565b60405180910390a25b60068301546001600160401b03600160401b90910481169082161115611dfd576006830180546fffffffffffffffff00000000000000001916600160401b6001600160401b038416021790555b50505050505050505050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611e6b89611c5f565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ea09291906136f6565b6040805180830381865afa158015611eba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ede91906137ba565b95945050505050565b6033546001600160a01b03163314610d5b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085c565b5f5f5160206138e75f395f51905f52611af0565b610d1f611ee7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f9557611f90836126e9565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611fef575060408051601f3d908101601f19168201909252611fec918101906133f6565b60015b6120525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161085c565b5f5160206138e75f395f51905f5281146120c05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161085c565b50611f90838383612784565b5f54610100900460ff166120f25760405162461bcd60e51b815260040161085c906137d4565b610d5b6127ae565b5f54610100900460ff166121205760405162461bcd60e51b815260040161085c906137d4565b612129816127dd565b612131612135565b610d1f5b5f54610100900460ff16610d5b5760405162461bcd60e51b815260040161085c906137d4565b5f54610100900460ff166121815760405162461bcd60e51b815260040161085c906137d4565b61218961280c565b5f612192611b84565b80546001600160a01b038a81166001600160c01b031990921691909117600160a01b63ffffffff8b16021782556001820180546001600160a01b03199081168a841690811790925560028401805482168a851690811790915560038501805483168a861690811790915560048601805484168a871690811790915560058701805490941695891695861790935560408051948552602085019290925290830152606082015260808101919091529091507f86e921feae1a6de3eeb32b9dc98b020ef7315fcc4e001aa492a401a87f08c3329060a00160405180910390a15f80805260088201602052604090207f1334fa4b552f00ef403361c935c1abcf896851003c40daa93bb0fd0a0bb9a8819055600601805467ffffffffffffffff60801b1916905550505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b612318612cf5565b5f612325845f015161283a565b60208501519091501561233f5761233f8460200151612861565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161238f8c611c5f565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b81526004016123ca9291906136f6565b60806040518083038185885af11580156123e6573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061240b919061381f565b979650505050505050565b5f61241f611b84565b90505f87612446576001600160401b0387165f908152600883016020526040902054612461565b6001600160401b0387165f9081526009830160205260409020545b9050868161248e5760405163098bd70560e01b81526001600160401b03909116600482015260240161085c565b5080868181146124ba57604051631d7b51f760e11b81526004810192909252602482015260440161085c565b50505f6124c685612940565b905080868082146124f35760405163971ca9a960e01b81526004810192909252602482015260440161085c565b505084514690816001600160401b03828116908216146125395760405163117fcbdd60e11b81526001600160401b0392831660048201529116602482015260440161085c565b50505f878152600a85016020526040902054808681811161257657604051630ba6546d60e11b81526004810192909252602482015260440161085c565b505f9050612584828861387d565b90508086600a015f8b81526020019081526020015f205f8282546125a89190613890565b9091555050602088015186546040516304ddf0a560e01b81526001600160a01b03808416600483015260248201859052909116906304ddf0a5906044015f604051808303815f87803b1580156125fc575f5ffd5b505af115801561260e573d5f5f3e3d5ffd5b50505050806001600160a01b03167f30ce5e5a039f8d58997d73d7977f2b4bee9bd3917a6232f95277cc1b5fc62621838f8f8f8e6040516126999594939291909485529215156020808601919091526001600160401b039283166040808701919091526060860192909252835190921660808501529082015160a0840152015160c082015260e00190565b60405180910390a250505050505050505050505050565b6126b86129f2565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611c42565b6001600160a01b0381163b6127565760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161085c565b5f5160206138e75f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61278d83612a3b565b5f825111806127995750805b15611f90576127a88383612a7a565b50505050565b5f54610100900460ff166127d45760405162461bcd60e51b815260040161085c906137d4565b610d5b336122bf565b5f54610100900460ff166128035760405162461bcd60e51b815260040161085c906137d4565b610d1f81612a9f565b5f54610100900460ff166128325760405162461bcd60e51b815260040161085c906137d4565b610d5b612aec565b5f81341461285d576040516304fb820960e51b815234600482015260240161085c565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128e291906138a3565b90506001600160a01b03811661290b576040516329b99a9560e11b815260040160405180910390fd5b610a526001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612b1e565b5f5f6002835f0151846020015185604001516040516020016129849392919060c09390931b6001600160c01b03191683526008830191909152602882015260480190565b60408051601f198184030181529082905261299e916138be565b602060405180830381855afa1580156129b9573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906129dc91906133f6565b6001600160f81b0316600160f81b179392505050565b60655460ff16610d5b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161085c565b612a44816126e9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611cbb838360405180606001604052806027815260200161390760279139612b78565b5f54610100900460ff16612ac55760405162461bcd60e51b815260040161085c906137d4565b6001600160a01b03811661184a57604051632d618d8160e21b815260040160405180910390fd5b5f54610100900460ff16612b125760405162461bcd60e51b815260040161085c906137d4565b6065805460ff19169055565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526127a8908590612bec565b60605f5f856001600160a01b031685604051612b9491906138be565b5f60405180830381855af49150503d805f8114612bcc576040519150601f19603f3d011682016040523d82523d5f602084013e612bd1565b606091505b5091509150612be286838387612c58565b9695505050505050565b5f5f60205f8451602086015f885af180612c0b576040513d5f823e3d81fd5b50505f513d91508115612c22578060011415612c2f565b6001600160a01b0384163b155b156127a857604051635274afe760e01b81526001600160a01b038516600482015260240161085c565b60608315612cc65782515f03612cbf576001600160a01b0385163b612cbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161085c565b5081611281565b6112818383815115612cdb5781518083602001fd5b8060405162461bcd60e51b815260040161085c91906138d4565b60405180606001604052805f81526020015f6001600160401b03168152602001612d3060405180604001604052805f81526020015f81525090565b905290565b5f5f83601f840112612d45575f5ffd5b5081356001600160401b03811115612d5b575f5ffd5b602083019150836020828501011115612d72575f5ffd5b9250929050565b5f5f60208385031215612d8a575f5ffd5b82356001600160401b03811115612d9f575f5ffd5b612dab85828601612d35565b90969095509350505050565b5f60608284031215612dc7575f5ffd5b50919050565b6001600160a01b0381168114610d1f575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612df7575f5ffd5b612e018989612db7565b96506060880135955060808801356001600160401b03811115612e22575f5ffd5b612e2e8a828b01612d35565b90965094505060a0880135612e4281612dcd565b925060c08801356001600160401b03811115612e5c575f5ffd5b612e688a828b01612d35565b989b979a50959850939692959293505050565b6001600160401b0381168114610d1f575f5ffd5b5f60208284031215612e9f575f5ffd5b8135611cbb81612e7b565b815181526020808301519082015260408101610bd7565b803563ffffffff81168114612ed4575f5ffd5b919050565b5f5f60408385031215612eea575f5ffd5b612ef383612ec1565b946020939093013593505050565b5f60208284031215612f11575f5ffd5b8135611cbb81612dcd565b5f5f5f5f5f5f5f5f610100898b031215612f34575f5ffd5b8835612f3f81612dcd565b9750612f4d60208a01612ec1565b96506040890135612f5d81612dcd565b95506060890135612f6d81612dcd565b94506080890135612f7d81612dcd565b935060a0890135612f8d81612dcd565b925060c0890135612f9d81612dcd565b915060e0890135612fad81612dcd565b809150509295985092959890939650565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612ff457612ff4612fbe565b60405290565b604051601f8201601f191681016001600160401b038111828210171561302257613022612fbe565b604052919050565b5f5f6040838503121561303b575f5ffd5b823561304681612dcd565b915060208301356001600160401b03811115613060575f5ffd5b8301601f81018513613070575f5ffd5b80356001600160401b0381111561308957613089612fbe565b61309c601f8201601f1916602001612ffa565b8181528660208385010111156130b0575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f602082840312156130df575f5ffd5b5035919050565b5f5f5f5f60a085870312156130f9575f5ffd5b6131038686612db7565b935060608501356001600160401b0381111561311d575f5ffd5b61312987828801612d35565b909450925050608085013561313d81612dcd565b939692955090935050565b5f608082019050825182526001600160401b0360208401511660208301526040830151613182604084018280518252602090810151910152565b5092915050565b8015158114610d1f575f5ffd5b5f5f5f5f5f60c086880312156131aa575f5ffd5b85356131b581613189565b945060208601356131c581612e7b565b93506131d48760408801612db7565b925060a08601356001600160401b038111156131ee575f5ffd5b6131fa88828901612d35565b969995985093965092949392505050565b5f6020828403121561321b575f5ffd5b611cbb82612ec1565b5f5f5f5f5f60a08688031215613238575f5ffd5b853561324381612dcd565b9450602086013561325381612dcd565b9350604086013561326381612dcd565b9250606086013561327381612dcd565b9150608086013561328381612dcd565b809150509295509295909350565b5f606082840312156132a1575f5ffd5b611cbb8383612db7565b5f61040082840312156132bc575f5ffd5b5f83601f8401126132cb575f5ffd5b505f806104006132da81612ffa565b92508291508401858111156132ed575f5ffd5b845b818110156133075780358452602093840193016132ef565b509095945050505050565b610400810181835f5b602081101561333a57815183526020928301929091019060010161331b565b50505092915050565b5f60208284031215613353575f5ffd5b8151611cbb81613189565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215613406575f5ffd5b5051919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b828152604060208201525f611281604083018461340d565b5f6104408284031215613464575f5ffd5b5f83601f840112613473575f5ffd5b505f806104406132da81612ffa565b610440810181835f5b602281101561333a57815183526020928301929091019060010161348b565b5f60608284031280156134bb575f5ffd5b506134c4612fd2565b82356134cf81612e7b565b8152602083810135908201526040928301359281019290925250919050565b5f82601f8301126134fd575f5ffd5b5f6135086040612ffa565b905080604084018581111561351b575f5ffd5b845b8181101561353557803583526020928301920161351d565b509195945050505050565b5f5f5f5f6101608587031215613554575f5ffd5b61355e86866134ee565b935085605f86011261356e575f5ffd5b604061357981612ffa565b8060c088018981111561358a575f5ffd5b604089015b818110156135b0576135a18b826134ee565b8452602090930192840161358f565b508196506135be8a826134ee565b95505050505061010085015f87601f8301126135d8575f5ffd5b5f6135e36060612ffa565b905080606084018a8111156135f6575f5ffd5b5b808510156136125784358252602094850194909101906135f7565b509699959850939650929450505050565b805f5b60028110156127a8578151845260209384019390910190600101613626565b61016081016136548287613623565b60408201855f5b60028110156136855761366f838351613623565b604092909201916020919091019060010161365b565b50505061369560c0830185613623565b6101008201835f5b60038110156136bc57815183526020928301929091019060010161369d565b50505095945050505050565b5f5f604083850312156136d9575f5ffd5b8235915060208301356136eb81612e7b565b809150509250929050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261372b60e084018261340d565b90506060850151603f198483030160a0850152613748828261340d565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f6040828403121561377e575f5ffd5b604080519081016001600160401b03811182821017156137a0576137a0612fbe565b604052825181526020928301519281019290925250919050565b5f604082840312156137ca575f5ffd5b611cbb838361376e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f6080828403128015613830575f5ffd5b50613839612fd2565b82518152602083015161384b81612e7b565b602082015261385d846040850161376e565b60408201529392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd757610bd7613869565b80820180821115610bd757610bd7613869565b5f602082840312156138b3575f5ffd5b8151611cbb81612dcd565b5f82518060208501845e5f920191825250919050565b602081525f611cbb602083018461340d56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d32b578e40a972d6f3aca838b2c04d9a67bee70da651d9f64f0a1875106552f464736f6c634300081e0033","sourceMap":"1295:21758:157:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11186:1555;;;;;;;;;;-1:-1:-1;11186:1555:157;;;;;:::i;:::-;;:::i;:::-;;4921:708:50;;;;;;:::i;:::-;;:::i;1951:257:52:-;;;;;;;;;;-1:-1:-1;1951:257:52;;;887:1:51;2345:50:175;;759:1:50;2426:2:175;2411:18;;2404:59;2318:18;1951:257:52;;;;;;;;6016:145:157;;;;;;;;;;-1:-1:-1;6016:145:157;;;;;:::i;:::-;;:::i;:::-;;;3004:25:175;;;2992:2;2977:18;6016:145:157;2858:177:175;19234:282:157;;;;;;;;;;-1:-1:-1;19234:282:157;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3028:202:49:-;;;;;;;;;;-1:-1:-1;3028:202:49;;;;;:::i;:::-;;:::i;3408:195:112:-;;;;;;;;;;-1:-1:-1;3408:195:112;;;;;:::i;:::-;;:::i;19649:175:157:-;;;;;;;;;;;;;:::i;:::-;;;4352:14:175;;4345:22;4327:41;;4315:2;4300:18;19649:175:157;4187:187:175;21055:73:157;;;;;;;;;;;;;:::i;4574:99::-;;;;;;;;;;;;;:::i;:::-;;;4553:10:175;4541:23;;;4523:42;;4511:2;4496:18;4574:99:157;4379:192:175;5065:144:157;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4740:32:175;;;4722:51;;4710:2;4695:18;5065:144:157;4576:203:175;7435:1068:157;;;;;;;;;;-1:-1:-1;7435:1068:157;;;;;:::i;:::-;;:::i;3922:220:112:-;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;1879:84:113:-;;;;;;;;;;-1:-1:-1;1949:7:113;;;;1879:84;;1035:46:49;;;;;;;;;;;;;;;10367:486:157;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8141:31:175;;;8123:50;;8204:2;8189:18;;8182:34;;;;8096:18;10367:486:157;7951:271:175;6318:146:157;;;;;;;;;;-1:-1:-1;6318:146:157;;;;;:::i;:::-;;:::i;2085:101:105:-;;;;;;;;;;;;;:::i;5215:142:157:-;;;;;;;;;;;;;:::i;4060:128:50:-;;;;;;;;;;-1:-1:-1;4060:128:50;;;;;:::i;:::-;4149:12;4060:128;;;;;;;;-1:-1:-1;;;;;8620:31:175;;;8602:50;;8590:2;8575:18;4060:128:50;8458:200:175;2566:216:50;;;;;;;;;;-1:-1:-1;2566:216:50;;;;;:::i;:::-;;:::i;18112:936:157:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1462:85:105:-;;;;;;;;;;-1:-1:-1;1534:6:105;;-1:-1:-1;;;;;1534:6:105;1462:85;;4679:110:157;;;;;;;;;;;;;:::i;13501:1121::-;;;;;;;;;;-1:-1:-1;13501:1121:157;;;;;:::i;:::-;;:::i;5494:121::-;;;;;;;;;;;;;:::i;5621:111::-;;;;;;;;;;;;;:::i;2342:163:49:-;;;;;;;;;;-1:-1:-1;2342:163:49;;;;;:::i;:::-;2485:13;;2400:7;2485:13;;;926:26;2485:13;;;;;;;2342:163;21876:1175:157;;;;;;;;;;-1:-1:-1;21876:1175:157;;;;;:::i;:::-;;:::i;6167:145::-;;;;;;;;;;-1:-1:-1;6167:145:157;;;;;:::i;:::-;;:::i;4931:128::-;;;;;;;;;;;;;:::i;4123:105:49:-;;;;;;;;;;-1:-1:-1;4123:105:49;;;;;:::i;:::-;;:::i;4795:130:157:-;;;;;;;;;;;;;:::i;15176:801::-;;;;;;;;;;-1:-1:-1;15176:801:157;;;;;:::i;:::-;;:::i;5867:143::-;;;;;;;;;;-1:-1:-1;5867:143:157;;;;;:::i;:::-;;:::i;5363:125::-;;;;;;;;;;;;;:::i;2335:198:105:-;;;;;;;;;;-1:-1:-1;2335:198:105;;;;;:::i;:::-;;:::i;21241:113:157:-;;;;;;;;;;;;;:::i;4470:98::-;;;;;;;;;;;;;:::i;5738:123::-;;;;;;;;;;;;;:::i;3324:149:50:-;;;;;;;;;;-1:-1:-1;3324:149:50;;;;;:::i;:::-;;:::i;11186:1555:157:-;1503:19:113;:17;:19::i;:::-;11268:25:157::1;11296:32;::::0;;::::1;11307:5:::0;11296:32:::1;:::i;:::-;11363:9;::::0;::::1;::::0;11446;;::::1;::::0;11490;;::::1;::::0;11533;;::::1;::::0;11570;;::::1;::::0;11268:60;;-1:-1:-1;11363:9:157;;11446;;11490;;11338:15:::1;11617:21;:19;:21::i;:::-;11669:13;::::0;::::1;::::0;11656:57:::1;::::0;-1:-1:-1;;;11656:57:157;;11589:49;;-1:-1:-1;;;;;;11669:13:157::1;::::0;11656:49:::1;::::0;:57:::1;::::0;11706:6;;11656:57:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11648:82;;;;-1:-1:-1::0;;;11648:82:157::1;;;;;;;;;;;;11774:8:::0;11748:12;11740:44:::1;;;::::0;-1:-1:-1;;;11740:44:157;;-1:-1:-1;;;;;8620:31:175;;;11740:44:157::1;::::0;::::1;8602:50:175::0;8575:18;;11740:44:157::1;;;;;;;;;-1:-1:-1::0;;;;;;11820:39:157;::::1;11794:23;11820:39:::0;;;:21:::1;::::0;::::1;:39;::::0;;;;;11849:8;11820:39;11896:7;11877:26;;::::1;11869:88;;;::::0;-1:-1:-1;;;11869:88:157;;-1:-1:-1;;;;;13855:31:175;;;11869:88:157::1;::::0;::::1;13837:50:175::0;13903:18;;;13896:34;;;;13946:18;;;13939:34;13810:18;;11869:88:157::1;13637:342:175::0;11869:88:157::1;-1:-1:-1::0;;;;;;;;11996:30:157;::::1;11968:25;11996:30:::0;;;:20:::1;::::0;::::1;:30;::::0;;;;;12017:8;12044:22;12036:67:::1;;;::::0;-1:-1:-1;;;12036:67:157;;-1:-1:-1;;;;;8620:31:175;;;12036:67:157::1;::::0;::::1;8602:50:175::0;8575:18;;12036:67:157::1;8458:200:175::0;12036:67:157::1;-1:-1:-1::0;12177:8:157;12121:17;12142:12;12121:33;;::::1;12113:107;;;::::0;-1:-1:-1;;;12113:107:157;;-1:-1:-1;;;;;13855:31:175;;;12113:107:157::1;::::0;::::1;13837:50:175::0;13903:18;;;13896:34;;;;13946:18;;;13939:34;13810:18;;12113:107:157::1;13637:342:175::0;12113:107:157::1;-1:-1:-1::0;;;;;;;;12253:31:157;::::1;12230:20;12253:31:::0;;;:21:::1;::::0;::::1;:31;::::0;;;;;12298:17;;;::::1;::::0;:44:::1;;;12335:7;12319:12;:23;;12298:44;12294:238;;;12423:8;:6;:8::i;:::-;12450:51;::::0;;14158:25:175;;;14214:2;14199:18;;14192:34;;;-1:-1:-1;;;;;12450:51:157;::::1;::::0;::::1;::::0;14131:18:175;12450:51:157::1;;;;;;;;12515:7;;;;;;;;;;11186:1555:::0;;:::o;12294:238::-:1;-1:-1:-1::0;;;;;12541:31:157;;::::1;;::::0;;;:21:::1;::::0;::::1;:31;::::0;;;;:41;;;12607:19:::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;12592:91:157::1;;;12642:19;::::0;::::1;:30:::0;;-1:-1:-1;;12642:30:157::1;-1:-1:-1::0;;;;;12642:30:157;::::1;;::::0;;12592:91:::1;12716:8;-1:-1:-1::0;;;;;12697:37:157::1;;12726:7;12697:37;;;;3004:25:175::0;;2992:2;2977:18;;2858:177;1532:1:113::1;11186:1555:157::0;;:::o;4921:708:50:-;5234:8;-1:-1:-1;;;;;5226:31:50;5247:10;5226:31;5222:68;;5266:24;;-1:-1:-1;;;5266:24:50;;5279:10;5266:24;;;4722:51:175;4695:18;;5266:24:50;4576:203:175;5222:68:50;5426:14;;;;;;5390:32;;5407:14;;5426:7;5407:14;:::i;:::-;5390:16;:32::i;:::-;:50;5386:103;;5458:14;;;;:7;:14;:::i;:::-;5449:40;;-1:-1:-1;;;5449:40:50;;14439:10:175;14427:23;;;5449:40:50;;;14409:42:175;5474:14:50;;;;14467:18:175;;;14460:34;14382:18;;5449:40:50;14237:263:175;5386:103:50;5563:59;5574:7;5583:5;5590:8;;5600:9;5611:10;;5563;:59::i;:::-;4921:708;;;;;;;:::o;6016:145:157:-;6080:7;6106:21;:19;:21::i;:::-;-1:-1:-1;;;;;6106:48:157;;;;;;;:41;;;;;:48;;-1:-1:-1;6106:48:157;;;;;6016:145::o;19234:282::-;-1:-1:-1;;;;;;;;;;;;;;;;;19359:33:157;;;19336:20;19359:33;;;14677:25:175;;;14718:18;;;14711:59;;;14650:18;;19359:33:157;;;;;;;;;;;;19336:56;;19402:25;19430:21;:19;:21::i;:::-;19402:49;;19468:41;19475:1;:8;;;;;;;;;;;;19485:7;19494;;19468:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19468:41:157;-1:-1:-1;19468:6:157;;-1:-1:-1;;19468:41:157:i;:::-;19461:48;;;;19234:282;;;;;:::o;3028:202:49:-;1355:13:105;:11;:13::i;:::-;3167::49::1;::::0;::::1;3108:25;3167:13:::0;;;926:26;3167:13:::1;::::0;;;;;;;;:21;;;3203:20;;14409:42:175;;;14467:18;;14460:34;;;3203:20:49;;926:26;;3203:20:::1;::::0;;;;;;;::::1;3098:132;3028:202:::0;;:::o;3408:195:112:-;-1:-1:-1;;;;;1764:6:112;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:112;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:112;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1837:30:112;;1829:87;;;;-1:-1:-1;;;1829:87:112;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;19649:175:157:-;19692:4;19708:25;19736:21;:19;:21::i;:::-;19797:20;;;-1:-1:-1;;;;;19774:19:157;;;-1:-1:-1;;;19797:20:157;;;;19774:43;;19649:175;-1:-1:-1;;19649:175:157:o;21055:73::-;1355:13:105;:11;:13::i;:::-;21113:8:157::1;:6;:8::i;:::-;21055:73::o:0;4574:99::-;4613:6;4638:21;:19;:21::i;:::-;:28;-1:-1:-1;;;4638:28:157;;;;;;-1:-1:-1;4574:99:157:o;5065:144::-;5126:7;5152:21;:19;:21::i;:::-;:50;;;-1:-1:-1;;;;;5152:50:157;;5065:144;-1:-1:-1;5065:144:157:o;7435:1068::-;3279:19:111;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:111;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:111;1713:19:119;:23;;;3387:66:111;;-1:-1:-1;3436:12:111;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:111;;15809:2:175;3325:201:111;;;15791:21:175;15848:2;15828:18;;;15821:30;15887:34;15867:18;;;15860:62;-1:-1:-1;;;15938:18:175;;;15931:44;15992:19;;3325:201:111;15607:410:175;3325:201:111;3536:12;:16;;-1:-1:-1;;3536:16:111;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:111;;;;;3562:65;-1:-1:-1;;;;;7772:20:157;::::1;7768:44;;7801:11;;-1:-1:-1::0;;;7801:11:157::1;;;;;;;;;;;7768:44;-1:-1:-1::0;;;;;7839:26:157;::::1;::::0;;:66:::1;;-1:-1:-1::0;;;;;;7869:36:157;::::1;::::0;7839:66:::1;:105;;;-1:-1:-1::0;;;;;;7909:35:157;::::1;::::0;7839:105:::1;:168;;;-1:-1:-1::0;;;;;;7964:43:157;::::1;::::0;7839:168:::1;:214;;;-1:-1:-1::0;;;;;;8011:42:157;::::1;::::0;7839:214:::1;7822:287;;;8085:13;;-1:-1:-1::0;;;8085:13:157::1;;;;;;;;;;;7822:287;8119:16;:14;:16::i;:::-;8145:21;8157:8;8145:11;:21::i;:::-;8176:24;:22;:24::i;:::-;8210:248;8239:6;8259:7;8280:12;8306:22;8342:21;8377:29;8420:28;8210:15;:248::i;:::-;8468:28;8487:8;8468:18;:28::i;:::-;3651:14:111::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:111;;;3721:14;;-1:-1:-1;16174:36:175;;3721:14:111;;16162:2:175;16147:18;3721:14:111;;;;;;;3647:99;3269:483;7435:1068:157;;;;;;;;:::o;3922:220:112:-;-1:-1:-1;;;;;1764:6:112;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:112;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:112;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1837:30:112;;1829:87;;;;-1:-1:-1;;;1829:87:112;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:112;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:112;;16423:2:175;2174:92:112;;;16405:21:175;16462:2;16442:18;;;16435:30;16501:34;16481:18;;;16474:62;16572:26;16552:18;;;16545:54;16616:19;;2174:92:112;16221:420:175;2174:92:112;-1:-1:-1;;;;;;;;;;;;3027:131:112;:::o;10367:486:157:-;10413:12;10427:17;10456:25;10484:21;:19;:21::i;:::-;10547:7;;10588:21;;;-1:-1:-1;;;10588:21:157;;;;10456:49;;-1:-1:-1;;;;;;10547:7:157;;;;10515:21;;10547:7;;10588:19;;:21;;;;;;;;;;;;;;;10547:7;10588:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10565:45;;10620:18;10641:13;-1:-1:-1;;;;;10641:23:157;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10676:28:157;;;;;;:20;;;:28;;;;;;;;;:41;;;10727:21;;;:30;;-1:-1:-1;;;;10727:30:157;-1:-1:-1;;;10727:30:157;;;;;10772:37;;3004:25:175;;;10676:41:157;;-1:-1:-1;10676:28:157;;10772:37;;2977:18:175;10772:37:157;;;;;;;10827:6;;10835:10;;-1:-1:-1;10367:486:157;-1:-1:-1;;;10367:486:157:o;6318:146::-;6383:7;6409:21;:19;:21::i;:::-;:48;;;;:37;;:48;;-1:-1:-1;6409:48:157;;;;;6318:146::o;2085:101:105:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;5215:142:157:-:0;5275:7;5301:21;:19;:21::i;:::-;:49;;;-1:-1:-1;;;;;5301:49:157;;5215:142;-1:-1:-1;5215:142:157:o;2566:216:50:-;-1:-1:-1;;;;;2751:24:50;;2770:4;2751:24;2566:216;;;;;;;:::o;18112:936:157:-;18235:31;;:::i;:::-;1503:19:113;:17;:19::i;:::-;18282:25:157::1;18310:21;:19;:21::i;:::-;18356:19;::::0;::::1;::::0;-1:-1:-1;;;;;18356:19:157::1;18341:12;18400:28:::0;;;:21:::1;::::0;::::1;:28;::::0;;;;;18282:49;;-1:-1:-1;18356:19:157;;18400:28;18442:9;;;18438:36:::1;;18460:14;;-1:-1:-1::0;;;18460:14:157::1;;;;;;;;;;;18438:36;18485:20;18519:4;18525:5;18508:23;;;;;;;;14677:25:175::0;;;-1:-1:-1;;;;;14738:31:175;14733:2;14718:18;;14711:59;14665:2;14650:18;;14505:271;18508:23:157::1;;::::0;;;;::::1;-1:-1:-1::0;;18508:23:157;;;18580:8;;18508:23:::1;18573:41;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;18508:23;;-1:-1:-1;18541:29:157::1;::::0;18573:41:::1;::::0;-1:-1:-1;;;18580:8:157;;::::1;;;::::0;18508:23;;;18599:7;;18573:41;;;;;::::1;18599:7:::0;18573:41;;18599:7;18573:41;::::1;;::::0;::::1;::::0;;;-1:-1:-1;18573:41:157;-1:-1:-1;18573:6:157::1;::::0;-1:-1:-1;;18573:41:157:i:1;:::-;18640:19:::0;;18541:73;;-1:-1:-1;18628:9:157::1;:31;18624:121;;;18703:19:::0;;18682:52:::1;::::0;-1:-1:-1;;;18682:52:157;;::::1;::::0;::::1;14158:25:175::0;;;;18724:9:157::1;14199:18:175::0;;;14192:34;14131:18;;18682:52:157::1;13984:248:175::0;18624:121:157::1;18781:70;::::0;;;;::::1;::::0;;18806:9:::1;18781:70:::0;;::::1;18829:20:::0;;::::1;::::0;18781:70;;::::1;::::0;18879:8;;18871:52;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;18781:70;;18871:52:::1;::::0;-1:-1:-1;;;18879:8:157;::::1;;;::::0;18889:7;;18871:52;18898:7;;18871:52;;;;;::::1;18898:7:::0;18871:52;;18898:7;18871:52;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;18907:3:157;;-1:-1:-1;18912:10:157::1;::::0;-1:-1:-1;18871:7:157::1;::::0;-1:-1:-1;18871:52:157:i:1;:::-;18861:62;;18958:5;-1:-1:-1::0;;;;;18938:64:157::1;;18965:4;18988:7;:12;;;18971:30;;;;;;17010:19:175::0;;17054:2;17045:12;;16881:182;18971:30:157::1;;::::0;;-1:-1:-1;;18971:30:157;;::::1;::::0;;;;;;;18938:64:::1;::::0;;::::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;;19013:20:157::1;::::0;;::::1;:28:::0;;-1:-1:-1;;;;;19013:28:157;;::::1;-1:-1:-1::0;;;19013:28:157::1;-1:-1:-1::0;;;;19013:28:157;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;18112:936:157;;-1:-1:-1;;18112:936:157:o;4679:110::-;4723:7;4749:21;:19;:21::i;:::-;:33;;;-1:-1:-1;;;;;4749:33:157;;4679:110;-1:-1:-1;4679:110:157:o;13501:1121::-;1503:19:113;:17;:19::i;:::-;13729:25:157::1;13757:32;::::0;;::::1;13768:5:::0;13757:32:::1;:::i;:::-;13822:9;::::0;::::1;::::0;13861;;::::1;::::0;13888;;::::1;::::0;13729:60;;-1:-1:-1;13822:9:157;;13888:14;;13880:63:::1;;;;-1:-1:-1::0;;;13880:63:157::1;;;;;;3004:25:175::0;;2992:2;2977:18;;2858:177;13880:63:157::1;-1:-1:-1::0;13961:9:157;;::::1;::::0;:14;;13953:60:::1;;;;-1:-1:-1::0;;;13953:60:157::1;;;;;;3004:25:175::0;;2992:2;2977:18;;2858:177;13953:60:157::1;-1:-1:-1::0;14031:9:157;;::::1;::::0;14044:12;14031:25;;::::1;14023:86;;;::::0;-1:-1:-1;;;14023:86:157;;::::1;::::0;::::1;14158:25:175::0;;;;14199:18;;;14192:34;14131:18;;14023:86:157::1;13984:248:175::0;14023:86:157::1;-1:-1:-1::0;;14127:9:157;;::::1;::::0;14140;14127:22;;::::1;14119:77;;;::::0;-1:-1:-1;;;14119:77:157;;::::1;::::0;::::1;14158:25:175::0;;;;14199:18;;;14192:34;14131:18;;14119:77:157::1;13984:248:175::0;14119:77:157::1;-1:-1:-1::0;;14273:9:157;;::::1;::::0;14252:18:::1;14320:21;:19;:21::i;:::-;14292:49;;14351:23;14377:8;:59;;14414:22;::::0;::::1;::::0;-1:-1:-1;;;;;14414:22:157::1;14377:59;;;14388:23;::::0;::::1;::::0;-1:-1:-1;;;;;14388:23:157::1;14377:59;14454:63;::::0;-1:-1:-1;;;14454:63:157;;14351:85;;-1:-1:-1;;;;;;14454:55:157;::::1;::::0;::::1;::::0;:63:::1;::::0;14510:6;;14454:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14446:88;;;;-1:-1:-1::0;;;14446:88:157::1;;;;;;;;;;;;14545:70;14555:8:::0;14565;14575:12;14589:9;14545:70:::1;;::::0;;::::1;::::0;::::1;14600:2:::0;14545:70:::1;:::i;:::-;14604:10;14545:9;:70::i;:::-;13684:938;;;;;;13501:1121:::0;;;;;:::o;5494:121::-;5544:6;5569:21;:19;:21::i;:::-;:39;;;-1:-1:-1;;;;;5569:39:157;;5494:121;-1:-1:-1;5494:121:157:o;5621:111::-;5666:6;5691:21;:19;:21::i;:::-;:34;;;-1:-1:-1;;;5691:34:157;;-1:-1:-1;;;;;5691:34:157;;;-1:-1:-1;5621:111:157:o;21876:1175::-;1355:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;22162:28:157;::::1;::::0;;:70:::1;;-1:-1:-1::0;;;;;;22194:38:157;::::1;::::0;22162:70:::1;:127;;;-1:-1:-1::0;;;;;;22252:37:157;::::1;::::0;22162:127:::1;:176;;;-1:-1:-1::0;;;;;;22293:45:157;::::1;::::0;22162:176:::1;:240;;;-1:-1:-1::0;;;;;;22358:44:157;::::1;::::0;22162:240:::1;22145:313;;;22434:13;;-1:-1:-1::0;;;22434:13:157::1;;;;;;;;;;;22145:313;22467:25;22495:21;:19;:21::i;:::-;22526:13;::::0;::::1;:30:::0;;-1:-1:-1;;;;;22526:30:157;;::::1;-1:-1:-1::0;;;;;;22526:30:157;;::::1;::::0;::::1;::::0;;;22566:23:::1;::::0;::::1;:50:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;22626:22:::1;::::0;::::1;:48:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;22684:30:::1;::::0;::::1;:64:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;22758:29:::1;::::0;::::1;:62:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;22835:209:::1;::::0;;19802:51:175;;;19884:2;19869:18;;19862:60;;;;19938:18;;;19931:60;20022:2;20007:18;;20000:60;;;;20091:3;20076:19;;20069:61;22526:13:157;;-1:-1:-1;22835:209:157::1;::::0;19789:3:175;19774:19;22835:209:157::1;;;;;;;22135:916;21876:1175:::0;;;;;:::o;6167:145::-;6231:7;6257:21;:19;:21::i;:::-;-1:-1:-1;;;;;6257:48:157;;;;;;;:41;;;;;:48;;-1:-1:-1;6257:48:157;;;;;6167:145::o;4931:128::-;4984:7;5010:21;:19;:21::i;:::-;:42;;;-1:-1:-1;;;;;5010:42:157;;4931:128;-1:-1:-1;4931:128:157:o;4123:105:49:-;1355:13:105;:11;:13::i;:::-;4190:31:49::1;::::0;-1:-1:-1;;;4190:31:49;;-1:-1:-1;;;;;4740:32:175;;;4190:31:49::1;::::0;::::1;4722:51:175::0;4190:8:49::1;:20;::::0;::::1;::::0;4695:18:175;;4190:31:49::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4123:105:::0;:::o;4795:130:157:-;4849:7;4875:21;:19;:21::i;:::-;:43;;;-1:-1:-1;;;;;4875:43:157;;4795:130;-1:-1:-1;4795:130:157:o;15176:801::-;1503:19:113;:17;:19::i;:::-;15411:20:157::1;::::0;;;15524:70:::1;::::0;;::::1;15535:5:::0;15524:70:::1;:::i;:::-;15410:184;;;;;;;;15604:25;15632:21;:19;:21::i;:::-;15604:49;;15663:30;15696:8;:73;;15740:29;::::0;::::1;::::0;-1:-1:-1;;;;;15740:29:157::1;15696:73;;;15707:30;::::0;::::1;::::0;-1:-1:-1;;;;;15707:30:157::1;15696:73;15787:77;::::0;-1:-1:-1;;;15787:77:157;;15663:106;;-1:-1:-1;;;;;;15787:53:157;::::1;::::0;::::1;::::0;:77:::1;::::0;15841:2;;15845;;15849;;15853:10;;15787:77:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15779:102;;;;-1:-1:-1::0;;;15779:102:157::1;;;;;;;;;;;;15922:13:::0;;::::1;15937::::0;::::1;::::0;15892:78:::1;::::0;15902:8;;15912;;15922:13;15892:78:::1;;::::0;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;15956:13:::0;;::::1;::::0;15892:9:::1;:78::i;5867:143::-:0;5930:7;5956:21;:19;:21::i;:::-;-1:-1:-1;;;;;5956:47:157;;;;;;;:40;;;;;:47;;-1:-1:-1;5956:47:157;;;;;5867:143::o;5363:125::-;5415:6;5440:21;:19;:21::i;:::-;:41;;;-1:-1:-1;;;5440:41:157;;-1:-1:-1;;;;;5440:41:157;;;-1:-1:-1;5363:125:157:o;2335:198:105:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:105;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:105;;24135:2:175;2415:73:105::1;::::0;::::1;24117:21:175::0;24174:2;24154:18;;;24147:30;24213:34;24193:18;;;24186:62;-1:-1:-1;;;24264:18:175;;;24257:36;24310:19;;2415:73:105::1;23933:402:175::0;2415:73:105::1;2498:28;2517:8;2498:18;:28::i;21241:113:157:-:0;1355:13:105;:11;:13::i;:::-;21301:10:157::1;:8;:10::i;:::-;21326:21;::::0;::::1;::::0;;;::::1;21241:113::o:0;4470:98::-;4508:7;4534:21;:19;:21::i;:::-;:27;-1:-1:-1;;;;;4534:27:157;;4470:98;-1:-1:-1;4470:98:157:o;5738:123::-;5789:6;5814:21;:19;:21::i;:::-;:40;;;-1:-1:-1;;;5814:40:157;;-1:-1:-1;;;;;5814:40:157;;;-1:-1:-1;5738:123:157:o;3324:149:50:-;3406:4;3453:13;;;;;;3429:20;;3435:13;;3453:6;3435:13;:::i;3429:20::-;:37;;3324:149;-1:-1:-1;;3324:149:50:o;2031:106:113:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:113;;24542:2:175;2092:38:113;;;24524:21:175;24581:2;24561:18;;;24554:30;-1:-1:-1;;;24600:18:175;;;24593:46;24656:18;;2092:38:113;24340:340:175;4243:221:157;4348:53;;;;;;;;;;;;;;;;;;1852:57:149;4296:25:157;1839:71:149;;;4296:25:157;1931:37:149;4348:53:157;1707:277:149;2450:115:113;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:113::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:120::0;;886:96;2545:12:113::1;2538:20;::::0;-1:-1:-1;;;;;4740:32:175;;;4722:51;;4710:2;4695:18;2538:20:113::1;;;;;;;2450:115::o:0;3528:257:49:-;3691:13;;;3598:7;3691:13;;;926:26;3691:13;;;;;;;;;3714:43;;3745:12;;-1:-1:-1;;;3745:12:49;;4553:10:175;4541:23;;3745:12:49;;;4523:42:175;4496:18;;3745:12:49;4379:192:175;3714:43:49;3774:4;3528:257;-1:-1:-1;;;3528:257:49:o;20136:633:157:-;20286:25;20314:21;:19;:21::i;:::-;20370:8;;;;-1:-1:-1;;;;20370:8:157;;;;20353:13;;;;;;:::i;:::-;:25;;;20397:13;;;;:6;:13;:::i;:::-;20345:67;;;;;-1:-1:-1;;;20345:67:157;;4553:10:175;4541:23;;;20345:67:157;;;4523:42:175;4496:18;;20345:67:157;4379:192:175;20345:67:157;-1:-1:-1;20424:18:157;;20462:38;;;;20473:7;20462:38;:::i;:::-;-1:-1:-1;;;;;20514:30:157;;;;;;:21;;;:30;;;;;;20423:77;;-1:-1:-1;20423:77:157;;-1:-1:-1;20514:35:157;20510:164;;-1:-1:-1;;;;;20565:30:157;;;;;;:21;;;:30;;;;;;;:43;;;20627:36;;;;;20598:10;3004:25:175;;2992:2;2977:18;;2858:177;20627:36:157;;;;;;;;20510:164;20698:14;;;;-1:-1:-1;;;;;;;;20698:14:157;;;;;20688:24;;;;20684:79;;;20728:14;;;:24;;-1:-1:-1;;20728:24:157;-1:-1:-1;;;;;;;;20728:24:157;;;;;;20684:79;20276:493;;;20136:633;;;;;;;:::o;2550:391:51:-;-1:-1:-1;;;;;;;;;;;;;;;;;2771:8:51;-1:-1:-1;;;;;2771:14:51;;2803:86;;;;;;;;2819:7;2803:86;;;;;;2828:25;2845:7;2828:16;:25::i;:::-;2803:86;;;;2855:8;2803:86;;;;2865:8;2803:86;;;;2875:13;2803:86;;;;;2915:4;2771:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2752:182;2550:391;-1:-1:-1;;;;;2550:391:51:o;1620:130:105:-;1534:6;;-1:-1:-1;;;;;1534:6:105;965:10:120;1683:23:105;1675:68;;;;-1:-1:-1;;;1675:68:105;;27022:2:175;1675:68:105;;;27004:21:175;;;27041:18;;;27034:30;27100:34;27080:18;;;27073:62;27152:18;;1675:68:105;26820:356:175;1478:151:109;1531:7;-1:-1:-1;;;;;;;;;;;1557:59:109;1870:190:122;9766:66:157;1355:13:105;:11;:13::i;2841:944:109:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;:::-;2841:944;;;:::o;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:109;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:109;;;;;;;;-1:-1:-1;;3404:63:109;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:109;;27618:2:175;3631:56:109;;;27600:21:175;27657:2;27637:18;;;27630:30;27696:34;27676:18;;;27669:62;-1:-1:-1;;;27747:18:175;;;27740:44;27801:19;;3631:56:109;27416:410:175;3400:302:109;-1:-1:-1;;;;;;;;;;;3517:28:109;;3509:82;;;;-1:-1:-1;;;3509:82:109;;28033:2:175;3509:82:109;;;28015:21:175;28072:2;28052:18;;;28045:30;28111:34;28091:18;;;28084:62;-1:-1:-1;;;28162:18:175;;;28155:39;28211:19;;3509:82:109;27831:405:175;3509:82:109;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;1024:95:105:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1086:26:105::1;:24;:26::i;1456:189:52:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1532:26:52::1;1548:9;1532:15;:26::i;:::-;1568:31;:29;:31::i;:::-;1609:29;2290:67:112::0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;8699:1061:157:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;9016:17:157::1;:15;:17::i;:::-;9043:25;9071:21;:19;:21::i;:::-;9102:16:::0;;-1:-1:-1;;;;;9102:16:157;;::::1;-1:-1:-1::0;;;;;;9128:18:157;;;;;;;-1:-1:-1;;;9128:18:157::1;::::0;::::1;;;::::0;;-1:-1:-1;9156:13:157;::::1;:28:::0;;-1:-1:-1;;;;;;9156:28:157;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;9194:23:::1;::::0;::::1;:48:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;9252:22:::1;::::0;::::1;:46:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;9308:30:::1;::::0;::::1;:62:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;9380:29:::1;::::0;::::1;:60:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;9456:204:::1;::::0;;19802:51:175;;;19884:2;19869:18;;19862:60;;;;19938:18;;;19931:60;20022:2;20007:18;;20000:60;20091:3;20076:19;;20069:61;;;;9102:16:157;;-1:-1:-1;9456:204:157::1;::::0;19789:3:175;19774:19;9456:204:157::1;;;;;;;9671:24;::::0;;;:21:::1;::::0;::::1;:24;::::0;;;;3462:76:::1;9671:48:::0;;9729:20:::1;;:24:::0;;-1:-1:-1;;;;9729:24:157::1;::::0;;-1:-1:-1;;;;;;;8699:1061:157:o;2687:187:105:-;2779:6;;;-1:-1:-1;;;;;2795:17:105;;;-1:-1:-1;;;;;;2795:17:105;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;3700:766:51:-;3901:31;;:::i;:::-;4066:20;4089:26;4100:4;:14;;;4089:10;:26::i;:::-;4129:15;;;;4066:49;;-1:-1:-1;4129:19:51;4125:53;;4150:28;4162:4;:15;;;4150:11;:28::i;:::-;4267:8;-1:-1:-1;;;;;4267:13:51;;4289:12;4321:92;;;;;;;;4337:7;4321:92;;;;;;4346:25;4363:7;4346:16;:25::i;:::-;4321:92;;;;4373:8;4321:92;;;;4383:8;4321:92;;;;4411:1;4393:4;:15;;;:19;4321:92;;;;;4431:14;4267:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4189:270;3700:766;-1:-1:-1;;;;;;;3700:766:51:o;16262:1343:157:-;16490:25;16518:21;:19;:21::i;:::-;16490:49;;16572:20;16595:8;:76;;-1:-1:-1;;;;;16640:31:157;;;;;;:21;;;:31;;;;;;16595:76;;;-1:-1:-1;;;;;16606:31:157;;;;;;:21;;;:31;;;;;;16595:76;16572:99;-1:-1:-1;16725:8:157;16689:17;16681:54;;;;-1:-1:-1;;;16681:54:157;;-1:-1:-1;;;;;8620:31:175;;;16681:54:157;;;8602:50:175;8575:18;;16681:54:157;8458:200:175;16681:54:157;-1:-1:-1;16753:12:157;16769;16753:28;;;16745:87;;;;-1:-1:-1;;;16745:87:157;;;;;14158:25:175;;;;14199:18;;;14192:34;14131:18;;16745:87:157;13984:248:175;16745:87:157;;;16871:25;16899:9;:2;:7;:9::i;:::-;16871:37;-1:-1:-1;16871:37:157;16926:9;:30;;;16918:88;;;;-1:-1:-1;;;16918:88:157;;;;;14158:25:175;;;;14199:18;;;14192:34;14131:18;;16918:88:157;13984:248:175;16918:88:157;-1:-1:-1;;17077:10:157;;17045:13;;;-1:-1:-1;;;;;17077:26:157;;;;;;;17069:86;;;;-1:-1:-1;;;17069:86:157;;-1:-1:-1;;;;;2363:31:175;;;17069:86:157;;;2345:50:175;2431:31;;2411:18;;;2404:59;2318:18;;17069:86:157;2175:294:175;17069:86:157;-1:-1:-1;;17166:20:157;17189:28;;;:17;;;:28;;;;;;;17235:5;:20;;;17227:69;;;;-1:-1:-1;;;17227:69:157;;;;;14158:25:175;;;;14199:18;;;14192:34;14131:18;;17227:69:157;13984:248:175;17227:69:157;-1:-1:-1;17306:12:157;;-1:-1:-1;17321:20:157;17329:12;17321:5;:20;:::i;:::-;17306:35;;17383:4;17351:1;:17;;:28;17369:9;17351:28;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;17445:12:157;;;;17478:7;;17470:46;;-1:-1:-1;;;17470:46:157;;-1:-1:-1;;;;;29859:32:175;;;17470:46:157;;;29841:51:175;29908:18;;;29901:34;;;17478:7:157;;;;17470:25;;29814:18:175;;17470:46:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17540:13;-1:-1:-1;;;;;17531:67:157;;17555:4;17561:8;17571;17581:12;17595:2;17531:67;;;;;;;;;30267:25:175;;;30335:14;;30328:22;30323:2;30308:18;;;30301:50;;;;-1:-1:-1;;;;;30387:31:175;;;30382:2;30367:18;;;30360:59;;;;30450:2;30435:18;;30428:34;;;;30503:13;;30499:38;;;30493:3;30478:19;;30471:67;30581:15;;;30575:22;30569:3;30554:19;;30547:51;30641:15;30635:22;30629:3;30614:19;;30607:51;30254:3;30239:19;;29946:718;17531:67:157;;;;;;;;16480:1125;;;;;;;16262:1343;;;;;;:::o;2697:117:113:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:113::1;::::0;;2785:22:::1;965:10:120::0;2794:12:113::1;886:96:120::0;1720:281:109;-1:-1:-1;;;;;1713:19:119;;;1793:106:109;;;;-1:-1:-1;;;1793:106:109;;30871:2:175;1793:106:109;;;30853:21:175;30910:2;30890:18;;;30883:30;30949:34;30929:18;;;30922:62;-1:-1:-1;;;31000:18:175;;;30993:43;31053:19;;1793:106:109;30669:409:175;1793:106:109;-1:-1:-1;;;;;;;;;;;1909:85:109;;-1:-1:-1;;;;;;1909:85:109;-1:-1:-1;;;;;1909:85:109;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;:::-;;2393:276;;;:::o;1125:111:105:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1197:32:105::1;965:10:120::0;1197:18:105::1;:32::i;1787:123:49:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1867:36:49::1;1893:9;1867:25;:36::i;1084:97:113:-:0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1147:27:113::1;:25;:27::i;5162:191:51:-:0;5228:17;5274:10;5261:9;:23;5257:62;;5293:26;;-1:-1:-1;;;5293:26:51;;5309:9;5293:26;;;3004:25:175;2977:18;;5293:26:51;2858:177:175;5257:62:51;-1:-1:-1;5336:10:51;5162:191::o;5730:410::-;5883:15;5901:8;-1:-1:-1;;;;;5901:16:51;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5883:36;-1:-1:-1;;;;;;5933:21:51;;5929:54;;5963:20;;-1:-1:-1;;;5963:20:51;;;;;;;;;;;5929:54;6057:76;-1:-1:-1;;;;;6057:32:51;;6090:10;6110:8;6121:11;6057:32;:76::i;251:330:166:-;316:7;335:14;352:60;376:2;:10;;;388:2;:12;;;402:2;:8;;;359:52;;;;;;;;;31560:3:175;31538:16;;;;-1:-1:-1;;;;;;31534:51:175;31522:64;;31611:1;31602:11;;31595:27;;;;31647:2;31638:12;;31631:28;31684:2;31675:12;;31339:354;359:52:166;;;;-1:-1:-1;;359:52:166;;;;;;;;;;352:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;439:84:166;-1:-1:-1;;;540:34:166;;;-1:-1:-1;;;251:330:166:o;2209:106:113:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:113;;32206:2:175;2267:41:113;;;32188:21:175;32245:2;32225:18;;;32218:30;-1:-1:-1;;;32264:18:175;;;32257:50;32324:18;;2267:41:113;32004:344:175;2107:152:109;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:109;;;;;;;;2107:152;:::o;6685:198:119:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;1916:191:49:-;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;-1:-1:-1;;;;;2010:23:49;::::1;2006:53;;2042:17;;-1:-1:-1::0;;;2042:17:49::1;;;;;;;;;;;1187:95:113::0;5374:13:111;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:111;;;;;;;:::i;:::-;1260:7:113::1;:15:::0;;-1:-1:-1;;1260:15:113::1;::::0;;1187:95::o;1618:188:142:-;1745:53;;;-1:-1:-1;;;;;32573:32:175;;;1745:53:142;;;32555:51:175;32642:32;;32622:18;;;32615:60;32691:18;;;;32684:34;;;1745:53:142;;;;;;;;;;32528:18:175;;;;1745:53:142;;;;;;;;-1:-1:-1;;;;;1745:53:142;-1:-1:-1;;;1745:53:142;;;1718:81;;1738:5;;1718:19;:81::i;7069:325:119:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:119;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:119:o;8370:720:142:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;-1:-1:-1;;8916:1:142;8910:8;8866:16;;-1:-1:-1;8942:15:142;;:68;;8994:11;9009:1;8994:16;;8942:68;;;-1:-1:-1;;;;;8960:26:142;;;:31;8942:68;8938:146;;;9033:40;;-1:-1:-1;;;9033:40:142;;-1:-1:-1;;;;;4740:32:175;;9033:40:142;;;4722:51:175;4695:18;;9033:40:142;4576:203:175;7682:628:119;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:119;;;8124:60;;;;-1:-1:-1;;;8124:60:119;;32931:2:175;8124:60:119;;;32913:21:175;32970:2;32950:18;;;32943:30;33009:31;32989:18;;;32982:59;33058:18;;8124:60:119;32729:353:175;8124:60:119;-1:-1:-1;8219:10:119;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:119;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:347:175:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:175;;-1:-1:-1;;;;;202:30:175;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:409::-;436:6;444;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;553:9;540:23;-1:-1:-1;;;;;578:6:175;575:30;572:50;;;618:1;615;608:12;572:50;657:58;707:7;698:6;687:9;683:22;657:58;:::i;:::-;734:8;;631:84;;-1:-1:-1;366:409:175;-1:-1:-1;;;;366:409:175:o;780:154::-;839:5;884:2;875:6;870:3;866:16;862:25;859:45;;;900:1;897;890:12;859:45;-1:-1:-1;922:6:175;780:154;-1:-1:-1;780:154:175:o;939:131::-;-1:-1:-1;;;;;1014:31:175;;1004:42;;994:70;;1060:1;1057;1050:12;1075:1095;1218:6;1226;1234;1242;1250;1258;1266;1319:3;1307:9;1298:7;1294:23;1290:33;1287:53;;;1336:1;1333;1326:12;1287:53;1359;1404:7;1393:9;1359:53;:::i;:::-;1349:63;-1:-1:-1;1481:2:175;1466:18;;1453:32;;-1:-1:-1;1560:3:175;1545:19;;1532:33;-1:-1:-1;;;;;1577:30:175;;1574:50;;;1620:1;1617;1610:12;1574:50;1659:58;1709:7;1700:6;1689:9;1685:22;1659:58;:::i;:::-;1736:8;;-1:-1:-1;1633:84:175;-1:-1:-1;;1823:3:175;1808:19;;1795:33;1837;1795;1837;:::i;:::-;1889:7;-1:-1:-1;1949:3:175;1934:19;;1921:33;-1:-1:-1;;;;;1966:32:175;;1963:52;;;2011:1;2008;2001:12;1963:52;2050:60;2102:7;2091:8;2080:9;2076:24;2050:60;:::i;:::-;1075:1095;;;;-1:-1:-1;1075:1095:175;;-1:-1:-1;1075:1095:175;;;;2024:86;;-1:-1:-1;;;1075:1095:175:o;2474:129::-;-1:-1:-1;;;;;2552:5:175;2548:30;2541:5;2538:41;2528:69;;2593:1;2590;2583:12;2608:245;2666:6;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2774:9;2761:23;2793:30;2817:5;2793:30;:::i;3198:261::-;3118:12;;3106:25;;3180:4;3169:16;;;3163:23;3147:14;;;3140:47;3392:2;3377:18;;3404:49;3040:153;3464:163;3531:20;;3591:10;3580:22;;3570:33;;3560:61;;3617:1;3614;3607:12;3560:61;3464:163;;;:::o;3632:298::-;3699:6;3707;3760:2;3748:9;3739:7;3735:23;3731:32;3728:52;;;3776:1;3773;3766:12;3728:52;3799:28;3817:9;3799:28;:::i;:::-;3789:38;3896:2;3881:18;;;;3868:32;;-1:-1:-1;;;3632:298:175:o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4784:1170::-;4905:6;4913;4921;4929;4937;4945;4953;4961;5014:3;5002:9;4993:7;4989:23;4985:33;4982:53;;;5031:1;5028;5021:12;4982:53;5070:9;5057:23;5089:31;5114:5;5089:31;:::i;:::-;5139:5;-1:-1:-1;5163:37:175;5196:2;5181:18;;5163:37;:::i;:::-;5153:47;;5252:2;5241:9;5237:18;5224:32;5265:33;5290:7;5265:33;:::i;:::-;5317:7;-1:-1:-1;5376:2:175;5361:18;;5348:32;5389:33;5348:32;5389:33;:::i;:::-;5441:7;-1:-1:-1;5500:3:175;5485:19;;5472:33;5514;5472;5514;:::i;:::-;5566:7;-1:-1:-1;5625:3:175;5610:19;;5597:33;5639;5597;5639;:::i;:::-;5691:7;-1:-1:-1;5750:3:175;5735:19;;5722:33;5764;5722;5764;:::i;:::-;5816:7;-1:-1:-1;5875:3:175;5860:19;;5847:33;5889;5847;5889;:::i;:::-;5941:7;5931:17;;;4784:1170;;;;;;;;;;;:::o;5959:127::-;6020:10;6015:3;6011:20;6008:1;6001:31;6051:4;6048:1;6041:15;6075:4;6072:1;6065:15;6091:251;6163:2;6157:9;6205:2;6193:15;;-1:-1:-1;;;;;6223:34:175;;6259:22;;;6220:62;6217:88;;;6285:18;;:::i;:::-;6321:2;6314:22;6091:251;:::o;6347:275::-;6418:2;6412:9;6483:2;6464:13;;-1:-1:-1;;6460:27:175;6448:40;;-1:-1:-1;;;;;6503:34:175;;6539:22;;;6500:62;6497:88;;;6565:18;;:::i;:::-;6601:2;6594:22;6347:275;;-1:-1:-1;6347:275:175:o;6627:900::-;6704:6;6712;6765:2;6753:9;6744:7;6740:23;6736:32;6733:52;;;6781:1;6778;6771:12;6733:52;6820:9;6807:23;6839:31;6864:5;6839:31;:::i;:::-;6889:5;-1:-1:-1;6945:2:175;6930:18;;6917:32;-1:-1:-1;;;;;6961:30:175;;6958:50;;;7004:1;7001;6994:12;6958:50;7027:22;;7080:4;7072:13;;7068:27;-1:-1:-1;7058:55:175;;7109:1;7106;7099:12;7058:55;7149:2;7136:16;-1:-1:-1;;;;;7167:6:175;7164:30;7161:56;;;7197:18;;:::i;:::-;7239:57;7286:2;7263:17;;-1:-1:-1;;7259:31:175;7292:2;7255:40;7239:57;:::i;:::-;7319:6;7312:5;7305:21;7367:7;7362:2;7353:6;7349:2;7345:15;7341:24;7338:37;7335:57;;;7388:1;7385;7378:12;7335:57;7443:6;7438:2;7434;7430:11;7425:2;7418:5;7414:14;7401:49;7495:1;7490:2;7481:6;7474:5;7470:18;7466:27;7459:38;7516:5;7506:15;;;;;6627:900;;;;;:::o;8227:226::-;8286:6;8339:2;8327:9;8318:7;8314:23;8310:32;8307:52;;;8355:1;8352;8345:12;8307:52;-1:-1:-1;8400:23:175;;8227:226;-1:-1:-1;8227:226:175:o;8663:670::-;8777:6;8785;8793;8801;8854:3;8842:9;8833:7;8829:23;8825:33;8822:53;;;8871:1;8868;8861:12;8822:53;8894;8939:7;8928:9;8894:53;:::i;:::-;8884:63;;8998:2;8987:9;8983:18;8970:32;-1:-1:-1;;;;;9017:6:175;9014:30;9011:50;;;9057:1;9054;9047:12;9011:50;9096:58;9146:7;9137:6;9126:9;9122:22;9096:58;:::i;:::-;9173:8;;-1:-1:-1;9070:84:175;-1:-1:-1;;9258:3:175;9243:19;;9230:33;9272:31;9230:33;9272:31;:::i;:::-;8663:670;;;;-1:-1:-1;8663:670:175;;-1:-1:-1;;8663:670:175:o;9338:469::-;9498:4;9540:3;9529:9;9525:19;9517:27;;9577:6;9571:13;9560:9;9553:32;-1:-1:-1;;;;;9645:4:175;9637:6;9633:17;9627:24;9623:49;9616:4;9605:9;9601:20;9594:79;9720:4;9712:6;9708:17;9702:24;9735:66;9795:4;9784:9;9780:20;9766:12;3118;;3106:25;;3180:4;3169:16;;;3163:23;3147:14;;3140:47;3040:153;9735:66;;9338:469;;;;:::o;9812:118::-;9898:5;9891:13;9884:21;9877:5;9874:32;9864:60;;9920:1;9917;9910:12;9935:814;10065:6;10073;10081;10089;10097;10150:3;10138:9;10129:7;10125:23;10121:33;10118:53;;;10167:1;10164;10157:12;10118:53;10206:9;10193:23;10225:28;10247:5;10225:28;:::i;:::-;10272:5;-1:-1:-1;10329:2:175;10314:18;;10301:32;10342;10301;10342;:::i;:::-;10393:7;-1:-1:-1;10419:62:175;10473:7;10468:2;10453:18;;10419:62;:::i;:::-;10409:72;;10532:3;10521:9;10517:19;10504:33;-1:-1:-1;;;;;10552:6:175;10549:30;10546:50;;;10592:1;10589;10582:12;10546:50;10631:58;10681:7;10672:6;10661:9;10657:22;10631:58;:::i;:::-;9935:814;;;;-1:-1:-1;9935:814:175;;-1:-1:-1;10708:8:175;;10605:84;9935:814;-1:-1:-1;;;9935:814:175:o;10754:184::-;10812:6;10865:2;10853:9;10844:7;10840:23;10836:32;10833:52;;;10881:1;10878;10871:12;10833:52;10904:28;10922:9;10904:28;:::i;10943:813::-;11038:6;11046;11054;11062;11070;11123:3;11111:9;11102:7;11098:23;11094:33;11091:53;;;11140:1;11137;11130:12;11091:53;11179:9;11166:23;11198:31;11223:5;11198:31;:::i;:::-;11248:5;-1:-1:-1;11305:2:175;11290:18;;11277:32;11318:33;11277:32;11318:33;:::i;:::-;11370:7;-1:-1:-1;11429:2:175;11414:18;;11401:32;11442:33;11401:32;11442:33;:::i;:::-;11494:7;-1:-1:-1;11553:2:175;11538:18;;11525:32;11566:33;11525:32;11566:33;:::i;:::-;11618:7;-1:-1:-1;11677:3:175;11662:19;;11649:33;11691;11649;11691;:::i;:::-;11743:7;11733:17;;;10943:813;;;;;;;;:::o;11761:236::-;11846:6;11899:2;11887:9;11878:7;11874:23;11870:32;11867:52;;;11915:1;11912;11905:12;11867:52;11938:53;11983:7;11972:9;11938:53;:::i;12002:768::-;12085:6;12138:4;12126:9;12117:7;12113:23;12109:34;12106:54;;;12156:1;12153;12146:12;12106:54;12182:1;12228:7;12221:4;12210:9;12206:20;12202:34;12192:62;;12250:1;12247;12240:12;12192:62;-1:-1:-1;12278:1:175;;12337:4;12361:21;12337:4;12361:21;:::i;:::-;12350:32;-1:-1:-1;12350:32:175;;-1:-1:-1;12432:20:175;;12464:19;;;12461:39;;;12496:1;12493;12486:12;12461:39;12520:9;12538:200;12554:6;12549:3;12546:15;12538:200;;;12646:17;;12676:18;;12723:4;12714:14;;;;12571;12538:200;;;-1:-1:-1;12757:7:175;;12002:768;-1:-1:-1;;;;;12002:768:175:o;12907:475::-;13089:4;13074:20;;13078:9;13171:6;13047:4;13205:171;13219:4;13216:1;13213:11;13205:171;;;13278:13;;13266:26;;13321:4;13312:14;;;;13349:17;;;;13239:1;13232:9;13205:171;;;13209:3;;;12907:475;;;;:::o;13387:245::-;13454:6;13507:2;13495:9;13486:7;13482:23;13478:32;13475:52;;;13523:1;13520;13513:12;13475:52;13555:9;13549:16;13574:28;13596:5;13574:28;:::i;14781:408::-;14983:2;14965:21;;;15022:2;15002:18;;;14995:30;15061:34;15056:2;15041:18;;15034:62;-1:-1:-1;;;15127:2:175;15112:18;;15105:42;15179:3;15164:19;;14781:408::o;15194:::-;15396:2;15378:21;;;15435:2;15415:18;;;15408:30;15474:34;15469:2;15454:18;;15447:62;-1:-1:-1;;;15540:2:175;15525:18;;15518:42;15592:3;15577:19;;15194:408::o;16646:230::-;16716:6;16769:2;16757:9;16748:7;16744:23;16740:32;16737:52;;;16785:1;16782;16775:12;16737:52;-1:-1:-1;16830:16:175;;16646:230;-1:-1:-1;16646:230:175:o;17068:288::-;17109:3;17147:5;17141:12;17174:6;17169:3;17162:19;17230:6;17223:4;17216:5;17212:16;17205:4;17200:3;17196:14;17190:47;17282:1;17275:4;17266:6;17261:3;17257:16;17253:27;17246:38;17345:4;17338:2;17334:7;17329:2;17321:6;17317:15;17313:29;17308:3;17304:39;17300:50;17293:57;;;17068:288;;;;:::o;17361:::-;17536:6;17525:9;17518:25;17579:2;17574;17563:9;17559:18;17552:30;17499:4;17599:44;17639:2;17628:9;17624:18;17616:6;17599:44;:::i;17654:768::-;17737:6;17790:4;17778:9;17769:7;17765:23;17761:34;17758:54;;;17808:1;17805;17798:12;17758:54;17834:1;17880:7;17873:4;17862:9;17858:20;17854:34;17844:62;;17902:1;17899;17892:12;17844:62;-1:-1:-1;17930:1:175;;17989:4;18013:21;17989:4;18013:21;:::i;18427:475::-;18609:4;18594:20;;18598:9;18691:6;18567:4;18725:171;18739:4;18736:1;18733:11;18725:171;;;18798:13;;18786:26;;18841:4;18832:14;;;;18869:17;;;;18759:1;18752:9;18725:171;;18907:631;19001:6;19061:2;19049:9;19040:7;19036:23;19032:32;19076:2;19073:22;;;19091:1;19088;19081:12;19073:22;-1:-1:-1;19133:22:175;;:::i;:::-;19192:9;19179:23;19211:32;19235:7;19211:32;:::i;:::-;19252:22;;19347:2;19332:18;;;19319:32;19367:14;;;19360:31;19464:2;19449:18;;;19436:32;19484:14;;;19477:31;;;;-1:-1:-1;19259:5:175;18907:631;-1:-1:-1;18907:631:175:o;20141:626::-;20191:5;20244:3;20237:4;20229:6;20225:17;20221:27;20211:55;;20262:1;20259;20252:12;20211:55;20290:1;20373:19;20351:2;20373:19;:::i;:::-;20362:30;;20412:7;20454:2;20446:6;20442:15;20480:3;20472:6;20469:15;20466:35;;;20497:1;20494;20487:12;20466:35;20521:6;20536:200;20552:6;20547:3;20544:15;20536:200;;;20644:17;;20674:18;;20721:4;20712:14;;;;20569;20536:200;;;-1:-1:-1;20754:7:175;;20141:626;-1:-1:-1;;;;;20141:626:175:o;20772:1656::-;20973:6;20981;20989;20997;21050:3;21038:9;21029:7;21025:23;21021:33;21018:53;;;21067:1;21064;21057:12;21018:53;21090:44;21126:7;21115:9;21090:44;:::i;:::-;21080:54;;21177:7;21172:2;21161:9;21157:18;21153:32;21143:60;;21199:1;21196;21189:12;21143:60;21278:2;21300:19;21278:2;21300:19;:::i;:::-;21341:3;21382;21371:9;21367:19;21409:7;21401:6;21398:19;21395:39;;;21430:1;21427;21420:12;21395:39;21469:2;21458:9;21454:18;21481:167;21497:6;21492:3;21489:15;21481:167;;;21565:38;21595:7;21590:3;21565:38;:::i;:::-;21553:51;;21633:4;21624:14;;;;21514;;21481:167;;;21485:3;21667:5;21657:15;;21691:41;21724:7;21716:6;21691:41;:::i;:::-;21681:51;;;;;;21770:3;21759:9;21755:19;21798:1;21841:7;21834:4;21826:6;21822:17;21818:31;21808:59;;21863:1;21860;21853:12;21808:59;21891:1;21978:19;21956:2;21978:19;:::i;:::-;21967:30;;22019:7;22063:2;22055:6;22051:15;22091:7;22081:8;22078:21;22075:41;;;22112:1;22109;22102:12;22075:41;22153:216;22171:8;22164:5;22161:19;22153:216;;;22269:19;;22301:20;;22354:4;22192:16;;;;22343;;;;22153:216;;;-1:-1:-1;20772:1656:175;;;;-1:-1:-1;20772:1656:175;;-1:-1:-1;22389:7:175;;-1:-1:-1;;;;20772:1656:175:o;22433:303::-;22526:5;22549:1;22559:171;22573:4;22570:1;22567:11;22559:171;;;22632:13;;22620:26;;22675:4;22666:14;;;;22703:17;;;;22593:1;22586:9;22559:171;;22741:1187;23189:3;23174:19;;23202:43;23178:9;23227:6;23202:43;:::i;:::-;23280:2;23269:9;23265:18;23325:6;23349:1;23359:187;23373:4;23370:1;23367:11;23359:187;;;23420:44;23460:3;23451:6;23445:13;23420:44;:::i;:::-;23493:2;23484:12;;;;;23531:4;23519:17;;;;;23393:1;23386:9;23359:187;;;23363:3;;;23555:53;23603:3;23592:9;23588:19;23580:6;23555:53;:::i;:::-;23645:3;23634:9;23630:19;23697:6;23723:1;23733:189;23749:4;23744:3;23741:13;23733:189;;;23814:15;;23800:30;;23863:4;23852:16;;;;23893:19;;;;23773:1;23764:11;23733:189;;;23737:3;;;22741:1187;;;;;;;:::o;24685:365::-;24752:6;24760;24813:2;24801:9;24792:7;24788:23;24784:32;24781:52;;;24829:1;24826;24819:12;24781:52;24874:23;;;-1:-1:-1;24973:2:175;24958:18;;24945:32;24986;24945;24986;:::i;:::-;25037:7;25027:17;;;24685:365;;;;;:::o;25055:889::-;25278:2;25267:9;25260:21;25336:10;25327:6;25321:13;25317:30;25312:2;25301:9;25297:18;25290:58;25402:4;25394:6;25390:17;25384:24;25379:2;25368:9;25364:18;25357:52;25241:4;25456:2;25448:6;25444:15;25438:22;25497:4;25491:3;25480:9;25476:19;25469:33;25525:51;25571:3;25560:9;25556:19;25542:12;25525:51;:::i;:::-;25511:65;;25625:2;25617:6;25613:15;25607:22;25699:2;25695:7;25683:9;25675:6;25671:22;25667:36;25660:4;25649:9;25645:20;25638:66;25727:40;25760:6;25744:14;25727:40;:::i;:::-;25836:3;25824:16;;;;25818:23;25811:31;25804:39;25798:3;25783:19;;25776:68;-1:-1:-1;;;;;;;;25905:32:175;;;;25898:4;25883:20;;;25876:62;25713:54;25055:889::o;25949:602::-;26019:5;26067:4;26055:9;26050:3;26046:19;26042:30;26039:50;;;26085:1;26082;26075:12;26039:50;26138:4;26132:11;;;26170:17;;-1:-1:-1;;;;;26202:34:175;;26238:22;;;26199:62;26196:88;;;26264:18;;:::i;:::-;26300:4;26293:24;26386:16;;26411:23;;26500:2;26485:18;;;26479:25;26520:15;;;26513:32;;;;-1:-1:-1;26335:6:175;25949:602;-1:-1:-1;25949:602:175:o;26556:259::-;26656:6;26709:2;26697:9;26688:7;26684:23;26680:32;26677:52;;;26725:1;26722;26715:12;26677:52;26748:61;26801:7;26790:9;26748:61;:::i;28241:407::-;28443:2;28425:21;;;28482:2;28462:18;;;28455:30;28521:34;28516:2;28501:18;;28494:62;-1:-1:-1;;;28587:2:175;28572:18;;28565:41;28638:3;28623:19;;28241:407::o;28653:614::-;28757:6;28817:3;28805:9;28796:7;28792:23;28788:33;28833:2;28830:22;;;28848:1;28845;28838:12;28830:22;-1:-1:-1;28890:22:175;;:::i;:::-;28957:16;;28982:22;;29049:2;29034:18;;29028:25;29062:32;29028:25;29062:32;:::i;:::-;29121:2;29110:14;;29103:31;29166:70;29228:7;29223:2;29208:18;;29166:70;:::i;:::-;29161:2;29150:14;;29143:94;29154:5;28653:614;-1:-1:-1;;;28653:614:175:o;29272:127::-;29333:10;29328:3;29324:20;29321:1;29314:31;29364:4;29361:1;29354:15;29388:4;29385:1;29378:15;29404:128;29471:9;;;29492:11;;;29489:37;;;29506:18;;:::i;29537:125::-;29602:9;;;29623:10;;;29620:36;;;29636:18;;:::i;31083:251::-;31153:6;31206:2;31194:9;31185:7;31181:23;31177:32;31174:52;;;31222:1;31219;31212:12;31174:52;31254:9;31248:16;31273:31;31298:5;31273:31;:::i;31698:301::-;31827:3;31865:6;31859:13;31911:6;31904:4;31896:6;31892:17;31887:3;31881:37;31973:1;31937:16;;31962:13;;;-1:-1:-1;31937:16:175;31698:301;-1:-1:-1;31698:301:175:o;33087:219::-;33236:2;33225:9;33218:21;33199:4;33256:44;33296:2;33285:9;33281:18;33273:6;33256:44;:::i","linkReferences":{},"immutableReferences":{"10127":[{"start":1081,"length":32},{"start":2648,"length":32},{"start":6249,"length":32},{"start":7710,"length":32},{"start":9025,"length":32},{"start":10340,"length":32},{"start":10523,"length":32}],"65793":[{"start":3173,"length":32},{"start":3237,"length":32},{"start":3954,"length":32},{"start":4018,"length":32},{"start":4137,"length":32}]}},"methodIdentifiers":{"activateEmergency()":"457e8b97","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","deactivateEmergency()":"fa686948","endpoint()":"5e280f11","globalTransferRoots(uint64)":"c172e9e3","hubEid()":"4600f17c","initialize(address,uint32,address,address,address,address,address,address)":"4edddf6b","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isUpToDate()":"442bde04","latestAggSeq()":"a97f176f","latestProvedIndex()":"9f487dbd","latestRelayedIndex()":"ff53cc04","latestReservedIndex()":"e9debe05","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","paused()":"5c975abb","peers(uint32)":"bb0b6a53","proveTransferRoot(bytes)":"11d29723","provedTransferRoots(uint64)":"1bb29877","proxiableUUID()":"52d1902d","quoteRelay(bytes)":"26efeb2b","relayTransferRoot(bytes)":"86106a29","renounceOwnership()":"715018a6","reserveHashChain()":"63373bdc","reservedHashChains(uint64)":"e2910dd3","rootDecider()":"8fe64dd4","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","setVerifiers(address,address,address,address,address)":"be6a2c15","singleTeleport(bool,uint64,(uint64,bytes32,bytes32),bytes)":"d4d12244","singleWithdrawGlobalVerifier()":"4a80034f","singleWithdrawLocalVerifier()":"755d89f2","teleport(bool,uint64,(uint64,bytes32,bytes32),bytes)":"9854265f","token()":"fc0c546a","totalTeleported(uint256)":"69cc1d27","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","withdrawGlobalDecider()":"d22f96df","withdrawLocalDecider()":"ca466380"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"endpoint\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"rootHint\",\"type\":\"uint64\"}],\"name\":\"ExpectedRootZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"FinalRecipientMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"FinalTransferRootMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"}],\"name\":\"InsufficientMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"InvalidHubSource\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"InvalidInitialLastLeafIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"InvalidInitialTotalValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"provided\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"}],\"name\":\"InvalidRecipientChainId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"NewHashChainMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoProvedRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTotal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"NothingToWithdraw\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"OldRootMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"}],\"name\":\"OldRootZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"RecipientMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"}],\"name\":\"ReserveHashChainNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"TransferRootMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DeactivateEmergency\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"root1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"root2\",\"type\":\"uint256\"}],\"name\":\"EmergencyTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"aggSeq\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"GlobalRootSaved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"hashChain\",\"type\":\"uint256\"}],\"name\":\"HashChainReserved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isGlobal\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rootHint\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferRoot\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tweak\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct GeneralRecipientLib.GeneralRecipient\",\"name\":\"gr\",\"type\":\"tuple\"}],\"name\":\"Teleport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"TransferRootProved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"lzMsgId\",\"type\":\"bytes\"}],\"name\":\"TransferRootRelayed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rootDecider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawGlobalDecider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawLocalDecider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"singleWithdrawGlobalVerifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"singleWithdrawLocalVerifier\",\"type\":\"address\"}],\"name\":\"VerifiersSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activateEmergency\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deactivateEmergency\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"}],\"name\":\"globalTransferRoots\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hubEid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"hubEid_\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rootDecider_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawGlobalDecider_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawLocalDecider_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"singleWithdrawGlobalVerifier_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"singleWithdrawLocalVerifier_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUpToDate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestAggSeq\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestProvedIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRelayedIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestReservedIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"proveTransferRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"}],\"name\":\"provedTransferRoots\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"quoteRelay\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"relayTransferRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"receipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserveHashChain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"hashChain\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"}],\"name\":\"reservedHashChains\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootDecider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRootDecider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newWithdrawGlobalDecider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newWithdrawLocalDecider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newSingleWithdrawGlobalVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newSingleWithdrawLocalVerifier\",\"type\":\"address\"}],\"name\":\"setVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isGlobal\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"rootHint\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tweak\",\"type\":\"bytes32\"}],\"internalType\":\"struct GeneralRecipientLib.GeneralRecipient\",\"name\":\"gr\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"singleTeleport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"singleWithdrawGlobalVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"singleWithdrawLocalVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isGlobal\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"rootHint\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tweak\",\"type\":\"bytes32\"}],\"internalType\":\"struct GeneralRecipientLib.GeneralRecipient\",\"name\":\"gr\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"teleport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"recipient\",\"type\":\"uint256\"}],\"name\":\"totalTeleported\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawGlobalDecider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawLocalDecider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Tracks reserved hash chains, proved transfer roots, global aggregation roots, and cumulative teleported totals.\",\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"initialize(address,uint32,address,address,address,address,address,address)\":{\"params\":{\"delegate\":\"Address that MUST be the contract owner; it is set as both Ownable owner and LayerZero delegate.\",\"hubEid_\":\"LayerZero endpoint ID of the Hub contract.\",\"rootDecider_\":\"Nova verifier for transfer-root transitions.\",\"singleWithdrawGlobalVerifier_\":\"Groth16 verifier for global single teleports.\",\"singleWithdrawLocalVerifier_\":\"Groth16 verifier for local single teleports.\",\"token_\":\"zERC20 token whose hash chain is reserved/minted against.\",\"withdrawGlobalDecider_\":\"Nova verifier for global teleport proofs.\",\"withdrawLocalDecider_\":\"Nova verifier for local teleport proofs.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"proveTransferRoot(bytes)\":{\"details\":\"Enforces consistency between (a) previously proved roots and (b) reserved hash chains, pausing on conflicts.\",\"params\":{\"proof\":\"Opaque calldata expected by `IRootDecider`, ABI-encoded as `uint256[32]`.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"quoteRelay(bytes)\":{\"params\":{\"options\":\"LayerZero execution parameters mirrored from `relayTransferRoot`.\"}},\"relayTransferRoot(bytes)\":{\"details\":\"Requires `latestProvedIndex` to have a non-zero root; excess msg.value is kept as the LZ native fee.\",\"params\":{\"options\":\"LayerZero execution parameters forwarded to `_lzSend`.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"reserveHashChain()\":{\"details\":\"Mirrors the first step of the private proof-of-burn lifecycle.\",\"returns\":{\"hashChain\":\"SHA-256 hash chain committed up to `index - 1`.\",\"index\":\"Reserved transfer index copied from zERC20.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setVerifiers(address,address,address,address,address)\":{\"params\":{\"newRootDecider\":\"Nova verifier for transfer roots.\",\"newSingleWithdrawGlobalVerifier\":\"Groth16 verifier for global single teleports.\",\"newSingleWithdrawLocalVerifier\":\"Groth16 verifier for local single teleports.\",\"newWithdrawGlobalDecider\":\"Nova verifier for global teleports.\",\"newWithdrawLocalDecider\":\"Nova verifier for local teleports.\"}},\"singleTeleport(bool,uint64,(uint64,bytes32,bytes32),bytes)\":{\"details\":\"Shares the same recipient/root validation pipeline as `teleport` but operates on Groth16 proofs.\",\"params\":{\"gr\":\"GeneralRecipient struct encoding chain id, recipient, tweak, and version byte.\",\"isGlobal\":\"Whether the proof references Hub-derived global roots.\",\"proof\":\"ABI-encoded Groth16 proof blob consumed by `IWithdrawVerifier`.\",\"rootHint\":\"Index into either `provedTransferRoots` or `globalTransferRoots`.\"}},\"teleport(bool,uint64,(uint64,bytes32,bytes32),bytes)\":{\"details\":\"Proof enforces that `totalValue` strictly increases per recipient hash; `isGlobal` selects local/global root arrays.\",\"params\":{\"gr\":\"GeneralRecipient struct encoding chain id, recipient, tweak, and version byte.\",\"isGlobal\":\"Whether the proof references Hub-derived global roots.\",\"proof\":\"ABI-encoded Nova proof blob consumed by `IWithdrawDecider`.\",\"rootHint\":\"Index into either `provedTransferRoots` or `globalTransferRoots`.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"activateEmergency()\":{\"notice\":\"Allows the owner to proactively pause the contract outside of proof conflicts.\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"deactivateEmergency()\":{\"notice\":\"Clears the emergency pause that is triggered when conflicting transfer roots are observed.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"initialize(address,uint32,address,address,address,address,address,address)\":{\"notice\":\"Initializes the verifier with the zERC20 token, Hub endpoint, LayerZero delegate, and initial deciders.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"isUpToDate()\":{\"notice\":\"Returns `true` when every proved root has been relayed to the Hub (`latestProvedIndex == latestRelayedIndex`).\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"proveTransferRoot(bytes)\":{\"notice\":\"Verifies a Nova proof for a transfer-root transition and records the resulting root by index.\"},\"quoteRelay(bytes)\":{\"notice\":\"Quotes the native fee required to relay a TransferRoot payload to the Hub.\"},\"relayTransferRoot(bytes)\":{\"notice\":\"Sends the latest proved transfer root to the Hub over LayerZero so it can join the global aggregation tree.\"},\"reserveHashChain()\":{\"notice\":\"Snapshots the latest `(index, hashChain)` tuple from zERC20 so Nova proofs can reference stable inputs.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"setVerifiers(address,address,address,address,address)\":{\"notice\":\"Atomically rotates all decider/verifier addresses to keep proofs aligned with the latest deployments.\"},\"singleTeleport(bool,uint64,(uint64,bytes32,bytes32),bytes)\":{\"notice\":\"Executes the Groth16 teleport flow for lightweight single withdrawals.\"},\"teleport(bool,uint64,(uint64,bytes32,bytes32),bytes)\":{\"notice\":\"Executes the multi-note Nova teleport flow, minting the delta on zERC20.\"}},\"notice\":\"LayerZero OApp that enforces the Nova / Groth16 teleport flows, acting as the bridge between on-chain hash-chain checkpoints, cross-chain aggregation roots, and zERC20 mints.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Verifier.sol\":\"Verifier\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":LayerZero-v2/=lib/LayerZero-v2/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":forge-std/=lib/forge-std/src/\",\":lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":poseidon-solidity/=lib/poseidon-solidity/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a\",\"dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4\",\"dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":{\"keccak256\":\"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d\",\"dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":{\"keccak256\":\"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a\",\"dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol\":{\"keccak256\":\"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35\",\"dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"lib/devtools/packages/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15\",\"dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d\",\"dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/Verifier.sol\":{\"keccak256\":\"0x3c4b1b65808297bc5c20811c2725b5a1384946040f5c96ebcd7069091264a2da\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://8c6e1a587348ea47a1cdf8a6fce41f4a698c7d71d9d733f6baf4ed8d457f851d\",\"dweb:/ipfs/QmZoMJWroEfFhKMF4DCMYxykdDLnb6C7PuyadRAMPRZfEm\"]},\"src/interfaces/IDecider.sol\":{\"keccak256\":\"0xa39bdbdf85588bb0bbceaaa2a8acde119a6fb2f326c71ed0309d0ba17ccde542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c9c16ba87942aa28d7475f76fa1ccdb4d0c969fc0de2e340e9eb72e9fb52805\",\"dweb:/ipfs/QmQSf1jHDBjgZ1Bg7CvjYX3JY2ST6osHzKaiQ3U1inReu5\"]},\"src/interfaces/IVerifier.sol\":{\"keccak256\":\"0x3d10957d3ea942edace754a73879c4c7bf8e1dbec9760fc25b4bb3cfe7a65e4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55b6e63734ad63a1e1055e6bfba052d2c48fee8efaf835bd78bcfdeb64810d8\",\"dweb:/ipfs/QmWvaTZTJsZceB6zrZneBys25KdUM3Kqi5XWQjam9wXPMV\"]},\"src/interfaces/IzERC20.sol\":{\"keccak256\":\"0x6c7ee27de91c844f721a3b2784641edbda479f257c61e487b7f6e990e5f010cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe5a68078453c19d13d1e28333f408126b0896cdbf1d2230271e96f87814e3c8\",\"dweb:/ipfs/QmP1q9pF7zAQzMDSJaYsEeDBU45xPns5s9nLuDeTEJxDPn\"]},\"src/utils/GeneralRecipientLib.sol\":{\"keccak256\":\"0xbab182783a8b7b84b5b2d22be9b43f61c12c1258ec73d596807616dc6d64a65d\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://185fc80874cb6fae9450839bb169d60fb2e756ac37c8c16639473de34d3eab13\",\"dweb:/ipfs/QmYDyaqn1UzUCRMvNfMZZvW9DR7nxzGnYgsLuWrDZCmbYF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint64","name":"rootHint","type":"uint64"}],"type":"error","name":"ExpectedRootZero"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"FinalRecipientMismatch"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"FinalTransferRootMismatch"},{"inputs":[{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"provided","type":"uint256"}],"type":"error","name":"InsufficientMsgValue"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"type":"error","name":"InvalidHubSource"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"InvalidInitialLastLeafIndex"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"InvalidInitialTotalValue"},{"inputs":[],"type":"error","name":"InvalidProof"},{"inputs":[{"internalType":"uint64","name":"provided","type":"uint64"},{"internalType":"uint64","name":"expected","type":"uint64"}],"type":"error","name":"InvalidRecipientChainId"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"},{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"NewHashChainMismatch"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[],"type":"error","name":"NoProvedRoot"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"uint256","name":"currentTotal","type":"uint256"},{"internalType":"uint256","name":"totalValue","type":"uint256"}],"type":"error","name":"NothingToWithdraw"},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"},{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"OldRootMismatch"},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"}],"type":"error","name":"OldRootZero"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"RecipientMismatch"},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"}],"type":"error","name":"ReserveHashChainNotFound"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"TransferRootMismatch"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroToken"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[],"type":"event","name":"DeactivateEmergency","anonymous":false},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64","indexed":true},{"internalType":"uint256","name":"root1","type":"uint256","indexed":false},{"internalType":"uint256","name":"root2","type":"uint256","indexed":false}],"type":"event","name":"EmergencyTriggered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"aggSeq","type":"uint64","indexed":true},{"internalType":"uint256","name":"root","type":"uint256","indexed":false}],"type":"event","name":"GlobalRootSaved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64","indexed":true},{"internalType":"uint256","name":"hashChain","type":"uint256","indexed":false}],"type":"event","name":"HashChainReserved","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bool","name":"isGlobal","type":"bool","indexed":false},{"internalType":"uint64","name":"rootHint","type":"uint64","indexed":false},{"internalType":"uint256","name":"transferRoot","type":"uint256","indexed":false},{"internalType":"struct GeneralRecipientLib.GeneralRecipient","name":"gr","type":"tuple","components":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"tweak","type":"bytes32"}],"indexed":false}],"type":"event","name":"Teleport","anonymous":false},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64","indexed":true},{"internalType":"uint256","name":"root","type":"uint256","indexed":false}],"type":"event","name":"TransferRootProved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64","indexed":true},{"internalType":"uint256","name":"root","type":"uint256","indexed":false},{"internalType":"bytes","name":"lzMsgId","type":"bytes","indexed":false}],"type":"event","name":"TransferRootRelayed","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"rootDecider","type":"address","indexed":false},{"internalType":"address","name":"withdrawGlobalDecider","type":"address","indexed":false},{"internalType":"address","name":"withdrawLocalDecider","type":"address","indexed":false},{"internalType":"address","name":"singleWithdrawGlobalVerifier","type":"address","indexed":false},{"internalType":"address","name":"singleWithdrawLocalVerifier","type":"address","indexed":false}],"type":"event","name":"VerifiersSet","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"activateEmergency"},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deactivateEmergency"},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"}],"stateMutability":"view","type":"function","name":"globalTransferRoots","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hubEid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"uint32","name":"hubEid_","type":"uint32"},{"internalType":"address","name":"delegate","type":"address"},{"internalType":"address","name":"rootDecider_","type":"address"},{"internalType":"address","name":"withdrawGlobalDecider_","type":"address"},{"internalType":"address","name":"withdrawLocalDecider_","type":"address"},{"internalType":"address","name":"singleWithdrawGlobalVerifier_","type":"address"},{"internalType":"address","name":"singleWithdrawLocalVerifier_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isUpToDate","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestAggSeq","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestProvedIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestRelayedIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestReservedIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"proveTransferRoot"},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"}],"stateMutability":"view","type":"function","name":"provedTransferRoots","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"stateMutability":"view","type":"function","name":"quoteRelay","outputs":[{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayTransferRoot","outputs":[{"internalType":"struct MessagingReceipt","name":"receipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reserveHashChain","outputs":[{"internalType":"uint64","name":"index","type":"uint64"},{"internalType":"uint256","name":"hashChain","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"index","type":"uint64"}],"stateMutability":"view","type":"function","name":"reservedHashChains","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rootDecider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newRootDecider","type":"address"},{"internalType":"address","name":"newWithdrawGlobalDecider","type":"address"},{"internalType":"address","name":"newWithdrawLocalDecider","type":"address"},{"internalType":"address","name":"newSingleWithdrawGlobalVerifier","type":"address"},{"internalType":"address","name":"newSingleWithdrawLocalVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setVerifiers"},{"inputs":[{"internalType":"bool","name":"isGlobal","type":"bool"},{"internalType":"uint64","name":"rootHint","type":"uint64"},{"internalType":"struct GeneralRecipientLib.GeneralRecipient","name":"gr","type":"tuple","components":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"tweak","type":"bytes32"}]},{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"singleTeleport"},{"inputs":[],"stateMutability":"view","type":"function","name":"singleWithdrawGlobalVerifier","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"singleWithdrawLocalVerifier","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isGlobal","type":"bool"},{"internalType":"uint64","name":"rootHint","type":"uint64"},{"internalType":"struct GeneralRecipientLib.GeneralRecipient","name":"gr","type":"tuple","components":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"tweak","type":"bytes32"}]},{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"teleport"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"recipient","type":"uint256"}],"stateMutability":"view","type":"function","name":"totalTeleported","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"withdrawGlobalDecider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"withdrawLocalDecider","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"initialize(address,uint32,address,address,address,address,address,address)":{"params":{"delegate":"Address that MUST be the contract owner; it is set as both Ownable owner and LayerZero delegate.","hubEid_":"LayerZero endpoint ID of the Hub contract.","rootDecider_":"Nova verifier for transfer-root transitions.","singleWithdrawGlobalVerifier_":"Groth16 verifier for global single teleports.","singleWithdrawLocalVerifier_":"Groth16 verifier for local single teleports.","token_":"zERC20 token whose hash chain is reserved/minted against.","withdrawGlobalDecider_":"Nova verifier for global teleport proofs.","withdrawLocalDecider_":"Nova verifier for local teleport proofs."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"proveTransferRoot(bytes)":{"details":"Enforces consistency between (a) previously proved roots and (b) reserved hash chains, pausing on conflicts.","params":{"proof":"Opaque calldata expected by `IRootDecider`, ABI-encoded as `uint256[32]`."}},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"quoteRelay(bytes)":{"params":{"options":"LayerZero execution parameters mirrored from `relayTransferRoot`."}},"relayTransferRoot(bytes)":{"details":"Requires `latestProvedIndex` to have a non-zero root; excess msg.value is kept as the LZ native fee.","params":{"options":"LayerZero execution parameters forwarded to `_lzSend`."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"reserveHashChain()":{"details":"Mirrors the first step of the private proof-of-burn lifecycle.","returns":{"hashChain":"SHA-256 hash chain committed up to `index - 1`.","index":"Reserved transfer index copied from zERC20."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setVerifiers(address,address,address,address,address)":{"params":{"newRootDecider":"Nova verifier for transfer roots.","newSingleWithdrawGlobalVerifier":"Groth16 verifier for global single teleports.","newSingleWithdrawLocalVerifier":"Groth16 verifier for local single teleports.","newWithdrawGlobalDecider":"Nova verifier for global teleports.","newWithdrawLocalDecider":"Nova verifier for local teleports."}},"singleTeleport(bool,uint64,(uint64,bytes32,bytes32),bytes)":{"details":"Shares the same recipient/root validation pipeline as `teleport` but operates on Groth16 proofs.","params":{"gr":"GeneralRecipient struct encoding chain id, recipient, tweak, and version byte.","isGlobal":"Whether the proof references Hub-derived global roots.","proof":"ABI-encoded Groth16 proof blob consumed by `IWithdrawVerifier`.","rootHint":"Index into either `provedTransferRoots` or `globalTransferRoots`."}},"teleport(bool,uint64,(uint64,bytes32,bytes32),bytes)":{"details":"Proof enforces that `totalValue` strictly increases per recipient hash; `isGlobal` selects local/global root arrays.","params":{"gr":"GeneralRecipient struct encoding chain id, recipient, tweak, and version byte.","isGlobal":"Whether the proof references Hub-derived global roots.","proof":"ABI-encoded Nova proof blob consumed by `IWithdrawDecider`.","rootHint":"Index into either `provedTransferRoots` or `globalTransferRoots`."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"activateEmergency()":{"notice":"Allows the owner to proactively pause the contract outside of proof conflicts."},"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"deactivateEmergency()":{"notice":"Clears the emergency pause that is triggered when conflicting transfer roots are observed."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"initialize(address,uint32,address,address,address,address,address,address)":{"notice":"Initializes the verifier with the zERC20 token, Hub endpoint, LayerZero delegate, and initial deciders."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"isUpToDate()":{"notice":"Returns `true` when every proved root has been relayed to the Hub (`latestProvedIndex == latestRelayedIndex`)."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"proveTransferRoot(bytes)":{"notice":"Verifies a Nova proof for a transfer-root transition and records the resulting root by index."},"quoteRelay(bytes)":{"notice":"Quotes the native fee required to relay a TransferRoot payload to the Hub."},"relayTransferRoot(bytes)":{"notice":"Sends the latest proved transfer root to the Hub over LayerZero so it can join the global aggregation tree."},"reserveHashChain()":{"notice":"Snapshots the latest `(index, hashChain)` tuple from zERC20 so Nova proofs can reference stable inputs."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"setVerifiers(address,address,address,address,address)":{"notice":"Atomically rotates all decider/verifier addresses to keep proofs aligned with the latest deployments."},"singleTeleport(bool,uint64,(uint64,bytes32,bytes32),bytes)":{"notice":"Executes the Groth16 teleport flow for lightweight single withdrawals."},"teleport(bool,uint64,(uint64,bytes32,bytes32),bytes)":{"notice":"Executes the multi-note Nova teleport flow, minting the delta on zERC20."}},"version":1}},"settings":{"remappings":["@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","LayerZero-v2/=lib/LayerZero-v2/","devtools/=lib/devtools/packages/toolbox-foundry/src/","forge-std/=lib/forge-std/src/","lz-evm-v1-0.7/=lib/lz-evm-v1-0.7/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/","poseidon-solidity/=lib/poseidon-solidity/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Verifier.sol":"Verifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b","urls":["bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a","dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"keccak256":"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140","urls":["bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4","dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"keccak256":"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671","urls":["bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d","dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"keccak256":"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49","urls":["bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a","dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol":{"keccak256":"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c","urls":["bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35","dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/interfaces/IOFT.sol":{"keccak256":"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0","urls":["bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15","dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol":{"keccak256":"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b","urls":["bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0","dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8","urls":["bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0","dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33","urls":["bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f","dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol":{"keccak256":"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db","urls":["bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e","dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20PermitUpgradeable.sol":{"keccak256":"0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8","urls":["bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d","dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908","urls":["bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685","dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/Verifier.sol":{"keccak256":"0x3c4b1b65808297bc5c20811c2725b5a1384946040f5c96ebcd7069091264a2da","urls":["bzz-raw://8c6e1a587348ea47a1cdf8a6fce41f4a698c7d71d9d733f6baf4ed8d457f851d","dweb:/ipfs/QmZoMJWroEfFhKMF4DCMYxykdDLnb6C7PuyadRAMPRZfEm"],"license":"Unlicense"},"src/interfaces/IDecider.sol":{"keccak256":"0xa39bdbdf85588bb0bbceaaa2a8acde119a6fb2f326c71ed0309d0ba17ccde542","urls":["bzz-raw://1c9c16ba87942aa28d7475f76fa1ccdb4d0c969fc0de2e340e9eb72e9fb52805","dweb:/ipfs/QmQSf1jHDBjgZ1Bg7CvjYX3JY2ST6osHzKaiQ3U1inReu5"],"license":"MIT"},"src/interfaces/IVerifier.sol":{"keccak256":"0x3d10957d3ea942edace754a73879c4c7bf8e1dbec9760fc25b4bb3cfe7a65e4b","urls":["bzz-raw://e55b6e63734ad63a1e1055e6bfba052d2c48fee8efaf835bd78bcfdeb64810d8","dweb:/ipfs/QmWvaTZTJsZceB6zrZneBys25KdUM3Kqi5XWQjam9wXPMV"],"license":"MIT"},"src/interfaces/IzERC20.sol":{"keccak256":"0x6c7ee27de91c844f721a3b2784641edbda479f257c61e487b7f6e990e5f010cd","urls":["bzz-raw://fe5a68078453c19d13d1e28333f408126b0896cdbf1d2230271e96f87814e3c8","dweb:/ipfs/QmP1q9pF7zAQzMDSJaYsEeDBU45xPns5s9nLuDeTEJxDPn"],"license":"MIT"},"src/utils/GeneralRecipientLib.sol":{"keccak256":"0xbab182783a8b7b84b5b2d22be9b43f61c12c1258ec73d596807616dc6d64a65d","urls":["bzz-raw://185fc80874cb6fae9450839bb169d60fb2e756ac37c8c16639473de34d3eab13","dweb:/ipfs/QmYDyaqn1UzUCRMvNfMZZvW9DR7nxzGnYgsLuWrDZCmbYF"],"license":"Unlicense"}},"version":1},"id":157}
1
+ {
2
+ "abi": [
3
+ {
4
+ "type": "constructor",
5
+ "inputs": [
6
+ {
7
+ "name": "endpoint",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ }
11
+ ],
12
+ "stateMutability": "nonpayable"
13
+ },
14
+ {
15
+ "type": "function",
16
+ "name": "UPGRADE_INTERFACE_VERSION",
17
+ "inputs": [],
18
+ "outputs": [
19
+ {
20
+ "name": "",
21
+ "type": "string",
22
+ "internalType": "string"
23
+ }
24
+ ],
25
+ "stateMutability": "view"
26
+ },
27
+ {
28
+ "type": "function",
29
+ "name": "activateEmergency",
30
+ "inputs": [],
31
+ "outputs": [],
32
+ "stateMutability": "nonpayable"
33
+ },
34
+ {
35
+ "type": "function",
36
+ "name": "allowInitializePath",
37
+ "inputs": [
38
+ {
39
+ "name": "origin",
40
+ "type": "tuple",
41
+ "internalType": "struct Origin",
42
+ "components": [
43
+ {
44
+ "name": "srcEid",
45
+ "type": "uint32",
46
+ "internalType": "uint32"
47
+ },
48
+ {
49
+ "name": "sender",
50
+ "type": "bytes32",
51
+ "internalType": "bytes32"
52
+ },
53
+ {
54
+ "name": "nonce",
55
+ "type": "uint64",
56
+ "internalType": "uint64"
57
+ }
58
+ ]
59
+ }
60
+ ],
61
+ "outputs": [
62
+ {
63
+ "name": "",
64
+ "type": "bool",
65
+ "internalType": "bool"
66
+ }
67
+ ],
68
+ "stateMutability": "view"
69
+ },
70
+ {
71
+ "type": "function",
72
+ "name": "deactivateEmergency",
73
+ "inputs": [],
74
+ "outputs": [],
75
+ "stateMutability": "nonpayable"
76
+ },
77
+ {
78
+ "type": "function",
79
+ "name": "eip712Domain",
80
+ "inputs": [],
81
+ "outputs": [
82
+ {
83
+ "name": "fields",
84
+ "type": "bytes1",
85
+ "internalType": "bytes1"
86
+ },
87
+ {
88
+ "name": "name",
89
+ "type": "string",
90
+ "internalType": "string"
91
+ },
92
+ {
93
+ "name": "version",
94
+ "type": "string",
95
+ "internalType": "string"
96
+ },
97
+ {
98
+ "name": "chainId",
99
+ "type": "uint256",
100
+ "internalType": "uint256"
101
+ },
102
+ {
103
+ "name": "verifyingContract",
104
+ "type": "address",
105
+ "internalType": "address"
106
+ },
107
+ {
108
+ "name": "salt",
109
+ "type": "bytes32",
110
+ "internalType": "bytes32"
111
+ },
112
+ {
113
+ "name": "extensions",
114
+ "type": "uint256[]",
115
+ "internalType": "uint256[]"
116
+ }
117
+ ],
118
+ "stateMutability": "view"
119
+ },
120
+ {
121
+ "type": "function",
122
+ "name": "endpoint",
123
+ "inputs": [],
124
+ "outputs": [
125
+ {
126
+ "name": "",
127
+ "type": "address",
128
+ "internalType": "contract ILayerZeroEndpointV2"
129
+ }
130
+ ],
131
+ "stateMutability": "view"
132
+ },
133
+ {
134
+ "type": "function",
135
+ "name": "globalTransferRoots",
136
+ "inputs": [
137
+ {
138
+ "name": "index",
139
+ "type": "uint64",
140
+ "internalType": "uint64"
141
+ }
142
+ ],
143
+ "outputs": [
144
+ {
145
+ "name": "",
146
+ "type": "uint256",
147
+ "internalType": "uint256"
148
+ }
149
+ ],
150
+ "stateMutability": "view"
151
+ },
152
+ {
153
+ "type": "function",
154
+ "name": "hubEid",
155
+ "inputs": [],
156
+ "outputs": [
157
+ {
158
+ "name": "",
159
+ "type": "uint32",
160
+ "internalType": "uint32"
161
+ }
162
+ ],
163
+ "stateMutability": "view"
164
+ },
165
+ {
166
+ "type": "function",
167
+ "name": "initialize",
168
+ "inputs": [
169
+ {
170
+ "name": "token_",
171
+ "type": "address",
172
+ "internalType": "address"
173
+ },
174
+ {
175
+ "name": "hubEid_",
176
+ "type": "uint32",
177
+ "internalType": "uint32"
178
+ },
179
+ {
180
+ "name": "delegate",
181
+ "type": "address",
182
+ "internalType": "address"
183
+ },
184
+ {
185
+ "name": "rootDecider_",
186
+ "type": "address",
187
+ "internalType": "address"
188
+ },
189
+ {
190
+ "name": "withdrawGlobalDecider_",
191
+ "type": "address",
192
+ "internalType": "address"
193
+ },
194
+ {
195
+ "name": "withdrawLocalDecider_",
196
+ "type": "address",
197
+ "internalType": "address"
198
+ },
199
+ {
200
+ "name": "singleWithdrawGlobalVerifier_",
201
+ "type": "address",
202
+ "internalType": "address"
203
+ },
204
+ {
205
+ "name": "singleWithdrawLocalVerifier_",
206
+ "type": "address",
207
+ "internalType": "address"
208
+ },
209
+ {
210
+ "name": "eip712Init",
211
+ "type": "bytes",
212
+ "internalType": "bytes"
213
+ }
214
+ ],
215
+ "outputs": [],
216
+ "stateMutability": "nonpayable"
217
+ },
218
+ {
219
+ "type": "function",
220
+ "name": "initializeV2",
221
+ "inputs": [
222
+ {
223
+ "name": "name_",
224
+ "type": "string",
225
+ "internalType": "string"
226
+ },
227
+ {
228
+ "name": "version_",
229
+ "type": "string",
230
+ "internalType": "string"
231
+ }
232
+ ],
233
+ "outputs": [],
234
+ "stateMutability": "nonpayable"
235
+ },
236
+ {
237
+ "type": "function",
238
+ "name": "isAllowedProver",
239
+ "inputs": [
240
+ {
241
+ "name": "prover",
242
+ "type": "address",
243
+ "internalType": "address"
244
+ }
245
+ ],
246
+ "outputs": [
247
+ {
248
+ "name": "",
249
+ "type": "bool",
250
+ "internalType": "bool"
251
+ }
252
+ ],
253
+ "stateMutability": "view"
254
+ },
255
+ {
256
+ "type": "function",
257
+ "name": "isComposeMsgSender",
258
+ "inputs": [
259
+ {
260
+ "name": "",
261
+ "type": "tuple",
262
+ "internalType": "struct Origin",
263
+ "components": [
264
+ {
265
+ "name": "srcEid",
266
+ "type": "uint32",
267
+ "internalType": "uint32"
268
+ },
269
+ {
270
+ "name": "sender",
271
+ "type": "bytes32",
272
+ "internalType": "bytes32"
273
+ },
274
+ {
275
+ "name": "nonce",
276
+ "type": "uint64",
277
+ "internalType": "uint64"
278
+ }
279
+ ]
280
+ },
281
+ {
282
+ "name": "",
283
+ "type": "bytes",
284
+ "internalType": "bytes"
285
+ },
286
+ {
287
+ "name": "_sender",
288
+ "type": "address",
289
+ "internalType": "address"
290
+ }
291
+ ],
292
+ "outputs": [
293
+ {
294
+ "name": "",
295
+ "type": "bool",
296
+ "internalType": "bool"
297
+ }
298
+ ],
299
+ "stateMutability": "view"
300
+ },
301
+ {
302
+ "type": "function",
303
+ "name": "isUpToDate",
304
+ "inputs": [],
305
+ "outputs": [
306
+ {
307
+ "name": "",
308
+ "type": "bool",
309
+ "internalType": "bool"
310
+ }
311
+ ],
312
+ "stateMutability": "view"
313
+ },
314
+ {
315
+ "type": "function",
316
+ "name": "latestAggSeq",
317
+ "inputs": [],
318
+ "outputs": [
319
+ {
320
+ "name": "",
321
+ "type": "uint64",
322
+ "internalType": "uint64"
323
+ }
324
+ ],
325
+ "stateMutability": "view"
326
+ },
327
+ {
328
+ "type": "function",
329
+ "name": "latestProvedIndex",
330
+ "inputs": [],
331
+ "outputs": [
332
+ {
333
+ "name": "",
334
+ "type": "uint64",
335
+ "internalType": "uint64"
336
+ }
337
+ ],
338
+ "stateMutability": "view"
339
+ },
340
+ {
341
+ "type": "function",
342
+ "name": "latestRelayedIndex",
343
+ "inputs": [],
344
+ "outputs": [
345
+ {
346
+ "name": "",
347
+ "type": "uint64",
348
+ "internalType": "uint64"
349
+ }
350
+ ],
351
+ "stateMutability": "view"
352
+ },
353
+ {
354
+ "type": "function",
355
+ "name": "latestReservedIndex",
356
+ "inputs": [],
357
+ "outputs": [
358
+ {
359
+ "name": "",
360
+ "type": "uint64",
361
+ "internalType": "uint64"
362
+ }
363
+ ],
364
+ "stateMutability": "view"
365
+ },
366
+ {
367
+ "type": "function",
368
+ "name": "lzReceive",
369
+ "inputs": [
370
+ {
371
+ "name": "_origin",
372
+ "type": "tuple",
373
+ "internalType": "struct Origin",
374
+ "components": [
375
+ {
376
+ "name": "srcEid",
377
+ "type": "uint32",
378
+ "internalType": "uint32"
379
+ },
380
+ {
381
+ "name": "sender",
382
+ "type": "bytes32",
383
+ "internalType": "bytes32"
384
+ },
385
+ {
386
+ "name": "nonce",
387
+ "type": "uint64",
388
+ "internalType": "uint64"
389
+ }
390
+ ]
391
+ },
392
+ {
393
+ "name": "_guid",
394
+ "type": "bytes32",
395
+ "internalType": "bytes32"
396
+ },
397
+ {
398
+ "name": "_message",
399
+ "type": "bytes",
400
+ "internalType": "bytes"
401
+ },
402
+ {
403
+ "name": "_executor",
404
+ "type": "address",
405
+ "internalType": "address"
406
+ },
407
+ {
408
+ "name": "_extraData",
409
+ "type": "bytes",
410
+ "internalType": "bytes"
411
+ }
412
+ ],
413
+ "outputs": [],
414
+ "stateMutability": "payable"
415
+ },
416
+ {
417
+ "type": "function",
418
+ "name": "nextNonce",
419
+ "inputs": [
420
+ {
421
+ "name": "",
422
+ "type": "uint32",
423
+ "internalType": "uint32"
424
+ },
425
+ {
426
+ "name": "",
427
+ "type": "bytes32",
428
+ "internalType": "bytes32"
429
+ }
430
+ ],
431
+ "outputs": [
432
+ {
433
+ "name": "nonce",
434
+ "type": "uint64",
435
+ "internalType": "uint64"
436
+ }
437
+ ],
438
+ "stateMutability": "view"
439
+ },
440
+ {
441
+ "type": "function",
442
+ "name": "oAppVersion",
443
+ "inputs": [],
444
+ "outputs": [
445
+ {
446
+ "name": "senderVersion",
447
+ "type": "uint64",
448
+ "internalType": "uint64"
449
+ },
450
+ {
451
+ "name": "receiverVersion",
452
+ "type": "uint64",
453
+ "internalType": "uint64"
454
+ }
455
+ ],
456
+ "stateMutability": "pure"
457
+ },
458
+ {
459
+ "type": "function",
460
+ "name": "owner",
461
+ "inputs": [],
462
+ "outputs": [
463
+ {
464
+ "name": "",
465
+ "type": "address",
466
+ "internalType": "address"
467
+ }
468
+ ],
469
+ "stateMutability": "view"
470
+ },
471
+ {
472
+ "type": "function",
473
+ "name": "paused",
474
+ "inputs": [],
475
+ "outputs": [
476
+ {
477
+ "name": "",
478
+ "type": "bool",
479
+ "internalType": "bool"
480
+ }
481
+ ],
482
+ "stateMutability": "view"
483
+ },
484
+ {
485
+ "type": "function",
486
+ "name": "peers",
487
+ "inputs": [
488
+ {
489
+ "name": "_eid",
490
+ "type": "uint32",
491
+ "internalType": "uint32"
492
+ }
493
+ ],
494
+ "outputs": [
495
+ {
496
+ "name": "",
497
+ "type": "bytes32",
498
+ "internalType": "bytes32"
499
+ }
500
+ ],
501
+ "stateMutability": "view"
502
+ },
503
+ {
504
+ "type": "function",
505
+ "name": "proveTransferRoot",
506
+ "inputs": [
507
+ {
508
+ "name": "proof",
509
+ "type": "bytes",
510
+ "internalType": "bytes"
511
+ }
512
+ ],
513
+ "outputs": [],
514
+ "stateMutability": "nonpayable"
515
+ },
516
+ {
517
+ "type": "function",
518
+ "name": "provedTransferRoots",
519
+ "inputs": [
520
+ {
521
+ "name": "index",
522
+ "type": "uint64",
523
+ "internalType": "uint64"
524
+ }
525
+ ],
526
+ "outputs": [
527
+ {
528
+ "name": "",
529
+ "type": "uint256",
530
+ "internalType": "uint256"
531
+ }
532
+ ],
533
+ "stateMutability": "view"
534
+ },
535
+ {
536
+ "type": "function",
537
+ "name": "proxiableUUID",
538
+ "inputs": [],
539
+ "outputs": [
540
+ {
541
+ "name": "",
542
+ "type": "bytes32",
543
+ "internalType": "bytes32"
544
+ }
545
+ ],
546
+ "stateMutability": "view"
547
+ },
548
+ {
549
+ "type": "function",
550
+ "name": "quoteRelay",
551
+ "inputs": [
552
+ {
553
+ "name": "options",
554
+ "type": "bytes",
555
+ "internalType": "bytes"
556
+ }
557
+ ],
558
+ "outputs": [
559
+ {
560
+ "name": "fee",
561
+ "type": "tuple",
562
+ "internalType": "struct MessagingFee",
563
+ "components": [
564
+ {
565
+ "name": "nativeFee",
566
+ "type": "uint256",
567
+ "internalType": "uint256"
568
+ },
569
+ {
570
+ "name": "lzTokenFee",
571
+ "type": "uint256",
572
+ "internalType": "uint256"
573
+ }
574
+ ]
575
+ }
576
+ ],
577
+ "stateMutability": "view"
578
+ },
579
+ {
580
+ "type": "function",
581
+ "name": "relayTransferRoot",
582
+ "inputs": [
583
+ {
584
+ "name": "options",
585
+ "type": "bytes",
586
+ "internalType": "bytes"
587
+ }
588
+ ],
589
+ "outputs": [
590
+ {
591
+ "name": "receipt",
592
+ "type": "tuple",
593
+ "internalType": "struct MessagingReceipt",
594
+ "components": [
595
+ {
596
+ "name": "guid",
597
+ "type": "bytes32",
598
+ "internalType": "bytes32"
599
+ },
600
+ {
601
+ "name": "nonce",
602
+ "type": "uint64",
603
+ "internalType": "uint64"
604
+ },
605
+ {
606
+ "name": "fee",
607
+ "type": "tuple",
608
+ "internalType": "struct MessagingFee",
609
+ "components": [
610
+ {
611
+ "name": "nativeFee",
612
+ "type": "uint256",
613
+ "internalType": "uint256"
614
+ },
615
+ {
616
+ "name": "lzTokenFee",
617
+ "type": "uint256",
618
+ "internalType": "uint256"
619
+ }
620
+ ]
621
+ }
622
+ ]
623
+ }
624
+ ],
625
+ "stateMutability": "payable"
626
+ },
627
+ {
628
+ "type": "function",
629
+ "name": "relayTransferRoot",
630
+ "inputs": [
631
+ {
632
+ "name": "options",
633
+ "type": "bytes",
634
+ "internalType": "bytes"
635
+ },
636
+ {
637
+ "name": "refundAddress",
638
+ "type": "address",
639
+ "internalType": "address"
640
+ }
641
+ ],
642
+ "outputs": [
643
+ {
644
+ "name": "receipt",
645
+ "type": "tuple",
646
+ "internalType": "struct MessagingReceipt",
647
+ "components": [
648
+ {
649
+ "name": "guid",
650
+ "type": "bytes32",
651
+ "internalType": "bytes32"
652
+ },
653
+ {
654
+ "name": "nonce",
655
+ "type": "uint64",
656
+ "internalType": "uint64"
657
+ },
658
+ {
659
+ "name": "fee",
660
+ "type": "tuple",
661
+ "internalType": "struct MessagingFee",
662
+ "components": [
663
+ {
664
+ "name": "nativeFee",
665
+ "type": "uint256",
666
+ "internalType": "uint256"
667
+ },
668
+ {
669
+ "name": "lzTokenFee",
670
+ "type": "uint256",
671
+ "internalType": "uint256"
672
+ }
673
+ ]
674
+ }
675
+ ]
676
+ }
677
+ ],
678
+ "stateMutability": "payable"
679
+ },
680
+ {
681
+ "type": "function",
682
+ "name": "removeAllowedProver",
683
+ "inputs": [
684
+ {
685
+ "name": "prover",
686
+ "type": "address",
687
+ "internalType": "address"
688
+ }
689
+ ],
690
+ "outputs": [],
691
+ "stateMutability": "nonpayable"
692
+ },
693
+ {
694
+ "type": "function",
695
+ "name": "renounceOwnership",
696
+ "inputs": [],
697
+ "outputs": [],
698
+ "stateMutability": "nonpayable"
699
+ },
700
+ {
701
+ "type": "function",
702
+ "name": "reserveHashChain",
703
+ "inputs": [],
704
+ "outputs": [
705
+ {
706
+ "name": "index",
707
+ "type": "uint64",
708
+ "internalType": "uint64"
709
+ },
710
+ {
711
+ "name": "hashChain",
712
+ "type": "uint256",
713
+ "internalType": "uint256"
714
+ }
715
+ ],
716
+ "stateMutability": "nonpayable"
717
+ },
718
+ {
719
+ "type": "function",
720
+ "name": "reservedHashChains",
721
+ "inputs": [
722
+ {
723
+ "name": "index",
724
+ "type": "uint64",
725
+ "internalType": "uint64"
726
+ }
727
+ ],
728
+ "outputs": [
729
+ {
730
+ "name": "",
731
+ "type": "uint256",
732
+ "internalType": "uint256"
733
+ }
734
+ ],
735
+ "stateMutability": "view"
736
+ },
737
+ {
738
+ "type": "function",
739
+ "name": "rootDecider",
740
+ "inputs": [],
741
+ "outputs": [
742
+ {
743
+ "name": "",
744
+ "type": "address",
745
+ "internalType": "address"
746
+ }
747
+ ],
748
+ "stateMutability": "view"
749
+ },
750
+ {
751
+ "type": "function",
752
+ "name": "setAllowedProver",
753
+ "inputs": [
754
+ {
755
+ "name": "prover",
756
+ "type": "address",
757
+ "internalType": "address"
758
+ }
759
+ ],
760
+ "outputs": [],
761
+ "stateMutability": "nonpayable"
762
+ },
763
+ {
764
+ "type": "function",
765
+ "name": "setDelegate",
766
+ "inputs": [
767
+ {
768
+ "name": "_delegate",
769
+ "type": "address",
770
+ "internalType": "address"
771
+ }
772
+ ],
773
+ "outputs": [],
774
+ "stateMutability": "nonpayable"
775
+ },
776
+ {
777
+ "type": "function",
778
+ "name": "setPeer",
779
+ "inputs": [
780
+ {
781
+ "name": "_eid",
782
+ "type": "uint32",
783
+ "internalType": "uint32"
784
+ },
785
+ {
786
+ "name": "_peer",
787
+ "type": "bytes32",
788
+ "internalType": "bytes32"
789
+ }
790
+ ],
791
+ "outputs": [],
792
+ "stateMutability": "nonpayable"
793
+ },
794
+ {
795
+ "type": "function",
796
+ "name": "setVerifiers",
797
+ "inputs": [
798
+ {
799
+ "name": "newRootDecider",
800
+ "type": "address",
801
+ "internalType": "address"
802
+ },
803
+ {
804
+ "name": "newWithdrawGlobalDecider",
805
+ "type": "address",
806
+ "internalType": "address"
807
+ },
808
+ {
809
+ "name": "newWithdrawLocalDecider",
810
+ "type": "address",
811
+ "internalType": "address"
812
+ },
813
+ {
814
+ "name": "newSingleWithdrawGlobalVerifier",
815
+ "type": "address",
816
+ "internalType": "address"
817
+ },
818
+ {
819
+ "name": "newSingleWithdrawLocalVerifier",
820
+ "type": "address",
821
+ "internalType": "address"
822
+ }
823
+ ],
824
+ "outputs": [],
825
+ "stateMutability": "nonpayable"
826
+ },
827
+ {
828
+ "type": "function",
829
+ "name": "singleTeleport",
830
+ "inputs": [
831
+ {
832
+ "name": "isGlobal",
833
+ "type": "bool",
834
+ "internalType": "bool"
835
+ },
836
+ {
837
+ "name": "rootHint",
838
+ "type": "uint64",
839
+ "internalType": "uint64"
840
+ },
841
+ {
842
+ "name": "gr",
843
+ "type": "tuple",
844
+ "internalType": "struct GeneralRecipientLib.GeneralRecipient",
845
+ "components": [
846
+ {
847
+ "name": "chainId",
848
+ "type": "uint64",
849
+ "internalType": "uint64"
850
+ },
851
+ {
852
+ "name": "recipient",
853
+ "type": "bytes32",
854
+ "internalType": "bytes32"
855
+ },
856
+ {
857
+ "name": "tweak",
858
+ "type": "bytes32",
859
+ "internalType": "bytes32"
860
+ }
861
+ ]
862
+ },
863
+ {
864
+ "name": "proof",
865
+ "type": "bytes",
866
+ "internalType": "bytes"
867
+ },
868
+ {
869
+ "name": "feeAuth",
870
+ "type": "tuple",
871
+ "internalType": "struct Verifier.RelayerFeeAuthorization",
872
+ "components": [
873
+ {
874
+ "name": "relayerFee",
875
+ "type": "uint256",
876
+ "internalType": "uint256"
877
+ },
878
+ {
879
+ "name": "maxFee",
880
+ "type": "uint256",
881
+ "internalType": "uint256"
882
+ },
883
+ {
884
+ "name": "deadline",
885
+ "type": "uint64",
886
+ "internalType": "uint64"
887
+ },
888
+ {
889
+ "name": "signature",
890
+ "type": "bytes",
891
+ "internalType": "bytes"
892
+ }
893
+ ]
894
+ }
895
+ ],
896
+ "outputs": [],
897
+ "stateMutability": "nonpayable"
898
+ },
899
+ {
900
+ "type": "function",
901
+ "name": "singleTeleport",
902
+ "inputs": [
903
+ {
904
+ "name": "isGlobal",
905
+ "type": "bool",
906
+ "internalType": "bool"
907
+ },
908
+ {
909
+ "name": "rootHint",
910
+ "type": "uint64",
911
+ "internalType": "uint64"
912
+ },
913
+ {
914
+ "name": "gr",
915
+ "type": "tuple",
916
+ "internalType": "struct GeneralRecipientLib.GeneralRecipient",
917
+ "components": [
918
+ {
919
+ "name": "chainId",
920
+ "type": "uint64",
921
+ "internalType": "uint64"
922
+ },
923
+ {
924
+ "name": "recipient",
925
+ "type": "bytes32",
926
+ "internalType": "bytes32"
927
+ },
928
+ {
929
+ "name": "tweak",
930
+ "type": "bytes32",
931
+ "internalType": "bytes32"
932
+ }
933
+ ]
934
+ },
935
+ {
936
+ "name": "proof",
937
+ "type": "bytes",
938
+ "internalType": "bytes"
939
+ }
940
+ ],
941
+ "outputs": [],
942
+ "stateMutability": "nonpayable"
943
+ },
944
+ {
945
+ "type": "function",
946
+ "name": "singleWithdrawGlobalVerifier",
947
+ "inputs": [],
948
+ "outputs": [
949
+ {
950
+ "name": "",
951
+ "type": "address",
952
+ "internalType": "address"
953
+ }
954
+ ],
955
+ "stateMutability": "view"
956
+ },
957
+ {
958
+ "type": "function",
959
+ "name": "singleWithdrawLocalVerifier",
960
+ "inputs": [],
961
+ "outputs": [
962
+ {
963
+ "name": "",
964
+ "type": "address",
965
+ "internalType": "address"
966
+ }
967
+ ],
968
+ "stateMutability": "view"
969
+ },
970
+ {
971
+ "type": "function",
972
+ "name": "teleport",
973
+ "inputs": [
974
+ {
975
+ "name": "isGlobal",
976
+ "type": "bool",
977
+ "internalType": "bool"
978
+ },
979
+ {
980
+ "name": "rootHint",
981
+ "type": "uint64",
982
+ "internalType": "uint64"
983
+ },
984
+ {
985
+ "name": "gr",
986
+ "type": "tuple",
987
+ "internalType": "struct GeneralRecipientLib.GeneralRecipient",
988
+ "components": [
989
+ {
990
+ "name": "chainId",
991
+ "type": "uint64",
992
+ "internalType": "uint64"
993
+ },
994
+ {
995
+ "name": "recipient",
996
+ "type": "bytes32",
997
+ "internalType": "bytes32"
998
+ },
999
+ {
1000
+ "name": "tweak",
1001
+ "type": "bytes32",
1002
+ "internalType": "bytes32"
1003
+ }
1004
+ ]
1005
+ },
1006
+ {
1007
+ "name": "proof",
1008
+ "type": "bytes",
1009
+ "internalType": "bytes"
1010
+ },
1011
+ {
1012
+ "name": "feeAuth",
1013
+ "type": "tuple",
1014
+ "internalType": "struct Verifier.RelayerFeeAuthorization",
1015
+ "components": [
1016
+ {
1017
+ "name": "relayerFee",
1018
+ "type": "uint256",
1019
+ "internalType": "uint256"
1020
+ },
1021
+ {
1022
+ "name": "maxFee",
1023
+ "type": "uint256",
1024
+ "internalType": "uint256"
1025
+ },
1026
+ {
1027
+ "name": "deadline",
1028
+ "type": "uint64",
1029
+ "internalType": "uint64"
1030
+ },
1031
+ {
1032
+ "name": "signature",
1033
+ "type": "bytes",
1034
+ "internalType": "bytes"
1035
+ }
1036
+ ]
1037
+ }
1038
+ ],
1039
+ "outputs": [],
1040
+ "stateMutability": "nonpayable"
1041
+ },
1042
+ {
1043
+ "type": "function",
1044
+ "name": "teleport",
1045
+ "inputs": [
1046
+ {
1047
+ "name": "isGlobal",
1048
+ "type": "bool",
1049
+ "internalType": "bool"
1050
+ },
1051
+ {
1052
+ "name": "rootHint",
1053
+ "type": "uint64",
1054
+ "internalType": "uint64"
1055
+ },
1056
+ {
1057
+ "name": "gr",
1058
+ "type": "tuple",
1059
+ "internalType": "struct GeneralRecipientLib.GeneralRecipient",
1060
+ "components": [
1061
+ {
1062
+ "name": "chainId",
1063
+ "type": "uint64",
1064
+ "internalType": "uint64"
1065
+ },
1066
+ {
1067
+ "name": "recipient",
1068
+ "type": "bytes32",
1069
+ "internalType": "bytes32"
1070
+ },
1071
+ {
1072
+ "name": "tweak",
1073
+ "type": "bytes32",
1074
+ "internalType": "bytes32"
1075
+ }
1076
+ ]
1077
+ },
1078
+ {
1079
+ "name": "proof",
1080
+ "type": "bytes",
1081
+ "internalType": "bytes"
1082
+ }
1083
+ ],
1084
+ "outputs": [],
1085
+ "stateMutability": "nonpayable"
1086
+ },
1087
+ {
1088
+ "type": "function",
1089
+ "name": "token",
1090
+ "inputs": [],
1091
+ "outputs": [
1092
+ {
1093
+ "name": "",
1094
+ "type": "address",
1095
+ "internalType": "address"
1096
+ }
1097
+ ],
1098
+ "stateMutability": "view"
1099
+ },
1100
+ {
1101
+ "type": "function",
1102
+ "name": "totalTeleported",
1103
+ "inputs": [
1104
+ {
1105
+ "name": "recipient",
1106
+ "type": "uint256",
1107
+ "internalType": "uint256"
1108
+ }
1109
+ ],
1110
+ "outputs": [
1111
+ {
1112
+ "name": "",
1113
+ "type": "uint256",
1114
+ "internalType": "uint256"
1115
+ }
1116
+ ],
1117
+ "stateMutability": "view"
1118
+ },
1119
+ {
1120
+ "type": "function",
1121
+ "name": "transferOwnership",
1122
+ "inputs": [
1123
+ {
1124
+ "name": "newOwner",
1125
+ "type": "address",
1126
+ "internalType": "address"
1127
+ }
1128
+ ],
1129
+ "outputs": [],
1130
+ "stateMutability": "nonpayable"
1131
+ },
1132
+ {
1133
+ "type": "function",
1134
+ "name": "upgradeToAndCall",
1135
+ "inputs": [
1136
+ {
1137
+ "name": "newImplementation",
1138
+ "type": "address",
1139
+ "internalType": "address"
1140
+ },
1141
+ {
1142
+ "name": "data",
1143
+ "type": "bytes",
1144
+ "internalType": "bytes"
1145
+ }
1146
+ ],
1147
+ "outputs": [],
1148
+ "stateMutability": "payable"
1149
+ },
1150
+ {
1151
+ "type": "function",
1152
+ "name": "withdrawGlobalDecider",
1153
+ "inputs": [],
1154
+ "outputs": [
1155
+ {
1156
+ "name": "",
1157
+ "type": "address",
1158
+ "internalType": "address"
1159
+ }
1160
+ ],
1161
+ "stateMutability": "view"
1162
+ },
1163
+ {
1164
+ "type": "function",
1165
+ "name": "withdrawLocalDecider",
1166
+ "inputs": [],
1167
+ "outputs": [
1168
+ {
1169
+ "name": "",
1170
+ "type": "address",
1171
+ "internalType": "address"
1172
+ }
1173
+ ],
1174
+ "stateMutability": "view"
1175
+ },
1176
+ {
1177
+ "type": "event",
1178
+ "name": "ActivateEmergency",
1179
+ "inputs": [],
1180
+ "anonymous": false
1181
+ },
1182
+ {
1183
+ "type": "event",
1184
+ "name": "DeactivateEmergency",
1185
+ "inputs": [],
1186
+ "anonymous": false
1187
+ },
1188
+ {
1189
+ "type": "event",
1190
+ "name": "EIP712DomainChanged",
1191
+ "inputs": [],
1192
+ "anonymous": false
1193
+ },
1194
+ {
1195
+ "type": "event",
1196
+ "name": "EmergencyTriggered",
1197
+ "inputs": [
1198
+ {
1199
+ "name": "index",
1200
+ "type": "uint64",
1201
+ "indexed": true,
1202
+ "internalType": "uint64"
1203
+ },
1204
+ {
1205
+ "name": "root1",
1206
+ "type": "uint256",
1207
+ "indexed": false,
1208
+ "internalType": "uint256"
1209
+ },
1210
+ {
1211
+ "name": "root2",
1212
+ "type": "uint256",
1213
+ "indexed": false,
1214
+ "internalType": "uint256"
1215
+ }
1216
+ ],
1217
+ "anonymous": false
1218
+ },
1219
+ {
1220
+ "type": "event",
1221
+ "name": "GlobalRootSaved",
1222
+ "inputs": [
1223
+ {
1224
+ "name": "aggSeq",
1225
+ "type": "uint64",
1226
+ "indexed": true,
1227
+ "internalType": "uint64"
1228
+ },
1229
+ {
1230
+ "name": "root",
1231
+ "type": "uint256",
1232
+ "indexed": false,
1233
+ "internalType": "uint256"
1234
+ }
1235
+ ],
1236
+ "anonymous": false
1237
+ },
1238
+ {
1239
+ "type": "event",
1240
+ "name": "HashChainReserved",
1241
+ "inputs": [
1242
+ {
1243
+ "name": "index",
1244
+ "type": "uint64",
1245
+ "indexed": true,
1246
+ "internalType": "uint64"
1247
+ },
1248
+ {
1249
+ "name": "hashChain",
1250
+ "type": "uint256",
1251
+ "indexed": false,
1252
+ "internalType": "uint256"
1253
+ }
1254
+ ],
1255
+ "anonymous": false
1256
+ },
1257
+ {
1258
+ "type": "event",
1259
+ "name": "Initialized",
1260
+ "inputs": [
1261
+ {
1262
+ "name": "version",
1263
+ "type": "uint64",
1264
+ "indexed": false,
1265
+ "internalType": "uint64"
1266
+ }
1267
+ ],
1268
+ "anonymous": false
1269
+ },
1270
+ {
1271
+ "type": "event",
1272
+ "name": "OwnershipTransferred",
1273
+ "inputs": [
1274
+ {
1275
+ "name": "previousOwner",
1276
+ "type": "address",
1277
+ "indexed": true,
1278
+ "internalType": "address"
1279
+ },
1280
+ {
1281
+ "name": "newOwner",
1282
+ "type": "address",
1283
+ "indexed": true,
1284
+ "internalType": "address"
1285
+ }
1286
+ ],
1287
+ "anonymous": false
1288
+ },
1289
+ {
1290
+ "type": "event",
1291
+ "name": "Paused",
1292
+ "inputs": [
1293
+ {
1294
+ "name": "account",
1295
+ "type": "address",
1296
+ "indexed": false,
1297
+ "internalType": "address"
1298
+ }
1299
+ ],
1300
+ "anonymous": false
1301
+ },
1302
+ {
1303
+ "type": "event",
1304
+ "name": "PeerSet",
1305
+ "inputs": [
1306
+ {
1307
+ "name": "eid",
1308
+ "type": "uint32",
1309
+ "indexed": false,
1310
+ "internalType": "uint32"
1311
+ },
1312
+ {
1313
+ "name": "peer",
1314
+ "type": "bytes32",
1315
+ "indexed": false,
1316
+ "internalType": "bytes32"
1317
+ }
1318
+ ],
1319
+ "anonymous": false
1320
+ },
1321
+ {
1322
+ "type": "event",
1323
+ "name": "ProverAllowed",
1324
+ "inputs": [
1325
+ {
1326
+ "name": "prover",
1327
+ "type": "address",
1328
+ "indexed": true,
1329
+ "internalType": "address"
1330
+ }
1331
+ ],
1332
+ "anonymous": false
1333
+ },
1334
+ {
1335
+ "type": "event",
1336
+ "name": "ProverRemoved",
1337
+ "inputs": [
1338
+ {
1339
+ "name": "prover",
1340
+ "type": "address",
1341
+ "indexed": true,
1342
+ "internalType": "address"
1343
+ }
1344
+ ],
1345
+ "anonymous": false
1346
+ },
1347
+ {
1348
+ "type": "event",
1349
+ "name": "Teleport",
1350
+ "inputs": [
1351
+ {
1352
+ "name": "to",
1353
+ "type": "address",
1354
+ "indexed": true,
1355
+ "internalType": "address"
1356
+ },
1357
+ {
1358
+ "name": "value",
1359
+ "type": "uint256",
1360
+ "indexed": false,
1361
+ "internalType": "uint256"
1362
+ },
1363
+ {
1364
+ "name": "isGlobal",
1365
+ "type": "bool",
1366
+ "indexed": false,
1367
+ "internalType": "bool"
1368
+ },
1369
+ {
1370
+ "name": "rootHint",
1371
+ "type": "uint64",
1372
+ "indexed": false,
1373
+ "internalType": "uint64"
1374
+ },
1375
+ {
1376
+ "name": "transferRoot",
1377
+ "type": "uint256",
1378
+ "indexed": false,
1379
+ "internalType": "uint256"
1380
+ },
1381
+ {
1382
+ "name": "gr",
1383
+ "type": "tuple",
1384
+ "indexed": false,
1385
+ "internalType": "struct GeneralRecipientLib.GeneralRecipient",
1386
+ "components": [
1387
+ {
1388
+ "name": "chainId",
1389
+ "type": "uint64",
1390
+ "internalType": "uint64"
1391
+ },
1392
+ {
1393
+ "name": "recipient",
1394
+ "type": "bytes32",
1395
+ "internalType": "bytes32"
1396
+ },
1397
+ {
1398
+ "name": "tweak",
1399
+ "type": "bytes32",
1400
+ "internalType": "bytes32"
1401
+ }
1402
+ ]
1403
+ }
1404
+ ],
1405
+ "anonymous": false
1406
+ },
1407
+ {
1408
+ "type": "event",
1409
+ "name": "TeleportWithRelayerFee",
1410
+ "inputs": [
1411
+ {
1412
+ "name": "to",
1413
+ "type": "address",
1414
+ "indexed": true,
1415
+ "internalType": "address"
1416
+ },
1417
+ {
1418
+ "name": "relayer",
1419
+ "type": "address",
1420
+ "indexed": true,
1421
+ "internalType": "address"
1422
+ },
1423
+ {
1424
+ "name": "recipientValue",
1425
+ "type": "uint256",
1426
+ "indexed": false,
1427
+ "internalType": "uint256"
1428
+ },
1429
+ {
1430
+ "name": "relayerFee",
1431
+ "type": "uint256",
1432
+ "indexed": false,
1433
+ "internalType": "uint256"
1434
+ },
1435
+ {
1436
+ "name": "isGlobal",
1437
+ "type": "bool",
1438
+ "indexed": false,
1439
+ "internalType": "bool"
1440
+ },
1441
+ {
1442
+ "name": "rootHint",
1443
+ "type": "uint64",
1444
+ "indexed": false,
1445
+ "internalType": "uint64"
1446
+ },
1447
+ {
1448
+ "name": "transferRoot",
1449
+ "type": "uint256",
1450
+ "indexed": false,
1451
+ "internalType": "uint256"
1452
+ },
1453
+ {
1454
+ "name": "gr",
1455
+ "type": "tuple",
1456
+ "indexed": false,
1457
+ "internalType": "struct GeneralRecipientLib.GeneralRecipient",
1458
+ "components": [
1459
+ {
1460
+ "name": "chainId",
1461
+ "type": "uint64",
1462
+ "internalType": "uint64"
1463
+ },
1464
+ {
1465
+ "name": "recipient",
1466
+ "type": "bytes32",
1467
+ "internalType": "bytes32"
1468
+ },
1469
+ {
1470
+ "name": "tweak",
1471
+ "type": "bytes32",
1472
+ "internalType": "bytes32"
1473
+ }
1474
+ ]
1475
+ }
1476
+ ],
1477
+ "anonymous": false
1478
+ },
1479
+ {
1480
+ "type": "event",
1481
+ "name": "TransferRootProved",
1482
+ "inputs": [
1483
+ {
1484
+ "name": "index",
1485
+ "type": "uint64",
1486
+ "indexed": true,
1487
+ "internalType": "uint64"
1488
+ },
1489
+ {
1490
+ "name": "root",
1491
+ "type": "uint256",
1492
+ "indexed": false,
1493
+ "internalType": "uint256"
1494
+ }
1495
+ ],
1496
+ "anonymous": false
1497
+ },
1498
+ {
1499
+ "type": "event",
1500
+ "name": "TransferRootRelayed",
1501
+ "inputs": [
1502
+ {
1503
+ "name": "index",
1504
+ "type": "uint64",
1505
+ "indexed": true,
1506
+ "internalType": "uint64"
1507
+ },
1508
+ {
1509
+ "name": "root",
1510
+ "type": "uint256",
1511
+ "indexed": false,
1512
+ "internalType": "uint256"
1513
+ },
1514
+ {
1515
+ "name": "lzMsgId",
1516
+ "type": "bytes",
1517
+ "indexed": false,
1518
+ "internalType": "bytes"
1519
+ }
1520
+ ],
1521
+ "anonymous": false
1522
+ },
1523
+ {
1524
+ "type": "event",
1525
+ "name": "Unpaused",
1526
+ "inputs": [
1527
+ {
1528
+ "name": "account",
1529
+ "type": "address",
1530
+ "indexed": false,
1531
+ "internalType": "address"
1532
+ }
1533
+ ],
1534
+ "anonymous": false
1535
+ },
1536
+ {
1537
+ "type": "event",
1538
+ "name": "Upgraded",
1539
+ "inputs": [
1540
+ {
1541
+ "name": "implementation",
1542
+ "type": "address",
1543
+ "indexed": true,
1544
+ "internalType": "address"
1545
+ }
1546
+ ],
1547
+ "anonymous": false
1548
+ },
1549
+ {
1550
+ "type": "event",
1551
+ "name": "VerifiersSet",
1552
+ "inputs": [
1553
+ {
1554
+ "name": "rootDecider",
1555
+ "type": "address",
1556
+ "indexed": false,
1557
+ "internalType": "address"
1558
+ },
1559
+ {
1560
+ "name": "withdrawGlobalDecider",
1561
+ "type": "address",
1562
+ "indexed": false,
1563
+ "internalType": "address"
1564
+ },
1565
+ {
1566
+ "name": "withdrawLocalDecider",
1567
+ "type": "address",
1568
+ "indexed": false,
1569
+ "internalType": "address"
1570
+ },
1571
+ {
1572
+ "name": "singleWithdrawGlobalVerifier",
1573
+ "type": "address",
1574
+ "indexed": false,
1575
+ "internalType": "address"
1576
+ },
1577
+ {
1578
+ "name": "singleWithdrawLocalVerifier",
1579
+ "type": "address",
1580
+ "indexed": false,
1581
+ "internalType": "address"
1582
+ }
1583
+ ],
1584
+ "anonymous": false
1585
+ },
1586
+ {
1587
+ "type": "error",
1588
+ "name": "AddressEmptyCode",
1589
+ "inputs": [
1590
+ {
1591
+ "name": "target",
1592
+ "type": "address",
1593
+ "internalType": "address"
1594
+ }
1595
+ ]
1596
+ },
1597
+ {
1598
+ "type": "error",
1599
+ "name": "ERC1967InvalidImplementation",
1600
+ "inputs": [
1601
+ {
1602
+ "name": "implementation",
1603
+ "type": "address",
1604
+ "internalType": "address"
1605
+ }
1606
+ ]
1607
+ },
1608
+ {
1609
+ "type": "error",
1610
+ "name": "ERC1967NonPayable",
1611
+ "inputs": []
1612
+ },
1613
+ {
1614
+ "type": "error",
1615
+ "name": "EndpointMismatch",
1616
+ "inputs": [
1617
+ {
1618
+ "name": "expected",
1619
+ "type": "address",
1620
+ "internalType": "address"
1621
+ },
1622
+ {
1623
+ "name": "actual",
1624
+ "type": "address",
1625
+ "internalType": "address"
1626
+ }
1627
+ ]
1628
+ },
1629
+ {
1630
+ "type": "error",
1631
+ "name": "EnforcedPause",
1632
+ "inputs": []
1633
+ },
1634
+ {
1635
+ "type": "error",
1636
+ "name": "ExpectedPause",
1637
+ "inputs": []
1638
+ },
1639
+ {
1640
+ "type": "error",
1641
+ "name": "ExpectedRootZero",
1642
+ "inputs": [
1643
+ {
1644
+ "name": "rootHint",
1645
+ "type": "uint64",
1646
+ "internalType": "uint64"
1647
+ }
1648
+ ]
1649
+ },
1650
+ {
1651
+ "type": "error",
1652
+ "name": "FailedCall",
1653
+ "inputs": []
1654
+ },
1655
+ {
1656
+ "type": "error",
1657
+ "name": "FinalRecipientMismatch",
1658
+ "inputs": [
1659
+ {
1660
+ "name": "expected",
1661
+ "type": "uint256",
1662
+ "internalType": "uint256"
1663
+ },
1664
+ {
1665
+ "name": "actual",
1666
+ "type": "uint256",
1667
+ "internalType": "uint256"
1668
+ }
1669
+ ]
1670
+ },
1671
+ {
1672
+ "type": "error",
1673
+ "name": "FinalTransferRootMismatch",
1674
+ "inputs": [
1675
+ {
1676
+ "name": "expected",
1677
+ "type": "uint256",
1678
+ "internalType": "uint256"
1679
+ },
1680
+ {
1681
+ "name": "actual",
1682
+ "type": "uint256",
1683
+ "internalType": "uint256"
1684
+ }
1685
+ ]
1686
+ },
1687
+ {
1688
+ "type": "error",
1689
+ "name": "InsufficientMsgValue",
1690
+ "inputs": [
1691
+ {
1692
+ "name": "required",
1693
+ "type": "uint256",
1694
+ "internalType": "uint256"
1695
+ },
1696
+ {
1697
+ "name": "provided",
1698
+ "type": "uint256",
1699
+ "internalType": "uint256"
1700
+ }
1701
+ ]
1702
+ },
1703
+ {
1704
+ "type": "error",
1705
+ "name": "InvalidDelegate",
1706
+ "inputs": []
1707
+ },
1708
+ {
1709
+ "type": "error",
1710
+ "name": "InvalidEndpointCall",
1711
+ "inputs": []
1712
+ },
1713
+ {
1714
+ "type": "error",
1715
+ "name": "InvalidHubSource",
1716
+ "inputs": [
1717
+ {
1718
+ "name": "srcEid",
1719
+ "type": "uint32",
1720
+ "internalType": "uint32"
1721
+ }
1722
+ ]
1723
+ },
1724
+ {
1725
+ "type": "error",
1726
+ "name": "InvalidInitialLastLeafIndex",
1727
+ "inputs": [
1728
+ {
1729
+ "name": "value",
1730
+ "type": "uint256",
1731
+ "internalType": "uint256"
1732
+ }
1733
+ ]
1734
+ },
1735
+ {
1736
+ "type": "error",
1737
+ "name": "InvalidInitialTotalValue",
1738
+ "inputs": [
1739
+ {
1740
+ "name": "value",
1741
+ "type": "uint256",
1742
+ "internalType": "uint256"
1743
+ }
1744
+ ]
1745
+ },
1746
+ {
1747
+ "type": "error",
1748
+ "name": "InvalidInitialization",
1749
+ "inputs": []
1750
+ },
1751
+ {
1752
+ "type": "error",
1753
+ "name": "InvalidProof",
1754
+ "inputs": []
1755
+ },
1756
+ {
1757
+ "type": "error",
1758
+ "name": "InvalidRecipientChainId",
1759
+ "inputs": [
1760
+ {
1761
+ "name": "provided",
1762
+ "type": "uint64",
1763
+ "internalType": "uint64"
1764
+ },
1765
+ {
1766
+ "name": "expected",
1767
+ "type": "uint64",
1768
+ "internalType": "uint64"
1769
+ }
1770
+ ]
1771
+ },
1772
+ {
1773
+ "type": "error",
1774
+ "name": "InvalidRelayerFeeSignature",
1775
+ "inputs": []
1776
+ },
1777
+ {
1778
+ "type": "error",
1779
+ "name": "LzTokenUnavailable",
1780
+ "inputs": []
1781
+ },
1782
+ {
1783
+ "type": "error",
1784
+ "name": "NewHashChainMismatch",
1785
+ "inputs": [
1786
+ {
1787
+ "name": "index",
1788
+ "type": "uint64",
1789
+ "internalType": "uint64"
1790
+ },
1791
+ {
1792
+ "name": "expected",
1793
+ "type": "uint256",
1794
+ "internalType": "uint256"
1795
+ },
1796
+ {
1797
+ "name": "actual",
1798
+ "type": "uint256",
1799
+ "internalType": "uint256"
1800
+ }
1801
+ ]
1802
+ },
1803
+ {
1804
+ "type": "error",
1805
+ "name": "NoPeer",
1806
+ "inputs": [
1807
+ {
1808
+ "name": "eid",
1809
+ "type": "uint32",
1810
+ "internalType": "uint32"
1811
+ }
1812
+ ]
1813
+ },
1814
+ {
1815
+ "type": "error",
1816
+ "name": "NoProvedRoot",
1817
+ "inputs": []
1818
+ },
1819
+ {
1820
+ "type": "error",
1821
+ "name": "NotEnoughNative",
1822
+ "inputs": [
1823
+ {
1824
+ "name": "msgValue",
1825
+ "type": "uint256",
1826
+ "internalType": "uint256"
1827
+ }
1828
+ ]
1829
+ },
1830
+ {
1831
+ "type": "error",
1832
+ "name": "NotInitializing",
1833
+ "inputs": []
1834
+ },
1835
+ {
1836
+ "type": "error",
1837
+ "name": "NothingToWithdraw",
1838
+ "inputs": [
1839
+ {
1840
+ "name": "currentTotal",
1841
+ "type": "uint256",
1842
+ "internalType": "uint256"
1843
+ },
1844
+ {
1845
+ "name": "totalValue",
1846
+ "type": "uint256",
1847
+ "internalType": "uint256"
1848
+ }
1849
+ ]
1850
+ },
1851
+ {
1852
+ "type": "error",
1853
+ "name": "OldRootMismatch",
1854
+ "inputs": [
1855
+ {
1856
+ "name": "index",
1857
+ "type": "uint64",
1858
+ "internalType": "uint64"
1859
+ },
1860
+ {
1861
+ "name": "expected",
1862
+ "type": "uint256",
1863
+ "internalType": "uint256"
1864
+ },
1865
+ {
1866
+ "name": "actual",
1867
+ "type": "uint256",
1868
+ "internalType": "uint256"
1869
+ }
1870
+ ]
1871
+ },
1872
+ {
1873
+ "type": "error",
1874
+ "name": "OldRootZero",
1875
+ "inputs": [
1876
+ {
1877
+ "name": "index",
1878
+ "type": "uint64",
1879
+ "internalType": "uint64"
1880
+ }
1881
+ ]
1882
+ },
1883
+ {
1884
+ "type": "error",
1885
+ "name": "OnlyEndpoint",
1886
+ "inputs": [
1887
+ {
1888
+ "name": "addr",
1889
+ "type": "address",
1890
+ "internalType": "address"
1891
+ }
1892
+ ]
1893
+ },
1894
+ {
1895
+ "type": "error",
1896
+ "name": "OnlyPeer",
1897
+ "inputs": [
1898
+ {
1899
+ "name": "eid",
1900
+ "type": "uint32",
1901
+ "internalType": "uint32"
1902
+ },
1903
+ {
1904
+ "name": "sender",
1905
+ "type": "bytes32",
1906
+ "internalType": "bytes32"
1907
+ }
1908
+ ]
1909
+ },
1910
+ {
1911
+ "type": "error",
1912
+ "name": "OwnableInvalidOwner",
1913
+ "inputs": [
1914
+ {
1915
+ "name": "owner",
1916
+ "type": "address",
1917
+ "internalType": "address"
1918
+ }
1919
+ ]
1920
+ },
1921
+ {
1922
+ "type": "error",
1923
+ "name": "OwnableUnauthorizedAccount",
1924
+ "inputs": [
1925
+ {
1926
+ "name": "account",
1927
+ "type": "address",
1928
+ "internalType": "address"
1929
+ }
1930
+ ]
1931
+ },
1932
+ {
1933
+ "type": "error",
1934
+ "name": "RecipientMismatch",
1935
+ "inputs": [
1936
+ {
1937
+ "name": "expected",
1938
+ "type": "uint256",
1939
+ "internalType": "uint256"
1940
+ },
1941
+ {
1942
+ "name": "actual",
1943
+ "type": "uint256",
1944
+ "internalType": "uint256"
1945
+ }
1946
+ ]
1947
+ },
1948
+ {
1949
+ "type": "error",
1950
+ "name": "ReentrancyGuardReentrantCall",
1951
+ "inputs": []
1952
+ },
1953
+ {
1954
+ "type": "error",
1955
+ "name": "RelayerFeeAuthorizationExpired",
1956
+ "inputs": [
1957
+ {
1958
+ "name": "deadline",
1959
+ "type": "uint64",
1960
+ "internalType": "uint64"
1961
+ },
1962
+ {
1963
+ "name": "currentTimestamp",
1964
+ "type": "uint256",
1965
+ "internalType": "uint256"
1966
+ }
1967
+ ]
1968
+ },
1969
+ {
1970
+ "type": "error",
1971
+ "name": "RelayerFeeExceedsDiff",
1972
+ "inputs": [
1973
+ {
1974
+ "name": "relayerFee",
1975
+ "type": "uint256",
1976
+ "internalType": "uint256"
1977
+ },
1978
+ {
1979
+ "name": "diff",
1980
+ "type": "uint256",
1981
+ "internalType": "uint256"
1982
+ }
1983
+ ]
1984
+ },
1985
+ {
1986
+ "type": "error",
1987
+ "name": "RelayerFeeExceedsMax",
1988
+ "inputs": [
1989
+ {
1990
+ "name": "relayerFee",
1991
+ "type": "uint256",
1992
+ "internalType": "uint256"
1993
+ },
1994
+ {
1995
+ "name": "maxFee",
1996
+ "type": "uint256",
1997
+ "internalType": "uint256"
1998
+ }
1999
+ ]
2000
+ },
2001
+ {
2002
+ "type": "error",
2003
+ "name": "ReserveHashChainNotFound",
2004
+ "inputs": [
2005
+ {
2006
+ "name": "index",
2007
+ "type": "uint64",
2008
+ "internalType": "uint64"
2009
+ }
2010
+ ]
2011
+ },
2012
+ {
2013
+ "type": "error",
2014
+ "name": "SafeERC20FailedOperation",
2015
+ "inputs": [
2016
+ {
2017
+ "name": "token",
2018
+ "type": "address",
2019
+ "internalType": "address"
2020
+ }
2021
+ ]
2022
+ },
2023
+ {
2024
+ "type": "error",
2025
+ "name": "TransferRootMismatch",
2026
+ "inputs": [
2027
+ {
2028
+ "name": "expected",
2029
+ "type": "uint256",
2030
+ "internalType": "uint256"
2031
+ },
2032
+ {
2033
+ "name": "actual",
2034
+ "type": "uint256",
2035
+ "internalType": "uint256"
2036
+ }
2037
+ ]
2038
+ },
2039
+ {
2040
+ "type": "error",
2041
+ "name": "UUPSUnauthorizedCallContext",
2042
+ "inputs": []
2043
+ },
2044
+ {
2045
+ "type": "error",
2046
+ "name": "UUPSUnsupportedProxiableUUID",
2047
+ "inputs": [
2048
+ {
2049
+ "name": "slot",
2050
+ "type": "bytes32",
2051
+ "internalType": "bytes32"
2052
+ }
2053
+ ]
2054
+ },
2055
+ {
2056
+ "type": "error",
2057
+ "name": "UnauthorizedProver",
2058
+ "inputs": [
2059
+ {
2060
+ "name": "caller",
2061
+ "type": "address",
2062
+ "internalType": "address"
2063
+ }
2064
+ ]
2065
+ },
2066
+ {
2067
+ "type": "error",
2068
+ "name": "ZeroAddress",
2069
+ "inputs": []
2070
+ },
2071
+ {
2072
+ "type": "error",
2073
+ "name": "ZeroHashChain",
2074
+ "inputs": [
2075
+ {
2076
+ "name": "index",
2077
+ "type": "uint64",
2078
+ "internalType": "uint64"
2079
+ }
2080
+ ]
2081
+ },
2082
+ {
2083
+ "type": "error",
2084
+ "name": "ZeroRefundAddress",
2085
+ "inputs": []
2086
+ },
2087
+ {
2088
+ "type": "error",
2089
+ "name": "ZeroToken",
2090
+ "inputs": []
2091
+ }
2092
+ ]
2093
+ }