0 txs
0 calls
constructor
No constructor.
functions
chainId
viewfunction chainId() view returns (uint16)
DECIMAL_PRECISION
viewfunction DECIMAL_PRECISION() view returns (uint256)
defaultBridgeHandle
viewfunction defaultBridgeHandle() view returns (address)
estimateFee
viewfunction estimateFee(uint64 _nonce, uint16 _dstChainId, address _recipient, uint256 _dstAmount, bytes _adapterParams) view returns (uint256)
fee
viewfunction fee() view returns (uint256)
getBridgeHandle
viewfunction getBridgeHandle(uint16 _dstChainId) view returns (address)
getDstChains
viewfunction getDstChains(uint16 dstChainId) view returns (tuple)
getLiquidity
viewfunction getLiquidity() view returns (uint256 liquidity)
getRequiredAmount
viewfunction getRequiredAmount(uint16 _dstChainId, address token, uint256 _amount) view returns (uint256 srcAmount)
getTokenInfo
viewfunction getTokenInfo(address token) view returns (tuple)
NATIVE_TOKEN
viewfunction NATIVE_TOKEN() view returns (address)
nonce
viewfunction nonce(uint16) view returns (uint64)
owner
viewfunction owner() view returns (address)
priceOracle
viewfunction priceOracle() view returns (address)
refuelCost
viewfunction refuelCost(uint16 _dstChainId, address _token, address _recipient, uint256 _amount, bytes _adapterParams) view returns (uint256 dstAmount, uint256 bridgeFee, uint256 refuelFee)
addLiquidity
payablefunction addLiquidity() payable
claimFees
nonpayablefunction claimFees(address receiver)
initialize
nonpayablefunction initialize(uint16 _chainId)
receiveMessage
nonpayablefunction receiveMessage(uint16 _srcChainId, address _srcAddress, uint64 _nonce, bytes _payload)
refuelERC20
payablefunction refuelERC20(uint16 _dstChainId, address _token, uint256 _amount, address _recipient, bytes _adapterParams) payable returns (uint64 currentNonce)
refuelETH
payablefunction refuelETH(uint16 _dstChainId, uint256 _amount, address _recipient, bytes _adapterParams) payable returns (uint64 currentNonce)
renounceOwnership
nonpayablefunction renounceOwnership()
setBridgeHandle
nonpayablefunction setBridgeHandle(uint16 _dstChainId, address _bridgeHandle)
setDefaultBridgeHandle
nonpayablefunction setDefaultBridgeHandle(address _defaultBridgeHandle)
setDstChainInfo
nonpayablefunction setDstChainInfo(uint16 _dstChainId, bool enabled, uint256 _fee, uint256 _maxTransferLimit, address _bridgeHandle)
setDstChainStatus
nonpayablefunction setDstChainStatus(uint16 _dstChainId, bool enabled)
setFee
nonpayablefunction setFee(uint16 _dstChainId, uint256 _fee)
setMaxTransferLimit
nonpayablefunction setMaxTransferLimit(uint16 _dstChainId, uint256 _maxTransferLimit)
setPriceOracle
nonpayablefunction setPriceOracle(address _priceOracle)
setTokenInfo
nonpayablefunction setTokenInfo(address token, bool enabled, uint8 decimals)
setTokenStatus
nonpayablefunction setTokenStatus(address token, bool enabled)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 amount)
withdrawERC20
nonpayablefunction withdrawERC20(address token, uint256 amount)
events
AddLiquidity
event AddLiquidity(uint256 amount)
ClaimedFees
event ClaimedFees(address receiver, uint256 fee)
DstChainStatusChanged
event DstChainStatusChanged(uint16 indexed dstChainId, bool enabled)
GasRefuelReceive
event GasRefuelReceive(uint64 indexed nonce, uint16 srcChainId, address srcAddress, address recipient, uint256 amount)
GasRefuelSend
event GasRefuelSend(uint64 indexed nonce, uint16 dstChainId, address token, address sender, address recipient, uint256 dstAmount, uint256 srcAmount)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PriceOracleChanged
event PriceOracleChanged(address oldOracle, address newOracle)
SetBridgeHandle
event SetBridgeHandle(uint16 indexed dstChainId, address bridgeHandle)
SetDefaultBridgeHandle
event SetDefaultBridgeHandle(address defaultBridgeHandle)
SetDstChainInfo
event SetDstChainInfo(uint16 indexed dstChainId, bool enabled, uint256 fee, uint256 maxTransferLimit, address bridgeHandle)
SetFee
event SetFee(uint16 indexed dstChainId, uint256 fee)
SetMaxTransferLimit
event SetMaxTransferLimit(uint16 indexed dstChainId, uint256 maxTransferLimit)
SetTokenInfo
event SetTokenInfo(address indexed token, bool enabled, uint8 decimals)
TokenStatusChanged
event TokenStatusChanged(address indexed token, bool enabled)
Withdraw
event Withdraw(address receiver, uint256 amount)
WithdrawERC20
event WithdrawERC20(address receiver, address token, uint256 amount)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50612c61806100206000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063a1db9782116100a0578063d60411cb1161006f578063d60411cb1461071e578063ddca3f431461073e578063e8078d9414610754578063f2a63f291461075c578063f2fde38b1461077c57600080fd5b8063a1db9782146106a2578063a20baee6146106c2578063bbb7b440146106de578063c7f0da13146106fe57600080fd5b80639e9d8c49116100dc5780639e9d8c491461062f5780639eef9edb1461064f5780639f94a0881461066f578063a131af1f1461068f57600080fd5b80638da5cb5b146104ef578063925b071f1461050d578063984a6cd8146105e15780639a8a05921461060157600080fd5b806331f7d96411610190578063530e784f1161015f578063530e784f1461044c5780635ec5d92e1461046c578063715018a61461048c57806388b30168146104a1578063890c1d47146104b457600080fd5b806331f7d964146103c45780634b642e78146103ec5780634cd735481461040c57806350c9c7021461042c57600080fd5b80631f69565f116101cc5780631f69565f146102935780632630c12f1461031e5780632bf966b1146103565780632e1a7d4d146103a457600080fd5b806303c9e62e146102095780630910a5101461022b578063137509461461025357806315a0ea6a1461027357600080fd5b3661020457005b600080fd5b34801561021557600080fd5b50610229610224366004612312565b61079c565b005b34801561023757600080fd5b50610240610960565b6040519081526020015b60405180910390f35b34801561025f57600080fd5b5061022961026e3660046123fa565b610975565b34801561027f57600080fd5b5061022961028e36600461241e565b610aa1565b34801561029f57600080fd5b506102fe6102ae36600461241e565b6040805180820190915260008082526020820152506001600160a01b03166000908152609b602090815260409182902082518084019093525460ff80821615158452610100909104169082015290565b6040805182511515815260209283015160ff16928101929092520161024a565b34801561032a57600080fd5b50609d5461033e906001600160a01b031681565b6040516001600160a01b03909116815260200161024a565b34801561036257600080fd5b5061038c6103713660046123fa565b6099602052600090815260409020546001600160401b031681565b6040516001600160401b03909116815260200161024a565b3480156103b057600080fd5b506102296103bf36600461243b565b610b03565b3480156103d057600080fd5b5061033e73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156103f857600080fd5b5061022961040736600461241e565b610ba2565b34801561041857600080fd5b50610229610427366004612462565b610c58565b34801561043857600080fd5b5061022961044736600461249b565b610d42565b34801561045857600080fd5b5061022961046736600461241e565b610e1a565b34801561047857600080fd5b5061033e6104873660046123fa565b610eeb565b34801561049857600080fd5b50610229610f29565b61038c6104af366004612511565b610f3d565b3480156104c057600080fd5b506104d46104cf366004612583565b6111a6565b6040805193845260208401929092529082015260600161024a565b3480156104fb57600080fd5b506065546001600160a01b031661033e565b34801561051957600080fd5b506105a36105283660046123fa565b6040805160808101825260008082526020820181905291810182905260608101919091525061ffff166000908152609a60209081526040918290208251608081018452815460ff16151581526001820154928101929092526002810154928201929092526003909101546001600160a01b0316606082015290565b60405161024a919081511515815260208083015190820152604080830151908201526060918201516001600160a01b03169181019190915260800190565b3480156105ed57600080fd5b506102406105fc366004612607565b61120c565b34801561060d57600080fd5b5060975461061c9061ffff1681565b60405161ffff909116815260200161024a565b34801561063b57600080fd5b5061022961064a36600461263b565b61126c565b34801561065b57600080fd5b50609c5461033e906001600160a01b031681565b34801561067b57600080fd5b5061022961068a36600461268c565b6112ed565b61038c61069d3660046126eb565b6113e9565b3480156106ae57600080fd5b506102296106bd366004612751565b6115da565b3480156106ce57600080fd5b50610240670de0b6b3a764000081565b3480156106ea57600080fd5b506102296106f936600461277d565b6116f3565b34801561070a57600080fd5b5061022961071936600461277d565b611746565b34801561072a57600080fd5b5061022961073936600461279b565b611799565b34801561074a57600080fd5b5061024060985481565b610229611875565b34801561076857600080fd5b506102406107773660046127b9565b6118aa565b34801561078857600080fd5b5061022961079736600461241e565b611a66565b6107a584610eeb565b6001600160a01b0316336001600160a01b0316146108195760405162461bcd60e51b815260206004820152602660248201527f47617352656675656c3a20696e76616c69642062726964676548616e646c652060448201526531b0b63632b960d11b60648201526084015b60405180910390fd5b6000806000808480602001905181019061083391906127fa565b6097549397509195509350915061ffff8085169116146108955760405162461bcd60e51b815260206004820152601e60248201527f47617352656675656c3a696e76616c69642074617267657420636861696e00006044820152606401610810565b61089d610960565b8111156108ec5760405162461bcd60e51b815260206004820152601d60248201527f47617352656675656c3a204c69717569646974792073686f72746167650000006044820152606401610810565b6108f68282611adf565b6040805161ffff8a1681526001600160a01b0389811660208301528416818301526060810183905290516001600160401b038616917f29dcf1668c45064d36e81a33b3fc5c67bd8fe5cc34d1ecae14fc3e19451af5c3919081900360800190a25050505050505050565b6000609854476109709190612863565b905090565b600054610100900460ff16158080156109955750600054600160ff909116105b806109af5750303b1580156109af575060005460ff166001145b610a125760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610810565b6000805460ff191660011790558015610a35576000805461ff0019166101001790555b610a3d611bfd565b610a45611c2c565b6097805461ffff191661ffff84161790558015610a9d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610aa9611c5b565b609854604080516001600160a01b038416815260208101929092527f0bd19e112d63748ab3d987993abf5208a9a80e2a5615aebf45188a1d1cc59be5910160405180910390a1610afb81609854611adf565b506000609855565b610b0b611c5b565b610b13610960565b811115610b5b5760405162461bcd60e51b815260206004820152601660248201527547617352656675656c3a20696c6c697175696469747960501b6044820152606401610810565b610b653382611adf565b60408051338152602081018390527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436491015b60405180910390a150565b610baa611c5b565b6001600160a01b038116610c0a5760405162461bcd60e51b815260206004820152602160248201527f47617352656675656c3a2043616e6e6f74206265207a65726f206164647265736044820152607360f81b6064820152608401610810565b609c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f8c075085a40ca3260c04a60d80f18d064bd163721eb0461a4f784925506fee5c90602001610b97565b610c60611c5b565b6001600160a01b0382166000908152609b602052604090205481151560ff909116151503610ce25760405162461bcd60e51b815260206004820152602960248201527f47617352656675656c3a20746f6b656e20616c726561647920657869737465646044820152680bd91a5cd8589b195960ba1b6064820152608401610810565b6001600160a01b0382166000818152609b6020908152604091829020805460ff191685151590811790915591519182527f0de9c5667496fd561ff9dfa59efdc1c76f7dbf3844adae3d14a3a14d563321b191015b60405180910390a25050565b610d4a611c5b565b6001600160a01b038116610db75760405162461bcd60e51b815260206004820152602e60248201527f47617352656675656c3a2062726964676548616e646c652063616e6e6f74206260448201526d65207a65726f206164647265737360901b6064820152608401610810565b61ffff82166000818152609a602090815260409182902060030180546001600160a01b0319166001600160a01b03861690811790915591519182527f2a10e761aab71a2acfbec13654f51c243711ed9ff7c158107c6272855c2da7eb9101610d36565b610e22611c5b565b6001600160a01b038116610e825760405162461bcd60e51b815260206004820152602160248201527f47617352656675656c3a20496e76616c6964204f7261636c65206164647265736044820152607360f81b6064820152608401610810565b609d54604080516001600160a01b03928316815291831660208301527f40bddd72ea96b80dae14e3d13e8ce2c4ecd2500d88c6c0004d24a00deab28f9c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b61ffff81166000908152609a60205260408120600301546001600160a01b031680610f23575050609c546001600160a01b0316919050565b92915050565b610f31611c5b565b610f3b6000611cb5565b565b6000610f47611d07565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6000819052609b6020527fe24a90c55d891406f35a15bbe17d8690f8bedf2bbc0d7da9e4700e28aecfeb2d548790879060ff16610fdb5760405162461bcd60e51b815260206004820152601c60248201527f47617352656675656c3a20746f6b656e206e6f7420656e61626c6564000000006044820152606401610810565b61ffff82166000908152609a602052604090205460ff1661100e5760405162461bcd60e51b815260040161081090612876565b61ffff82166000908152609a60205260409020600201548111156110445760405162461bcd60e51b8152600401610810906128b9565b600080600061106b8c73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8c8e8d8d6111a6565b925092509250600083116110c15760405162461bcd60e51b815260206004820152601a60248201527f47617352656675656c3a206e6f2076616c6964204f7261636c650000000000006044820152606401610810565b6000816110ce8486612916565b6110d89190612916565b90508034101561112a5760405162461bcd60e51b815260206004820152601b60248201527f47617352656675656c3a20496e73756666696369656e742066656500000000006044820152606401610810565b60006111368234612863565b111561114f5761114f3361114a8334612863565b611adf565b5080609860008282546111629190612916565b9091555061118c90508c73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8d8d86888f8f611d60565b965050505050505061119d60018055565b95945050505050565b60008060006111b68989886118aa565b61ffff8a166000908152609960205260409020549093506111e4906001600160401b03168a8989898961120c565b61ffff8a166000908152609a6020526040902060010154909250905096509650969350505050565b60008061121b88888888611eca565b905061125e878286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f1892505050565b9150505b9695505050505050565b611274611c5b565b6001600160a01b0383166000818152609b6020908152604091829020805460ff8616610100810261ff001989151590811661ffff1990941693909317179092558351908152918201527f3f3a08ed449fcd799863802e97b5cd47d1f2e9036386f6b2080e1a7c46b202c8910160405180910390a2505050565b6112f5611c5b565b6001600160a01b03811661134b5760405162461bcd60e51b815260206004820152601f60248201527f47617352656675656c3a20696e76616c69642062726964676548616e646c65006044820152606401610810565b61ffff85166000818152609a6020908152604091829020805460ff191688151590811782556001820188905560028201879055600390910180546001600160a01b0319166001600160a01b038716908117909155835191825291810187905291820185905260608201527fd114c135bd87eca0381a1ed8ff571f83c5e2101c6bd6739e5c6e9596a96a4db99060800160405180910390a25050505050565b60006113f3611d07565b6001600160a01b0386166000908152609b602052604090205486908890879060ff166114615760405162461bcd60e51b815260206004820152601c60248201527f47617352656675656c3a20746f6b656e206e6f7420656e61626c6564000000006044820152606401610810565b61ffff82166000908152609a602052604090205460ff166114945760405162461bcd60e51b815260040161081090612876565b61ffff82166000908152609a60205260409020600201548111156114ca5760405162461bcd60e51b8152600401610810906128b9565b60008060006114dd8d8d8c8e8d8d6111a6565b925092509250600083116115335760405162461bcd60e51b815260206004820152601a60248201527f47617352656675656c3a206e6f2076616c6964204f7261636c650000000000006044820152606401610810565b61153d8183612916565b34101561158c5760405162461bcd60e51b815260206004820152601b60248201527f47617352656675656c3a20496e73756666696369656e742066656500000000006044820152606401610810565b6115a16001600160a01b038d16333086611f9b565b80609860008282546115b39190612916565b909155506115c990508d8d8d8d86888f8f611d60565b965050505050505061126260018055565b6115e2611c5b565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a9190612929565b8111156116995760405162461bcd60e51b815260206004820152601c60248201527f47617352656675656c3a20455243323020696c6c6971756964697479000000006044820152606401610810565b6116ad6001600160a01b038316338361200c565b604080513381526001600160a01b03841660208201529081018290527f33c35f9541201e342d5e7467016e65a0a06182eb12a5f17103f71cec95b6cb2990606001610a94565b6116fb611c5b565b61ffff82166000818152609a602052604090819020600201839055517feb288e4919f2a37f1ed344e5824297ed6c49972ac347fed2bca179e55731e32290610d369084815260200190565b61174e611c5b565b61ffff82166000818152609a602052604090819020600101839055517f47d9066e07019286c19790aa54f97c9830127e71edff41b453c7adeaa15d2fe890610d369084815260200190565b6117a1611c5b565b61ffff82166000908152609a602052604090205481151560ff9091161515036118225760405162461bcd60e51b815260206004820152602d60248201527f47617352656675656c3a2064737420636861696e20616c726561647920656e6160448201526c189b19590bd91a5cd8589b1959609a1b6064820152608401610810565b61ffff82166000818152609a6020908152604091829020805460ff191685151590811790915591519182527f04262c71a6c38381ba84415da2d1cd0f2ab6225f83c9f75eac143df74f79d2639101610d36565b6040513481527ff53d9d58a7ff16a2e1360446f1c4b5e81a427d3efd25615be081f4003662400a9060200160405180910390a1565b609d546000906001600160a01b03166119055760405162461bcd60e51b815260206004820152601f60248201527f47617352656675656c3a206e6f2076616c69642050726963654f7261636c65006044820152606401610810565b609d5460405163058497c760e51b815261ffff8616600482015260009184916001600160a01b039091169063b092f8e090602401602060405180830381865afa158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a9190612929565b6119849190612942565b9050611998670de0b6b3a764000082612959565b91506001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14611a5e576119c78461203c565b609d5460405163b3596f0760e01b81526001600160a01b038781166004830152670de0b6b3a764000092169063b3596f0790602401602060405180830381865afa158015611a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3d9190612929565b611a479085612942565b611a519190612959565b611a5b9190612959565b91505b509392505050565b611a6e611c5b565b6001600160a01b038116611ad35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610810565b611adc81611cb5565b50565b80471015611b2f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610810565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b7c576040519150601f19603f3d011682016040523d82523d6000602084013e611b81565b606091505b5050905080611bf85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610810565b505050565b600054610100900460ff16611c245760405162461bcd60e51b81526004016108109061297b565b610f3b612073565b600054610100900460ff16611c535760405162461bcd60e51b81526004016108109061297b565b610f3b61209a565b6065546001600160a01b03163314610f3b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610810565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600260015403611d595760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610810565b6002600155565b61ffff88166000908152609960205260408120546001600160401b031690611d878a610eeb565b90506000611d97838c8a8c611eca565b9050816001600160a01b031663f4a6c3e6888d84338a8a8e6040518863ffffffff1660e01b8152600401611dd096959493929190612a16565b6000604051808303818588803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b50505061ffff8d16600090815260996020526040812080546001600160401b031693509150611e2b83612a7e565b82546101009290920a6001600160401b038181021990931691831602179091556040805161ffff8f1681526001600160a01b038e811660208301523392820192909252908b166060820152608081018c905260a0810189905290851691507fad19be3de4cb975ebcdd861c27871bd00c239518fdfa5dae6b6e4c88cf09c4629060c00160405180910390a2505098975050505050505050565b60018055565b604080516001600160401b0395909516602086015261ffff93909316848401526001600160a01b039190911660608401526080808401919091528151808403909101815260a0909201905290565b6000611f2384610eeb565b6001600160a01b03166345e380a38585856040518463ffffffff1660e01b8152600401611f5293929190612aa4565b602060405180830381865afa158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f939190612929565b949350505050565b6040516001600160a01b03808516602483015283166044820152606481018290526120069085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526120ca565b50505050565b6040516001600160a01b038316602482015260448101829052611bf890849063a9059cbb60e01b90606401611fcf565b6001600160a01b0381166000908152609b602052604081205461206890610100900460ff166012612ad3565b610f2390600a612bd0565b600054610100900460ff16611ec45760405162461bcd60e51b81526004016108109061297b565b600054610100900460ff166120c15760405162461bcd60e51b81526004016108109061297b565b610f3b33611cb5565b600061211f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661219f9092919063ffffffff16565b90508051600014806121405750808060200190518101906121409190612bdf565b611bf85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610810565b6060611f93848460008585600080866001600160a01b031685876040516121c69190612bfc565b60006040518083038185875af1925050503d8060008114612203576040519150601f19603f3d011682016040523d82523d6000602084013e612208565b606091505b509150915061221987838387612224565b979650505050505050565b6060831561229357825160000361228c576001600160a01b0385163b61228c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610810565b5081611f93565b611f9383838151156122a85781518083602001fd5b8060405162461bcd60e51b81526004016108109190612c18565b61ffff81168114611adc57600080fd5b6001600160a01b0381168114611adc57600080fd5b6001600160401b0381168114611adc57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561232857600080fd5b8435612333816122c2565b93506020850135612343816122d2565b92506040850135612353816122e7565b915060608501356001600160401b038082111561236f57600080fd5b818701915087601f83011261238357600080fd5b813581811115612395576123956122fc565b604051601f8201601f19908116603f011681019083821181831017156123bd576123bd6122fc565b816040528281528a60208487010111156123d657600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60006020828403121561240c57600080fd5b8135612417816122c2565b9392505050565b60006020828403121561243057600080fd5b8135612417816122d2565b60006020828403121561244d57600080fd5b5035919050565b8015158114611adc57600080fd5b6000806040838503121561247557600080fd5b8235612480816122d2565b9150602083013561249081612454565b809150509250929050565b600080604083850312156124ae57600080fd5b82356124b9816122c2565b91506020830135612490816122d2565b60008083601f8401126124db57600080fd5b5081356001600160401b038111156124f257600080fd5b60208301915083602082850101111561250a57600080fd5b9250929050565b60008060008060006080868803121561252957600080fd5b8535612534816122c2565b945060208601359350604086013561254b816122d2565b925060608601356001600160401b0381111561256657600080fd5b612572888289016124c9565b969995985093965092949392505050565b60008060008060008060a0878903121561259c57600080fd5b86356125a7816122c2565b955060208701356125b7816122d2565b945060408701356125c7816122d2565b93506060870135925060808701356001600160401b038111156125e957600080fd5b6125f589828a016124c9565b979a9699509497509295939492505050565b60008060008060008060a0878903121561262057600080fd5b863561262b816122e7565b955060208701356125b7816122c2565b60008060006060848603121561265057600080fd5b833561265b816122d2565b9250602084013561266b81612454565b9150604084013560ff8116811461268157600080fd5b809150509250925092565b600080600080600060a086880312156126a457600080fd5b85356126af816122c2565b945060208601356126bf81612454565b9350604086013592506060860135915060808601356126dd816122d2565b809150509295509295909350565b60008060008060008060a0878903121561270457600080fd5b863561270f816122c2565b9550602087013561271f816122d2565b9450604087013593506060870135612736816122d2565b925060808701356001600160401b038111156125e957600080fd5b6000806040838503121561276457600080fd5b823561276f816122d2565b946020939093013593505050565b6000806040838503121561279057600080fd5b823561276f816122c2565b600080604083850312156127ae57600080fd5b8235612480816122c2565b6000806000606084860312156127ce57600080fd5b83356127d9816122c2565b925060208401356127e9816122d2565b929592945050506040919091013590565b6000806000806080858703121561281057600080fd5b845161281b816122e7565b602086015190945061282c816122c2565b604086015190935061283d816122d2565b6060959095015193969295505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610f2357610f2361284d565b60208082526023908201527f47617352656675656c3a2064737420636861696e204944206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252603b908201527f47617352656675656c3a20457863656564696e6720746865206d6178696d756d60408201527f206c696d6974206f6620612073696e676c65207472616e736665720000000000606082015260800190565b80820180821115610f2357610f2361284d565b60006020828403121561293b57600080fd5b5051919050565b8082028115828204841417610f2357610f2361284d565b60008261297657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156129e15781810151838201526020016129c9565b50506000910152565b60008151808452612a028160208601602086016129c6565b601f01601f19169290920160200192915050565b61ffff8716815260a060208201526000612a3360a08301886129ea565b6001600160a01b03871660408401528281036060840152848152848660208301376000602086830101526020601f19601f870116820101915050826080830152979650505050505050565b60006001600160401b03808316818103612a9a57612a9a61284d565b6001019392505050565b61ffff84168152606060208201526000612ac160608301856129ea565b828103604084015261126281856129ea565b60ff8281168282160390811115610f2357610f2361284d565b600181815b80851115612b27578160001904821115612b0d57612b0d61284d565b80851615612b1a57918102915b93841c9390800290612af1565b509250929050565b600082612b3e57506001610f23565b81612b4b57506000610f23565b8160018114612b615760028114612b6b57612b87565b6001915050610f23565b60ff841115612b7c57612b7c61284d565b50506001821b610f23565b5060208310610133831016604e8410600b8410161715612baa575081810a610f23565b612bb48383612aec565b8060001904821115612bc857612bc861284d565b029392505050565b600061241760ff841683612b2f565b600060208284031215612bf157600080fd5b815161241781612454565b60008251612c0e8184602087016129c6565b9190910192915050565b60208152600061241760208301846129ea56fea2646970667358221220d47d9c5385544bf07cbd15d5129025d39e9f9fd32c8689f0d1653c6e9baa3fd764736f6c63430008140033