0 txs
15.7k calls
constructor
constructor(address _lzEndpoint)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
endpoint
viewfunction endpoint() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isOriginalMintBurnPaused
viewfunction isOriginalMintBurnPaused() view returns (bool)
isTransferPaused
viewfunction isTransferPaused() view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
oAppVersion
viewfunction oAppVersion() view returns (uint64 senderVersion, uint64 receiverVersion)
owner
viewfunction owner() view returns (address)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
peers
viewfunction peers(uint32 _eid) view returns (bytes32)
quote
viewfunction quote(uint32 eid, bytes message, bytes options) view returns (uint256 nativeFee, uint256 lzTokenFee)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UNPAUSER_ROLE
viewfunction UNPAUSER_ROLE() view returns (bytes32)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(tuple init)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setCapFor
payablefunction setCapFor(uint32 eid, uint256 cap) payable
setDelegate
nonpayablefunction setDelegate(address _delegate)
setEnableFor
payablefunction setEnableFor(uint32 eid, bool flag) payable
setExchangeRateFor
payablefunction setExchangeRateFor(uint32 eid, uint256 rate) payable
setIsOriginalMintBurnPaused
nonpayablefunction setIsOriginalMintBurnPaused(bool isPaused)
setIsTransferPaused
nonpayablefunction setIsTransferPaused(bool isPaused)
setIsTransferPausedFor
payablefunction setIsTransferPausedFor(uint32 eid, bool isPaused) payable
setPeer
nonpayablefunction setPeer(uint32 _eid, bytes32 _peer)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BridgingConfigChanged
event BridgingConfigChanged(bytes4 indexed setterSelector, string setterSignature, bytes value)
FlagUpdated
event FlagUpdated(bytes4 indexed selector, bool indexed isPaused, string flagName)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PeerSet
event PeerSet(uint32 eid, bytes32 peer)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
InvalidDelegate
error InvalidDelegate()
InvalidEndpointCall
error InvalidEndpointCall()
InvalidInitialization
error InvalidInitialization()
InvalidOptionType
error InvalidOptionType(uint16 optionType)
LzTokenUnavailable
error LzTokenUnavailable()
NoPeer
error NoPeer(uint32 eid)
NotEnoughNative
error NotEnoughNative(uint256 msgValue)
NotInitializing
error NotInitializing()
OnlyPeer
error OnlyPeer(uint32 eid, bytes32 sender)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PauseParamsMustBeEqual
error PauseParamsMustBeEqual()
PauserRoleNotRequired
error PauserRoleNotRequired(address sender)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnexpectedInitializeParams
error UnexpectedInitializeParams()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620031c2380380620031c2833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b60805161310b620000b76000396000818161032001528181611400015281816117d401528181611b6b01528181611ecf0152611fc8015261310b6000f3fe6080604052600436106101cd5760003560e01c806391d14854116100f7578063ca5eb5e111610095578063f2fde38b11610064578063f2fde38b14610626578063fb1bb9de14610646578063fccbe2201461067a578063fe17b77a146106af57600080fd5b8063ca5eb5e11461057e578063d547741f1461059e578063e63ab1e9146105be578063ec87621c146105f257600080fd5b8063a217fddf116100d1578063a217fddf146104e4578063b6aa369a146104f9578063bb0b6a531461050c578063ca15c8731461055e57600080fd5b806391d1485414610439578063993c2e30146104ab578063a1a1ef43146104ca57600080fd5b806355e7aacf1161016f578063804effb91161013e578063804effb91461038f5780638da5cb5b146103af5780638f656d22146103f95780639010d07c1461041957600080fd5b806355e7aacf146102fb5780635e280f111461030e578063715018a6146103675780637e22f33a1461037c57600080fd5b8063248a9ca3116101ab578063248a9ca31461023e5780632f2ff15d1461029b5780633400288b146102bb57806336568abe146102db57600080fd5b806301ffc9a7146101d25780630f1ca5e01461020757806317442b701461021c575b600080fd5b3480156101de57600080fd5b506101f26101ed36600461278a565b6106cf565b60405190151581526020015b60405180910390f35b61021a6102153660046127e5565b61072b565b005b34801561022857600080fd5b50604080516001815260006020820152016101fe565b34801561024a57600080fd5b5061028d61025936600461280f565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016101fe565b3480156102a757600080fd5b5061021a6102b636600461284a565b6108b2565b3480156102c757600080fd5b5061021a6102d63660046127e5565b6108fc565b3480156102e757600080fd5b5061021a6102f636600461284a565b61097b565b61021a610309366004612888565b6109d9565b34801561031a57600080fd5b506103427f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fe565b34801561037357600080fd5b5061021a610b71565b61021a61038a3660046127e5565b610b85565b34801561039b57600080fd5b5061021a6103aa3660046128b4565b610cfa565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff16610342565b34801561040557600080fd5b5061021a61041436600461294f565b610e16565b34801561042557600080fd5b506103426104343660046129e7565b61119b565b34801561044557600080fd5b506101f261045436600461284a565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156104b757600080fd5b506000546101f290610100900460ff1681565b3480156104d657600080fd5b506000546101f29060ff1681565b3480156104f057600080fd5b5061028d600081565b61021a610507366004612888565b6111dc565b34801561051857600080fd5b5061028d610527366004612a09565b63ffffffff1660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b34801561056a57600080fd5b5061028d61057936600461280f565b611374565b34801561058a57600080fd5b5061021a610599366004612a24565b6113b3565b3480156105aa57600080fd5b5061021a6105b936600461284a565b61145f565b3480156105ca57600080fd5b5061028d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b3480156105fe57600080fd5b5061028d7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b34801561063257600080fd5b5061021a610641366004612a24565b6114a3565b34801561065257600080fd5b5061028d7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a81565b34801561068657600080fd5b5061069a610695366004612a8a565b61150c565b604080519283526020830191909152016101fe565b3480156106bb57600080fd5b5061021a6106ca3660046128b4565b611568565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f00000000000000000000000000000000000000000000000000000000148061072557506107258261167f565b92915050565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0861075581611716565b604080514260208201527fdb068e0e00000000000000000000000000000000000000000000000000000000818301526044808201859052825180830390910181526064820183527e0300000000000000000000000000000000000000000000000000000000000060848301528251606681840301815260869092019092526000906107e99062030d409083905b9190611720565b905061080d85838360405180604001604052803481526020016000815250336117a1565b506040805163ffffffff871660208201529081018590527f0f1ca5e000000000000000000000000000000000000000000000000000000000907fc5bf2b90b659c778f96d16b135018b304822d9e416e5c8fd03cc0c638f5270cc90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526108a391612be0565b60405180910390a25050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546108ec81611716565b6108f683836118b9565b50505050565b610904611910565b63ffffffff821660008181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052815190927f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b92908290030190a1505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ca576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d4828261199e565b505050565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08610a0381611716565b6000427f804effb908eb1d3916f6a7845e585559db7bc68b8cad09cdb4088e7e7de165bc84604051602001610a3c911515815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a79939291602001612c4d565b60405160208183030381529060405290506000610ad662030d4060006107e2604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9050610afa85838360405180604001604052803481526020016000815250336117a1565b506040805163ffffffff87166020820152851515818301528151808203830181526060909101918290527f55e7aacf00000000000000000000000000000000000000000000000000000000917fc5bf2b90b659c778f96d16b135018b304822d9e416e5c8fd03cc0c638f5270cc916108a391612c9c565b610b79611910565b610b8360006119ec565b565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08610baf81611716565b604080514260208201527f47786d3700000000000000000000000000000000000000000000000000000000818301526044808201859052825180830390910181526064820183527e030000000000000000000000000000000000000000000000000000000000006084830152825160668184030181526086909201909252600090610c409062030d409083906107e2565b9050610c6485838360405180604001604052803481526020016000815250336117a1565b506040805163ffffffff871660208201529081018590527f7e22f33a00000000000000000000000000000000000000000000000000000000907fc5bf2b90b659c778f96d16b135018b304822d9e416e5c8fd03cc0c638f5270cc90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526108a391612d09565b808015610d2f57610d2a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611716565b610d58565b610d587f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a611716565b600080548315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911681179091556040517f804effb900000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610e0a9060208082526013908201527f73657449735472616e7366657250617573656400000000000000000000000000604082015260600190565b60405180910390a35050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610e615750825b905060008267ffffffffffffffff166001148015610e7e5750303b155b905081158015610e8c575080155b15610ec3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610f245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b855173ffffffffffffffffffffffffffffffffffffffff161580610f605750602086015173ffffffffffffffffffffffffffffffffffffffff16155b80610f835750604086015173ffffffffffffffffffffffffffffffffffffffff16155b80610fa65750606086015173ffffffffffffffffffffffffffffffffffffffff16155b80610fc95750608086015173ffffffffffffffffffffffffffffffffffffffff16155b15611000576040517f6e03bddf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611008611a82565b6110158660200151611a8a565b6110407f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086000611a9b565b61106b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6000611a9b565b6110967f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a6000611a9b565b85516110a4906000906118b9565b506110d37f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0887608001516118b9565b506111027f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87604001516118b9565b506111317f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a87606001516118b9565b5083156111935784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60008281527fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e823717059320006020819052604082206111d49084611b3f565b949350505050565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0861120681611716565b6000427f7726bed3157cf7d7bc586f2ffbda74a7f9bdcf733862518654b2e3b4a850bdb18460405160200161123f911515815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261127c939291602001612c4d565b604051602081830303815290604052905060006112d962030d4060006107e2604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b90506112fd85838360405180604001604052803481526020016000815250336117a1565b506040805163ffffffff87166020820152851515818301528151808203830181526060909101918290527fb6aa369a00000000000000000000000000000000000000000000000000000000917fc5bf2b90b659c778f96d16b135018b304822d9e416e5c8fd03cc0c638f5270cc916108a391612d50565b60008181527fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e823717059320006020819052604082206113ac90611b4b565b9392505050565b6113bb611910565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561144457600080fd5b505af1158015611458573d6000803e3d6000fd5b5050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461149981611716565b6108f6838361199e565b6114ab611910565b73ffffffffffffffffffffffffffffffffffffffff8116611500576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b611509816119ec565b50565b6000806000611552878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611b55915050565b8051602090910151909890975095505050505050565b80801561159d576115987f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611716565b6115c6565b6115c67f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a611716565b6000805483151561010081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179091556040517ffe17b77a00000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610e0a906020808252601b908201527f73657449734f726967696e616c4d696e744275726e5061757365640000000000604082015260600190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061072557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610725565b6115098133611c43565b6060836003611730826000611cee565b61ffff161461177d57611744816000611cee565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff90911660048201526024016114f7565b60006117898585611d6e565b905061179786600183611e1f565b9695505050505050565b6117a9612742565b60006117b88460000151611e8a565b6020850151909150156117d2576117d28460200151611ecb565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161182f8c611fed565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161186b929190612d97565b60806040518083038185885af1158015611889573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ae9190612e8a565b979650505050505050565b60007fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000816118e78585612063565b905080156111d4576000858152602083905260409020611907908561218b565b50949350505050565b3361194f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016114f7565b60007fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000816119cc85856121ad565b905080156111d4576000858152602083905260409020611907908561228b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610b836122ad565b611a926122ad565b61150981612314565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006000611af68460009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b60006113ac838361231c565b6000610725825490565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611bc589611fed565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611bfa929190612d97565b6040805180830381865afa158015611c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3a9190612efc565b95945050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611cea576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016114f7565b5050565b6000611cfb826002612f47565b83511015611d65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e647300000000000000000000000060448201526064016114f7565b50016002015190565b60606fffffffffffffffffffffffffffffffff821615611dd757604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b166030820152016040516020818303038152906040526113ac565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b1660208201526030016040516020818303038152906040529392505050565b6060836003611e2f826000611cee565b61ffff1614611e4357611744816000611cee565b846001611e508551612346565b611e5b906001612f5a565b8686604051602001611e71959493929190612f75565b6040516020818303038152906040529150509392505050565b6000813414611ec7576040517f9f7041200000000000000000000000000000000000000000000000000000000081523460048201526024016114f7565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c919061300e565b905073ffffffffffffffffffffffffffffffffffffffff8116611fab576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cea73ffffffffffffffffffffffffffffffffffffffff8216337f00000000000000000000000000000000000000000000000000000000000000008561238e565b63ffffffff811660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f90060208190526040822054806113ac576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024016114f7565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1661217a5760008481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556121163390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610725565b6000915050610725565b5092915050565b60006113ac8373ffffffffffffffffffffffffffffffffffffffff8416612423565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff161561217a5760008481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610725565b60006113ac8373ffffffffffffffffffffffffffffffffffffffff8416612472565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610b83576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ab6122ad565b60008260000182815481106123335761233361302b565b9060005260206000200154905092915050565b600061ffff821115611ec7576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260106004820152602481018390526044016114f7565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526108f690859061255b565b600081815260018301602052604081205461246a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610725565b506000610725565b6000818152600183016020526040812054801561217a57600061249660018361305a565b85549091506000906124aa9060019061305a565b905080821461250f5760008660000182815481106124ca576124ca61302b565b90600052602060002001549050808760000184815481106124ed576124ed61302b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806125205761252061306d565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610725565b600061257d73ffffffffffffffffffffffffffffffffffffffff8416836125f1565b905080516000141580156125a25750808060200190518101906125a0919061309c565b155b156109d4576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016114f7565b60606113ac83836000846000808573ffffffffffffffffffffffffffffffffffffffff16848660405161262491906130b9565b60006040518083038185875af1925050503d8060008114612661576040519150601f19603f3d011682016040523d82523d6000602084013e612666565b606091505b50915091506117978683836060826126865761268182612700565b6113ac565b81511580156126aa575073ffffffffffffffffffffffffffffffffffffffff84163b155b156126f9576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016114f7565b50806113ac565b8051156127105780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612785604051806040016040528060008152602001600081525090565b905290565b60006020828403121561279c57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146113ac57600080fd5b803563ffffffff811681146127e057600080fd5b919050565b600080604083850312156127f857600080fd5b612801836127cc565b946020939093013593505050565b60006020828403121561282157600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461150957600080fd5b6000806040838503121561285d57600080fd5b82359150602083013561286f81612828565b809150509250929050565b801515811461150957600080fd5b6000806040838503121561289b57600080fd5b6128a4836127cc565b9150602083013561286f8161287a565b6000602082840312156128c657600080fd5b81356113ac8161287a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612947576129476128d1565b604052919050565b600060a0828403121561296157600080fd5b60405160a0810181811067ffffffffffffffff82111715612984576129846128d1565b604052823561299281612828565b815260208301356129a281612828565b602082015260408301356129b581612828565b604082015260608301356129c881612828565b606082015260808301356129db81612828565b60808201529392505050565b600080604083850312156129fa57600080fd5b50508035926020909101359150565b600060208284031215612a1b57600080fd5b6113ac826127cc565b600060208284031215612a3657600080fd5b81356113ac81612828565b60008083601f840112612a5357600080fd5b50813567ffffffffffffffff811115612a6b57600080fd5b602083019150836020828501011115612a8357600080fd5b9250929050565b60008060008060608587031215612aa057600080fd5b612aa9856127cc565b935060208086013567ffffffffffffffff80821115612ac757600080fd5b818801915088601f830112612adb57600080fd5b813581811115612aed57612aed6128d1565b612b1d847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612900565b8181528a85838601011115612b3157600080fd5b818585018683013760009181019094015291945060408701359180831115612b5857600080fd5b5050612b6687828801612a41565b95989497509550505050565b60005b83811015612b8d578181015183820152602001612b75565b50506000910152565b60008151808452612bae816020860160208601612b72565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60408152602260408201527f73657445786368616e676552617465466f722875696e7433322c75696e74323560608201527f3629000000000000000000000000000000000000000000000000000000000000608082015260a0602082015260006113ac60a0830184612b96565b8381527fffffffff000000000000000000000000000000000000000000000000000000008316602082015260008251612c8d816024850160208701612b72565b91909101602401949350505050565b60408152602360408201527f73657449735472616e73666572506175736564466f722875696e7433322c626f60608201527f6f6c290000000000000000000000000000000000000000000000000000000000608082015260a0602082015260006113ac60a0830184612b96565b60408152601960408201527f736574436170466f722875696e7433322c75696e74323536290000000000000060608201526080602082015260006113ac6080830184612b96565b60408152601960408201527f736574456e61626c65466f722875696e7433322c626f6f6c290000000000000060608201526080602082015260006113ac6080830184612b96565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152612dcd60e0840182612b96565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152612e088282612b96565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b600060408284031215612e4d57600080fd5b6040516040810181811067ffffffffffffffff82111715612e7057612e706128d1565b604052825181526020928301519281019290925250919050565b600060808284031215612e9c57600080fd5b6040516060810167ffffffffffffffff8282108183111715612ec057612ec06128d1565b8160405284518352602085015191508082168214612edd57600080fd5b506020820152612ef08460408501612e3b565b60408201529392505050565b600060408284031215612f0e57600080fd5b6113ac8383612e3b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561072557610725612f18565b61ffff81811683821601908082111561218457612184612f18565b60008651612f87818460208b01612b72565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351612fff816004840160208801612b72565b01600401979650505050505050565b60006020828403121561302057600080fd5b81516113ac81612828565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8181038181111561072557610725612f18565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000602082840312156130ae57600080fd5b81516113ac8161287a565b600082516130cb818460208701612b72565b919091019291505056fea26469706673582212202b6af3fa85afc4a5db37438139916beeb4196b30850bb68c86669b9bd630af4a64736f6c634300081400330000000000000000000000001a44076050125825900e736c501f859c50fe728c