1 tx
1.1k calls
constructor
constructor(address erc20, address _mailbox)
functions
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
destinationGas
viewfunction destinationGas(uint32) view returns (uint256)
domains
viewfunction domains() view returns (uint32[])
hook
viewfunction hook() view returns (address)
interchainSecurityModule
viewfunction interchainSecurityModule() view returns (address)
localDomain
viewfunction localDomain() view returns (uint32)
mailbox
viewfunction mailbox() view returns (address)
owner
viewfunction owner() view returns (address)
PACKAGE_VERSION
viewfunction PACKAGE_VERSION() view returns (string)
quoteGasPayment
viewfunction quoteGasPayment(uint32 _destinationDomain) view returns (uint256)
routers
viewfunction routers(uint32 _domain) view returns (bytes32)
sdeUSD
viewfunction sdeUSD() view returns (address)
wrappedToken
viewfunction wrappedToken() view returns (address)
approveWrappedTokenToStake
nonpayablefunction approveWrappedTokenToStake(uint256 amount)
enrollRemoteRouter
nonpayablefunction enrollRemoteRouter(uint32 _domain, bytes32 _router)
enrollRemoteRouters
nonpayablefunction enrollRemoteRouters(uint32[] _domains, bytes32[] _addresses)
handle
payablefunction handle(uint32 _origin, bytes32 _sender, bytes _message) payable
initialize
nonpayablefunction initialize(address _hook, address _interchainSecurityModule, address _owner)
renounceOwnership
nonpayablefunction renounceOwnership()
setDestinationGas
nonpayablefunction setDestinationGas(tuple[] gasConfigs)
setDestinationGas
nonpayablefunction setDestinationGas(uint32 domain, uint256 gas)
setHook
nonpayablefunction setHook(address _hook)
setInterchainSecurityModule
nonpayablefunction setInterchainSecurityModule(address _module)
stakeWrappedToken
nonpayablefunction stakeWrappedToken(uint256 amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRemote
payablefunction transferRemote(uint32 _destination, bytes32 _recipient, uint256 _amountOrId, bytes _hookMetadata, address _hook) payable returns (bytes32 messageId)
transferRemote
payablefunction transferRemote(uint32 _destination, bytes32 _recipient, uint256 _amountOrId) payable returns (bytes32 messageId)
unenrollRemoteRouter
nonpayablefunction unenrollRemoteRouter(uint32 _domain)
unenrollRemoteRouters
nonpayablefunction unenrollRemoteRouters(uint32[] _domains)
unstakeWrappedToken
nonpayablefunction unstakeWrappedToken(uint256 amount)
events
GasSet
event GasSet(uint32 domain, uint256 gas)
HookSet
event HookSet(address _hook)
Initialized
event Initialized(uint8 version)
IsmSet
event IsmSet(address _ism)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReceivedTransferRemote
event ReceivedTransferRemote(uint32 indexed origin, bytes32 indexed recipient, uint256 amount)
SentTransferRemote
event SentTransferRemote(uint32 indexed destination, bytes32 indexed recipient, uint256 amount)
errors
No errors.
creation bytecode
0x6101006040523480156200001257600080fd5b50604051620032ad380380620032ad833981016040819052620000359162000233565b80808080806001600160a01b0381163b620000975760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f78000060448201526064015b60405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010891906200026b565b63ffffffff1660a0526200011c33620001c4565b50505050506200013282620001b560201b60201c565b6200018a5760405162461bcd60e51b815260206004820152602160248201527f4879704552433230436f6c6c61746572616c3a20696e76616c696420746f6b656044820152603760f91b60648201526084016200008e565b506001600160a01b031660c052735c5b196abe0d54485975d1ec29617d42d919832660e0526200029a565b6001600160a01b03163b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200022e57600080fd5b919050565b600080604083850312156200024757600080fd5b620002528362000216565b9150620002626020840162000216565b90509250929050565b6000602082840312156200027e57600080fd5b815163ffffffff811681146200029357600080fd5b9392505050565b60805160a05160c05160e051612f77620003366000396000818161050601528181610e9801528181610f5101528181611002015281816112920152818161196001528181611c2b01528181611cdd0152611da501526000818161047201528181610b4c015281816112c10152611903015260006103a801526000818161057a015281816109a801528181611a370152611f2c0152612f776000f3fe6080604052600436106101cd5760003560e01c806393c44847116100f7578063d3bf683c11610095578063efae508a11610064578063efae508a146105e9578063f2ed8c5314610609578063f2fde38b14610629578063f6ade7751461064957600080fd5b8063d3bf683c14610548578063d5438eae14610568578063de523cf31461059c578063e9198bf9146105c957600080fd5b8063b49c53a7116100d1578063b49c53a7146104b4578063c0c53b8b146104d4578063c17d4335146104f4578063d0ba959b1461052857600080fd5b806393c448471461040a578063996c6cc314610460578063b1bd64361461049457600080fd5b806370a082311161016f5780637f5a7c7b1161013e5780637f5a7c7b1461033157806381b4e8b4146103835780638d3638f4146103965780638da5cb5b146103df57600080fd5b806370a08231146102af578063715018a6146102cf57806371a15b38146102e4578063775313a11461030457600080fd5b8063440df4f4116101ab578063440df4f41461024757806349d462ef1461026957806351debffc1461028957806356d5d4751461029c57600080fd5b80630e72cc06146101d25780632ead72f6146101f45780633dfd387314610227575b600080fd5b3480156101de57600080fd5b506101f26101ed36600461280e565b610669565b005b34801561020057600080fd5b5061021461020f36600461283d565b6107b7565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506101f261024236600461280e565b6107d6565b34801561025357600080fd5b5061025c610917565b60405161021e9190612858565b34801561027557600080fd5b506101f26102843660046128a2565b610928565b61021461029736600461290e565b61093e565b6101f26102aa366004612985565b610990565b3480156102bb57600080fd5b506102146102ca36600461280e565b610b04565b3480156102db57600080fd5b506101f2610bbf565b3480156102f057600080fd5b506101f26102ff366004612a24565b610bd3565b34801561031057600080fd5b5061021461031f36600461283d565b60ca6020526000908152604090205481565b34801561033d57600080fd5b5060655461035e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b610214610391366004612a66565b610c2e565b3480156103a257600080fd5b506103ca7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161021e565b3480156103eb57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661035e565b34801561041657600080fd5b506104536040518060400160405280600581526020017f352e382e3200000000000000000000000000000000000000000000000000000081525081565b60405161021e9190612b07565b34801561046c57600080fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a057600080fd5b506101f26104af366004612b1a565b610c3c565b3480156104c057600080fd5b506101f26104cf3660046128a2565b610cb2565b3480156104e057600080fd5b506101f26104ef366004612b8f565b610cc4565b34801561050057600080fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053457600080fd5b506101f2610543366004612bd2565b610e5b565b34801561055457600080fd5b506101f2610563366004612bd2565b610f1a565b34801561057457600080fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a857600080fd5b5060665461035e9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105d557600080fd5b506101f26105e4366004612beb565b61106f565b3480156105f557600080fd5b506101f261060436600461283d565b61114e565b34801561061557600080fd5b5061021461062436600461283d565b611162565b34801561063557600080fd5b506101f261064436600461280e565b611199565b34801561065557600080fd5b506101f2610664366004612bd2565b61124d565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806106a3575073ffffffffffffffffffffffffffffffffffffffff8116155b610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61073c61132e565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527fc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799906020015b60405180910390a15050565b6000806107ce609763ffffffff808616906113af16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610810575073ffffffffffffffffffffffffffffffffffffffff8116155b61089c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161072b565b6108a461132e565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a906020016107ab565b606061092360976113c8565b905090565b61093061132e565b61093a8282611479565b5050565b60006109858787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506114c7915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161072b565b6000610a6085611540565b9050838114610af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161072b565b610afd858585856115a5565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb99190612c4b565b92915050565b610bc761132e565b610bd16000611631565b565b610bdb61132e565b8060005b81811015610c2857610c16848483818110610bfc57610bfc612c64565b9050602002016020810190610c11919061283d565b6116a8565b610c21600182612cc2565b9050610bdf565b50505050565b60006107ce848484346116fd565b610c4461132e565b60005b81811015610cad57610c9b838383818110610c6457610c64612c64565b610c7a926020604090920201908101915061283d565b848484818110610c8c57610c8c612c64565b90506040020160200135611479565b610ca6600182612cc2565b9050610c47565b505050565b610cba61132e565b61093a8282611736565b600054610100900460ff1615808015610ce45750600054600160ff909116105b80610cfe5750303b158015610cfe575060005460ff166001145b610d8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161072b565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610de857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610df384848461174c565b8015610c2857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610e6361132e565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190612c4b565b610f2261132e565b6040517fcdac52ed000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063cdac52ed906024016020604051808303816000875af1158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd39190612c4b565b506040517ff2888dbb0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f2888dbb90602401600060405180830381600087803b15801561105b57600080fd5b505af1158015610afd573d6000803e3d6000fd5b61107761132e565b8281146110e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161072b565b8260005b818110156111465761113486868381811061110157611101612c64565b9050602002016020810190611116919061283d565b85858481811061112857611128612c64565b90506020020135611736565b61113f600182612cc2565b90506110e4565b505050505050565b61115661132e565b61115f816116a8565b50565b604080516020810190915260008082526065549091610bb99184919073ffffffffffffffffffffffffffffffffffffffff16611806565b6111a161132e565b73ffffffffffffffffffffffffffffffffffffffff8116611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161072b565b61115f81611631565b61125561132e565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190612cd5565b60335473ffffffffffffffffffffffffffffffffffffffff163314610bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161072b565b6000806113bc848461181c565b915091505b9250929050565b606060006113d583611856565b9050805167ffffffffffffffff8111156113f1576113f1612cf7565b60405190808252806020026020018201604052801561141a578160200160208202803683370190505b50915060005b81518110156114725781818151811061143b5761143b612c64565b602002602001015183828151811061145557611455612c64565b63ffffffff90921660209283029190910190910152600101611420565b5050919050565b63ffffffff8216600081815260ca6020908152604091829020849055815192835282018390527fc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b91016107ab565b6000806114d3866118e7565b905060006114e28888846119f8565b90506114f18987838888611a27565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8960405161152c91815260200190565b60405180910390a350509695505050505050565b60008080611558609763ffffffff808716906113af16565b915091508115611569579392505050565b61157284611ada565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b9190612b07565b60006115b18383611b11565b905060006115bf8484611b30565b90503660006115ce8686611b40565b915091506115e66115de85611b50565b848484611bf9565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161161f91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6116bc609763ffffffff80841690611e0816565b6116c582611ada565b9061093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b9190612b07565b600061172d8585858561170f8a611e14565b60655473ffffffffffffffffffffffffffffffffffffffff166114c7565b95945050505050565b61093a609763ffffffff808516908490611e3616565b600054610100900460ff166117e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161072b565b6117eb611e41565b6117f4836107d6565b6117fd82610669565b610cad81611631565b60006107ce848461181687611e14565b85611ee0565b600081815260028301602052604081205481908061184b5761183e8585611fb4565b9250600091506113c19050565b6001925090506113c1565b6060600061186383611fc0565b90508067ffffffffffffffff81111561187e5761187e612cf7565b6040519080825280602002602001820160405280156118a7578160200160208202803683370190505b50915060005b81811015611472576118bf8482611fcb565b60001c8382815181106118d4576118d4612c64565b60209081029190910101526001016118ad565b606061192b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611fd7565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af11580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e29190612c4b565b5050604080516020810190915260008152919050565b6060838383604051602001611a0f93929190612d26565b60405160208183030381529060405290509392505050565b600080611a3387611540565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b8152600401611a97959493929190612d53565b60206040518083038185885af1158015611ab5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109859190612c4b565b6060611aeb8263ffffffff1661206c565b604051602001611afb9190612db3565b6040516020818303038152906040529050919050565b6000611b206020828486612df8565b611b2991612e22565b9392505050565b6000611b20604060208486612df8565b3660006113bc8360408187612df8565b600073ffffffffffffffffffffffffffffffffffffffff821115611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5479706543617374733a2062797465733332546f41646472657373206f76657260448201527f666c6f7700000000000000000000000000000000000000000000000000000000606482015260840161072b565b5090565b6040517fc6e6f592000000000000000000000000000000000000000000000000000000008152600481018490526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063c6e6f59290602401602060405180830381865afa158015611c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cab9190612c4b565b6040517f9343d9e1000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639343d9e1906024016020604051808303816000875af1158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5f9190612c4b565b506040517ff2888dbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2888dbb90602401600060405180830381600087803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b505050505050505050565b6000611b29838361212a565b63ffffffff8116600090815260ca6020526040902054606090610bb990612147565b610c28838383612165565b600054610100900460ff16611ed8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161072b565b610bd1612182565b600080611eec86611540565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611f6990899085908a908a908a90600401612d53565b602060405180830381865afa158015611f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faa9190612c4b565b9695505050505050565b6000611b298383612222565b6000610bb98261223a565b6000611b298383612244565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610c2890859061226e565b606060006120798361237d565b600101905060008167ffffffffffffffff81111561209957612099612cf7565b6040519080825280601f01601f1916602001820160405280156120c3576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846120cd57509392505050565b60008181526002830160205260408120819055611b29838361245f565b6060610bb9600083336040518060200160405280600081525061246b565b600082815260028401602052604081208290556107ce84846124a0565b600054610100900460ff16612219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161072b565b610bd133611631565b60008181526001830160205260408120541515611b29565b6000610bb9825490565b600082600001828154811061225b5761225b612c64565b9060005260206000200154905092915050565b60006122d0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166124ac9092919063ffffffff16565b90508051600014806122f15750808060200190518101906122f19190612cd5565b610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161072b565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123c6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106123f2576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061241057662386f26fc10000830492506010015b6305f5e1008310612428576305f5e100830492506008015b612710831061243c57612710830492506004015b6064831061244e576064830492506002015b600a8310610bb95760010192915050565b6000611b2983836124bb565b6060600185858585604051602001612487959493929190612e5e565b6040516020818303038152906040529050949350505050565b6000611b2983836125ae565b60606107ce84846000856125fd565b600081815260018301602052604081205480156125a45760006124df600183612ee3565b85549091506000906124f390600190612ee3565b905081811461255857600086600001828154811061251357612513612c64565b906000526020600020015490508087600001848154811061253657612536612c64565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061256957612569612ef6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610bb9565b6000915050610bb9565b60008181526001830160205260408120546125f557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610bb9565b506000610bb9565b60608247101561268f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161072b565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516126b89190612f25565b60006040518083038185875af1925050503d80600081146126f5576040519150601f19603f3d011682016040523d82523d6000602084013e6126fa565b606091505b5091509150610985878383876060831561279c5782516000036127955773ffffffffffffffffffffffffffffffffffffffff85163b612795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161072b565b50816107ce565b6107ce83838151156127b15781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b9190612b07565b803573ffffffffffffffffffffffffffffffffffffffff8116811461280957600080fd5b919050565b60006020828403121561282057600080fd5b611b29826127e5565b803563ffffffff8116811461280957600080fd5b60006020828403121561284f57600080fd5b611b2982612829565b6020808252825182820181905260009190848201906040850190845b8181101561289657835163ffffffff1683529284019291840191600101612874565b50909695505050505050565b600080604083850312156128b557600080fd5b6128be83612829565b946020939093013593505050565b60008083601f8401126128de57600080fd5b50813567ffffffffffffffff8111156128f657600080fd5b6020830191508360208285010111156113c157600080fd5b60008060008060008060a0878903121561292757600080fd5b61293087612829565b95506020870135945060408701359350606087013567ffffffffffffffff81111561295a57600080fd5b61296689828a016128cc565b90945092506129799050608088016127e5565b90509295509295509295565b6000806000806060858703121561299b57600080fd5b6129a485612829565b935060208501359250604085013567ffffffffffffffff8111156129c757600080fd5b6129d3878288016128cc565b95989497509550505050565b60008083601f8401126129f157600080fd5b50813567ffffffffffffffff811115612a0957600080fd5b6020830191508360208260051b85010111156113c157600080fd5b60008060208385031215612a3757600080fd5b823567ffffffffffffffff811115612a4e57600080fd5b612a5a858286016129df565b90969095509350505050565b600080600060608486031215612a7b57600080fd5b612a8484612829565b95602085013595506040909401359392505050565b60005b83811015612ab4578181015183820152602001612a9c565b50506000910152565b60008151808452612ad5816020860160208601612a99565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b296020830184612abd565b60008060208385031215612b2d57600080fd5b823567ffffffffffffffff80821115612b4557600080fd5b818501915085601f830112612b5957600080fd5b813581811115612b6857600080fd5b8660208260061b8501011115612b7d57600080fd5b60209290920196919550909350505050565b600080600060608486031215612ba457600080fd5b612bad846127e5565b9250612bbb602085016127e5565b9150612bc9604085016127e5565b90509250925092565b600060208284031215612be457600080fd5b5035919050565b60008060008060408587031215612c0157600080fd5b843567ffffffffffffffff80821115612c1957600080fd5b612c25888389016129df565b90965094506020870135915080821115612c3e57600080fd5b506129d3878288016129df565b600060208284031215612c5d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610bb957610bb9612c93565b600060208284031215612ce757600080fd5b81518015158114611b2957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b83815282602082015260008251612d44816040850160208701612a99565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612d7860a0830186612abd565b8281036060840152612d8a8186612abd565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612deb81601f850160208701612a99565b91909101601f0192915050565b60008085851115612e0857600080fd5b83861115612e1557600080fd5b5050820193919092039150565b80356020831015610bb9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612ed2816056850160208701612a99565b919091016056019695505050505050565b81810381811115610bb957610bb9612c93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612f37818460208701612a99565b919091019291505056fea26469706673582212205f4faef2bf22998a6dc70f587298a4235ca2de9ba76a25a0831e5127a0d1f1e564736f6c6343000816003300000000000000000000000015700b564ca08d9439c58ca5053166e8317aa138000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239