0 txs
229 calls
constructor
No constructor.
functions
allowInitializePath
viewfunction allowInitializePath(tuple _origin) view returns (bool)
getMessageSettings
viewfunction getMessageSettings(uint32 chainId) view returns (tuple)
getService
viewfunction getService() view returns (address)
LAYERZERO
viewfunction LAYERZERO() view returns (uint8)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
quoteLayerZero
viewfunction quoteLayerZero(uint32 _destination) view returns (uint256)
quoteStarGate
viewfunction quoteStarGate(uint32 _destination, uint256 _amount) view returns (uint256, uint256)
routers
viewfunction routers(uint8 bridgeIds) view returns (address routerAddress)
settingsMessages
viewfunction settingsMessages(uint32 destChainId) view returns (uint8 bridgeId, uint32 chainId, uint32 bridgeChainId, address toAddress, uint256 minFee, uint256 maxSlippage, bytes options, bool nativeTransfer)
settingsMessagesBridges
viewfunction settingsMessagesBridges(uint8 localBridgeId, uint32 destChainId) view returns (uint8 bridgeId, uint32 chainId, uint32 bridgeChainId, address toAddress, uint256 minFee, uint256 maxSlippage, bytes options, bool nativeTransfer)
settingsTokens
viewfunction settingsTokens(uint32 destChainId) view returns (uint8 bridgeId, uint32 chainId, uint32 bridgeChainId, address toAddress, uint256 minFee, uint256 maxSlippage, bytes options, bool nativeTransfer)
STARGATE_V2
viewfunction STARGATE_V2() view returns (uint8)
STARGATE
viewfunction STARGATE() view returns (uint8)
wETH
viewfunction wETH() view returns (address)
initialize
nonpayablefunction initialize(address _wETH, address _depositsManager, address _owner, address _service)
lzReceive
payablefunction lzReceive(tuple _origin, bytes32, bytes _message, address, bytes) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setRouters
nonpayablefunction setRouters(uint8[] _bridgeIds, address[] _routers, address _owner)
setService
nonpayablefunction setService(address _newService)
setSettingsMessages
nonpayablefunction setSettingsMessages(uint32 _destination, tuple _settings)
setSettingsTokens
nonpayablefunction setSettingsTokens(uint32 _destination, tuple _settings)
syncMessage
payablefunction syncMessage(uint32 _destination, bytes _data, address _refund) payable
syncTokens
payablefunction syncTokens(uint32 _destination, uint256 _amount, address _refund) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ServiceChanged
event ServiceChanged(address indexed oldService, address indexed newService)
SettingsMessages
event SettingsMessages(uint32 indexed chainId, uint8 bridgeId, address toAddress)
SettingsTokens
event SettingsTokens(uint32 indexed chainId, uint8 bridgeId, address toAddress)
StarGateSwap
event StarGateSwap(uint72 ticketId, uint256 amount)
SyncTokens
event SyncTokens(uint32 indexed chainId, uint8 bridgeId, uint256 amount, uint256 slippage)
Upgraded
event Upgraded(address indexed implementation)
errors
ApprovalFailed
error ApprovalFailed()
BridgeNotSupported
error BridgeNotSupported()
DepositFailed
error DepositFailed(address sender, uint256 amount)
InsufficientFee
error InsufficientFee()
InvalidAddress
error InvalidAddress()
InvalidChainId
error InvalidChainId()
InvalidContract
error InvalidContract()
InvalidOptionType
error InvalidOptionType(uint16 optionType)
InvalidParametersLength
error InvalidParametersLength()
OnlyEndpoint
error OnlyEndpoint(address caller)
OnlyPeer
error OnlyPeer(uint32 chainId, address caller)
SendMessageFailed
error SendMessageFailed()
SyncTokensFailed
error SyncTokensFailed()
Unauthorized
error Unauthorized()
UnauthorizedService
error UnauthorizedService(address caller)
creation bytecode
0x60a060405230608052348015601357600080fd5b5060805161401361005960003960008181610c5801528181610c9801528181610f8201528181610fc20152818161103e01528181611c7b0152611cbb01526140136000f3fe6080604052600436106101a05760003560e01c806373460ba7116100ec578063bf8bdac11161008a578063f2fde38b11610064578063f2fde38b146104a8578063f8c8765e146104c8578063fd0434e1146104e8578063ff7bd03d1461050857600080fd5b8063bf8bdac114610448578063ede151c814610468578063f24286211461048857600080fd5b80638da5cb5b116100c65780638da5cb5b146103ce578063b16a5200146103ec578063b4afe4dd146103ff578063bd9c7f511461041257600080fd5b806373460ba71461036c5780637774e008146103815780638a622492146103ae57600080fd5b80633659cfe61161015957806352d1902d1161013357806352d1902d146102f057806357ff0e64146103055780636cdafa5814610325578063715018a61461035757600080fd5b80633659cfe61461028f5780633bdda1d7146102af5780634f1ef286146102dd57600080fd5b806313137d65146101ac57806313466497146101c157806315b5cb9d146101fe5780631e7f0eec1461023357806331391f3214610253578063355ccfa81461027a57600080fd5b366101a757005b600080fd5b6101bf6101ba366004612f09565b610538565b005b3480156101cd57600080fd5b506101e16101dc366004612fbc565b6107b2565b6040516101f5989796959493929190613029565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004613090565b61089b565b604080519283526020830191909152016101f5565b34801561023f57600080fd5b506101bf61024e3660046130bc565b610b51565b34801561025f57600080fd5b50610268600381565b60405160ff90911681526020016101f5565b34801561028657600080fd5b50610268600181565b34801561029b57600080fd5b506101bf6102aa366004613113565b610c4e565b3480156102bb57600080fd5b506102cf6102ca366004612fbc565b610d16565b6040519081526020016101f5565b6101bf6102eb3660046131c5565b610f78565b3480156102fc57600080fd5b506102cf611031565b34801561031157600080fd5b506101e1610320366004612fbc565b6110e4565b34801561033157600080fd5b506065546001600160a01b03165b6040516001600160a01b0390911681526020016101f5565b34801561036357600080fd5b506101bf611141565b34801561037857600080fd5b50610268600281565b34801561038d57600080fd5b506103a161039c366004612fbc565b611155565b6040516101f59190613257565b3480156103ba57600080fd5b506101bf6103c9366004613335565b6112b5565b3480156103da57600080fd5b506033546001600160a01b031661033f565b6101bf6103fa3660046133bc565b61148f565b6101bf61040d366004613423565b611683565b34801561041e57600080fd5b5061033f61042d366004613474565b60cc602052600090815260409020546001600160a01b031681565b34801561045457600080fd5b506101bf610463366004613113565b61198d565b34801561047457600080fd5b506101bf6104833660046130bc565b611a18565b34801561049457600080fd5b5060ca5461033f906001600160a01b031681565b3480156104b457600080fd5b506101bf6104c3366004613113565b611b3b565b3480156104d457600080fd5b506101bf6104e3366004613491565b611bb1565b3480156104f457600080fd5b506101e16105033660046134e2565b611dc8565b34801561051457600080fd5b50610528610523366004613510565b611e30565b60405190151581526020016101f5565b6001600090815260ce60209081527f2c64b4c28102eb31817db0aae9385bd83769912689d15cb6b0f59dd7eff20613908290610576908b018b612fbc565b63ffffffff9081168252602080830193909352604091820160002082516101008082018552825460ff81168352908104841695820195909552600160281b850490921692820192909252600160481b9092046001600160a01b0316606083015260018101546080830152600281015460a083015260038101805460c0840191906105ff9061352c565b80601f016020809104026020016040519081016040528092919081815260200182805461062b9061352c565b80156106785780601f1061064d57610100808354040283529160200191610678565b820191906000526020600020905b81548152906001019060200180831161065b57829003601f168201915b50505091835250506004919091015460ff9081161515602092830152825116600090815260cc90915260409020549091506001600160a01b03163381146106d9576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b600060208a01359050806001600160a01b031683606001516001600160a01b03161461073d5761070c60208b018b612fbc565b6040516331a88feb60e01b815263ffffffff90911660048201526001600160a01b03821660248201526044016106d0565b60cb546020840151604051630254f5ad60e11b81526001600160a01b03909216916304a9eb5a91610774918c908c90600401613560565b600060405180830381600087803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b5050505050505050505050505050565b60cd60205260009081526040902080546001820154600283015460038401805460ff851695610100860463ffffffff90811696600160281b810490911695600160481b9091046001600160a01b0316949093909261080f9061352c565b80601f016020809104026020016040519081016040528092919081815260200182805461083b9061352c565b80156108885780601f1061085d57610100808354040283529160200191610888565b820191906000526020600020905b81548152906001019060200180831161086b57829003601f168201915b5050506004909301549192505060ff1688565b63ffffffff828116600090815260cf6020908152604080832081516101008082018452825460ff81168352908104871694820194909452600160281b840490951691850191909152600160481b9091046001600160a01b0316606084015260018101546080840152600281015460a0840152600381018054929384938493919260c08401916109299061352c565b80601f01602080910402602001604051908101604052809291908181526020018280546109559061352c565b80156109a25780601f10610977576101008083540402835291602001916109a2565b820191906000526020600020905b81548152906001019060200180831161098557829003601f168201915b50505091835250506004919091015460ff9081161515602092830152825116600090815260cc8252604080822054815160e0810183528286015161ffff1681526060808701516001600160a01b03908116838801528285018c90529082018b90528351858152808701855260808301528351858152808701855260a083015283516001808252818601909552969750909116949293909260c08401929091820181803683375050509052604051630d35b41560e01b81529091506000906001600160a01b03841690630d35b41590610a7e908590600401613612565b600060405180830381865afa158015610a9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ac39190810190613686565b925050506000836001600160a01b0316633b6f743b8460006040518363ffffffff1660e01b8152600401610af89291906137d9565b6040805180830381865afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3891906137fd565b51602090920151919650909450505050505b9250929050565b6065546001600160a01b03163314801590610b7757506033546001600160a01b03163314155b15610b975760405163dc0b34cd60e01b81523360048201526024016106d0565b8163ffffffff16600003610bbe57604051633d23e4d160e11b815260040160405180910390fd5b63ffffffff8216600090815260cf602052604090208190610bdf828261399a565b505063ffffffff82167f2c3b73013cc36991158e84e044e3ca19e04de247215679977f957bbb39c5389a610c166020840184613474565b610c266080850160608601613113565b6040805160ff90931683526001600160a01b0390911660208301520160405180910390a25050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c965760405162461bcd60e51b81526004016106d090613abf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610cc8611f7c565b6001600160a01b031614610cee5760405162461bcd60e51b81526004016106d090613b0b565b610cf781611f98565b60408051600080825260208201909252610d1391839190611fcb565b50565b63ffffffff818116600090815260cd6020908152604080832081516101008082018452825460ff81168352908104871694820194909452600160281b840490951691850191909152600160481b9091046001600160a01b0316606084015260018101546080840152600281015460a08401526003810180549293849390929160c0840191610da39061352c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcf9061352c565b8015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505091835250506004919091015460ff16151560209091015260608101519091506001600160a01b03166000610e7e62030d4082610e7760408051600360f01b602082015281516002818303018152602290910190915290565b919061213b565b6040805160016020820152670de0b6b3a7640000918101829052606081019190915290915060009060800160408051601f19818403018152828252865160ff16600090815260cc60209081528382205460a0860185528985015163ffffffff16865290850188905284840183905260608501879052608085018290529251631bb8518b60e31b81529194506001600160a01b0390921692839163ddc28c5891610f2b913090600401613b57565b6040805180830381865afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b91906137fd565b5198975050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fc05760405162461bcd60e51b81526004016106d090613abf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ff2611f7c565b6001600160a01b0316146110185760405162461bcd60e51b81526004016106d090613b0b565b61102182611f98565b61102d82826001611fcb565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110d15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106d0565b50600080516020613f9783398151915290565b60cf60205260009081526040902080546001820154600283015460038401805460ff851695610100860463ffffffff90811696600160281b810490911695600160481b9091046001600160a01b0316949093909261080f9061352c565b6111496121a3565b61115360006121fd565b565b604080516101008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082015260e081019190915263ffffffff828116600090815260cd602090815260409182902082516101008082018552825460ff81168352908104861693820193909352600160281b830490941692840192909252600160481b90046001600160a01b0316606083015260018101546080830152600281015460a083015260038101805460c08401919061121c9061352c565b80601f01602080910402602001604051908101604052809291908181526020018280546112489061352c565b80156112955780601f1061126a57610100808354040283529160200191611295565b820191906000526020600020905b81548152906001019060200180831161127857829003601f168201915b50505091835250506004919091015460ff16151560209091015292915050565b6065546001600160a01b031633148015906112db57506033546001600160a01b03163314155b156112fb5760405163dc0b34cd60e01b81523360048201526024016106d0565b83821461131b57604051630fe4a1df60e01b815260040160405180910390fd5b60005b8481101561148757600086868381811061133a5761133a613bd0565b905060200201602081019061134f9190613474565b9050600085858481811061136557611365613bd0565b905060200201602081019061137a9190613113565b90508160ff166000036113a0576040516388b238d760e01b815260040160405180910390fd5b6001600160a01b0381166113c75760405163e6c4247b60e01b815260040160405180910390fd5b60ff8216600081815260cc6020526040902080546001600160a01b0319166001600160a01b0384161790556000190161147d576001600160a01b0384166114215760405163e6c4247b60e01b815260040160405180910390fd5b60405163ca5eb5e160e01b81526001600160a01b03858116600483015282169063ca5eb5e190602401600060405180830381600087803b15801561146457600080fd5b505af1158015611478573d6000803e3d6000fd5b505050505b505060010161131e565b505050505050565b60cb546001600160a01b031633146114b9576040516282b42960e81b815260040160405180910390fd5b63ffffffff848116600090815260cd6020908152604080832081516101008082018452825460ff81168352908104871694820194909452600160281b840490951691850191909152600160481b9091046001600160a01b0316606084015260018101546080840152600281015460a084015260038101805492939260c0840191906115439061352c565b80601f016020809104026020016040519081016040528092919081815260200182805461156f9061352c565b80156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505091835250506004919091015460ff16151560209091015260808101519091503410156115fd5760405162976f7560e21b815260040160405180910390fd5b805160ff908116600090815260cc602052604090205482516001600160a01b0390911691161580611639575060608201516001600160a01b0316155b8061164b57506001600160a01b038116155b15611669576040516388b238d760e01b815260040160405180910390fd5b815160ff166000190161148757611487828287878761224f565b60cb546001600160a01b031633146116ad576040516282b42960e81b815260040160405180910390fd5b63ffffffff838116600090815260cf6020908152604080832081516101008082018452825460ff81168352908104871694820194909452600160281b840490951691850191909152600160481b9091046001600160a01b0316606084015260018101546080840152600281015460a084015260038101805492939260c0840191906117379061352c565b80601f01602080910402602001604051908101604052809291908181526020018280546117639061352c565b80156117b05780601f10611785576101008083540402835291602001916117b0565b820191906000526020600020905b81548152906001019060200180831161179357829003601f168201915b50505091835250506004919091015460ff16151560209091015260808101519091503410156117f15760405162976f7560e21b815260040160405180910390fd5b805160a08201516040805160ff90931683526020830186905282015263ffffffff8516907f7332af1b67e19fc2a7f5167e8644596b674ad0a7bc9c26761ad3612dd07322609060600160405180910390a260ca546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd9190613be6565b6118e35760405163b25cefcd60e01b8152336004820152602481018490526044016106d0565b805160ff908116600090815260cc602052604090205482516001600160a01b039091169116158061191f575060608201516001600160a01b0316155b8061193157506001600160a01b038116155b1561194f576040516388b238d760e01b815260040160405180910390fd5b815160ff166001190161196d57611968828286866123bf565b611986565b815160ff16600219016119865761198682828686612598565b5050505050565b6119956121a3565b6001600160a01b0381166119bc5760405163e6c4247b60e01b815260040160405180910390fd5b6065546040516001600160a01b038084169216907f3ecf09be2ffc4c8ae0173a655e2794342ef3e8fbc5655e04653f28d836d2328a90600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b03163314801590611a3e57506033546001600160a01b03163314155b15611a5e5760405163dc0b34cd60e01b81523360048201526024016106d0565b8163ffffffff16600003611a8557604051633d23e4d160e11b815260040160405180910390fd5b63ffffffff8216600090815260cd602052604090208190611aa6828261399a565b5081905060ce6000611abb6020840184613474565b60ff1660ff1681526020019081526020016000206000836040016020810190611ae49190612fbc565b63ffffffff1681526020810191909152604001600020611b04828261399a565b505063ffffffff82167f19469437592883140a8cc8ee32127f5229ec3213f33ce5ecf663793be92c1a3b610c166020840184613474565b611b436121a3565b6001600160a01b038116611ba85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d0565b610d13816121fd565b600054610100900460ff1615808015611bd15750600054600160ff909116105b80611beb5750303b158015611beb575060005460ff166001145b611c4e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106d0565b6000805460ff191660011790558015611c71576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cb95760405162461bcd60e51b81526004016106d090613abf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ceb611f7c565b6001600160a01b031614611d115760405162461bcd60e51b81526004016106d090613b0b565b6001600160a01b0385161580611d2e57506001600160a01b038416155b80611d4057506001600160a01b038316155b80611d5257506001600160a01b038216155b15611d705760405163e6c4247b60e01b815260040160405180910390fd5b611d7c85858585612863565b8015611986576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b60ce602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff851695610100860463ffffffff90811696600160281b810490911695600160481b9091046001600160a01b0316949093909261080f9061352c565b60008060cd81611e436020860186612fbc565b63ffffffff9081168252602080830193909352604091820160002082516101008082018552825460ff81168352908104841695820195909552600160281b850490921692820192909252600160481b9092046001600160a01b0316606083015260018101546080830152600281015460a083015260038101805460c084019190611ecc9061352c565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef89061352c565b8015611f455780601f10611f1a57610100808354040283529160200191611f45565b820191906000526020600020905b815481529060010190602001808311611f2857829003601f168201915b50505091835250506004919091015460ff1615156020918201526060820151919250840135906001600160a01b0316149392505050565b600080516020613f97833981519152546001600160a01b031690565b611fa06121a3565b806001600160a01b03163b600003610d13576040516303777f6960e51b815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561200357611ffe836128ac565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561205d575060408051601f3d908101601f1916820190925261205a91810190613c03565b60015b6120c05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106d0565b600080516020613f97833981519152811461212f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106d0565b50611ffe838383612948565b606083600361214b82600061296d565b61ffff161461217f5761215f81600061296d565b604051633a51740d60e01b815261ffff90911660048201526024016106d0565b600061218b85856129d0565b905061219986600183612a49565b9695505050505050565b6033546001600160a01b031633146111535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061226586606001516001600160a01b031690565b905060008660c001518060200190518101906122819190613c1c565b905060006122b1826000610e7760408051600360f01b602082015281516002818303018152602290910190915290565b90506000876001600160a01b0316632637a450346040518060a001604052808d6040015163ffffffff1681526020018881526020018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060208201889052604091820152516001600160e01b031960e085901b16815261234c91908a90600401613b57565b60806040518083038185885af115801561236a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061238f9190613cbd565b80519091506000036123b45760405163332587cb60e21b815260040160405180910390fd5b505050505050505050565b60006123cf838660a00151612ab4565b60e086015190915034901561244c576123e88482613cef565b60ca54604051632e1a7d4d60e01b8152600481018790529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561242f57600080fd5b505af1158015612443573d6000803e3d6000fd5b505050506124e0565b60ca5460405163095ea7b360e01b81526001600160a01b038781166004830152602482018790529091169063095ea7b3906044016020604051808303816000875af115801561249f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c39190613be6565b6124e0576040516340b27c2160e11b815260040160405180910390fd5b846001600160a01b0316631114cd2a828860400151868a60600151604051602001612523919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529190528961253e8982613d02565b6040518763ffffffff1660e01b815260040161255e959493929190613d15565b6000604051808303818588803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b5050505050505050505050565b60006125a8838660a00151612ab4565b60e0860151909150349015612625576125c18482613cef565b60ca54604051632e1a7d4d60e01b8152600481018790529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561260857600080fd5b505af115801561261c573d6000803e3d6000fd5b505050506126b9565b60ca5460405163095ea7b360e01b81526001600160a01b038781166004830152602482018790529091169063095ea7b3906044016020604051808303816000875af1158015612678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269c9190613be6565b6126b9576040516340b27c2160e11b815260040160405180910390fd5b60006040518060e00160405280886040015161ffff1663ffffffff1681526020016126ee89606001516001600160a01b031690565b8152602081018790526040016127048588613d02565b815260408051600080825260208083018452808501929092528251908152808201835282840152815160018082528184019093526060909301929190820181803683375050509052604080518082018252348152600060208201819052915163cbef2aa960e01b8152929350916001600160a01b0389169063cbef2aa990869061279690879087908c90600401613d57565b60006040518083038185885af11580156127b4573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526127dd9190810190613d96565b92505050806000015168ffffffffffffffffff166000036128115760405163c55a34a160e01b815260040160405180910390fd5b80516040805168ffffffffffffffffff9092168252602082018990527fda4279638d8a3b818ec59f1d7591ce1e953296911a47a82e24ed060275ad0a40910160405180910390a1505050505050505050565b600054610100900460ff1661288a5760405162461bcd60e51b81526004016106d090613e62565b6128948282612ae8565b61289c612b21565b6128a68484612b48565b50505050565b6001600160a01b0381163b6129195760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106d0565b600080516020613f9783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61295183612c25565b60008251118061295e5750805b15611ffe576128a68383612c65565b600061297a826002613cef565b835110156129c15760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016106d0565b50818101600201515b92915050565b60606001600160801b03821615612a1857604080516001600160801b0319608086811b8216602084015285901b16603082015201604051602081830303815290604052612a42565b6040516001600160801b0319608085901b1660208201526030016040516020818303038152906040525b9392505050565b6060836003612a5982600061296d565b61ffff1614612a6d5761215f81600061296d565b846001612a7a8551612d59565b612a85906001613ead565b8686604051602001612a9b959493929190613ec7565b6040516020818303038152906040529150509392505050565b6000670de0b6b3a7640000612aca600182613d02565b612ad48486613f2e565b612ade9190613cef565b612a429190613f45565b600054610100900460ff16612b0f5760405162461bcd60e51b81526004016106d090613e62565b612b17612dc0565b61102d8282612def565b600054610100900460ff166111535760405162461bcd60e51b81526004016106d090613e62565b600054610100900460ff16612b6f5760405162461bcd60e51b81526004016106d090613e62565b60ca80546001600160a01b038481166001600160a01b0319928316811790935560cb805491851691909216811790915560405163095ea7b360e01b81526004810191909152600019602482015263095ea7b3906044016020604051808303816000875af1158015612be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c089190613be6565b61102d576040516340b27c2160e11b815260040160405180910390fd5b612c2e816128ac565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612ccd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016106d0565b600080846001600160a01b031684604051612ce89190613f67565b600060405180830381855af49150503d8060008114612d23576040519150601f19603f3d011682016040523d82523d6000602084013e612d28565b606091505b5091509150612d508282604051806060016040528060278152602001613fb760279139612e28565b95945050505050565b600061ffff821115612dbc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016106d0565b5090565b600054610100900460ff16612de75760405162461bcd60e51b81526004016106d090613e62565b611153612e41565b600054610100900460ff16612e165760405162461bcd60e51b81526004016106d090613e62565b612e1f8161198d565b61102d82611b3b565b60608315612e37575081612a42565b612a428383612e71565b600054610100900460ff16612e685760405162461bcd60e51b81526004016106d090613e62565b611153336121fd565b815115612e815781518083602001fd5b8060405162461bcd60e51b81526004016106d09190613f83565b600060608284031215612ead57600080fd5b50919050565b60008083601f840112612ec557600080fd5b5081356001600160401b03811115612edc57600080fd5b602083019150836020828501011115610b4a57600080fd5b6001600160a01b0381168114610d1357600080fd5b600080600080600080600060e0888a031215612f2457600080fd5b612f2e8989612e9b565b96506060880135955060808801356001600160401b03811115612f5057600080fd5b612f5c8a828b01612eb3565b90965094505060a0880135612f7081612ef4565b925060c08801356001600160401b03811115612f8b57600080fd5b612f978a828b01612eb3565b989b979a50959850939692959293505050565b63ffffffff81168114610d1357600080fd5b600060208284031215612fce57600080fd5b8135612a4281612faa565b60005b83811015612ff4578181015183820152602001612fdc565b50506000910152565b60008151808452613015816020860160208601612fd9565b601f01601f19169290920160200192915050565b60ff8916815263ffffffff8816602082015263ffffffff8716604082015260018060a01b03861660608201528460808201528360a082015261010060c08201526000613079610100830185612ffd565b905082151560e08301529998505050505050505050565b600080604083850312156130a357600080fd5b82356130ae81612faa565b946020939093013593505050565b600080604083850312156130cf57600080fd5b82356130da81612faa565b915060208301356001600160401b038111156130f557600080fd5b8301610100818603121561310857600080fd5b809150509250929050565b60006020828403121561312557600080fd5b8135612a4281612ef4565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561316857613168613130565b60405290565b604051601f8201601f191681016001600160401b038111828210171561319657613196613130565b604052919050565b60006001600160401b038211156131b7576131b7613130565b50601f01601f191660200190565b600080604083850312156131d857600080fd5b82356131e381612ef4565b915060208301356001600160401b038111156131fe57600080fd5b8301601f8101851361320f57600080fd5b803561322261321d8261319e565b61316e565b81815286602083850101111561323757600080fd5b816020840160208301376000602083830101528093505050509250929050565b6020815260ff825116602082015263ffffffff60208301511660408201526000604083015161328e606084018263ffffffff169052565b5060608301516001600160a01b038116608084015250608083015160a083015260a083015160c083015260c083015161010060e08401526132d3610120840182612ffd565b905060e08401516132e961010085018215159052565b509392505050565b60008083601f84011261330357600080fd5b5081356001600160401b0381111561331a57600080fd5b6020830191508360208260051b8501011115610b4a57600080fd5b60008060008060006060868803121561334d57600080fd5b85356001600160401b0381111561336357600080fd5b61336f888289016132f1565b90965094505060208601356001600160401b0381111561338e57600080fd5b61339a888289016132f1565b90945092505060408601356133ae81612ef4565b809150509295509295909350565b600080600080606085870312156133d257600080fd5b84356133dd81612faa565b935060208501356001600160401b038111156133f857600080fd5b61340487828801612eb3565b909450925050604085013561341881612ef4565b939692955090935050565b60008060006060848603121561343857600080fd5b833561344381612faa565b925060208401359150604084013561345a81612ef4565b809150509250925092565b60ff81168114610d1357600080fd5b60006020828403121561348657600080fd5b8135612a4281613465565b600080600080608085870312156134a757600080fd5b84356134b281612ef4565b935060208501356134c281612ef4565b925060408501356134d281612ef4565b9150606085013561341881612ef4565b600080604083850312156134f557600080fd5b823561350081613465565b9150602083013561310881612faa565b60006060828403121561352257600080fd5b612a428383612e9b565b600181811c9082168061354057607f821691505b602082108103612ead57634e487b7160e01b600052602260045260246000fd5b63ffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301526000608082015160e060808501526135df60e0850182612ffd565b905060a083015184820360a08601526135f88282612ffd565b91505060c083015184820360c0860152612d508282612ffd565b602081526000612a42602083018461359c565b60006040828403121561363757600080fd5b61363f613146565b825181526020928301519281019290925250919050565b600061366461321d8461319e565b905082815283838301111561367857600080fd5b612a42836020830184612fd9565b600080600060a0848603121561369b57600080fd5b6136a58585613625565b925060408401516001600160401b038111156136c057600080fd5b8401601f810186136136d157600080fd5b80516001600160401b038111156136ea576136ea613130565b8060051b6136fa6020820161316e565b9182526020818401810192908101908984111561371657600080fd5b6020850192505b838310156137bb5782516001600160401b0381111561373b57600080fd5b85016040818c03601f1901121561375157600080fd5b613759613146565b6020820151815260408201516001600160401b0381111561377957600080fd5b6020818401019250508b601f83011261379157600080fd5b6137a08c835160208501613656565b6020820152808452505060208201915060208301925061371d565b80965050505050506137d08560608601613625565b90509250925092565b6040815260006137ec604083018561359c565b905082151560208301529392505050565b60006040828403121561380f57600080fd5b612a428383613625565b600081356129ca81612faa565b600081356129ca81612ef4565b6000808335601e1984360301811261384a57600080fd5b8301803591506001600160401b0382111561386457600080fd5b602001915036819003821315610b4a57600080fd5b601f821115611ffe57806000526020600020601f840160051c810160208510156138a05750805b601f840160051c820191505b8181101561198657600081556001016138ac565b6001600160401b038311156138d7576138d7613130565b6138eb836138e5835461352c565b83613879565b6000601f84116001811461391f57600085156139075750838201355b600019600387901b1c1916600186901b178355611986565b600083815260209020601f19861690835b828110156139505786850135825560209485019460019092019101613930565b508682101561396d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8015158114610d1357600080fd5b600081356129ca8161397f565b81356139a581613465565b60ff811660ff1983541617825550600060208301356139c381612faa565b825464ffffffff001916600882901b64ffffffff0016178355905050613a126139ee60408401613819565b825468ffffffff0000000000191660289190911b68ffffffff000000000016178255565b613a66613a2160608401613826565b8280547fffffff0000000000000000000000000000000000000000ffffffffffffffffff1660489290921b6901000000000000000000600160e81b0316919091179055565b6080820135600182015560a08201356002820155613a8760c0830183613833565b613a958183600386016138c0565b505061102d613aa660e0840161398d565b6004830160ff1981541660ff8315151681178255505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152613b8d60e0840182612ffd565b90506060850151603f198483030160a0850152613baa8282612ffd565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613bf857600080fd5b8151612a428161397f565b600060208284031215613c1557600080fd5b5051919050565b600060208284031215613c2e57600080fd5b81516001600160801b0381168114612a4257600080fd5b600060808284031215613c5757600080fd5b604051606081016001600160401b0381118282101715613c7957613c79613130565b60405282518152602083015190915081906001600160401b0381168114613c9f57600080fd5b6020820152613cb18460408501613625565b60408201525092915050565b600060808284031215613ccf57600080fd5b612a428383613c45565b634e487b7160e01b600052601160045260246000fd5b808201808211156129ca576129ca613cd9565b818103818111156129ca576129ca613cd9565b61ffff861681526001600160a01b038516602082015260a060408201819052600090613d4390830186612ffd565b606083019490945250608001529392505050565b608081526000613d6a608083018661359c565b8451602084810191909152909401516040830152506001600160a01b0391909116606090910152919050565b600080600060e08486031215613dab57600080fd5b613db58585613c45565b9250613dc48560808601613625565b915060c08401516001600160401b03811115613ddf57600080fd5b840160408187031215613df157600080fd5b613df9613146565b815168ffffffffffffffffff81168114613e1257600080fd5b815260208201516001600160401b03811115613e2d57600080fd5b80830192505086601f830112613e4257600080fd5b613e5187835160208501613656565b602082015280925050509250925092565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b61ffff81811683821601908111156129ca576129ca613cd9565b60008651613ed9818460208b01612fd9565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b1660038201528351613f1f816004840160208801612fd9565b01600401979650505050505050565b80820281158282048414176129ca576129ca613cd9565b600082613f6257634e487b7160e01b600052601260045260246000fd5b500490565b60008251613f79818460208701612fd9565b9190910192915050565b602081526000612a426020830184612ffd56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122066626bec37a299d56d94d5666789142576d0ba6f0e59afa0bcdd23b34684895564736f6c634300081a0033