2 txs
5 calls
constructor
constructor(address _delegate, string _identifier)
functions
allowInitializePath
viewfunction allowInitializePath(tuple origin) view returns (bool)
buildCmd
viewfunction buildCmd() view returns (bytes)
CALLDATA_SIZE
viewfunction CALLDATA_SIZE() view returns (uint32)
combineOptions
viewfunction combineOptions(uint32 _eid, uint16 _msgType, bytes _extraOptions) view returns (bytes)
data
viewfunction data() view returns (bytes)
endpoint
viewfunction endpoint() view returns (address)
enforcedOptions
viewfunction enforcedOptions(uint32 eid, uint16 msgType) view returns (bytes enforcedOption)
ETHEREUM_LZ_CHAIN_ID
viewfunction ETHEREUM_LZ_CHAIN_ID() view returns (uint32)
GAS_LIMIT
viewfunction GAS_LIMIT() view returns (uint32)
generateReadOptions
purefunction generateReadOptions() pure returns (bytes)
identifier
viewfunction identifier() view returns (string)
isComposeMsgSender
viewfunction isComposeMsgSender(tuple, bytes, address _sender) view returns (bool)
latestRate
viewfunction latestRate() view returns (uint256)
latestRateAnswer
viewfunction latestRateAnswer() view returns (uint256 rate, uint256 timestamp)
LZ_ENDPOINT
viewfunction LZ_ENDPOINT() view returns (address)
MAINNET_CONTRACT
viewfunction MAINNET_CONTRACT() view returns (address)
MSG_VALUE
viewfunction MSG_VALUE() view returns (uint32)
nextNonce
viewfunction nextNonce(uint32, bytes32) view returns (uint64 nonce)
oAppVersion
purefunction oAppVersion() pure returns (uint64 senderVersion, uint64 receiverVersion)
owner
viewfunction owner() view returns (address)
peers
viewfunction peers(uint32 eid) view returns (bytes32 peer)
quote
viewfunction quote() view returns (tuple fee)
READ_CHANNEL
viewfunction READ_CHANNEL() view returns (uint32)
timeSinceLastUpdate
viewfunction timeSinceLastUpdate() view returns (uint256)
lzReceive
payablefunction lzReceive(tuple _origin, bytes32 _guid, bytes _message, address _executor, bytes _extraData) payable
renounceOwnership
nonpayablefunction renounceOwnership()
requestAssetToShareRate
payablefunction requestAssetToShareRate() payable returns (tuple receipt)
requestAssetToShareRateV2
payablefunction requestAssetToShareRateV2() payable returns (tuple receipt)
setDelegate
nonpayablefunction setDelegate(address _delegate)
setEnforcedOptions
nonpayablefunction setEnforcedOptions(tuple[] _enforcedOptions)
setPeer
nonpayablefunction setPeer(uint32 _eid, bytes32 _peer)
setReadChannel
nonpayablefunction setReadChannel(uint32 _channelId, bool _active)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AssetRateReceived
event AssetRateReceived(bytes32 guid, uint256 rate)
AssetRateRequested
event AssetRateRequested(bytes32 guid)
EnforcedOptionSet
event EnforcedOptionSet((uint32 eid, uint16 msgType, bytes options)[] _enforcedOptions)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PeerSet
event PeerSet(uint32 eid, bytes32 peer)
errors
InvalidDelegate
error InvalidDelegate()
InvalidEndpointCall
error InvalidEndpointCall()
InvalidOptions
error InvalidOptions(bytes options)
InvalidOptionType
error InvalidOptionType(uint16 optionType)
LzTokenUnavailable
error LzTokenUnavailable()
NoPeer
error NoPeer(uint32 eid)
NotEnoughNative
error NotEnoughNative(uint256 msgValue)
OnlyEndpoint
error OnlyEndpoint(address addr)
OnlyPeer
error OnlyPeer(uint32 eid, bytes32 sender)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x602060c052601560e0527f4e6f7468696e67207265636569766564207965742e000000000000000000000061010052606060a09081526101206040526006906200004a908262000277565b503480156200005857600080fd5b5060405162002842380380620028428339810160408190526200007b9162000343565b731a44076050125825900e736c501f859c50fe728c8281818181806001600160a01b038116620000c557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000d08162000180565b506001600160a01b038083166080528116620000ff57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b1580156200014757600080fd5b505af11580156200015c573d6000803e3d6000fd5b50505050505050505050806005908162000177919062000277565b50505062000439565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001fb57607f821691505b6020821081036200021c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000272576000816000526020600020601f850160051c810160208610156200024d5750805b601f850160051c820191505b818110156200026e5782815560010162000259565b5050505b505050565b81516001600160401b03811115620002935762000293620001d0565b620002ab81620002a48454620001e6565b8462000222565b602080601f831160018114620002e35760008415620002ca5750858301515b600019600386901b1c1916600185901b1785556200026e565b600085815260208120601f198616915b828110156200031457888601518255948401946001909101908401620002f3565b5085821015620003335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156200035757600080fd5b82516001600160a01b03811681146200036f57600080fd5b602084810151919350906001600160401b03808211156200038f57600080fd5b818601915086601f830112620003a457600080fd5b815181811115620003b957620003b9620001d0565b604051601f8201601f19908116603f01168101908382118183101715620003e457620003e4620001d0565b816040528281528986848701011115620003fd57600080fd5b600093505b8284101562000421578484018601518185018701529285019262000402565b60008684830101528096505050505050509250929050565b6080516123c36200047f600039600081816103270152818161061901528181610cd601528181610fc4015281816111020152818161142601526114df01526123c36000f3fe6080604052600436106101ee5760003560e01c806382413eac1161010d578063a59c43b3116100a0578063ca5eb5e11161006f578063ca5eb5e11461056f578063cd4d1c641461058f578063f0a9e481146105b7578063f2fde38b146105d7578063ff7bd03d146105f757600080fd5b8063a59c43b3146104ed578063b98bd07014610502578063bb0b6a5314610522578063bc70b3541461054f57600080fd5b806398d4102f116100dc57806398d4102f1461046b578063999b93af1461048e5780639ef4ca08146104b0578063a1d4f779146104c557600080fd5b806382413eac146103f35780638da5cb5b1461042357806391a35164146104415780639406b3251461045657600080fd5b80635e280f111161018557806371fd93a71161015457806371fd93a71461038957806373d4a13a146103915780637998a1c4146103a65780637d25a05e146103bb57600080fd5b80635e280f1114610315578063641627e0146103495780636be08f901461035f578063715018a61461037457600080fd5b80633400288b116101c15780633400288b1461029b5780633859d937146102bb5780635535d461146102d3578063559197411461030057600080fd5b8063091d2788146101f357806313137d651461022457806317442b70146102395780632244ec6c1461025b575b600080fd5b3480156101ff57600080fd5b5061020a6203d09081565b60405163ffffffff90911681526020015b60405180910390f35b6102376102323660046118c5565b610617565b005b34801561024557600080fd5b506040805160018152600260208201520161021b565b34801561026757600080fd5b506102837369378e2142be773c86c78320eac929770d3d740e81565b6040516001600160a01b03909116815260200161021b565b3480156102a757600080fd5b506102376102b636600461197d565b6106d7565b3480156102c757600080fd5b5061020a63ffffffff81565b3480156102df57600080fd5b506102f36102ee3660046119b9565b6106ed565b60405161021b9190611a3c565b610308610792565b60405161021b9190611a4f565b34801561032157600080fd5b506102837f000000000000000000000000000000000000000000000000000000000000000081565b34801561035557600080fd5b5061020a61759581565b34801561036b57600080fd5b5061020a600081565b34801561038057600080fd5b50610237610815565b610308610829565b34801561039d57600080fd5b506102f3610907565b3480156103b257600080fd5b506102f3610914565b3480156103c757600080fd5b506103db6103d636600461197d565b610921565b6040516001600160401b03909116815260200161021b565b3480156103ff57600080fd5b5061041361040e366004611a91565b61092a565b604051901515815260200161021b565b34801561042f57600080fd5b506000546001600160a01b0316610283565b34801561044d57600080fd5b506102f361093f565b34801561046257600080fd5b5061020a602081565b34801561047757600080fd5b5061048061097f565b60405190815260200161021b565b34801561049a57600080fd5b506104a361098f565b60405161021b9190611af7565b3480156104bc57600080fd5b50600354610480565b3480156104d157600080fd5b506003546004546040805192835260208301919091520161021b565b3480156104f957600080fd5b506102f36109d3565b34801561050e57600080fd5b5061023761051d366004611b0e565b610aed565b34801561052e57600080fd5b5061048061053d366004611b82565b60016020526000908152604090205481565b34801561055b57600080fd5b506102f361056a366004611b9d565b610b07565b34801561057b57600080fd5b5061023761058a366004611bfd565b610caf565b34801561059b57600080fd5b50610283731a44076050125825900e736c501f859c50fe728c81565b3480156105c357600080fd5b506102376105d2366004611c1a565b610d35565b3480156105e357600080fd5b506102376105f2366004611bfd565b610d53565b34801561060357600080fd5b50610413610612366004611c56565b610d91565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610667576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906106819061067c908a611b82565b610dc7565b146106bf576106936020880188611b82565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161065e565b6106ce87878787878787610e03565b50505050505050565b6106df610f0f565b6106e98282610f3c565b5050565b60026020908152600092835260408084209091529082529020805461071190611c72565b80601f016020809104026020016040519081016040528092919081815260200182805461073d90611c72565b801561078a5780601f1061075f5761010080835404028352916020019161078a565b820191906000526020600020905b81548152906001019060200180831161076d57829003601f168201915b505050505081565b61079a611809565b60006107a46109d3565b905060006107b061093f565b90506107d863ffffffff83836040518060400160405280348152602001600081525033610f91565b80516040519081529093507f46e9bf37bf7ac5a4bc611eae6e9dfcb7e71fdd344468246c1203fc8fb32a42219060200160405180910390a1505090565b61081d610f0f565b610827600061109c565b565b610831611809565b600061083b6109d3565b9050600061084761093f565b9050600061085c63ffffffff848460006110ec565b80519091503410156108a35760405162461bcd60e51b815260206004820152601060248201526f496e73756666696369656e742066656560801b604482015260640161065e565b6108c963ffffffff84846040518060400160405280348152602001600081525033610f91565b80516040519081529094507f46e9bf37bf7ac5a4bc611eae6e9dfcb7e71fdd344468246c1203fc8fb32a42219060200160405180910390a150505090565b6006805461071190611c72565b6005805461071190611c72565b60005b92915050565b6001600160a01b03811630145b949350505050565b606061097a6203d0906020600061097260408051600360f01b602082015281516002818303018152602290910190915290565b9291906111cd565b905090565b60006004544261097a9190611cbc565b604080518082019091526000808252602082015260006109ad6109d3565b905060006109b961093f565b90506109cc63ffffffff838360006110ec565b9250505090565b60408051600180825281830190925260609160009190816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282526000199092019101816109ee579050506040805160e0810182526001815261759560208083019190915260008284018190526001600160401b0342166060840152600f60808401527369378e2142be773c86c78320eac929770d3d740e60a08401528351600481526024810190945290830180516001600160e01b0316634d27f8c960e01b17905260c0820192909252825192935091839190610ace57610ace611ce5565b60200260200101819052506000610ae660008361122c565b9392505050565b610af5610f0f565b6106e9610b028284611d53565b6112bc565b63ffffffff8416600090815260026020908152604080832061ffff87168452909152812080546060929190610b3b90611c72565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6790611c72565b8015610bb45780601f10610b8957610100808354040283529160200191610bb4565b820191906000526020600020905b815481529060010190602001808311610b9757829003601f168201915b505050505090508051600003610c045783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506109379350505050565b6000839003610c14579050610937565b60028310610c9257610c5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113ce92505050565b80610c698460028188611e78565b604051602001610c7b93929190611ea2565b604051602081830303815290604052915050610937565b8383604051639a6d49cd60e01b815260040161065e929190611eca565b610cb7610f0f565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610d1a57600080fd5b505af1158015610d2e573d6000803e3d6000fd5b5050505050565b610d3d610f0f565b6106e98282610d4d576000610f3c565b30610f3c565b610d5b610f0f565b6001600160a01b038116610d8557604051631e4fbdf760e01b81526000600482015260240161065e565b610d8e8161109c565b50565b6000602082018035906001908390610da99086611b82565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806109245760405163f6ff4fb760e01b815263ffffffff8416600482015260240161065e565b60208414610e4c5760405162461bcd60e51b8152602060048201526016602482015275092dcecc2d8d2c840dacae6e6c2ceca40d8cadccee8d60531b604482015260640161065e565b6000610e5a85870187611ef9565b90506004544211610ec35760405162461bcd60e51b815260206004820152602d60248201527f5570646174652074696d657374616d70206d757374206265206869676865722060448201526c7468616e2070726576696f757360981b606482015260840161065e565b60038190554260045560408051888152602081018390527fd1c4a6de1fff60cbb60091d26e9ef8b59d7aae4291a6aed7c95731bf590c1828910160405180910390a15050505050505050565b6000546001600160a01b031633146108275760405163118cdaa760e01b815233600482015260240161065e565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b610f99611809565b6000610fa884600001516113fa565b602085015190915015610fc257610fc28460200151611422565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016110128c610dc7565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161104e929190611f12565b60806040518083038185885af115801561106c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110919190611fd9565b979650505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161114f89610dc7565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611184929190611f12565b6040805180830381865afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c4919061202f565b95945050505050565b60608460036111dd826000611504565b61ffff1614611211576111f1816000611504565b604051633a51740d60e01b815261ffff909116600482015260240161065e565b600061121e868686611561565b90506110918760058361160c565b6060600060018461123d8551611677565b6040516001600160f01b031960f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156112b4576112aa8285838151811061129d5761129d611ce5565b60200260200101516116a6565b915060010161127e565b509392505050565b60005b8151811015611393576112ee8282815181106112dd576112dd611ce5565b6020026020010151604001516113ce565b81818151811061130057611300611ce5565b6020026020010151604001516002600084848151811061132257611322611ce5565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061135c5761135c611ce5565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161138a919061209c565b506001016112bf565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516113c3919061215b565b60405180910390a150565b600281015161ffff81166003146106e95781604051639a6d49cd60e01b815260040161065e9190611a3c565b600081341461141e576040516304fb820960e51b815234600482015260240161065e565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a691906121e6565b90506001600160a01b0381166114cf576040516329b99a9560e11b815260040160405180910390fd5b6106e96001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085611738565b6000611511826002612203565b835110156115585760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b604482015260640161065e565b50016002015190565b60606fffffffffffffffffffffffffffffffff8216156115c7576040516001600160801b0319608086811b821660208401526001600160e01b031960e087901b16603084015284901b166034820152604401604051602081830303815290604052610937565b6040516001600160801b0319608086901b1660208201526001600160e01b031960e085901b166030820152603401604051602081830303815290604052949350505050565b606083600361161c826000611504565b61ffff1614611630576111f1816000611504565b84600161163d8551611677565b611648906001612216565b868660405160200161165e959493929190612231565b6040516020818303038152906040529150509392505050565b600061ffff82111561141e576040516306dfcc6560e41b8152601060048201526024810183905260440161065e565b60606000836001846000015160016116ce8760c001515160236116c99190612203565b611677565b6020808901516040516116e697969594939201612298565b60408051601f19818403018152828252908501516060860151608087015160a088015160c08901519496506117209587959060200161230b565b60405160208183030381529060405291505092915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611792908590611798565b50505050565b600080602060008451602086016000885af1806117bb576040513d6000823e3d81fd5b50506000513d915081156117d35780600114156117e0565b6001600160a01b0384163b155b1561179257604051635274afe760e01b81526001600160a01b038516600482015260240161065e565b60405180606001604052806000801916815260200160006001600160401b0316815260200161184b604051806040016040528060008152602001600081525090565b905290565b60006060828403121561186257600080fd5b50919050565b60008083601f84011261187a57600080fd5b5081356001600160401b0381111561189157600080fd5b6020830191508360208285010111156118a957600080fd5b9250929050565b6001600160a01b0381168114610d8e57600080fd5b600080600080600080600060e0888a0312156118e057600080fd5b6118ea8989611850565b96506060880135955060808801356001600160401b038082111561190d57600080fd5b6119198b838c01611868565b909750955060a08a0135915061192e826118b0565b90935060c0890135908082111561194457600080fd5b506119518a828b01611868565b989b979a50959850939692959293505050565b803563ffffffff8116811461197857600080fd5b919050565b6000806040838503121561199057600080fd5b61199983611964565b946020939093013593505050565b803561ffff8116811461197857600080fd5b600080604083850312156119cc57600080fd5b6119d583611964565b91506119e3602084016119a7565b90509250929050565b60005b83811015611a075781810151838201526020016119ef565b50506000910152565b60008151808452611a288160208601602086016119ec565b601f01601f19169290920160200192915050565b602081526000610ae66020830184611a10565b6000608082019050825182526001600160401b0360208401511660208301526040830151611a8a604084018280518252602090810151910152565b5092915050565b60008060008060a08587031215611aa757600080fd5b611ab18686611850565b935060608501356001600160401b03811115611acc57600080fd5b611ad887828801611868565b9094509250506080850135611aec816118b0565b939692955090935050565b815181526020808301519082015260408101610924565b60008060208385031215611b2157600080fd5b82356001600160401b0380821115611b3857600080fd5b818501915085601f830112611b4c57600080fd5b813581811115611b5b57600080fd5b8660208260051b8501011115611b7057600080fd5b60209290920196919550909350505050565b600060208284031215611b9457600080fd5b610ae682611964565b60008060008060608587031215611bb357600080fd5b611bbc85611964565b9350611bca602086016119a7565b925060408501356001600160401b03811115611be557600080fd5b611bf187828801611868565b95989497509550505050565b600060208284031215611c0f57600080fd5b8135610ae6816118b0565b60008060408385031215611c2d57600080fd5b611c3683611964565b915060208301358015158114611c4b57600080fd5b809150509250929050565b600060608284031215611c6857600080fd5b610ae68383611850565b600181811c90821680611c8657607f821691505b60208210810361186257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561092457610924611ca6565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b604051606081016001600160401b0381118282101715611d1d57611d1d611ccf565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611d4b57611d4b611ccf565b604052919050565b60006001600160401b0380841115611d6d57611d6d611ccf565b8360051b6020611d7e818301611d23565b868152918501918181019036841115611d9657600080fd5b865b84811015611e6c57803586811115611db05760008081fd5b88016060368290031215611dc45760008081fd5b611dcc611cfb565b611dd582611964565b8152611de28683016119a7565b8682015260408083013589811115611dfa5760008081fd5b9290920191601f3681850112611e105760008081fd5b83358a811115611e2257611e22611ccf565b611e33818301601f19168a01611d23565b91508082523689828701011115611e4a5760008081fd5b808986018a840137600090820189015290820152845250918301918301611d98565b50979650505050505050565b60008085851115611e8857600080fd5b83861115611e9557600080fd5b5050820193919092039150565b60008451611eb48184602089016119ec565b8201838582376000930192835250909392505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215611f0b57600080fd5b5035919050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152611f4860e0840182611a10565b90506060850151603f198483030160a0850152611f658282611a10565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215611f9d57600080fd5b604051604081018181106001600160401b0382111715611fbf57611fbf611ccf565b604052825181526020928301519281019290925250919050565b600060808284031215611feb57600080fd5b611ff3611cfb565b8251815260208301516001600160401b038116811461201157600080fd5b60208201526120238460408501611f8b565b60408201529392505050565b60006040828403121561204157600080fd5b610ae68383611f8b565b601f821115612097576000816000526020600020601f850160051c810160208610156120745750805b601f850160051c820191505b8181101561209357828155600101612080565b5050505b505050565b81516001600160401b038111156120b5576120b5611ccf565b6120c9816120c38454611c72565b8461204b565b602080601f8311600181146120fe57600084156120e65750858301515b600019600386901b1c1916600185901b178555612093565b600085815260208120601f198616915b8281101561212d5788860151825594840194600190910190840161210e565b508582101561214b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156121d857888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526121c481860183611a10565b968901969450505090860190600101612184565b509098975050505050505050565b6000602082840312156121f857600080fd5b8151610ae6816118b0565b8082018082111561092457610924611ca6565b61ffff818116838216019080821115611a8a57611a8a611ca6565b60008651612243818460208b016119ec565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b16600382015283516122898160048401602088016119ec565b01600401979650505050505050565b600087516122aa818460208c016119ec565b60f89790971b6001600160f81b0319169190960190815260f094851b6001600160f01b0319908116600183015293851b841660038201529190931b909116600582015260e09190911b6001600160e01b0319166007820152600b0192915050565b6000875161231d818460208c016119ec565b87151560f81b90830190815260c087901b6001600160c01b031916600182015260f086901b6001600160f01b0319166009820152606085901b6bffffffffffffffffffffffff1916600b820152835161237d81601f8401602088016119ec565b01601f019897505050505050505056fea2646970667358221220ee14ae52420661cbeb948fb5d54816e46f0170010498ce80c86144caef551e0b64736f6c634300081600330000000000000000000000002f1567c4a651ed93db0fc6d9df1ea9196054f63e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000167342616f53796e7468526561642d617262697472756d00000000000000000000