0 txs
0 calls
constructor
constructor(address _lockbox, uint256 _scale, 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)
lockbox
viewfunction lockbox() view returns (address)
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)
scale
viewfunction scale() view returns (uint256)
wrappedToken
viewfunction wrappedToken() view returns (address)
xERC20
viewfunction xERC20() view returns (address)
approveLockbox
nonpayablefunction approveLockbox()
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 _ism, 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)
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)
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
0x6101406040523480156200001257600080fd5b50604051620036643803806200366483398101604081905262000035916200055f565b826001600160a01b031663cc4aa2046040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000076573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009c9190620005a7565b8282818180808080806001600160a01b0381163b620001025760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f78000060448201526064015b60405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa1580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001739190620005ce565b63ffffffff1660a05262000187336200029c565b50505060c0939093525050506001600160a01b0383163b620001f65760405162461bcd60e51b815260206004820152602160248201527f4879704552433230436f6c6c61746572616c3a20696e76616c696420746f6b656044820152603760f91b6064820152608401620000f9565b50506001600160a01b0390811660e05283166101008190526040805163b20a0fb960e01b8152905163b20a0fb99160048082019260209290919082900301816000875af11580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002729190620005a7565b6001600160a01b03166101205262000289620002ee565b6200029362000489565b5050506200061a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60e0516101005160405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801562000346573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036c9190620005f6565b620003ba5760405162461bcd60e51b815260206004820152601c60248201527f6572633230206c6f636b626f7820617070726f7665206661696c6564000000006044820152606401620000f9565b610120516101005160405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801562000413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004399190620005f6565b620004875760405162461bcd60e51b815260206004820152601d60248201527f786572633230206c6f636b626f7820617070726f7665206661696c65640000006044820152606401620000f9565b565b600054610100900460ff1615620004f35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000f9565b60005460ff9081161462000487576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1565b6001600160a01b03811681146200055c57600080fd5b50565b6000806000606084860312156200057557600080fd5b8351620005828162000546565b6020850151604086015191945092506200059c8162000546565b809150509250925092565b600060208284031215620005ba57600080fd5b8151620005c78162000546565b9392505050565b600060208284031215620005e157600080fd5b815163ffffffff81168114620005c757600080fd5b6000602082840312156200060957600080fd5b81518015158114620005c757600080fd5b60805160a05160c05160e0516101005161012051612f91620006d36000396000818161023901528181610d0a01528181611a210152611d0801526000818161032f01528181610b5e01528181610cbc0152818161197d0152611dc30152600081816104ef01528181610bac01528181610e27015261201201526000818161066401528181611ab00152611cae01526000610425015260008181610583015281816109c501528181611ae50152611f4b0152612f916000f3fe6080604052600436106101cd5760003560e01c806381b4e8b4116100f7578063c0c53b8b11610095578063efae508a11610064578063efae508a146105f2578063f2ed8c5314610612578063f2fde38b14610632578063f51e181a1461065257600080fd5b8063c0c53b8b14610551578063d5438eae14610571578063de523cf3146105a5578063e9198bf9146105d257600080fd5b806393c44847116100d157806393c4484714610487578063996c6cc3146104dd578063b1bd643614610511578063b49c53a71461053157600080fd5b806381b4e8b4146104005780638d3638f4146104135780638da5cb5b1461045c57600080fd5b806356d5d4751161016f578063715018a61161013e578063715018a61461037157806371a15b3814610386578063775313a1146103a65780637f5a7c7b146103d357600080fd5b806356d5d475146102f557806358f58c5d1461030857806366cc57021461031d57806370a082311461035157600080fd5b80633dfd3873116101ab5780633dfd387314610280578063440df4f4146102a057806349d462ef146102c257806351debffc146102e257600080fd5b80630e72cc06146101d25780632ead72f6146101f4578063366a596e14610227575b600080fd5b3480156101de57600080fd5b506101f26101ed3660046127ef565b610686565b005b34801561020057600080fd5b5061021461020f36600461281e565b6107d4565b6040519081526020015b60405180910390f35b34801561023357600080fd5b5061025b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021e565b34801561028c57600080fd5b506101f261029b3660046127ef565b6107f3565b3480156102ac57600080fd5b506102b5610934565b60405161021e9190612839565b3480156102ce57600080fd5b506101f26102dd366004612883565b610945565b6102146102f03660046128ef565b61095b565b6101f2610303366004612966565b6109ad565b34801561031457600080fd5b506101f2610b21565b34801561032957600080fd5b5061025b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035d57600080fd5b5061021461036c3660046127ef565b610ddf565b34801561037d57600080fd5b506101f2610e9a565b34801561039257600080fd5b506101f26103a1366004612a05565b610eac565b3480156103b257600080fd5b506102146103c136600461281e565b60ca6020526000908152604090205481565b3480156103df57600080fd5b5060655461025b9073ffffffffffffffffffffffffffffffffffffffff1681565b61021461040e366004612a47565b610f07565b34801561041f57600080fd5b506104477f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161021e565b34801561046857600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661025b565b34801561049357600080fd5b506104d06040518060400160405280600581526020017f372e312e3500000000000000000000000000000000000000000000000000000081525081565b60405161021e9190612ae8565b3480156104e957600080fd5b5061025b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561051d57600080fd5b506101f261052c366004612afb565b610f15565b34801561053d57600080fd5b506101f261054c366004612883565b610f8b565b34801561055d57600080fd5b506101f261056c366004612b70565b610f9d565b34801561057d57600080fd5b5061025b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105b157600080fd5b5060665461025b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105de57600080fd5b506101f26105ed366004612bb3565b61113c565b3480156105fe57600080fd5b506101f261060d36600461281e565b61121b565b34801561061e57600080fd5b5061021461062d36600461281e565b61122f565b34801561063e57600080fd5b506101f261064d3660046127ef565b611290565b34801561065e57600080fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806106c0575073ffffffffffffffffffffffffffffffffffffffff8116155b610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610759611344565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527fc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799906020015b60405180910390a15050565b6000806107eb609763ffffffff808616906113c516565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061082d575073ffffffffffffffffffffffffffffffffffffffff8116155b6108b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e67000000000000000000000000000000000000000000000000006064820152608401610748565b6108c1611344565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a906020016107c8565b606061094060976113de565b905090565b61094d611344565b610957828261148f565b5050565b60006109a28787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506114dd915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f78000000000000000000000000000000000000000000000000000000000000006064820152608401610748565b6000610a7d85611564565b9050838114610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e6465720000000000000000000000000000000000000000000000000000006064820152608401610748565b610b1a858585856115c9565b5050505050565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c199190612c13565b610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6572633230206c6f636b626f7820617070726f7665206661696c6564000000006044820152606401610748565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d779190612c13565b610ddd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f786572633230206c6f636b626f7820617070726f7665206661696c65640000006044820152606401610748565b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e949190612c35565b92915050565b610ea2611344565b610ddd600061165d565b610eb4611344565b8060005b81811015610f0157610eef848483818110610ed557610ed5612c4e565b9050602002016020810190610eea919061281e565b6116d4565b610efa600182612cac565b9050610eb8565b50505050565b60006107eb84848434611729565b610f1d611344565b60005b81811015610f8657610f74838383818110610f3d57610f3d612c4e565b610f53926020604090920201908101915061281e565b848484818110610f6557610f65612c4e565b9050604002016020013561148f565b610f7f600182612cac565b9050610f20565b505050565b610f93611344565b6109578282611762565b600054610100900460ff1615808015610fbd5750600054600160ff909116105b80610fd75750303b158015610fd7575060005460ff166001145b611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610748565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156110c157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6110c9610b21565b6110d4848484611778565b8015610f0157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611144611344565b8281146111ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610748565b8260005b81811015611213576112018686838181106111ce576111ce612c4e565b90506020020160208101906111e3919061281e565b8585848181106111f5576111f5612c4e565b90506020020135611762565b61120c600182612cac565b90506111b1565b505050505050565b611223611344565b61122c816116d4565b50565b6000610e94826112726000801b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405180602001604052806000815250611832565b60655473ffffffffffffffffffffffffffffffffffffffff16611861565b611298611344565b73ffffffffffffffffffffffffffffffffffffffff811661133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610748565b61122c8161165d565b60335473ffffffffffffffffffffffffffffffffffffffff163314610ddd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610748565b6000806113d28484611877565b915091505b9250929050565b606060006113eb836118b1565b9050805167ffffffffffffffff81111561140757611407612cbf565b604051908082528060200260200182016040528015611430578160200160208202803683370190505b50915060005b81518110156114885781818151811061145157611451612c4e565b602002602001015183828151811061146b5761146b612c4e565b63ffffffff90921660209283029190910190910152600101611436565b5050919050565b63ffffffff8216600081815260ca6020908152604091829020849055815192835282018390527fc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b91016107c8565b6000806114e986611942565b905060006114f687611aa9565b90506000611505898385611832565b90506115148a88838989611ad5565b9350888a63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8460405161154f91815260200190565b60405180910390a35050509695505050505050565b6000808061157c609763ffffffff808716906113c516565b91509150811561158d579392505050565b61159684611b88565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107489190612ae8565b60006115d58383611bbf565b905060006115e38484611bde565b90503660006115f28686611bee565b9150915061161261160285611bfe565b61160b85611ca7565b8484611cd3565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161164b91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6116e8609763ffffffff80841690611e2716565b6116f182611b88565b90610957576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107489190612ae8565b60006117598585858561173b8a611e33565b60655473ffffffffffffffffffffffffffffffffffffffff166114dd565b95945050505050565b610957609763ffffffff808516908490611e5516565b600054610100900460ff1661180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b611817611e60565b611820836107f3565b61182982610686565b610f868161165d565b606083838360405160200161184993929190612cee565b60405160208183030381529060405290509392505050565b60006107eb848461187187611e33565b85611eff565b60008181526002830160205260408120548190806118a6576118998585611fd3565b9250600091506113d79050565b6001925090506113d7565b606060006118be83611fdf565b90508067ffffffffffffffff8111156118d9576118d9612cbf565b604051908082528060200260200182016040528015611902578160200160208202803683370190505b50915060005b818110156114885761191a8482611fea565b60001c83828151811061192f5761192f612c4e565b6020908102919091010152600101611908565b606061194d82611ff6565b506040517fb6b55f25000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b6b55f2590602401600060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b50506040517f9dc29fac000000000000000000000000000000000000000000000000000000008152306004820152602481018590527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250639dc29fac9150604401600060405180830381600087803b158015611a7c57600080fd5b505af1158015611a90573d6000803e3d6000fd5b5050604080516020810190915260008152949350505050565b6000610e947f000000000000000000000000000000000000000000000000000000000000000083612d1b565b600080611ae187611564565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b8152600401611b45959493929190612d32565b60206040518083038185885af1158015611b63573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109a29190612c35565b6060611b998263ffffffff1661204e565b604051602001611ba99190612d92565b6040516020818303038152906040529050919050565b6000611bce6020828486612dd7565b611bd791612e01565b9392505050565b6000611bce604060208486612dd7565b3660006113d28360408187612dd7565b600073ffffffffffffffffffffffffffffffffffffffff821115611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5479706543617374733a2062797465733332546f41646472657373206f76657260448201527f666c6f77000000000000000000000000000000000000000000000000000000006064820152608401610748565b5090565b6000610e947f000000000000000000000000000000000000000000000000000000000000000083612e3d565b6040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906340c10f1990604401600060405180830381600087803b158015611d6157600080fd5b505af1158015611d75573d6000803e3d6000fd5b50506040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018790527f000000000000000000000000000000000000000000000000000000000000000016925063205c28789150604401600060405180830381600087803b158015611e0957600080fd5b505af1158015611e1d573d6000803e3d6000fd5b5050505050505050565b6000611bd7838361210c565b63ffffffff8116600090815260ca6020526040902054606090610e9490612129565b610f01838383612147565b600054610100900460ff16611ef7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610ddd612164565b600080611f0b86611564565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611f8890899085908a908a908a90600401612d32565b602060405180830381865afa158015611fa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc99190612c35565b9695505050505050565b6000611bd78383612204565b6000610e948261221c565b6000611bd78383612226565b606061203a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085612250565b505060408051602081019091526000815290565b6060600061205b836122e5565b600101905060008167ffffffffffffffff81111561207b5761207b612cbf565b6040519080825280601f01601f1916602001820160405280156120a5576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846120af57509392505050565b60008181526002830160205260408120819055611bd783836123c7565b6060610e9460008333604051806020016040528060008152506123d3565b600082815260028401602052604081208290556107eb8484612408565b600054610100900460ff166121fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610ddd3361165d565b60008181526001830160205260408120541515611bd7565b6000610e94825490565b600082600001828154811061223d5761223d612c4e565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610f01908590612414565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061232e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061235a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061237857662386f26fc10000830492506010015b6305f5e1008310612390576305f5e100830492506008015b61271083106123a457612710830492506004015b606483106123b6576064830492506002015b600a8310610e945760010192915050565b6000611bd78383612523565b60606001858585856040516020016123ef959493929190612e78565b6040516020818303038152906040529050949350505050565b6000611bd78383612616565b6000612476826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166126659092919063ffffffff16565b90508051600014806124975750808060200190518101906124979190612c13565b610f86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610748565b6000818152600183016020526040812054801561260c576000612547600183612efd565b855490915060009061255b90600190612efd565b90508181146125c057600086600001828154811061257b5761257b612c4e565b906000526020600020015490508087600001848154811061259e5761259e612c4e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806125d1576125d1612f10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610e94565b6000915050610e94565b600081815260018301602052604081205461265d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e94565b506000610e94565b60606107eb8484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516126999190612f3f565b60006040518083038185875af1925050503d80600081146126d6576040519150601f19603f3d011682016040523d82523d6000602084013e6126db565b606091505b50915091506109a2878383876060831561277d5782516000036127765773ffffffffffffffffffffffffffffffffffffffff85163b612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610748565b50816107eb565b6107eb83838151156127925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107489190612ae8565b803573ffffffffffffffffffffffffffffffffffffffff811681146127ea57600080fd5b919050565b60006020828403121561280157600080fd5b611bd7826127c6565b803563ffffffff811681146127ea57600080fd5b60006020828403121561283057600080fd5b611bd78261280a565b6020808252825182820181905260009190848201906040850190845b8181101561287757835163ffffffff1683529284019291840191600101612855565b50909695505050505050565b6000806040838503121561289657600080fd5b61289f8361280a565b946020939093013593505050565b60008083601f8401126128bf57600080fd5b50813567ffffffffffffffff8111156128d757600080fd5b6020830191508360208285010111156113d757600080fd5b60008060008060008060a0878903121561290857600080fd5b6129118761280a565b95506020870135945060408701359350606087013567ffffffffffffffff81111561293b57600080fd5b61294789828a016128ad565b909450925061295a9050608088016127c6565b90509295509295509295565b6000806000806060858703121561297c57600080fd5b6129858561280a565b935060208501359250604085013567ffffffffffffffff8111156129a857600080fd5b6129b4878288016128ad565b95989497509550505050565b60008083601f8401126129d257600080fd5b50813567ffffffffffffffff8111156129ea57600080fd5b6020830191508360208260051b85010111156113d757600080fd5b60008060208385031215612a1857600080fd5b823567ffffffffffffffff811115612a2f57600080fd5b612a3b858286016129c0565b90969095509350505050565b600080600060608486031215612a5c57600080fd5b612a658461280a565b95602085013595506040909401359392505050565b60005b83811015612a95578181015183820152602001612a7d565b50506000910152565b60008151808452612ab6816020860160208601612a7a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bd76020830184612a9e565b60008060208385031215612b0e57600080fd5b823567ffffffffffffffff80821115612b2657600080fd5b818501915085601f830112612b3a57600080fd5b813581811115612b4957600080fd5b8660208260061b8501011115612b5e57600080fd5b60209290920196919550909350505050565b600080600060608486031215612b8557600080fd5b612b8e846127c6565b9250612b9c602085016127c6565b9150612baa604085016127c6565b90509250925092565b60008060008060408587031215612bc957600080fd5b843567ffffffffffffffff80821115612be157600080fd5b612bed888389016129c0565b90965094506020870135915080821115612c0657600080fd5b506129b4878288016129c0565b600060208284031215612c2557600080fd5b81518015158114611bd757600080fd5b600060208284031215612c4757600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610e9457610e94612c7d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b83815282602082015260008251612d0c816040850160208701612a7a565b91909101604001949350505050565b8082028115828204841417610e9457610e94612c7d565b63ffffffff8616815284602082015260a060408201526000612d5760a0830186612a9e565b8281036060840152612d698186612a9e565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612dca81601f850160208701612a7a565b91909101601f0192915050565b60008085851115612de757600080fd5b83861115612df457600080fd5b5050820193919092039150565b80356020831015610e94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b600082612e73577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612eec816056850160208701612a7a565b919091016056019695505050505050565b81810381811115610e9457610e94612c7d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612f51818460208701612a7a565b919091019291505056fea264697066735822122000b10386318b7510a345c58544ae07ffcf462d5290b44b6372c3fb75f77430fe64736f6c63430008160033000000000000000000000000c693943eacc1cb74b748cf1b953946970b2392790000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239