{"abi":[{"type":"constructor","inputs":[{"name":"_oft","type":"address","internalType":"address"},{"name":"_coreIndexId","type":"uint64","internalType":"uint64"},{"name":"_assetDecimalDiff","type":"int8","internalType":"int8"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ENDPOINT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ERC20","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ERC20_ASSET_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ERC20_CORE_INDEX_ID","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"ERC20_DECIMAL_DIFF","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"MAX_DECIMAL_DIFF","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"MIN_DECIMAL_DIFF","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"MIN_GAS_WITH_VALUE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"NATIVE_ASSET_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NATIVE_CORE_INDEX_ID","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"NATIVE_DECIMAL_DIFF","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"OFT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SPOT_SEND_HEADER","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"VALID_COMPOSE_MSG_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"coreUserExists","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CoreUserExists","components":[{"name":"exists","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"decodeMessage","inputs":[{"name":"_composeMessage","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"minMsgValue","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"failedMessages","inputs":[{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"refundSendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]},{"name":"msgValue","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"handleTransfersToHyperCore","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amountLD","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_oft","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"quoteHyperCoreAmount","inputs":[{"name":"_coreIndexId","type":"uint64","internalType":"uint64"},{"name":"_decimalDiff","type":"int8","internalType":"int8"},{"name":"_bridgeAddress","type":"address","internalType":"address"},{"name":"_amountLD","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IHyperAssetAmount","components":[{"name":"evm","type":"uint256","internalType":"uint256"},{"name":"core","type":"uint64","internalType":"uint64"},{"name":"coreBalanceAssetBridge","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"refundToSrc","inputs":[{"name":"_guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"spotBalance","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"token","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SpotBalance","components":[{"name":"total","type":"uint64","internalType":"uint64"},{"name":"hold","type":"uint64","internalType":"uint64"},{"name":"entryNtl","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"event","name":"CompleteRefund","inputs":[],"anonymous":false},{"type":"event","name":"FailedMessageDecode","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"msgValue","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"composeMessage","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RefundHyperEVM","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amountERC20","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amountHYPE","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RefundSuccessful","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"ComposeMsgLengthNot64Bytes","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CoreUserNotActivated","inputs":[]},{"type":"error","name":"FailedMessageNotFound","inputs":[{"name":"guid","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InsufficientGas","inputs":[{"name":"gasLeft","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientMsgValue","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"requiredValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidComposeCaller","inputs":[{"name":"internalOFTAddress","type":"address","internalType":"address"},{"name":"receivedOFTAddress","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidDecimalDiff","inputs":[{"name":"decimalDiff","type":"int8","internalType":"int8"},{"name":"minDecimalDiff","type":"int8","internalType":"int8"},{"name":"maxDecimalDiff","type":"int8","internalType":"int8"}]},{"type":"error","name":"InvalidOFTAddress","inputs":[]},{"type":"error","name":"NativeTransferFailed","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[]},{"type":"error","name":"OnlySelf","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SpotBalanceReadFailed","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"tokenId","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"TransferAmtExceedsAssetBridgeBalance","inputs":[{"name":"amt","type":"uint256","internalType":"uint256"},{"name":"maxAmt","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101a060405234801562000011575f80fd5b5060405162002c4138038062002c41833981016040819052620000349162000259565b60015f556001600160a01b038316620000605760405163c23419a560e01b815260040160405180910390fd5b6001195f82900b128062000077575060125f82900b135b15620000ae5760405163470eb46160e01b81525f82900b600482015260011960248201526012604482015260640160405180910390fd5b826001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001119190620002b8565b6001600160a01b03908116608052831660a0525f466103e71462000138576104516200013b565b60965b73222222222222222222222222222222222222222260c052600a60e0526001600160401b0381166101005260a05160408051637e062a3560e11b815290519293506001600160a01b039091169163fc0c546a916004808201926020929091908290030181865afa158015620001b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d89190620002b8565b6001600160a01b031661012052620001f96001600160401b03841662000221565b6001600160a01b031661014052505f0b610160526001600160401b03166101805250620002fd565b5f6200023b6001600160401b0383166001609d1b620002dd565b92915050565b6001600160a01b038116811462000256575f80fd5b50565b5f805f606084860312156200026c575f80fd5b8351620002798162000241565b60208501519093506001600160401b038116811462000296575f80fd5b809250506040840151805f0b8114620002ad575f80fd5b809150509250925092565b5f60208284031215620002c9575f80fd5b8151620002d68162000241565b9392505050565b808201808211156200023b57634e487b7160e01b5f52601160045260245ffd5b60805160a05160c05160e051610100516101205161014051610160516101805161286e620003d35f395f81816105fd01528181611737015261182501525f8181610496015261175801525f81816105ca0152818161177901526117fa01525f818161052a0152818161170a01526117d701525f81816104c901528181611857015261198901525f81816103b4015261187801525f81816103050152818161189901526118e601525f818161022a0152818161095e01528181611008015261107f01525f81816103810152610f98015261286e5ff3fe60806040526004361061017b575f3560e01c8063a4e7f8bd116100d1578063cebb51201161007c578063f2f7141f11610057578063f2f7141f146105a6578063f34ec5e0146105b9578063fa69dc7b146105ec575f80fd5b8063cebb51201461054c578063d0a1026014610560578063d3af0cc114610573575f80fd5b8063b20bffdc116100ac578063b20bffdc146104b8578063c37bcb4c14610504578063cc4aa20414610519575f80fd5b8063a4e7f8bd14610406578063a69610d114610433578063a754403e14610485575f80fd5b806320d2c951116101315780636fad06f51161010c5780636fad06f51461037057806371139d6c146103a35780639dbfb13f146103d6575f80fd5b806320d2c951146102d5578063574ad4a8146102f4578063634d45b214610327575f80fd5b80631cd66690116101615780631cd66690146101c65780631ed0993d146102195780631f8164d914610271575f80fd5b806303a9437e1461018657806319180904146101b1575f80fd5b3661018257005b5f80fd5b348015610191575f80fd5b5061019a601281565b6040515f9190910b81526020015b60405180910390f35b6101c46101bf366004611dbf565b61061f565b005b3480156101d1575f80fd5b506101e56101e0366004611e0c565b610a07565b604080518251815260208084015167ffffffffffffffff9081169183019190915292820151909216908201526060016101a8565b348015610224575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a8565b34801561027c575f80fd5b506102a47f010000060000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101a8565b3480156102e0575f80fd5b50620249f05b6040519081526020016101a8565b3480156102ff575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610332575f80fd5b50610346610341366004611ea4565b610a45565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101a8565b34801561037b575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ae575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e1575f80fd5b506103f56103f0366004611ee3565b610a9b565b6040519051151581526020016101a8565b348015610411575f80fd5b50610425610420366004611dbf565b610bf5565b6040516101a8929190611fde565b34801561043e575f80fd5b5061045261044d366004611fff565b610df9565b60408051825167ffffffffffffffff908116825260208085015182169083015292820151909216908201526060016101a8565b348015610490575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c3575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff90911681526020016101a8565b34801561050f575f80fd5b5062030d406102e6565b348015610524575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610557575f80fd5b506102e6604081565b6101c461056e366004612036565b610f78565b34801561057e575f80fd5b5061019a7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81565b6101c46105b43660046120d0565b611423565b3480156105c4575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f7575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b5f818152600160208190526040808320815161012081018352815463ffffffff1692810192835292810154606084015260028101546080840152600381015460a0840152600481018054919284929091849160c085019190610680906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906120fa565b80156106f75780601f106106ce576101008083540402835291602001916106f7565b820191905f5260205f20905b8154815290600101906020018083116106da57829003601f168201915b50505050508152602001600582018054610710906120fa565b80601f016020809104026020016040519081016040528092919081815260200182805461073c906120fa565b80156107875780601f1061075e57610100808354040283529160200191610787565b820191905f5260205f20905b81548152906001019060200180831161076a57829003601f168201915b505050505081526020016006820180546107a0906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546107cc906120fa565b80156108175780601f106107ee57610100808354040283529160200191610817565b820191905f5260205f20905b8154815290600101906020018083116107fa57829003601f168201915b5050509190925250505081526007919091015460209091015280515190915063ffffffff165f0361087c576040517f0b948634000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b5f828152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016815590810182905560028101829055600381018290559081816108d56004830182611d6d565b6108e2600583015f611d6d565b6108ef600683015f611d6d565b5050600782015f905550505f34826020015161090b9190612172565b82516040805180820182528381525f602082015290517fc7c7f5b300000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263c7c7f5b3928592610995923290600401612185565b60c06040518083038185885af11580156109b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d69190612271565b505060405183907fd41d02272333251e6367f747c63d5cc227dcac6b0c799067569e80a30f9da369905f90a2505050565b604080516060810182525f8082526020820181905291810182905290610a2d8487610df9565b519050610a3b83828761147b565b9695505050505050565b5f8060408314610a84576040517f2b701db100000000000000000000000000000000000000000000000000000000815260048101849052602401610873565b610a90838501856122da565b909590945092505050565b60408051602081019091525f81526040805173ffffffffffffffffffffffffffffffffffffffff841660208201525f9182916108109101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610b0a916122fd565b5f60405180830381855afa9150503d805f8114610b42576040519150601f19603f3d011682016040523d82523d5f602084013e610b47565b606091505b509150915081610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f436f726520757365722065786973747320707265636f6d70696c652063616c6c60448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610bed9190612318565b949350505050565b600160208181525f928352604092839020835160e081018552815463ffffffff16815292810154918301919091526002810154928201929092526003820154606082015260048201805483916080840191610c4f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7b906120fa565b8015610cc65780601f10610c9d57610100808354040283529160200191610cc6565b820191905f5260205f20905b815481529060010190602001808311610ca957829003601f168201915b50505050508152602001600582018054610cdf906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0b906120fa565b8015610d565780601f10610d2d57610100808354040283529160200191610d56565b820191905f5260205f20905b815481529060010190602001808311610d3957829003601f168201915b50505050508152602001600682018054610d6f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9b906120fa565b8015610de65780601f10610dbd57610100808354040283529160200191610de6565b820191905f5260205f20905b815481529060010190602001808311610dc957829003601f168201915b5050509190925250505060079091015482565b604080516060810182525f80825260208201819052918101919091526040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff8416918101919091525f90819061080190606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610e8a916122fd565b5f60405180830381855afa9150503d805f8114610ec2576040519150601f19603f3d011682016040523d82523d5f602084013e610ec7565b606091505b509150915081610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f53706f7442616c616e636520707265636f6d70696c652063616c6c206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610f6d9190612366565b925050505b92915050565b610f80611520565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fef576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146110b4576040517fc8b356c600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015288166024820152604401610873565b5f6110bf8686611561565b90505f6110cc8787611580565b6040517f634d45b2000000000000000000000000000000000000000000000000000000008152909150309063634d45b29061110b9084906004016123b8565b6040805180830381865afa925050508015611161575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261115e918101906123ca565b60015b6112dd576111aa6040518060e001604052805f63ffffffff1681526020015f80191681526020015f81526020015f81526020016060815260200160608152602001606081525090565b6111b488886115ca565b63ffffffff1681526111c688886115ec565b60208281019190915260408083018590528051808201825283815234818401525f8c81526001808552908390208251805182547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff90911617825594850151918101919091559183015160028301556060830151600383015560808301519092908290600482019061125d9082612438565b5060a082015160058201906112729082612438565b5060c082015160068201906112879082612438565b50505060208201518160070155905050887f387fc8f821460fa8221428c9f4dc1f6d5db4f6a0a01f33dbeaa8cebd95e5d144826020015134856040516112cf93929190612554565b60405180910390a25061140f565b81341015611320576040517f7cb769dc00000000000000000000000000000000000000000000000000000000815234600482015260248101839052604401610873565b5f80341161133157620249f0611336565b62030d405b9050805a101561137e575a6040517f23e228cb000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610873565b6040517ff2f7141f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101869052309063f2f7141f9034906044015f604051808303818588803b1580156113eb575f80fd5b505af1935050505080156113fd575060015b61140b5761140b82866115fb565b5050505b505061141a60015f55565b50505050505050565b33301461145e576040517fa19dbf00000000000000000000000000000000000000000000000000000000008152336004820152602401610873565b6114688282611731565b34156114775761147782611851565b5050565b604080516060810182525f80825260208201819052918101919091525f805f845f0b13156114b8576114ae8686866119b2565b90925090506114f2565b6114ec86866114e7877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61257b565b611a4d565b90925090505b6040805160608101825292835267ffffffffffffffff91821660208401529085169082015290509392505050565b60025f540361155b576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f55565b5f611570602c600c848661259e565b611579916125c5565b9392505050565b606061158f82604c818661259e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b5f6115d9600c6008848661259e565b6115e291612601565b60e01c9392505050565b5f611570604c602c848661259e565b34156116ea575f8273ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f8114611657576040519150601f19603f3d011682016040523d82523d5f602084013e61165c565b606091505b50509050806116e8576040515f90329034908381818185875af1925050503d805f81146116a4576040519150601f19603f3d011682016040523d82523d5f602084013e6116a9565b606091505b50509050806116e6576040517f77479d32000000000000000000000000000000000000000000000000000000008152346004820152602401610873565b505b505b80156114775761147773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383611aca565b5f61179e7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085610a07565b80519091501561184c575f6117b7848360200151611b57565b825190915061181f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016907f000000000000000000000000000000000000000000000000000000000000000090611aca565b61184a847f000000000000000000000000000000000000000000000000000000000000000083611b9e565b505b505050565b5f6118be7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034610a07565b8051909150156114775780516040515f9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016918381818185875af1925050503d805f811461193d576040519150601f19603f3d011682016040523d82523d5f602084013e611942565b606091505b50509050806119835781516040517f77479d320000000000000000000000000000000000000000000000000000000081526004810191909152602401610873565b61184c837f00000000000000000000000000000000000000000000000000000000000000008460200151611b9e565b5f80806119c084600a612767565b90505f6119d78267ffffffffffffffff8816612775565b90508187816119e8576119e861278c565b068703935080841115611a31576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b818481611a4057611a4061278c565b0492505050935093915050565b5f8080611a5b84600a612767565b90505f611a728267ffffffffffffffff88166127b9565b905086935080871115611abb576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b81840292505050935093915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261184c908490611cce565b5f611b6183610a9b565b51611b98576040517fbdcf14ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff84811682840152831660608083019190915282518083039091018152608082019092525f90611c1c907f010000060000000000000000000000000000000000000000000000000000000090849060a0016127f1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f17938e130000000000000000000000000000000000000000000000000000000082529150733333333333333333333333333333333333333333906317938e1390611c9a9084906004016123b8565b5f604051808303815f87803b158015611cb1575f80fd5b505af1158015611cc3573d5f803e3d5ffd5b505050505050505050565b5f8060205f8451602086015f885af180611ced576040513d5f823e3d81fd5b50505f513d91508115611d04578060011415611d1e565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561184a576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610873565b508054611d79906120fa565b5f825580601f10611d88575050565b601f0160209004905f5260205f2090810190611da49190611da7565b50565b5b80821115611dbb575f8155600101611da8565b5090565b5f60208284031215611dcf575f80fd5b5035919050565b67ffffffffffffffff81168114611da4575f80fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611da4575f80fd5b5f805f8060808587031215611e1f575f80fd5b8435611e2a81611dd6565b935060208501355f81900b8114611e3f575f80fd5b92506040850135611e4f81611deb565b9396929550929360600135925050565b5f8083601f840112611e6f575f80fd5b50813567ffffffffffffffff811115611e86575f80fd5b602083019150836020828501011115611e9d575f80fd5b9250929050565b5f8060208385031215611eb5575f80fd5b823567ffffffffffffffff811115611ecb575f80fd5b611ed785828601611e5f565b90969095509350505050565b5f60208284031215611ef3575f80fd5b813561157981611deb565b5f5b83811015611f18578181015183820152602001611f00565b50505f910152565b5f8151808452611f37816020860160208601611efe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301525f608082015160e06080850152611fab60e0850182611f20565b905060a083015184820360a0860152611fc48282611f20565b91505060c083015184820360c0860152610f6d8282611f20565b604081525f611ff06040830185611f69565b90508260208301529392505050565b5f8060408385031215612010575f80fd5b823561201b81611deb565b9150602083013561202b81611dd6565b809150509250929050565b5f805f805f805f60a0888a03121561204c575f80fd5b873561205781611deb565b965060208801359550604088013567ffffffffffffffff8082111561207a575f80fd5b6120868b838c01611e5f565b909750955060608a0135915061209b82611deb565b909350608089013590808211156120b0575f80fd5b506120bd8a828b01611e5f565b989b979a50959850939692959293505050565b5f80604083850312156120e1575f80fd5b82356120ec81611deb565b946020939093013593505050565b600181811c9082168061210e57607f821691505b602082108103611b98577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f7257610f72612145565b608081525f6121976080830186611f69565b9050835160208301526020840151604083015273ffffffffffffffffffffffffffffffffffffffff83166060830152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561221e5761221e6121ce565b60405290565b5f60408284031215612234575f80fd5b6040516040810181811067ffffffffffffffff82111715612257576122576121ce565b604052825181526020928301519281019290925250919050565b5f8082840360c0811215612283575f80fd5b6080811215612290575f80fd5b506122996121fb565b8351815260208401516122ab81611dd6565b60208201526122bd8560408601612224565b604082015291506122d18460808501612224565b90509250929050565b5f80604083850312156122eb575f80fd5b82359150602083013561202b81611deb565b5f825161230e818460208701611efe565b9190910192915050565b5f60208284031215612328575f80fd5b6040516020810181811067ffffffffffffffff8211171561234b5761234b6121ce565b6040528251801515811461235d575f80fd5b81529392505050565b5f60608284031215612376575f80fd5b61237e6121fb565b825161238981611dd6565b8152602083015161239981611dd6565b602082015260408301516123ac81611dd6565b60408201529392505050565b602081525f6115796020830184611f20565b5f80604083850312156123db575f80fd5b82519150602083015161202b81611deb565b601f82111561184c57805f5260205f20601f840160051c810160208510156124125750805b601f840160051c820191505b81811015612431575f815560010161241e565b5050505050565b815167ffffffffffffffff811115612452576124526121ce565b6124668161246084546120fa565b846123ed565b602080601f8311600181146124b8575f84156124825750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561254c565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612504578886015182559484019460019091019084016124e5565b508582101561254057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b838152826020820152606060408201525f6125726060830184611f20565b95945050505050565b5f825f0b825f0b02805f0b915080821461259757612597612145565b5092915050565b5f80858511156125ac575f80fd5b838611156125b8575f80fd5b5050820193919092039150565b80356020831015610f72577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156126415780818660040360031b1b83161692505b505092915050565b600181815b808511156126a257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561268857612688612145565b8085161561269557918102915b93841c939080029061264e565b509250929050565b5f826126b857506001610f72565b816126c457505f610f72565b81600181146126da57600281146126e457612700565b6001915050610f72565b60ff8411156126f5576126f5612145565b50506001821b610f72565b5060208310610133831016604e8410600b8410161715612723575081810a610f72565b61272d8383612649565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561275f5761275f612145565b029392505050565b5f61157960ff8416836126aa565b8082028115828204841417610f7257610f72612145565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826127ec577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825161282a816004850160208701611efe565b91909101600401939250505056fea26469706673582212209aa6ef159b4233fc36e84c55a9bd5b1a107e3dd2503bc35f1bbf969465998faa64736f6c63430008160033","sourceMap":"1816:12867:0:-:0;;;3095:891;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1857:1:73;2061:7;:21;-1:-1:-1;;;;;3180:18:0;;3176:50;;3207:19;;-1:-1:-1;;;3207:19:0;;;;;;;;;;;3176:50;-1:-1:-1;;3241:36:0;;;;;;:76;;-1:-1:-1;2334:2:0;3281:36;;;;;3241:76;3237:174;;;3338:73;;-1:-1:-1;;;3338:73:0;;870:4:91;942:21;;;3338:73:0;;;924:40:91;-1:-1:-1;;980:18:91;;;973:49;2334:2:0;1038:18:91;;;1031:49;897:18;;3338:73:0;;;;;;;3237:174;3451:4;-1:-1:-1;;;;;3441:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3422:46:0;;;;;3479:10;;;;3500:20;3523:13;715:3:1;3523:38:0;:114;;889:4:1;3523:114:0;;;1035:3:1;3523:114:0;1263:42:1;3648:39:0;;1174:2:1;3697:39:0;;-1:-1:-1;;;;;3746:36:0;;;;3806:3;;3801:17;;;-1:-1:-1;;;3801:17:0;;;;3746:36;;-1:-1:-1;;;;;;3801:15:0;;;;;;:17;;;;;;;;;;;;;;;:15;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3793:25:0;;;3849:38;-1:-1:-1;;;;;3849:36:0;;;:38::i;:::-;-1:-1:-1;;;;;3828:59:0;;;-1:-1:-1;3897:38:0;;;;-1:-1:-1;;;;;3945:34:0;;;-1:-1:-1;1816:12867:0;;1300:176:10;1377:7;1419:48;-1:-1:-1;;;;;1419:48:10;;-1:-1:-1;;;1419:48:10;:::i;:::-;1396:73;1300:176;-1:-1:-1;;1300:176:10:o;14:131:91:-;-1:-1:-1;;;;;89:31:91;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:585::-;234:6;242;250;303:2;291:9;282:7;278:23;274:32;271:52;;;319:1;316;309:12;271:52;351:9;345:16;370:31;395:5;370:31;:::i;:::-;470:2;455:18;;449:25;420:5;;-1:-1:-1;;;;;;505:32:91;;493:45;;483:73;;552:1;549;542:12;483:73;575:7;565:17;;;627:2;616:9;612:18;606:25;676:7;673:1;662:22;653:7;650:35;640:63;;699:1;696;689:12;640:63;722:7;712:17;;;150:585;;;;;:::o;1091:280::-;1190:6;1243:2;1231:9;1222:7;1218:23;1214:32;1211:52;;;1259:1;1256;1249:12;1211:52;1291:9;1285:16;1310:31;1335:5;1310:31;:::i;:::-;1360:5;1091:280;-1:-1:-1;;;1091:280:91:o;1632:222::-;1697:9;;;1718:10;;;1715:133;;;1770:10;1765:3;1761:20;1758:1;1751:31;1805:4;1802:1;1795:15;1833:4;1830:1;1823:15;1632:222;1816:12867:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061017b575f3560e01c8063a4e7f8bd116100d1578063cebb51201161007c578063f2f7141f11610057578063f2f7141f146105a6578063f34ec5e0146105b9578063fa69dc7b146105ec575f80fd5b8063cebb51201461054c578063d0a1026014610560578063d3af0cc114610573575f80fd5b8063b20bffdc116100ac578063b20bffdc146104b8578063c37bcb4c14610504578063cc4aa20414610519575f80fd5b8063a4e7f8bd14610406578063a69610d114610433578063a754403e14610485575f80fd5b806320d2c951116101315780636fad06f51161010c5780636fad06f51461037057806371139d6c146103a35780639dbfb13f146103d6575f80fd5b806320d2c951146102d5578063574ad4a8146102f4578063634d45b214610327575f80fd5b80631cd66690116101615780631cd66690146101c65780631ed0993d146102195780631f8164d914610271575f80fd5b806303a9437e1461018657806319180904146101b1575f80fd5b3661018257005b5f80fd5b348015610191575f80fd5b5061019a601281565b6040515f9190910b81526020015b60405180910390f35b6101c46101bf366004611dbf565b61061f565b005b3480156101d1575f80fd5b506101e56101e0366004611e0c565b610a07565b604080518251815260208084015167ffffffffffffffff9081169183019190915292820151909216908201526060016101a8565b348015610224575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a8565b34801561027c575f80fd5b506102a47f010000060000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101a8565b3480156102e0575f80fd5b50620249f05b6040519081526020016101a8565b3480156102ff575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610332575f80fd5b50610346610341366004611ea4565b610a45565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101a8565b34801561037b575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ae575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e1575f80fd5b506103f56103f0366004611ee3565b610a9b565b6040519051151581526020016101a8565b348015610411575f80fd5b50610425610420366004611dbf565b610bf5565b6040516101a8929190611fde565b34801561043e575f80fd5b5061045261044d366004611fff565b610df9565b60408051825167ffffffffffffffff908116825260208085015182169083015292820151909216908201526060016101a8565b348015610490575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c3575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff90911681526020016101a8565b34801561050f575f80fd5b5062030d406102e6565b348015610524575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610557575f80fd5b506102e6604081565b6101c461056e366004612036565b610f78565b34801561057e575f80fd5b5061019a7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81565b6101c46105b43660046120d0565b611423565b3480156105c4575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f7575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b5f818152600160208190526040808320815161012081018352815463ffffffff1692810192835292810154606084015260028101546080840152600381015460a0840152600481018054919284929091849160c085019190610680906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906120fa565b80156106f75780601f106106ce576101008083540402835291602001916106f7565b820191905f5260205f20905b8154815290600101906020018083116106da57829003601f168201915b50505050508152602001600582018054610710906120fa565b80601f016020809104026020016040519081016040528092919081815260200182805461073c906120fa565b80156107875780601f1061075e57610100808354040283529160200191610787565b820191905f5260205f20905b81548152906001019060200180831161076a57829003601f168201915b505050505081526020016006820180546107a0906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546107cc906120fa565b80156108175780601f106107ee57610100808354040283529160200191610817565b820191905f5260205f20905b8154815290600101906020018083116107fa57829003601f168201915b5050509190925250505081526007919091015460209091015280515190915063ffffffff165f0361087c576040517f0b948634000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b5f828152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016815590810182905560028101829055600381018290559081816108d56004830182611d6d565b6108e2600583015f611d6d565b6108ef600683015f611d6d565b5050600782015f905550505f34826020015161090b9190612172565b82516040805180820182528381525f602082015290517fc7c7f5b300000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263c7c7f5b3928592610995923290600401612185565b60c06040518083038185885af11580156109b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d69190612271565b505060405183907fd41d02272333251e6367f747c63d5cc227dcac6b0c799067569e80a30f9da369905f90a2505050565b604080516060810182525f8082526020820181905291810182905290610a2d8487610df9565b519050610a3b83828761147b565b9695505050505050565b5f8060408314610a84576040517f2b701db100000000000000000000000000000000000000000000000000000000815260048101849052602401610873565b610a90838501856122da565b909590945092505050565b60408051602081019091525f81526040805173ffffffffffffffffffffffffffffffffffffffff841660208201525f9182916108109101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610b0a916122fd565b5f60405180830381855afa9150503d805f8114610b42576040519150601f19603f3d011682016040523d82523d5f602084013e610b47565b606091505b509150915081610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f436f726520757365722065786973747320707265636f6d70696c652063616c6c60448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610bed9190612318565b949350505050565b600160208181525f928352604092839020835160e081018552815463ffffffff16815292810154918301919091526002810154928201929092526003820154606082015260048201805483916080840191610c4f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7b906120fa565b8015610cc65780601f10610c9d57610100808354040283529160200191610cc6565b820191905f5260205f20905b815481529060010190602001808311610ca957829003601f168201915b50505050508152602001600582018054610cdf906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0b906120fa565b8015610d565780601f10610d2d57610100808354040283529160200191610d56565b820191905f5260205f20905b815481529060010190602001808311610d3957829003601f168201915b50505050508152602001600682018054610d6f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9b906120fa565b8015610de65780601f10610dbd57610100808354040283529160200191610de6565b820191905f5260205f20905b815481529060010190602001808311610dc957829003601f168201915b5050509190925250505060079091015482565b604080516060810182525f80825260208201819052918101919091526040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff8416918101919091525f90819061080190606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610e8a916122fd565b5f60405180830381855afa9150503d805f8114610ec2576040519150601f19603f3d011682016040523d82523d5f602084013e610ec7565b606091505b509150915081610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f53706f7442616c616e636520707265636f6d70696c652063616c6c206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610f6d9190612366565b925050505b92915050565b610f80611520565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fef576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146110b4576040517fc8b356c600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015288166024820152604401610873565b5f6110bf8686611561565b90505f6110cc8787611580565b6040517f634d45b2000000000000000000000000000000000000000000000000000000008152909150309063634d45b29061110b9084906004016123b8565b6040805180830381865afa925050508015611161575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261115e918101906123ca565b60015b6112dd576111aa6040518060e001604052805f63ffffffff1681526020015f80191681526020015f81526020015f81526020016060815260200160608152602001606081525090565b6111b488886115ca565b63ffffffff1681526111c688886115ec565b60208281019190915260408083018590528051808201825283815234818401525f8c81526001808552908390208251805182547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff90911617825594850151918101919091559183015160028301556060830151600383015560808301519092908290600482019061125d9082612438565b5060a082015160058201906112729082612438565b5060c082015160068201906112879082612438565b50505060208201518160070155905050887f387fc8f821460fa8221428c9f4dc1f6d5db4f6a0a01f33dbeaa8cebd95e5d144826020015134856040516112cf93929190612554565b60405180910390a25061140f565b81341015611320576040517f7cb769dc00000000000000000000000000000000000000000000000000000000815234600482015260248101839052604401610873565b5f80341161133157620249f0611336565b62030d405b9050805a101561137e575a6040517f23e228cb000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610873565b6040517ff2f7141f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101869052309063f2f7141f9034906044015f604051808303818588803b1580156113eb575f80fd5b505af1935050505080156113fd575060015b61140b5761140b82866115fb565b5050505b505061141a60015f55565b50505050505050565b33301461145e576040517fa19dbf00000000000000000000000000000000000000000000000000000000008152336004820152602401610873565b6114688282611731565b34156114775761147782611851565b5050565b604080516060810182525f80825260208201819052918101919091525f805f845f0b13156114b8576114ae8686866119b2565b90925090506114f2565b6114ec86866114e7877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61257b565b611a4d565b90925090505b6040805160608101825292835267ffffffffffffffff91821660208401529085169082015290509392505050565b60025f540361155b576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f55565b5f611570602c600c848661259e565b611579916125c5565b9392505050565b606061158f82604c818661259e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b5f6115d9600c6008848661259e565b6115e291612601565b60e01c9392505050565b5f611570604c602c848661259e565b34156116ea575f8273ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f8114611657576040519150601f19603f3d011682016040523d82523d5f602084013e61165c565b606091505b50509050806116e8576040515f90329034908381818185875af1925050503d805f81146116a4576040519150601f19603f3d011682016040523d82523d5f602084013e6116a9565b606091505b50509050806116e6576040517f77479d32000000000000000000000000000000000000000000000000000000008152346004820152602401610873565b505b505b80156114775761147773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383611aca565b5f61179e7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085610a07565b80519091501561184c575f6117b7848360200151611b57565b825190915061181f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016907f000000000000000000000000000000000000000000000000000000000000000090611aca565b61184a847f000000000000000000000000000000000000000000000000000000000000000083611b9e565b505b505050565b5f6118be7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034610a07565b8051909150156114775780516040515f9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016918381818185875af1925050503d805f811461193d576040519150601f19603f3d011682016040523d82523d5f602084013e611942565b606091505b50509050806119835781516040517f77479d320000000000000000000000000000000000000000000000000000000081526004810191909152602401610873565b61184c837f00000000000000000000000000000000000000000000000000000000000000008460200151611b9e565b5f80806119c084600a612767565b90505f6119d78267ffffffffffffffff8816612775565b90508187816119e8576119e861278c565b068703935080841115611a31576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b818481611a4057611a4061278c565b0492505050935093915050565b5f8080611a5b84600a612767565b90505f611a728267ffffffffffffffff88166127b9565b905086935080871115611abb576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b81840292505050935093915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261184c908490611cce565b5f611b6183610a9b565b51611b98576040517fbdcf14ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff84811682840152831660608083019190915282518083039091018152608082019092525f90611c1c907f010000060000000000000000000000000000000000000000000000000000000090849060a0016127f1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f17938e130000000000000000000000000000000000000000000000000000000082529150733333333333333333333333333333333333333333906317938e1390611c9a9084906004016123b8565b5f604051808303815f87803b158015611cb1575f80fd5b505af1158015611cc3573d5f803e3d5ffd5b505050505050505050565b5f8060205f8451602086015f885af180611ced576040513d5f823e3d81fd5b50505f513d91508115611d04578060011415611d1e565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561184a576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610873565b508054611d79906120fa565b5f825580601f10611d88575050565b601f0160209004905f5260205f2090810190611da49190611da7565b50565b5b80821115611dbb575f8155600101611da8565b5090565b5f60208284031215611dcf575f80fd5b5035919050565b67ffffffffffffffff81168114611da4575f80fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611da4575f80fd5b5f805f8060808587031215611e1f575f80fd5b8435611e2a81611dd6565b935060208501355f81900b8114611e3f575f80fd5b92506040850135611e4f81611deb565b9396929550929360600135925050565b5f8083601f840112611e6f575f80fd5b50813567ffffffffffffffff811115611e86575f80fd5b602083019150836020828501011115611e9d575f80fd5b9250929050565b5f8060208385031215611eb5575f80fd5b823567ffffffffffffffff811115611ecb575f80fd5b611ed785828601611e5f565b90969095509350505050565b5f60208284031215611ef3575f80fd5b813561157981611deb565b5f5b83811015611f18578181015183820152602001611f00565b50505f910152565b5f8151808452611f37816020860160208601611efe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301525f608082015160e06080850152611fab60e0850182611f20565b905060a083015184820360a0860152611fc48282611f20565b91505060c083015184820360c0860152610f6d8282611f20565b604081525f611ff06040830185611f69565b90508260208301529392505050565b5f8060408385031215612010575f80fd5b823561201b81611deb565b9150602083013561202b81611dd6565b809150509250929050565b5f805f805f805f60a0888a03121561204c575f80fd5b873561205781611deb565b965060208801359550604088013567ffffffffffffffff8082111561207a575f80fd5b6120868b838c01611e5f565b909750955060608a0135915061209b82611deb565b909350608089013590808211156120b0575f80fd5b506120bd8a828b01611e5f565b989b979a50959850939692959293505050565b5f80604083850312156120e1575f80fd5b82356120ec81611deb565b946020939093013593505050565b600181811c9082168061210e57607f821691505b602082108103611b98577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f7257610f72612145565b608081525f6121976080830186611f69565b9050835160208301526020840151604083015273ffffffffffffffffffffffffffffffffffffffff83166060830152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561221e5761221e6121ce565b60405290565b5f60408284031215612234575f80fd5b6040516040810181811067ffffffffffffffff82111715612257576122576121ce565b604052825181526020928301519281019290925250919050565b5f8082840360c0811215612283575f80fd5b6080811215612290575f80fd5b506122996121fb565b8351815260208401516122ab81611dd6565b60208201526122bd8560408601612224565b604082015291506122d18460808501612224565b90509250929050565b5f80604083850312156122eb575f80fd5b82359150602083013561202b81611deb565b5f825161230e818460208701611efe565b9190910192915050565b5f60208284031215612328575f80fd5b6040516020810181811067ffffffffffffffff8211171561234b5761234b6121ce565b6040528251801515811461235d575f80fd5b81529392505050565b5f60608284031215612376575f80fd5b61237e6121fb565b825161238981611dd6565b8152602083015161239981611dd6565b602082015260408301516123ac81611dd6565b60408201529392505050565b602081525f6115796020830184611f20565b5f80604083850312156123db575f80fd5b82519150602083015161202b81611deb565b601f82111561184c57805f5260205f20601f840160051c810160208510156124125750805b601f840160051c820191505b81811015612431575f815560010161241e565b5050505050565b815167ffffffffffffffff811115612452576124526121ce565b6124668161246084546120fa565b846123ed565b602080601f8311600181146124b8575f84156124825750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561254c565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612504578886015182559484019460019091019084016124e5565b508582101561254057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b838152826020820152606060408201525f6125726060830184611f20565b95945050505050565b5f825f0b825f0b02805f0b915080821461259757612597612145565b5092915050565b5f80858511156125ac575f80fd5b838611156125b8575f80fd5b5050820193919092039150565b80356020831015610f72577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156126415780818660040360031b1b83161692505b505092915050565b600181815b808511156126a257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561268857612688612145565b8085161561269557918102915b93841c939080029061264e565b509250929050565b5f826126b857506001610f72565b816126c457505f610f72565b81600181146126da57600281146126e457612700565b6001915050610f72565b60ff8411156126f5576126f5612145565b50506001821b610f72565b5060208310610133831016604e8410600b8410161715612723575081810a610f72565b61272d8383612649565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561275f5761275f612145565b029392505050565b5f61157960ff8416836126aa565b8082028115828204841417610f7257610f72612145565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826127ec577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825161282a816004850160208701611efe565b91909101600401939250505056fea26469706673582212209aa6ef159b4233fc36e84c55a9bd5b1a107e3dd2503bc35f1bbf969465998faa64736f6c63430008160033","sourceMap":"1816:12867:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2294:42;;;;;;;;;;;;2334:2;2294:42;;;;;100:4:91;172:21;;;;154:40;;142:2;127:18;2294:42:0;;;;;;;;12909:754;;;;;;:::i;:::-;;:::i;:::-;;11677:362;;;;;;;;;;-1:-1:-1;11677:362:0;;;;;:::i;:::-;;:::i;:::-;;;;1545:13:91;;1527:32;;1606:4;1594:17;;;1588:24;1631:18;1687:21;;;1665:20;;;1658:51;;;;1757:17;;;1751:24;1747:33;;;1725:20;;;1718:63;1515:2;1500:18;11677:362:0;1311:476:91;2382:28:0;;;;;;;;;;;;;;;;;;1968:42:91;1956:55;;;1938:74;;1926:2;1911:18;2382:28:0;1792:226:91;1806:52:1;;;;;;;;;;-1:-1:-1;1806:52:1;;;;;;;2197:66:91;2185:79;;;2167:98;;2155:2;2140:18;1806:52:1;2023:248:91;14071:83:0;;;;;;;;;;-1:-1:-1;14140:7:0;14071:83;;;2422:25:91;;;2410:2;2395:18;14071:83:0;2276:177:91;2417:44:0;;;;;;;;;;;;;;;7059:316;;;;;;;;;;-1:-1:-1;7059:316:0;;;;;:::i;:::-;;:::i;:::-;;;;3398:25:91;;;3471:42;3459:55;;;3454:2;3439:18;;3432:83;3371:18;7059:316:0;3224:297:91;2343:33:0;;;;;;;;;;;;;;;2467:41;;;;;;;;;;;;;;;2227:323:1;;;;;;;;;;-1:-1:-1;2227:323:1;;;;;:::i;:::-;;:::i;:::-;;;4018:13:91;;4011:21;4004:29;3986:48;;3974:2;3959:18;2227:323:1;3778:262:91;2746:60:0;;;;;;;;;;-1:-1:-1;2746:60:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1895:326:1:-;;;;;;;;;;-1:-1:-1;1895:326:1;;;;;:::i;:::-;;:::i;:::-;;;;6394:13:91;;6345:18;6390:22;;;6372:41;;6473:4;6461:17;;;6455:24;6451:33;;6429:20;;;6422:63;6533:17;;;6527:24;6523:33;;;6501:20;;;6494:63;6323:2;6308:18;1895:326:1;6133:430:91;2650:40:0;;;;;;;;;;;;;;;2514:44;;;;;;;;;;;;;;;;;;6742:18:91;6730:31;;;6712:50;;6700:2;6685:18;2514:44:0;6568:200:91;14552:94:0;;;;;;;;;;-1:-1:-1;14632:7:0;14552:94;;2565:30;;;;;;;;;;;;;;;2051:50;;;;;;;;;;;;2099:2;2051:50;;4572:2215;;;;;;:::i;:::-;;:::i;2246:42::-;;;;;;;;;;;;2286:2;2246:42;;7811:379;;;;;;:::i;:::-;;:::i;2601:43::-;;;;;;;;;;;;;;;2696;;;;;;;;;;;;;;;12909:754;12980:34;13017:21;;;:14;:21;;;;;;;;12980:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13017:21;;12980:58;;;;13017:21;;12980:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12980:58:0;;;;-1:-1:-1;;;12980:58:0;;;;;;;;;;;;;13052:29;;:36;12980:58;;-1:-1:-1;13052:41:0;;-1:-1:-1;13052:41:0;13048:82;;13102:28;;;;;;;;2422:25:91;;;2395:18;;13102:28:0;;;;;;;;13048:82;13148:21;;;;:14;:21;;;;;;;13141:28;;;;;;;;;;;;;;;;;;;;;;;;13148:21;;;13141:28;;;;13148:21;13141:28;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;13180:21;13229:9;13204:13;:22;;;:34;;;;:::i;:::-;13511:29;;13554:30;;;;;;;;;;;13511:29;13554:30;;;;13459:158;;;;;13180:58;;-1:-1:-1;13459:14:0;13464:3;13459:14;;;;13180:58;;13459:158;;13598:9;;13459:158;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13633:23:0;;13650:5;;13633:23;;;;;12970:693;;12909:754;:::o;11677:362::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;11908:41:0;11920:14;11936:12;11908:11;:41::i;:::-;:47;;-1:-1:-1;11972:60:0;:9;11908:47;12019:12;11972:31;:60::i;:::-;11965:67;11677:362;-1:-1:-1;;;;;;11677:362:0:o;7059:316::-;7137:19;;2099:2;7184:47;;7180:110;;7240:50;;;;;;;;2422:25:91;;;2395:18;;7240:50:0;2276:177:91;7180:110:0;7321:47;;;;7332:15;7321:47;:::i;:::-;7301:67;;;;-1:-1:-1;7059:316:0;-1:-1:-1;;;7059:316:0:o;2227:323:1:-;-1:-1:-1;;;;;;;;;;;;2404:16:1;;;2357:46;1956:55:91;;2404:16:1;;;1938:74:91;2320:12:1;;;;1604:42;;1911:18:91;2404:16:1;;;;;;;;;;;;;;2357:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2319:102;;;;2439:7;2431:59;;;;;;;12163:2:91;2431:59:1;;;12145:21:91;12202:2;12182:18;;;12175:30;12241:34;12221:18;;;12214:62;12312:9;12292:18;;;12285:37;12339:19;;2431:59:1;11961:403:91;2431:59:1;2518:6;2507:36;;;;;;;;;;;;:::i;:::-;2500:43;2227:323;-1:-1:-1;;;;2227:323:1:o;2746:60:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2746:60:0;;;;-1:-1:-1;;;2746:60:0;;;;;;:::o;1895:326:1:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;2076:23:1;;;2033:42;13108:55:91;;2076:23:1;;;13090:74:91;13212:18;13200:31;;13180:18;;;13173:59;;;;1996:12:1;;;;1492:42;;13063:18:91;;2076:23:1;;;;;;;;;;;;;;2033:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1995:105;;;;2118:7;2110:54;;;;;;;13445:2:91;2110:54:1;;;13427:21:91;13484:2;13464:18;;;13457:30;13523:34;13503:18;;;13496:62;13594:4;13574:18;;;13567:32;13616:19;;2110:54:1;13243:398:91;2110:54:1;2192:6;2181:33;;;;;;;;;;;;:::i;:::-;2174:40;;;;1895:326;;;;;:::o;4572:2215:0:-;2500:21:73;:19;:21::i;:::-;4806:10:0::1;:22;4820:8;4806:22;;4802:49;;4837:14;;;;;;;;;;;;;;4802:49;4872:4;4865:11;;:3;:11;;;4861:64;;4885:40;::::0;::::1;::::0;;14447:42:91;4914:3:0::1;14516:15:91::0;;4885:40:0::1;::::0;::::1;14498:34:91::0;14568:15;;14548:18;;;14541:43;14410:18;;4885:40:0::1;14263:327:91::0;4861:64:0::1;5048:16;5067:37;5095:8;;5067:27;:37::i;:::-;5048:56;;5114:30;5147:39;5177:8;;5147:29;:39::i;:::-;5322:37;::::0;;;;5114:72;;-1:-1:-1;5322:4:0::1;::::0;:18:::1;::::0;:37:::1;::::0;5114:72;;5322:37:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;5322:37:0::1;::::0;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;5318:1463;;6334:32;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6334:32:0::1;6405:35;6431:8;;6405:25;:35::i;:::-;6380:60;;::::0;;6475:40:::1;6506:8:::0;;6475:30:::1;:40::i;:::-;6454:18;::::0;;::::1;:61:::0;;;;6529:24:::1;::::0;;::::1;:35:::0;;;6603:72;;;;::::1;::::0;;;;;6663:9:::1;6603:72:::0;;::::1;::::0;-1:-1:-1;6579:21:0;;;:14:::1;:21:::0;;;;;;;:96;;;;;;;::::1;;::::0;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;6603:72;;6579:96;:21;;:96:::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;6579:96:0::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;6579:96:0::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;;;;;;;;;;;6714:5;6694:76;6721:15;:18;;;6741:9;6752:17;6694:76;;;;;;;;:::i;:::-;;;;;;;;6320:461;5318:1463;;;5434:12;5422:9;:24;5418:82;;;5455:45;::::0;::::1;::::0;;5476:9:::1;5455:45;::::0;::::1;18015:25:91::0;18056:18;;;18049:34;;;17988:18;;5455:45:0::1;17841:248:91::0;5418:82:0::1;5515:14;5544:1:::0;5532:9:::1;:13;:48;;14140:7:::0;5532:48:::1;;;14632:7:::0;5548:20:::1;5515:65;;5863:6;5851:9;:18;5847:65;;;5894:9;5878:34;::::0;::::1;::::0;;::::1;::::0;::::1;18015:25:91::0;;;;18056:18;;;18049:34;;;17988:18;;5878:34:0::1;17841:248:91::0;5847:65:0::1;6162:66;::::0;;;;18298:42:91;18286:55;;6162:66:0::1;::::0;::::1;18268:74:91::0;18358:18;;;18351:34;;;6162:4:0::1;::::0;:31:::1;::::0;6202:9:::1;::::0;18241:18:91;;6162:66:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;6158:145;;6256:32;6274:3;6279:8;6256:17;:32::i;:::-;5404:909;5360:953;;5318:1463;4792:1995;;2542:20:73::0;1857:1;3068:7;:21;2888:208;2542:20;4572:2215:0;;;;;;;:::o;7811:379::-;7910:10;7932:4;7910:27;7906:60;;7946:20;;;;;7955:10;7946:20;;;1938:74:91;1911:18;;7946:20:0;1792:226:91;7906:60:0;8029:41;8055:3;8060:9;8029:25;:41::i;:::-;8137:9;:13;8133:50;;8152:31;8179:3;8152:26;:31::i;:::-;7811:379;;:::o;2380:989:10:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;2563:17:10;2590;2809:1;2794:12;:16;;;2790:456;;;2852:160;2918:7;2943:18;2985:12;2852:48;:160::i;:::-;2826:186;;-1:-1:-1;2826:186:10;-1:-1:-1;2790:456:10;;;3069:166;3136:7;3161:18;3203:17;3208:12;3203:2;:17;:::i;:::-;3069:49;:166::i;:::-;3043:192;;-1:-1:-1;3043:192:10;-1:-1:-1;2790:456:10;3263:99;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2380:989:10;;;;;:::o;2575:307:73:-;1899:1;2702:7;;:18;2698:86;;2743:30;;;;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;1676:150:39:-;1738:7;1780:37;282:2;232;1780:4;;:37;:::i;:::-;1772:46;;;:::i;:::-;1764:55;1676:150;-1:-1:-1;;;1676:150:39:o;2273:128::-;2337:12;2368:26;:4;335:2;2368:4;;:26;:::i;:::-;2361:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2361:33:39;;2273:128;-1:-1:-1;;;;;;2273:128:39:o;1358:141::-;1418:6;1457:33;232:2;185:1;1457:4;;:33;:::i;:::-;1450:41;;;:::i;:::-;1443:49;;;1358:141;-1:-1:-1;;;1358:141:39:o;1989:149::-;2054:7;2088:42;335:2;282;2088:4;;:42;:::i;12282:485:0:-;12383:9;:14;12379:298;;12414:13;12433:14;:19;;12461:9;12433:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12413:63;;;12495:8;12490:177;;12543:38;;12524:13;;12543:9;;12566;;12524:13;12543:38;12524:13;12543:38;12566:9;12543;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12523:58;;;12604:8;12599:53;;12621:31;;;;;12642:9;12621:31;;;2422:25:91;2395:18;;12621:31:0;2276:177:91;12599:53:0;12505:162;12490:177;12399:278;12379:298;12691:14;;12687:73;;12707:53;:26;12714:5;12707:26;12734:14;12750:9;12707:26;:53::i;8570:938::-;8664:32;8699:150;8733:19;8766:18;8798;8830:9;8699:20;:150::i;:::-;9053:11;;8664:185;;-1:-1:-1;9053:16:0;9049:453;;9207:17;9227:38;9247:3;9252:7;:12;;;9227:19;:38::i;:::-;9401:11;;9207:58;;-1:-1:-1;9354:59:0;;:26;9361:5;9354:26;;9381:18;;9354:26;:59::i;:::-;9428:63;9454:3;9459:19;9480:10;9428:25;:63::i;:::-;9071:431;9049:453;8654:854;8570:938;;:::o;9741:634::-;9817:32;9852:153;9886:20;9920:19;9953;9986:9;9852:20;:153::i;:::-;10020:11;;9817:188;;-1:-1:-1;10020:16:0;10016:353;;10192:11;;10150:59;;10132:12;;10150:33;10158:19;10150:33;;10132:12;10150:59;10132:12;10150:59;10192:11;10150:33;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10131:78;;;10228:7;10223:54;;10265:11;;10244:33;;;;;;;;2422:25:91;;;;2395:18;;10244:33:0;2276:177:91;10223:54:0;10292:66;10318:3;10323:20;10345:7;:12;;;10292:25;:66::i;3871:879:10:-;4054:17;;;4118:18;4124:12;4118:2;:18;:::i;:::-;4102:34;-1:-1:-1;4146:14:10;4163:34;4102;4163;;;;:::i;:::-;4146:51;;4401:5;4391:7;:15;;;;;:::i;:::-;;4380:7;:27;4368:39;;4493:6;4481:9;:18;4477:86;;;4508:55;;;;;;;;18015:25:91;;;18056:18;;;18049:34;;;17988:18;;4508:55:10;17841:248:91;4477:86:10;4727:5;4715:9;:17;;;;;:::i;:::-;;4695:38;;4092:658;;3871:879;;;;;;:::o;5236:882::-;5420:17;;;5484:18;5490:12;5484:2;:18;:::i;:::-;5468:34;-1:-1:-1;5512:14:10;5529:34;5468;5529;;;;:::i;:::-;5512:51;;5610:7;5598:19;;5861:6;5851:7;:16;5847:84;;;5876:55;;;;;;;;18015:25:91;;;18056:18;;;18049:34;;;17988:18;;5876:55:10;17841:248:91;5847:84:10;6095:5;6083:9;:17;6063:38;;5458:660;;5236:882;;;;;;:::o;1271:160:68:-;1380:43;;;1395:14;18286:55:91;;1380:43:68;;;18268:74:91;18358:18;;;;18351:34;;;1380:43:68;;;;;;;;;;18241:18:91;;;;1380:43:68;;;;;;;;;;;;;;1353:71;;1373:5;;1353:19;:71::i;10842:208:0:-;10935:6;10958:19;10973:3;10958:14;:19::i;:::-;:26;10953:62;;10993:22;;;;;;;;;;;;;;10953:62;-1:-1:-1;11032:11:0;10842:208;-1:-1:-1;10842:208:0:o;2825:431:1:-;2961:40;;;22243:42:91;22231:55;;2961:40:1;;;22213:74:91;22306:18;22360:15;;;22340:18;;;22333:43;22412:15;;22392:18;;;;22385:43;;;;2961:40:1;;;;;;;;;;22186:18:91;;;2961:40:1;;;-1:-1:-1;;3034:42:1;;3051:16;;2961:40;;3034:42;;;:::i;:::-;;;;;;;;;;;;;;;3198:51;;;3034:42;-1:-1:-1;1384:42:1;;3198;;:51;;3034:42;;3198:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:327;;2825:431;;;:::o;7738:720:68:-;7818:18;7846:19;7984:4;7981:1;7974:4;7968:11;7961:4;7955;7951:15;7948:1;7941:5;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:68;8278:8;8234:16;;-1:-1:-1;8310:15:68;;:68;;8362:11;8377:1;8362:16;;8310:68;;;8328:26;;;;:31;8310:68;8306:146;;;8401:40;;;;;1968:42:91;1956:55;;8401:40:68;;;1938:74:91;1911:18;;8401:40:68;1792:226:91;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;205:180:91:-;264:6;317:2;305:9;296:7;292:23;288:32;285:52;;;333:1;330;323:12;285:52;-1:-1:-1;356:23:91;;205:180;-1:-1:-1;205:180:91:o;390:129::-;475:18;468:5;464:30;457:5;454:41;444:69;;509:1;506;499:12;524:154;610:42;603:5;599:54;592:5;589:65;579:93;;668:1;665;658:12;683:623;765:6;773;781;789;842:3;830:9;821:7;817:23;813:33;810:53;;;859:1;856;849:12;810:53;898:9;885:23;917:30;941:5;917:30;:::i;:::-;966:5;-1:-1:-1;1023:2:91;1008:18;;995:32;1069:1;1058:22;;;1046:35;;1036:63;;1095:1;1092;1085:12;1036:63;1118:7;-1:-1:-1;1177:2:91;1162:18;;1149:32;1190:33;1149:32;1190:33;:::i;:::-;683:623;;;;-1:-1:-1;1242:7:91;;1296:2;1281:18;1268:32;;-1:-1:-1;;683:623:91:o;2458:347::-;2509:8;2519:6;2573:3;2566:4;2558:6;2554:17;2550:27;2540:55;;2591:1;2588;2581:12;2540:55;-1:-1:-1;2614:20:91;;2657:18;2646:30;;2643:50;;;2689:1;2686;2679:12;2643:50;2726:4;2718:6;2714:17;2702:29;;2778:3;2771:4;2762:6;2754;2750:19;2746:30;2743:39;2740:59;;;2795:1;2792;2785:12;2740:59;2458:347;;;;;:::o;2810:409::-;2880:6;2888;2941:2;2929:9;2920:7;2916:23;2912:32;2909:52;;;2957:1;2954;2947:12;2909:52;2997:9;2984:23;3030:18;3022:6;3019:30;3016:50;;;3062:1;3059;3052:12;3016:50;3101:58;3151:7;3142:6;3131:9;3127:22;3101:58;:::i;:::-;3178:8;;3075:84;;-1:-1:-1;2810:409:91;-1:-1:-1;;;;2810:409:91:o;3526:247::-;3585:6;3638:2;3626:9;3617:7;3613:23;3609:32;3606:52;;;3654:1;3651;3644:12;3606:52;3693:9;3680:23;3712:31;3737:5;3712:31;:::i;4045:250::-;4130:1;4140:113;4154:6;4151:1;4148:13;4140:113;;;4230:11;;;4224:18;4211:11;;;4204:39;4176:2;4169:10;4140:113;;;-1:-1:-1;;4287:1:91;4269:16;;4262:27;4045:250::o;4300:329::-;4341:3;4379:5;4373:12;4406:6;4401:3;4394:19;4422:76;4491:6;4484:4;4479:3;4475:14;4468:4;4461:5;4457:16;4422:76;:::i;:::-;4543:2;4531:15;4548:66;4527:88;4518:98;;;;4618:4;4514:109;;4300:329;-1:-1:-1;;4300:329:91:o;4634:763::-;4734:10;4726:5;4720:12;4716:29;4711:3;4704:42;4795:4;4788:5;4784:16;4778:23;4771:4;4766:3;4762:14;4755:47;4851:4;4844:5;4840:16;4834:23;4827:4;4822:3;4818:14;4811:47;4907:4;4900:5;4896:16;4890:23;4883:4;4878:3;4874:14;4867:47;4686:3;4960:4;4953:5;4949:16;4943:23;4998:4;4991;4986:3;4982:14;4975:28;5024:46;5064:4;5059:3;5055:14;5041:12;5024:46;:::i;:::-;5012:58;;5118:4;5111:5;5107:16;5101:23;5166:3;5160:4;5156:14;5149:4;5144:3;5140:14;5133:38;5194;5227:4;5211:14;5194:38;:::i;:::-;5180:52;;;5280:4;5273:5;5269:16;5263:23;5330:3;5322:6;5318:16;5311:4;5306:3;5302:14;5295:40;5351;5384:6;5368:14;5351:40;:::i;5402:335::-;5613:2;5602:9;5595:21;5576:4;5633:55;5684:2;5673:9;5669:18;5661:6;5633:55;:::i;:::-;5625:63;;5724:6;5719:2;5708:9;5704:18;5697:34;5402:335;;;;;:::o;5742:386::-;5809:6;5817;5870:2;5858:9;5849:7;5845:23;5841:32;5838:52;;;5886:1;5883;5876:12;5838:52;5925:9;5912:23;5944:31;5969:5;5944:31;:::i;:::-;5994:5;-1:-1:-1;6051:2:91;6036:18;;6023:32;6064;6023;6064;:::i;:::-;6115:7;6105:17;;;5742:386;;;;;:::o;6773:1063::-;6890:6;6898;6906;6914;6922;6930;6938;6991:3;6979:9;6970:7;6966:23;6962:33;6959:53;;;7008:1;7005;6998:12;6959:53;7047:9;7034:23;7066:31;7091:5;7066:31;:::i;:::-;7116:5;-1:-1:-1;7168:2:91;7153:18;;7140:32;;-1:-1:-1;7223:2:91;7208:18;;7195:32;7246:18;7276:14;;;7273:34;;;7303:1;7300;7293:12;7273:34;7342:58;7392:7;7383:6;7372:9;7368:22;7342:58;:::i;:::-;7419:8;;-1:-1:-1;7316:84:91;-1:-1:-1;7506:2:91;7491:18;;7478:32;;-1:-1:-1;7519:33:91;7478:32;7519:33;:::i;:::-;7571:7;;-1:-1:-1;7631:3:91;7616:19;;7603:33;;7648:16;;;7645:36;;;7677:1;7674;7667:12;7645:36;;7716:60;7768:7;7757:8;7746:9;7742:24;7716:60;:::i;:::-;6773:1063;;;;-1:-1:-1;6773:1063:91;;-1:-1:-1;6773:1063:91;;;;7690:86;;-1:-1:-1;;;6773:1063:91:o;7841:315::-;7909:6;7917;7970:2;7958:9;7949:7;7945:23;7941:32;7938:52;;;7986:1;7983;7976:12;7938:52;8025:9;8012:23;8044:31;8069:5;8044:31;:::i;:::-;8094:5;8146:2;8131:18;;;;8118:32;;-1:-1:-1;;;7841:315:91:o;8161:437::-;8240:1;8236:12;;;;8283;;;8304:61;;8358:4;8350:6;8346:17;8336:27;;8304:61;8411:2;8403:6;8400:14;8380:18;8377:38;8374:218;;8448:77;8445:1;8438:88;8549:4;8546:1;8539:15;8577:4;8574:1;8567:15;8785:184;8837:77;8834:1;8827:88;8934:4;8931:1;8924:15;8958:4;8955:1;8948:15;8974:125;9039:9;;;9060:10;;;9057:36;;;9073:18;;:::i;9104:583::-;9403:3;9392:9;9385:22;9366:4;9424:56;9475:3;9464:9;9460:19;9452:6;9424:56;:::i;:::-;9416:64;;9522:6;9516:13;9511:2;9500:9;9496:18;9489:41;9584:2;9576:6;9572:15;9566:22;9561:2;9550:9;9546:18;9539:50;9637:42;9629:6;9625:55;9620:2;9609:9;9605:18;9598:83;9104:583;;;;;;:::o;9692:184::-;9744:77;9741:1;9734:88;9841:4;9838:1;9831:15;9865:4;9862:1;9855:15;9881:248;9948:2;9942:9;9990:4;9978:17;;10025:18;10010:34;;10046:22;;;10007:62;10004:88;;;10072:18;;:::i;:::-;10108:2;10101:22;9881:248;:::o;10134:478::-;10204:5;10252:4;10240:9;10235:3;10231:19;10227:30;10224:50;;;10270:1;10267;10260:12;10224:50;10303:4;10297:11;10347:4;10339:6;10335:17;10418:6;10406:10;10403:22;10382:18;10370:10;10367:34;10364:62;10361:88;;;10429:18;;:::i;:::-;10465:4;10458:24;10530:16;;10515:32;;10601:2;10586:18;;;10580:25;10563:15;;;10556:50;;;;-1:-1:-1;10500:6:91;10134:478;-1:-1:-1;10134:478:91:o;10617:719::-;10758:6;10766;10810:9;10801:7;10797:23;10840:3;10836:2;10832:12;10829:32;;;10857:1;10854;10847:12;10829:32;10881:4;10877:2;10873:13;10870:33;;;10899:1;10896;10889:12;10870:33;;10925:17;;:::i;:::-;10971:9;10965:16;10958:5;10951:31;11027:2;11016:9;11012:18;11006:25;11040:32;11064:7;11040:32;:::i;:::-;11099:2;11088:14;;11081:31;11144:70;11206:7;11201:2;11186:18;;11144:70;:::i;:::-;11139:2;11128:14;;11121:94;11132:5;-1:-1:-1;11258:72:91;11322:7;11315:4;11300:20;;11258:72;:::i;:::-;11248:82;;10617:719;;;;;:::o;11341:323::-;11417:6;11425;11478:2;11466:9;11457:7;11453:23;11449:32;11446:52;;;11494:1;11491;11484:12;11446:52;11530:9;11517:23;11507:33;;11590:2;11579:9;11575:18;11562:32;11603:31;11628:5;11603:31;:::i;11669:287::-;11798:3;11836:6;11830:13;11852:66;11911:6;11906:3;11899:4;11891:6;11887:17;11852:66;:::i;:::-;11934:16;;;;;11669:287;-1:-1:-1;;11669:287:91:o;12369:544::-;12470:6;12523:2;12511:9;12502:7;12498:23;12494:32;12491:52;;;12539:1;12536;12529:12;12491:52;12572:2;12566:9;12614:2;12606:6;12602:15;12683:6;12671:10;12668:22;12647:18;12635:10;12632:34;12629:62;12626:88;;;12694:18;;:::i;:::-;12730:2;12723:22;12767:16;;12819:13;;12812:21;12802:32;;12792:60;;12848:1;12845;12838:12;12792:60;12861:21;;12868:6;12369:544;-1:-1:-1;;;12369:544:91:o;13646:612::-;13744:6;13797:2;13785:9;13776:7;13772:23;13768:32;13765:52;;;13813:1;13810;13803:12;13765:52;13839:17;;:::i;:::-;13886:9;13880:16;13905:32;13929:7;13905:32;:::i;:::-;13946:22;;14013:2;13998:18;;13992:25;14026:32;13992:25;14026:32;:::i;:::-;14085:2;14074:14;;14067:31;14143:2;14128:18;;14122:25;14156:32;14122:25;14156:32;:::i;:::-;14215:2;14204:14;;14197:31;14208:5;13646:612;-1:-1:-1;;;13646:612:91:o;14595:217::-;14742:2;14731:9;14724:21;14705:4;14762:44;14802:2;14791:9;14787:18;14779:6;14762:44;:::i;14817:312::-;14896:6;14904;14957:2;14945:9;14936:7;14932:23;14928:32;14925:52;;;14973:1;14970;14963:12;14925:52;15002:9;14996:16;14986:26;;15055:2;15044:9;15040:18;15034:25;15068:31;15093:5;15068:31;:::i;15259:517::-;15360:2;15355:3;15352:11;15349:421;;;15396:5;15393:1;15386:16;15440:4;15437:1;15427:18;15510:2;15498:10;15494:19;15491:1;15487:27;15481:4;15477:38;15546:4;15534:10;15531:20;15528:47;;;-1:-1:-1;15569:4:91;15528:47;15624:2;15619:3;15615:12;15612:1;15608:20;15602:4;15598:31;15588:41;;15679:81;15697:2;15690:5;15687:13;15679:81;;;15756:1;15742:16;;15723:1;15712:13;15679:81;;;15683:3;;15259:517;;;:::o;16012:1460::-;16136:3;16130:10;16163:18;16155:6;16152:30;16149:56;;;16185:18;;:::i;:::-;16214:96;16303:6;16263:38;16295:4;16289:11;16263:38;:::i;:::-;16257:4;16214:96;:::i;:::-;16365:4;;16422:2;16411:14;;16439:1;16434:781;;;;17259:1;17276:6;17273:89;;;-1:-1:-1;17328:19:91;;;17322:26;17273:89;15918:66;15909:1;15905:11;;;15901:84;15897:89;15887:100;15993:1;15989:11;;;15884:117;17375:81;;16404:1062;;16434:781;15206:1;15199:14;;;15243:4;15230:18;;16482:66;16470:79;;;16646:236;16660:7;16657:1;16654:14;16646:236;;;16749:19;;;16743:26;16728:42;;16841:27;;;;16809:1;16797:14;;;;16676:19;;16646:236;;;16650:3;16910:6;16901:7;16898:19;16895:261;;;16971:19;;;16965:26;17072:66;17054:1;17050:14;;;17066:3;17046:24;17042:97;17038:102;17023:118;17008:134;;16895:261;;;17202:1;17193:6;17190:1;17186:14;17182:22;17176:4;17169:36;16404:1062;;;;;16012:1460;;:::o;17477:359::-;17680:6;17669:9;17662:25;17723:6;17718:2;17707:9;17703:18;17696:34;17766:2;17761;17750:9;17746:18;17739:30;17643:4;17786:44;17826:2;17815:9;17811:18;17803:6;17786:44;:::i;:::-;17778:52;17477:359;-1:-1:-1;;;;;17477:359:91:o;18396:236::-;18433:7;18510:1;18507;18496:16;18492:1;18489;18478:16;18474:39;18547:11;18544:1;18533:26;18522:37;;18590:11;18581:7;18578:24;18568:58;;18606:18;;:::i;:::-;18568:58;18396:236;;;;:::o;18637:331::-;18742:9;18753;18795:8;18783:10;18780:24;18777:44;;;18817:1;18814;18807:12;18777:44;18846:6;18836:8;18833:20;18830:40;;;18866:1;18863;18856:12;18830:40;-1:-1:-1;;18892:23:91;;;18937:25;;;;;-1:-1:-1;18637:331:91:o;18973:315::-;19093:19;;19132:2;19124:11;;19121:161;;;19204:66;19193:2;19189:12;;;19186:1;19182:20;19178:93;19167:105;18973:315;;;;:::o;19293:369::-;19451:66;19413:19;;19535:11;;;;19566:1;19558:10;;19555:101;;;19643:2;19637;19630:3;19627:1;19623:11;19620:1;19616:19;19612:28;19608:2;19604:37;19600:46;19591:55;;19555:101;;;19293:369;;;;:::o;19877:476::-;19966:1;20003:5;19966:1;20017:330;20038:7;20028:8;20025:21;20017:330;;;20157:4;20089:66;20085:77;20079:4;20076:87;20073:113;;;20166:18;;:::i;:::-;20216:7;20206:8;20202:22;20199:55;;;20236:16;;;;20199:55;20315:22;;;;20275:15;;;;20017:330;;;20021:3;19877:476;;;;;:::o;20358:866::-;20407:5;20437:8;20427:80;;-1:-1:-1;20478:1:91;20492:5;;20427:80;20526:4;20516:76;;-1:-1:-1;20563:1:91;20577:5;;20516:76;20608:4;20626:1;20621:59;;;;20694:1;20689:130;;;;20601:218;;20621:59;20651:1;20642:10;;20665:5;;;20689:130;20726:3;20716:8;20713:17;20710:43;;;20733:18;;:::i;:::-;-1:-1:-1;;20789:1:91;20775:16;;20804:5;;20601:218;;20903:2;20893:8;20890:16;20884:3;20878:4;20875:13;20871:36;20865:2;20855:8;20852:16;20847:2;20841:4;20838:12;20834:35;20831:77;20828:159;;;-1:-1:-1;20940:19:91;;;20972:5;;20828:159;21019:34;21044:8;21038:4;21019:34;:::i;:::-;21149:6;21081:66;21077:79;21068:7;21065:92;21062:118;;;21160:18;;:::i;:::-;21198:20;;20358:866;-1:-1:-1;;;20358:866:91:o;21229:140::-;21287:5;21316:47;21357:4;21347:8;21343:19;21337:4;21316:47;:::i;21374:168::-;21447:9;;;21478;;21495:15;;;21489:22;;21475:37;21465:71;;21516:18;;:::i;21547:184::-;21599:77;21596:1;21589:88;21696:4;21693:1;21686:15;21720:4;21717:1;21710:15;21736:274;21776:1;21802;21792:189;;21837:77;21834:1;21827:88;21938:4;21935:1;21928:15;21966:4;21963:1;21956:15;21792:189;-1:-1:-1;21995:9:91;;21736:274::o;22439:430::-;22636:66;22628:6;22624:79;22619:3;22612:92;22594:3;22733:6;22727:13;22749:74;22816:6;22812:1;22807:3;22803:11;22796:4;22788:6;22784:17;22749:74;:::i;:::-;22843:16;;;;22861:1;22839:24;;22439:430;-1:-1:-1;;;22439:430:91:o","linkReferences":{},"immutableReferences":{"53":[{"start":897,"length":32},{"start":3992,"length":32}],"55":[{"start":554,"length":32},{"start":2398,"length":32},{"start":4104,"length":32},{"start":4223,"length":32}],"57":[{"start":773,"length":32},{"start":6297,"length":32},{"start":6374,"length":32}],"59":[{"start":948,"length":32},{"start":6264,"length":32}],"61":[{"start":1225,"length":32},{"start":6231,"length":32},{"start":6537,"length":32}],"63":[{"start":1322,"length":32},{"start":5898,"length":32},{"start":6103,"length":32}],"65":[{"start":1482,"length":32},{"start":6009,"length":32},{"start":6138,"length":32}],"67":[{"start":1174,"length":32},{"start":5976,"length":32}],"69":[{"start":1533,"length":32},{"start":5943,"length":32},{"start":6181,"length":32}]}},"methodIdentifiers":{"ENDPOINT()":"6fad06f5","ERC20()":"cc4aa204","ERC20_ASSET_BRIDGE()":"f34ec5e0","ERC20_CORE_INDEX_ID()":"fa69dc7b","ERC20_DECIMAL_DIFF()":"a754403e","MAX_DECIMAL_DIFF()":"03a9437e","MIN_DECIMAL_DIFF()":"d3af0cc1","MIN_GAS()":"20d2c951","MIN_GAS_WITH_VALUE()":"c37bcb4c","NATIVE_ASSET_BRIDGE()":"574ad4a8","NATIVE_CORE_INDEX_ID()":"b20bffdc","NATIVE_DECIMAL_DIFF()":"71139d6c","OFT()":"1ed0993d","SPOT_SEND_HEADER()":"1f8164d9","VALID_COMPOSE_MSG_LEN()":"cebb5120","coreUserExists(address)":"9dbfb13f","decodeMessage(bytes)":"634d45b2","failedMessages(bytes32)":"a4e7f8bd","handleTransfersToHyperCore(address,uint256)":"f2f7141f","lzCompose(address,bytes32,bytes,address,bytes)":"d0a10260","quoteHyperCoreAmount(uint64,int8,address,uint256)":"1cd66690","refundToSrc(bytes32)":"19180904","spotBalance(address,uint64)":"a69610d1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oft\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_coreIndexId\",\"type\":\"uint64\"},{\"internalType\":\"int8\",\"name\":\"_assetDecimalDiff\",\"type\":\"int8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ComposeMsgLengthNot64Bytes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CoreUserNotActivated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"FailedMessageNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLeft\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"}],\"name\":\"InsufficientGas\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredValue\",\"type\":\"uint256\"}],\"name\":\"InsufficientMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"internalOFTAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receivedOFTAddress\",\"type\":\"address\"}],\"name\":\"InvalidComposeCaller\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int8\",\"name\":\"decimalDiff\",\"type\":\"int8\"},{\"internalType\":\"int8\",\"name\":\"minDecimalDiff\",\"type\":\"int8\"},{\"internalType\":\"int8\",\"name\":\"maxDecimalDiff\",\"type\":\"int8\"}],\"name\":\"InvalidDecimalDiff\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOFTAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"tokenId\",\"type\":\"uint64\"}],\"name\":\"SpotBalanceReadFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmt\",\"type\":\"uint256\"}],\"name\":\"TransferAmtExceedsAssetBridgeBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"CompleteRefund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"}],\"name\":\"FailedMessageDecode\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amountERC20\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amountHYPE\",\"type\":\"uint256\"}],\"name\":\"RefundHyperEVM\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"RefundSuccessful\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENDPOINT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_ASSET_BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_CORE_INDEX_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_DECIMAL_DIFF\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_DECIMAL_DIFF\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_DECIMAL_DIFF\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_WITH_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_ASSET_BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_CORE_INDEX_ID\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_DECIMAL_DIFF\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OFT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SPOT_SEND_HEADER\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALID_COMPOSE_MSG_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"coreUserExists\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"internalType\":\"struct CoreUserExists\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_composeMessage\",\"type\":\"bytes\"}],\"name\":\"decodeMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"minMsgValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"failedMessages\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"refundSendParam\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountLD\",\"type\":\"uint256\"}],\"name\":\"handleTransfersToHyperCore\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oft\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_coreIndexId\",\"type\":\"uint64\"},{\"internalType\":\"int8\",\"name\":\"_decimalDiff\",\"type\":\"int8\"},{\"internalType\":\"address\",\"name\":\"_bridgeAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountLD\",\"type\":\"uint256\"}],\"name\":\"quoteHyperCoreAmount\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"evm\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"core\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"coreBalanceAssetBridge\",\"type\":\"uint64\"}],\"internalType\":\"struct IHyperAssetAmount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"}],\"name\":\"refundToSrc\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"token\",\"type\":\"uint64\"}],\"name\":\"spotBalance\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"hold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"entryNtl\",\"type\":\"uint64\"}],\"internalType\":\"struct SpotBalance\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"LayerZero Labs (@shankars99)\",\"details\":\"This address needs to be \\\"activated\\\" on hypercore post deploymentThis contract does NOT refund dust to the receiver on HyperEVM because we do not expect any due to truncation of sharedDecimals. In the off-chance that you have dust you would have to implement dust refunds to the receiver in: `_transferERC20ToHyperCore` and `_transferNativeToHyperCore`Disclaimer: If your token's evm total supply exceeds your asset bridge's balance when scaled to EVM, it is possible that the  composer will not be able to send the tokens to the receiver address on hypercore due to bridge consumption.  Tokens would instead be returned to the sender address on HyperEVM.\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"MIN_GAS()\":{\"details\":\"Minimum gas to be supplied to the composer contract for execution to prevent Out of Gas.This is used when the compose message does NOT have msg.value to send user funds to the receiver on core.This is the minimum gas amt for the compose operations which means the contract should be called with some more gas.\",\"returns\":{\"_0\":\"The minimum gas amount\"}},\"MIN_GAS_WITH_VALUE()\":{\"details\":\"Minimum gas to be supplied to the composer contract for execution to prevent Out of Gas.This is used when the compose message has msg.value to send user funds to the receiver on core.This is the minimum gas amt for the compose operations which means the contract should be called with some more gas.\",\"returns\":{\"_0\":\"The minimum gas amount\"}},\"constructor\":{\"params\":{\"_assetDecimalDiff\":\"The decimal difference: ERC20.decimals() - HIP1.weiDecimals() (must be in [-2, 18])\",\"_coreIndexId\":\"The core index id of the HyperLiquid L1 contract\",\"_oft\":\"The OFT contract address associated with this composer\"}},\"decodeMessage(bytes)\":{\"params\":{\"_composeMessage\":\"The encoded compose message\"},\"returns\":{\"minMsgValue\":\"- The minimum message value required\",\"to\":\"- The receiver address\"}},\"handleTransfersToHyperCore(address,uint256)\":{\"details\":\"Transfers native and erc20 to HyperCore via asset bridge, then to receiver via CoreWriter. Returns dust to HyperEVM.If either fails then we complete refund the user on HyperEVMDefault behavior checks if the user is activated on HyperCore in ERC20 transfer, if not then revert this callIf the user requests for more funds than the asset bridge's balance we revert\"},\"lzCompose(address,bytes32,bytes,address,bytes)\":{\"details\":\"This composer is designed to handle refunds to source to an EOA address and NOT a contractIf the HyperCore receiver is a contract on hyperevm, it is expected that you can control token balance via CoreWriter\",\"params\":{\"_message\":\"The encoded message content, expected to contain a composeMsg that decodes to type: (address receiver, uint256 msgValue)\",\"_oft\":\"The address of the OFT contract.\"}},\"quoteHyperCoreAmount(uint64,int8,address,uint256)\":{\"params\":{\"_amountLD\":\"The number of tokens that the composer received (pre-dusted) that we are trying to send\",\"_bridgeAddress\":\"The asset bridge address of the token to transfer\",\"_coreIndexId\":\"The core index id of the token to transfer\",\"_decimalDiff\":\"The decimal difference of evmDecimals - coreDecimals\"},\"returns\":{\"_0\":\"IHyperAssetAmount - The amount of tokens to send to HyperCore (scaled on evm), dust (to be refunded), and the swap amount (of the tokens scaled on hypercore)\"}},\"refundToSrc(bytes32)\":{\"params\":{\"_guid\":\"The GUID of the failed message to refund\"}}},\"stateVariables\":{\"MIN_DECIMAL_DIFF\":{\"details\":\"decimal difference having range [-2,18] is defined by hyperliquid in their docs\"},\"VALID_COMPOSE_MSG_LEN\":{\"details\":\"applies to bytes, bytes32, uint256, uint64\"}},\"title\":\"Hyperliquid Composer\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientGas(uint256,uint256)\":[{\"notice\":\"----------------------------------- ERRORS -----------------------------------\"}]},\"events\":{\"RefundSuccessful(bytes32)\":{\"notice\":\"----------------------------------- EVENTS -----------------------------------\"}},\"kind\":\"user\",\"methods\":{\"decodeMessage(bytes)\":{\"notice\":\"Decodes the compose message to extract minMsgValue and receiver address\"},\"lzCompose(address,bytes32,bytes,address,bytes)\":{\"notice\":\"Handles LayerZero compose operations for hypercore transfers with refund to source and refund on hyperevm functionality\"},\"quoteHyperCoreAmount(uint64,int8,address,uint256)\":{\"notice\":\"External function to quote the conversion of evm tokens to hypercore tokens\"},\"refundToSrc(bytes32)\":{\"notice\":\"Refunds failed messages to the source chain\"}},\"notice\":\"This contract is a composer that allows transfers of ERC20 and HYPE tokens to a target address on hypercore.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/HyperLiquidComposer.sol\":\"HyperLiquidComposer\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/HyperLiquidComposer.sol\":{\"keccak256\":\"0xd4671407c8c12decb300821bc254bc2274d252e0496730c862477bbfb8b8ea48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8969e4547f373693fccc6722d1331a577eaf3021e523caa0329c56ba00b7ce0\",\"dweb:/ipfs/QmRQixxBDhoMpeHQ6keLc9NDm3h9Y31Npkup1jxLfHrSmC\"]},\"contracts/HyperLiquidCore.sol\":{\"keccak256\":\"0x8b3ef77a81d3e487306e7c5ee70d47899c45b30a08073d784290dfeefc329726\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0665c3ef5239fc7fe9dee759df07684470f5c187e64b0307ec4165153fe8d55f\",\"dweb:/ipfs/QmQbxKLjaDUondwX25EEyq5kXkB4YTxbP1ms8XJ7a6W1c9\"]},\"contracts/interfaces/ICoreWriter.sol\":{\"keccak256\":\"0x8faa15935746558808a46034a124ae465b941a68a5a723d2ba474400bb412eb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://417cfcca8b2324b7894f809a3347fe367afe8a12f32b271bb63d39e4d577f76c\",\"dweb:/ipfs/QmTQpC2KUJfk1Gdt5Y6tNLCdJSBpjGLcswoNGrcHVgEm7k\"]},\"contracts/interfaces/IHyperLiquidComposer.sol\":{\"keccak256\":\"0xecaf495037b2a136f90e58dacb4f94c50bd26a5d71e6630858fc61666cb44136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b00da60853ff1623294e8f998bcbd4534929217abb39c813983b48a699e91ee4\",\"dweb:/ipfs/QmS93bWUZ7r9REGYjxRkV792xr6gixo5QQxGWhNWgijKqj\"]},\"contracts/library/HyperLiquidComposerCodec.sol\":{\"keccak256\":\"0x07050a19c7f7cb13876323fd73889322629fe9a3f16208ba805924579cdf5433\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://240dcc2c14e1e1884ad9028d1692127baaebf3d6d6abf01ac38e65a7ee023772\",\"dweb:/ipfs/QmQZou5KnuRxrQghpFptnbExCmN1TBRer5V5xyrHmW9tGw\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf\",\"dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppComposer.sol\":{\"keccak256\":\"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d\",\"dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15\",\"dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"keccak256\":\"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e\",\"dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"uint64","name":"_coreIndexId","type":"uint64"},{"internalType":"int8","name":"_assetDecimalDiff","type":"int8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ComposeMsgLengthNot64Bytes"},{"inputs":[],"type":"error","name":"CoreUserNotActivated"},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32"}],"type":"error","name":"FailedMessageNotFound"},{"inputs":[{"internalType":"uint256","name":"gasLeft","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"}],"type":"error","name":"InsufficientGas"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint256","name":"requiredValue","type":"uint256"}],"type":"error","name":"InsufficientMsgValue"},{"inputs":[{"internalType":"address","name":"internalOFTAddress","type":"address"},{"internalType":"address","name":"receivedOFTAddress","type":"address"}],"type":"error","name":"InvalidComposeCaller"},{"inputs":[{"internalType":"int8","name":"decimalDiff","type":"int8"},{"internalType":"int8","name":"minDecimalDiff","type":"int8"},{"internalType":"int8","name":"maxDecimalDiff","type":"int8"}],"type":"error","name":"InvalidDecimalDiff"},{"inputs":[],"type":"error","name":"InvalidOFTAddress"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"NativeTransferFailed"},{"inputs":[],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"OnlySelf"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint64","name":"tokenId","type":"uint64"}],"type":"error","name":"SpotBalanceReadFailed"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"uint256","name":"maxAmt","type":"uint256"}],"type":"error","name":"TransferAmtExceedsAssetBridgeBalance"},{"inputs":[],"type":"event","name":"CompleteRefund","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"uint256","name":"msgValue","type":"uint256","indexed":false},{"internalType":"bytes","name":"composeMessage","type":"bytes","indexed":false}],"type":"event","name":"FailedMessageDecode","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amountERC20","type":"uint256","indexed":true},{"internalType":"uint256","name":"amountHYPE","type":"uint256","indexed":true}],"type":"event","name":"RefundHyperEVM","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true}],"type":"event","name":"RefundSuccessful","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ENDPOINT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20_ASSET_BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20_CORE_INDEX_ID","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20_DECIMAL_DIFF","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_DECIMAL_DIFF","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_DECIMAL_DIFF","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"MIN_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"MIN_GAS_WITH_VALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE_ASSET_BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE_CORE_INDEX_ID","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE_DECIMAL_DIFF","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OFT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SPOT_SEND_HEADER","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALID_COMPOSE_MSG_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"coreUserExists","outputs":[{"internalType":"struct CoreUserExists","name":"","type":"tuple","components":[{"internalType":"bool","name":"exists","type":"bool"}]}]},{"inputs":[{"internalType":"bytes","name":"_composeMessage","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeMessage","outputs":[{"internalType":"uint256","name":"minMsgValue","type":"uint256"},{"internalType":"address","name":"to","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"failedMessages","outputs":[{"internalType":"struct SendParam","name":"refundSendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]},{"internalType":"uint256","name":"msgValue","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amountLD","type":"uint256"}],"stateMutability":"payable","type":"function","name":"handleTransfersToHyperCore"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"uint64","name":"_coreIndexId","type":"uint64"},{"internalType":"int8","name":"_decimalDiff","type":"int8"},{"internalType":"address","name":"_bridgeAddress","type":"address"},{"internalType":"uint256","name":"_amountLD","type":"uint256"}],"stateMutability":"view","type":"function","name":"quoteHyperCoreAmount","outputs":[{"internalType":"struct IHyperAssetAmount","name":"","type":"tuple","components":[{"internalType":"uint256","name":"evm","type":"uint256"},{"internalType":"uint64","name":"core","type":"uint64"},{"internalType":"uint64","name":"coreBalanceAssetBridge","type":"uint64"}]}]},{"inputs":[{"internalType":"bytes32","name":"_guid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"refundToSrc"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint64","name":"token","type":"uint64"}],"stateMutability":"view","type":"function","name":"spotBalance","outputs":[{"internalType":"struct SpotBalance","name":"","type":"tuple","components":[{"internalType":"uint64","name":"total","type":"uint64"},{"internalType":"uint64","name":"hold","type":"uint64"},{"internalType":"uint64","name":"entryNtl","type":"uint64"}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"MIN_GAS()":{"details":"Minimum gas to be supplied to the composer contract for execution to prevent Out of Gas.This is used when the compose message does NOT have msg.value to send user funds to the receiver on core.This is the minimum gas amt for the compose operations which means the contract should be called with some more gas.","returns":{"_0":"The minimum gas amount"}},"MIN_GAS_WITH_VALUE()":{"details":"Minimum gas to be supplied to the composer contract for execution to prevent Out of Gas.This is used when the compose message has msg.value to send user funds to the receiver on core.This is the minimum gas amt for the compose operations which means the contract should be called with some more gas.","returns":{"_0":"The minimum gas amount"}},"constructor":{"params":{"_assetDecimalDiff":"The decimal difference: ERC20.decimals() - HIP1.weiDecimals() (must be in [-2, 18])","_coreIndexId":"The core index id of the HyperLiquid L1 contract","_oft":"The OFT contract address associated with this composer"}},"decodeMessage(bytes)":{"params":{"_composeMessage":"The encoded compose message"},"returns":{"minMsgValue":"- The minimum message value required","to":"- The receiver address"}},"handleTransfersToHyperCore(address,uint256)":{"details":"Transfers native and erc20 to HyperCore via asset bridge, then to receiver via CoreWriter. Returns dust to HyperEVM.If either fails then we complete refund the user on HyperEVMDefault behavior checks if the user is activated on HyperCore in ERC20 transfer, if not then revert this callIf the user requests for more funds than the asset bridge's balance we revert"},"lzCompose(address,bytes32,bytes,address,bytes)":{"details":"This composer is designed to handle refunds to source to an EOA address and NOT a contractIf the HyperCore receiver is a contract on hyperevm, it is expected that you can control token balance via CoreWriter","params":{"_message":"The encoded message content, expected to contain a composeMsg that decodes to type: (address receiver, uint256 msgValue)","_oft":"The address of the OFT contract."}},"quoteHyperCoreAmount(uint64,int8,address,uint256)":{"params":{"_amountLD":"The number of tokens that the composer received (pre-dusted) that we are trying to send","_bridgeAddress":"The asset bridge address of the token to transfer","_coreIndexId":"The core index id of the token to transfer","_decimalDiff":"The decimal difference of evmDecimals - coreDecimals"},"returns":{"_0":"IHyperAssetAmount - The amount of tokens to send to HyperCore (scaled on evm), dust (to be refunded), and the swap amount (of the tokens scaled on hypercore)"}},"refundToSrc(bytes32)":{"params":{"_guid":"The GUID of the failed message to refund"}}},"version":1},"userdoc":{"kind":"user","methods":{"decodeMessage(bytes)":{"notice":"Decodes the compose message to extract minMsgValue and receiver address"},"lzCompose(address,bytes32,bytes,address,bytes)":{"notice":"Handles LayerZero compose operations for hypercore transfers with refund to source and refund on hyperevm functionality"},"quoteHyperCoreAmount(uint64,int8,address,uint256)":{"notice":"External function to quote the conversion of evm tokens to hypercore tokens"},"refundToSrc(bytes32)":{"notice":"Refunds failed messages to the source chain"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/HyperLiquidComposer.sol":"HyperLiquidComposer"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/HyperLiquidComposer.sol":{"keccak256":"0xd4671407c8c12decb300821bc254bc2274d252e0496730c862477bbfb8b8ea48","urls":["bzz-raw://f8969e4547f373693fccc6722d1331a577eaf3021e523caa0329c56ba00b7ce0","dweb:/ipfs/QmRQixxBDhoMpeHQ6keLc9NDm3h9Y31Npkup1jxLfHrSmC"],"license":"MIT"},"contracts/HyperLiquidCore.sol":{"keccak256":"0x8b3ef77a81d3e487306e7c5ee70d47899c45b30a08073d784290dfeefc329726","urls":["bzz-raw://0665c3ef5239fc7fe9dee759df07684470f5c187e64b0307ec4165153fe8d55f","dweb:/ipfs/QmQbxKLjaDUondwX25EEyq5kXkB4YTxbP1ms8XJ7a6W1c9"],"license":"MIT"},"contracts/interfaces/ICoreWriter.sol":{"keccak256":"0x8faa15935746558808a46034a124ae465b941a68a5a723d2ba474400bb412eb3","urls":["bzz-raw://417cfcca8b2324b7894f809a3347fe367afe8a12f32b271bb63d39e4d577f76c","dweb:/ipfs/QmTQpC2KUJfk1Gdt5Y6tNLCdJSBpjGLcswoNGrcHVgEm7k"],"license":"MIT"},"contracts/interfaces/IHyperLiquidComposer.sol":{"keccak256":"0xecaf495037b2a136f90e58dacb4f94c50bd26a5d71e6630858fc61666cb44136","urls":["bzz-raw://b00da60853ff1623294e8f998bcbd4534929217abb39c813983b48a699e91ee4","dweb:/ipfs/QmS93bWUZ7r9REGYjxRkV792xr6gixo5QQxGWhNWgijKqj"],"license":"MIT"},"contracts/library/HyperLiquidComposerCodec.sol":{"keccak256":"0x07050a19c7f7cb13876323fd73889322629fe9a3f16208ba805924579cdf5433","urls":["bzz-raw://240dcc2c14e1e1884ad9028d1692127baaebf3d6d6abf01ac38e65a7ee023772","dweb:/ipfs/QmQZou5KnuRxrQghpFptnbExCmN1TBRer5V5xyrHmW9tGw"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49","urls":["bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf","dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppComposer.sol":{"keccak256":"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae","urls":["bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d","dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol":{"keccak256":"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0","urls":["bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15","dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol":{"keccak256":"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5","urls":["bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e","dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":0}