3 txs
5 calls
constructor
No constructor.
functions
bridgeVersion
viewfunction bridgeVersion() view returns (uint256)
chainGasAmount
viewfunction chainGasAmount() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getFeeBalance
viewfunction getFeeBalance(address tokenAddress) view returns (uint256)
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)
GOVERNANCE_ROLE
viewfunction GOVERNANCE_ROLE() view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isLegacyBridgeDisabled
viewfunction isLegacyBridgeDisabled() view returns (bool)
kappaExists
viewfunction kappaExists(bytes32 kappa) view returns (bool)
NODEGROUP_ROLE
viewfunction NODEGROUP_ROLE() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
startBlockNumber
viewfunction startBlockNumber() view returns (uint256)
WETH_ADDRESS
viewfunction WETH_ADDRESS() view returns (address)
addKappas
nonpayablefunction addKappas(bytes32[] kappas)
deposit
nonpayablefunction deposit(address to, uint256 chainId, address token, uint256 amount)
depositAndSwap
nonpayablefunction depositAndSwap(address to, uint256 chainId, address token, uint256 amount, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
mint
nonpayablefunction mint(address to, address token, uint256 amount, uint256 fee, bytes32 kappa)
mintAndSwap
nonpayablefunction mintAndSwap(address to, address token, uint256 amount, uint256 fee, address pool, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline, bytes32 kappa)
pause
nonpayablefunction pause()
redeem
nonpayablefunction redeem(address to, uint256 chainId, address token, uint256 amount)
redeemAndRemove
nonpayablefunction redeemAndRemove(address to, uint256 chainId, address token, uint256 amount, uint8 swapTokenIndex, uint256 swapMinAmount, uint256 swapDeadline)
redeemAndSwap
nonpayablefunction redeemAndSwap(address to, uint256 chainId, address token, uint256 amount, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline)
redeemV2
nonpayablefunction redeemV2(bytes32 to, uint256 chainId, address token, uint256 amount)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setChainGasAmount
nonpayablefunction setChainGasAmount(uint256 amount)
setLegacyBridgeDisabled
nonpayablefunction setLegacyBridgeDisabled(bool _isLegacyBridgeDisabled)
setWethAddress
nonpayablefunction setWethAddress(address _wethAddress)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(address to, address token, uint256 amount, uint256 fee, bytes32 kappa)
withdrawAndRemove
nonpayablefunction withdrawAndRemove(address to, address token, uint256 amount, uint256 fee, address pool, uint8 swapTokenIndex, uint256 swapMinAmount, uint256 swapDeadline, bytes32 kappa)
withdrawChainGas
nonpayablefunction withdrawChainGas()
withdrawFees
nonpayablefunction withdrawFees(address token, address to)
events
Paused
event Paused(address account)
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)
TokenDeposit
event TokenDeposit(address indexed to, uint256 chainId, address token, uint256 amount)
TokenDepositAndSwap
event TokenDepositAndSwap(address indexed to, uint256 chainId, address token, uint256 amount, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline)
TokenMint
event TokenMint(address indexed to, address token, uint256 amount, uint256 fee, bytes32 indexed kappa)
TokenMintAndSwap
event TokenMintAndSwap(address indexed to, address token, uint256 amount, uint256 fee, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline, bool swapSuccess, bytes32 indexed kappa)
TokenRedeem
event TokenRedeem(address indexed to, uint256 chainId, address token, uint256 amount)
TokenRedeemAndRemove
event TokenRedeemAndRemove(address indexed to, uint256 chainId, address token, uint256 amount, uint8 swapTokenIndex, uint256 swapMinAmount, uint256 swapDeadline)
TokenRedeemAndSwap
event TokenRedeemAndSwap(address indexed to, uint256 chainId, address token, uint256 amount, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline)
TokenRedeemV2
event TokenRedeemV2(bytes32 indexed to, uint256 chainId, address token, uint256 amount)
TokenWithdraw
event TokenWithdraw(address indexed to, address token, uint256 amount, uint256 fee, bytes32 indexed kappa)
TokenWithdrawAndRemove
event TokenWithdrawAndRemove(address indexed to, address token, uint256 amount, uint256 fee, uint8 swapTokenIndex, uint256 swapMinAmount, uint256 swapDeadline, bool swapSuccess, bytes32 indexed kappa)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613b80806100206000396000f3fe60806040526004361061021e5760003560e01c806391d1485411610123578063ca15c873116100ab578063f25552781161006f578063f255527814610942578063f36c8f5c1461097d578063f3befd0114610992578063f3f094a1146109a7578063f9e965d0146109ee57610225565b8063ca15c873146107e1578063d547741f1461080b578063d57eafac14610844578063e00a83e0146108b0578063e7a59998146108c557610225565b8063a96e2423116100f2578063a96e242314610710578063ac86562614610743578063ae6b55ec14610758578063b250fe6b14610784578063c78f6803146107ae57610225565b806391d1485414610616578063a07ed9751461064f578063a217fddf14610694578063a2a2af0b146106a957610225565b80633f4ba83a116101a65780638129fc1c116101755780638129fc1c1461050e578063839ed90a146105235780638456cb591461058a5780639010d07c1461059f57806390d25074146105cf57610225565b80633f4ba83a146104ba578063498a4c2d146104cf5780635c975abb146104e45780636f3d6794146104f957610225565b8063248a9ca3116101ed578063248a9ca3146103725780632f2ff15d146103ae5780632fe87b95146103e757806336568abe1461042557806336e712ed1461045e57610225565b8063040141e51461022a578063173578921461025b5780631cf5f07f146102d457806320d7b3271461032357610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610a03565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b506102d2600480360361014081101561027f57600080fd5b506001600160a01b03813581169160208101358216916040820135916060810135916080820135169060ff60a082013581169160c08101359091169060e081013590610100810135906101200135610a12565b005b3480156102e057600080fd5b506102d2600480360360a08110156102f757600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135611213565b34801561032f57600080fd5b506102d2600480360360a081101561034657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135611607565b34801561037e57600080fd5b5061039c6004803603602081101561039557600080fd5b50356118d3565b60408051918252519081900360200190f35b3480156103ba57600080fd5b506102d2600480360360408110156103d157600080fd5b50803590602001356001600160a01b03166118e8565b3480156103f357600080fd5b506104116004803603602081101561040a57600080fd5b5035611954565b604080519115158252519081900360200190f35b34801561043157600080fd5b506102d26004803603604081101561044857600080fd5b50803590602001356001600160a01b0316611969565b34801561046a57600080fd5b506102d2600480360360e081101561048157600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060ff6080820135169060a08101359060c001356119ca565b3480156104c657600080fd5b506102d2611b6e565b3480156104db57600080fd5b5061039c611bd2565b3480156104f057600080fd5b50610411611bd8565b34801561050557600080fd5b506102d2611be1565b34801561051a57600080fd5b506102d2611cd1565b34801561052f57600080fd5b506102d2600480360361010081101561054757600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060ff608082013581169160a08101359091169060c08101359060e00135611d89565b34801561059657600080fd5b506102d2611f48565b3480156105ab57600080fd5b5061023f600480360360408110156105c257600080fd5b5080359060200135611faa565b3480156105db57600080fd5b506102d2600480360360808110156105f257600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611fcb565b34801561062257600080fd5b506104116004803603604081101561063957600080fd5b50803590602001356001600160a01b0316612116565b34801561065b57600080fd5b506102d26004803603608081101561067257600080fd5b508035906020810135906001600160a01b03604082013516906060013561212e565b3480156106a057600080fd5b5061039c6122c8565b3480156106b557600080fd5b506102d260048036036101008110156106cd57600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060ff608082013581169160a08101359091169060c08101359060e001356122cd565b34801561071c57600080fd5b506102d26004803603602081101561073357600080fd5b50356001600160a01b031661242c565b34801561074f57600080fd5b5061039c612496565b34801561076457600080fd5b506102d26004803603602081101561077b57600080fd5b5035151561249b565b34801561079057600080fd5b506102d2600480360360208110156107a757600080fd5b5035612508565b3480156107ba57600080fd5b5061039c600480360360208110156107d157600080fd5b50356001600160a01b0316612567565b3480156107ed57600080fd5b5061039c6004803603602081101561080457600080fd5b5035612582565b34801561081757600080fd5b506102d26004803603604081101561082e57600080fd5b50803590602001356001600160a01b0316612599565b34801561085057600080fd5b506102d2600480360361012081101561086857600080fd5b506001600160a01b03813581169160208101358216916040820135916060810135916080820135169060ff60a0820135169060c08101359060e08101359061010001356125f2565b3480156108bc57600080fd5b5061039c612b60565b3480156108d157600080fd5b506102d2600480360360208110156108e857600080fd5b81019060208101813564010000000081111561090357600080fd5b82018360208201111561091557600080fd5b8035906020019184602083028401116401000000008311171561093757600080fd5b509092509050612b66565b34801561094e57600080fd5b506102d26004803603604081101561096557600080fd5b506001600160a01b0381358116916020013516612c12565b34801561098957600080fd5b5061039c612d65565b34801561099e57600080fd5b5061039c612d77565b3480156109b357600080fd5b506102d2600480360360808110156109ca57600080fd5b506001600160a01b0381358116916020810135916040820135169060600135612d89565b3480156109fa57600080fd5b50610411612f02565b60cc546001600160a01b031681565b60026065541415610a58576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555610a65611bd8565b15610aaa576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b610ac2600080516020613a9283398151915233612116565b610b10576040805162461bcd60e51b815260206004820152601a602482015279043616c6c6572206973206e6f742061206e6f64652067726f75760341b604482015290519081900360640190fd5b868811610b52576040805162461bcd60e51b815260206004820152601f6024820152600080516020613ab2833981519152604482015290519081900360640190fd5b600081815260cd602052604090205460ff1615610bb1576040805162461bcd60e51b815260206004820152601860248201527712d85c1c18481a5cc8185b1c9958591e481c1c995cd95b9d60421b604482015290519081900360640190fd5b600081815260cd60209081526040808320805460ff191660011790556001600160a01b038c16835260c9909152902054610beb9088612f0b565b6001600160a01b03808b16600090815260c96020526040812092909255871663a95b089f8787610c1b8d8d612f65565b6040518463ffffffff1660e01b8152600401808460ff1681526020018360ff168152602001828152602001935050505060206040518083038186803b158015610c6357600080fd5b505afa158015610c77573d6000803e3d6000fd5b505050506040513d6020811015610c8d57600080fd5b5051905083811061110e57604080516340c10f1960e01b8152306004820152602481018b905290516001600160a01b038c16916340c10f1991604480830192600092919082900301818387803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b50610d13925050506001600160a01b038b16888b612fc2565b6001600160a01b03871663916955868787610d2e8d8d612f65565b88886040518663ffffffff1660e01b8152600401808660ff1681526020018560ff16815260200184815260200183815260200182815260200195505050505050602060405180830381600087803b158015610d8857600080fd5b505af1925050508015610dad57506040513d6020811015610da857600080fd5b505160015b610e4a57610dd08b610dbf8b8b612f65565b6001600160a01b038d1691906130b3565b816001600160a01b038c166000805160206139ee8339815191528c610df58d8d612f65565b604080516001600160a01b03909316835260208301919091528181018d905260ff808c1660608401528a16608083015260a0820189905260c08201889052600060e083015251908190036101000190a3611109565b6000886001600160a01b03166382b86600886040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b158015610e9357600080fd5b505afa158015610ea7573d6000803e3d6000fd5b505050506040513d6020811015610ebd57600080fd5b505160cc549091506001600160a01b038083169116148015610ee9575060cc546001600160a01b031615155b156110775760cc5460408051632e1a7d4d60e01b81526004810185905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b5050505060008d6001600160a01b03168360405180600001905060006040518083038185875af1925050503d8060008114610fa6576040519150601f19603f3d011682016040523d82523d6000602084013e610fab565b606091505b5050905080610ff7576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b848e6001600160a01b03166000805160206139ee8339815191528f868f8e8e8e8e600160405180896001600160a01b031681526020018881526020018781526020018660ff1681526020018560ff16815260200184815260200183815260200182151581526020019850505050505050505060405180910390a350611106565b61108b6001600160a01b0382168e846130b3565b838d6001600160a01b03166000805160206139ee8339815191528e858e8d8d8d8d600160405180896001600160a01b031681526020018881526020018781526020018660ff1681526020018560ff16815260200184815260200183815260200182151581526020019850505050505050505060405180910390a35b50505b611201565b604080516340c10f1960e01b8152306004820152602481018b905290516001600160a01b038c16916340c10f1991604480830192600092919082900301818387803b15801561115c57600080fd5b505af1158015611170573d6000803e3d6000fd5b5050505061118b8b610dbf8a8c612f6590919063ffffffff16565b816001600160a01b038c166000805160206139ee8339815191528c6111b08d8d612f65565b604080516001600160a01b03909316835260208301919091528181018d905260ff808c1660608401528a16608083015260a0820189905260c08201889052600060e083015251908190036101000190a35b50506001606555505050505050505050565b60026065541415611259576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555611266611bd8565b156112ab576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6112c3600080516020613a9283398151915233612116565b611311576040805162461bcd60e51b815260206004820152601a602482015279043616c6c6572206973206e6f742061206e6f64652067726f75760341b604482015290519081900360640190fd5b818311611353576040805162461bcd60e51b815260206004820152601f6024820152600080516020613ab2833981519152604482015290519081900360640190fd5b600081815260cd602052604090205460ff16156113b2576040805162461bcd60e51b815260206004820152601860248201527712d85c1c18481a5cc8185b1c9958591e481c1c995cd95b9d60421b604482015290519081900360640190fd5b600081815260cd60209081526040808320805460ff191660011790556001600160a01b038716835260c99091529020546113ec9083612f0b565b6001600160a01b03808616600081815260c9602052604090209290925560cc5416148015611424575060cc546001600160a01b031615155b1561158c5760cc546001600160a01b0316632e1a7d4d6114448585612f65565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561147a57600080fd5b505af115801561148e573d6000803e3d6000fd5b506000925050506001600160a01b0386166114a98585612f65565b604051600081818185875af1925050503d80600081146114e5576040519150601f19603f3d011682016040523d82523d6000602084013e6114ea565b606091505b5050905080611536576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b604080516001600160a01b03878116825260208201879052818301869052915184928916917f8b0afdc777af6946e53045a4a75212769075d30455a212ac51c9b16f9c5c9b26919081900360600190a3506115fb565b604080516001600160a01b03868116825260208201869052818301859052915183928816917f8b0afdc777af6946e53045a4a75212769075d30455a212ac51c9b16f9c5c9b26919081900360600190a36115fb856115ea8585612f65565b6001600160a01b03871691906130b3565b50506001606555505050565b6002606554141561164d576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b600260655561165a611bd8565b1561169f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6116b7600080516020613a9283398151915233612116565b611705576040805162461bcd60e51b815260206004820152601a602482015279043616c6c6572206973206e6f742061206e6f64652067726f75760341b604482015290519081900360640190fd5b818311611747576040805162461bcd60e51b815260206004820152601f6024820152600080516020613ab2833981519152604482015290519081900360640190fd5b600081815260cd602052604090205460ff16156117a6576040805162461bcd60e51b815260206004820152601860248201527712d85c1c18481a5cc8185b1c9958591e481c1c995cd95b9d60421b604482015290519081900360640190fd5b600081815260cd60209081526040808320805460ff191660011790556001600160a01b038716835260c99091529020546117e09083612f0b565b6001600160a01b03808616600090815260c96020526040902091909155819086167fbf14b9fde87f6e1c29a7e0787ad1d0d64b4648d8ae63da21524d9fd0f283dd388661182d8787612f65565b604080516001600160a01b0390931683526020830191909152818101879052519081900360600190a3604080516340c10f1960e01b81523060048201526024810185905290516001600160a01b038616916340c10f1991604480830192600092919082900301818387803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b505050506115fb856115ea8486612f6590919063ffffffff16565b60009081526033602052604090206002015490565b60008281526033602052604090206002015461190b90611906613105565b612116565b6119465760405162461bcd60e51b815260040180806020018281038252602f81526020018061397f602f913960400191505060405180910390fd5b6119508282613109565b5050565b600090815260cd602052604090205460ff1690565b611971613105565b6001600160a01b0316816001600160a01b0316146119c05760405162461bcd60e51b815260040180806020018281038252602f815260200180613b1c602f913960400191505060405180910390fd5b6119508282613172565b60026065541415611a10576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555611a1d611bd8565b15611a62576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60ce5460ff1615611aa8576040805162461bcd60e51b81526020600482015260196024820152600080516020613afc833981519152604482015290519081900360640190fd5b604080518781526001600160a01b03878116602083015281830187905260ff861660608301526080820185905260a082018490529151918916917f9a7024cde1920aa50cdde09ca396229e8c4d530d5cfdc6233590def70a94408c9181900360c00190a26040805163079cc67960e41b81523360048201526024810186905290516001600160a01b038716916379cc679091604480830192600092919082900301818387803b158015611b5a57600080fd5b505af1158015611201573d6000803e3d6000fd5b611b866000805160206139ce83398151915233612116565b611bc8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b611bd06131db565b565b60ca5481565b60975460ff1690565b611bf96000805160206139ce83398151915233612116565b611c3b576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b604051600090339047908381818185875af1925050503d8060008114611c7d576040519150601f19603f3d011682016040523d82523d6000602084013e611c82565b606091505b5050905080611cce576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b50565b600054610100900460ff1680611cea5750611cea61327b565b80611cf8575060005460ff16155b611d335760405162461bcd60e51b815260040180806020018281038252602e815260200180613a64602e913960400191505060405180910390fd5b600054610100900460ff16158015611d5e576000805460ff1961ff0019909116610100171660011790555b4360ca55611d6d600033611946565b611d7561328c565b8015611cce576000805461ff001916905550565b60026065541415611dcf576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555611ddc611bd8565b15611e21576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60ce5460ff1615611e67576040805162461bcd60e51b81526020600482015260196024820152600080516020613afc833981519152604482015290519081900360640190fd5b604080518881526001600160a01b03888116602083015281830188905260ff80881660608401528616608083015260a0820185905260c082018490529151918a16917f91f25e9be0134ec851830e0e76dc71e06f9dade75a9b84e9524071dbbc3194259181900360e00190a26040805163079cc67960e41b81523360048201526024810187905290516001600160a01b038816916379cc679091604480830192600092919082900301818387803b158015611f2157600080fd5b505af1158015611f35573d6000803e3d6000fd5b5050600160655550505050505050505050565b611f606000805160206139ce83398151915233612116565b611fa2576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b611bd0613329565b6000828152603360205260408120611fc290836133ac565b90505b92915050565b60026065541415612011576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b600260655561201e611bd8565b15612063576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60ce5460ff16156120a9576040805162461bcd60e51b81526020600482015260196024820152600080516020613afc833981519152604482015290519081900360640190fd5b604080518481526001600160a01b0384811660208301528183018490529151918616917fda5273705dbef4bf1b902a131c2eac086b7e1476a8ab0cb4da08af1fe1bd8e3b9181900360600190a261210b6001600160a01b0383163330846133b8565b505060016065555050565b6000828152603360205260408120611fc29083613412565b60026065541415612174576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555612181611bd8565b156121c6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60ce5460ff161561220c576040805162461bcd60e51b81526020600482015260196024820152600080516020613afc833981519152604482015290519081900360640190fd5b604080518481526001600160a01b0384166020820152808201839052905185917f8e57e8c5fea426159af69d47eda6c5052c7605c9f70967cf749d4aa55b70b499919081900360600190a26040805163079cc67960e41b81523360048201526024810183905290516001600160a01b038416916379cc679091604480830192600092919082900301818387803b1580156122a557600080fd5b505af11580156122b9573d6000803e3d6000fd5b50506001606555505050505050565b600081565b60026065541415612313576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555612320611bd8565b15612365576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60ce5460ff16156123ab576040805162461bcd60e51b81526020600482015260196024820152600080516020613afc833981519152604482015290519081900360640190fd5b604080518881526001600160a01b03888116602083015281830188905260ff80881660608401528616608083015260a0820185905260c082018490529151918a16917f79c15604b92ef54d3f61f0c40caab8857927ca3d5092367163b4562c1699eb5f9181900360e00190a26122b96001600160a01b0387163330886133b8565b612437600033612116565b612474576040805162461bcd60e51b81526020600482015260096024820152682737ba1030b236b4b760b91b604482015290519081900360640190fd5b60cc80546001600160a01b0319166001600160a01b0392909216919091179055565b600881565b6124b36000805160206139ce83398151915233612116565b6124f5576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b60ce805460ff1916911515919091179055565b6125206000805160206139ce83398151915233612116565b612562576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b60cb55565b6001600160a01b0316600090815260c9602052604090205490565b6000818152603360205260408120611fc590613427565b6000828152603360205260409020600201546125b790611906613105565b6119c05760405162461bcd60e51b8152600401808060200182810382526030815260200180613a346030913960400191505060405180910390fd5b60026065541415612638576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555612645611bd8565b1561268a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6126a2600080516020613a9283398151915233612116565b6126f0576040805162461bcd60e51b815260206004820152601a602482015279043616c6c6572206973206e6f742061206e6f64652067726f75760341b604482015290519081900360640190fd5b858711612732576040805162461bcd60e51b815260206004820152601f6024820152600080516020613ab2833981519152604482015290519081900360640190fd5b600081815260cd602052604090205460ff1615612791576040805162461bcd60e51b815260206004820152601860248201527712d85c1c18481a5cc8185b1c9958591e481c1c995cd95b9d60421b604482015290519081900360640190fd5b600081815260cd60209081526040808320805460ff191660011790556001600160a01b038b16835260c99091529020546127cb9087612f0b565b6001600160a01b03808a16600090815260c96020526040812092909255861663342a87a16127f98a8a612f65565b876040518363ffffffff1660e01b8152600401808381526020018260ff1681526020019250505060206040518083038186803b15801561283857600080fd5b505afa15801561284c573d6000803e3d6000fd5b505050506040513d602081101561286257600080fd5b50519050838110612ac25761288c8661287b8a8a612f65565b6001600160a01b038c169190612fc2565b6001600160a01b038616633e3a15606128a58a8a612f65565b8787876040518563ffffffff1660e01b8152600401808581526020018460ff168152602001838152602001828152602001945050505050602060405180830381600087803b1580156128f657600080fd5b505af192505050801561291b57506040513d602081101561291657600080fd5b505160015b6129c15761293e8a61292d8a8a612f65565b6001600160a01b038c1691906130b3565b816001600160a01b038b167fc1a608d0f8122d014d03cc915a91d98cef4ebaf31ea3552320430cba05211b6d8b6129758c8c612f65565b604080516001600160a01b03909316835260208301919091528181018c905260ff8a1660608301526080820189905260a08201889052600060c0830152519081900360e00190a3612abd565b6000876001600160a01b03166382b86600886040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b158015612a0a57600080fd5b505afa158015612a1e573d6000803e3d6000fd5b505050506040513d6020811015612a3457600080fd5b50519050612a4c6001600160a01b0382168d846130b3565b604080516001600160a01b038d81168252602082018590528183018c905260ff8a1660608301526080820189905260a08201889052600160c0830152915186928f16917fc1a608d0f8122d014d03cc915a91d98cef4ebaf31ea3552320430cba05211b6d919081900360e00190a350505b612b4f565b612ad08a61292d8a8a612f65565b816001600160a01b038b167fc1a608d0f8122d014d03cc915a91d98cef4ebaf31ea3552320430cba05211b6d8b612b078c8c612f65565b604080516001600160a01b03909316835260208301919091528181018c905260ff8a1660608301526080820189905260a08201889052600060c0830152519081900360e00190a35b505060016065555050505050505050565b60cb5481565b612b7e6000805160206139ce83398151915233612116565b612bc0576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b60005b81811015612c0d57600160cd6000858585818110612bdd57fe5b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101612bc3565b505050565b612c1a611bd8565b15612c5f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b612c776000805160206139ce83398151915233612116565b612cb9576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b6001600160a01b038116612d07576040805162461bcd60e51b815260206004820152601060248201526f0416464726573732069732030783030360841b604482015290519081900360640190fd5b6001600160a01b038216600090815260c9602052604090205415611950576001600160a01b038216600081815260c96020526040902054612d4a919083906130b3565b506001600160a01b0316600090815260c96020526040812055565b6000805160206139ce83398151915281565b600080516020613a9283398151915281565b60026065541415612dcf576040805162461bcd60e51b815260206004820152601f60248201526000805160206139ae833981519152604482015290519081900360640190fd5b6002606555612ddc611bd8565b15612e21576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60ce5460ff1615612e67576040805162461bcd60e51b81526020600482015260196024820152600080516020613afc833981519152604482015290519081900360640190fd5b604080518481526001600160a01b0384811660208301528183018490529151918616917fdc5bad4651c5fbe9977a696aadc65996c468cde1448dd468ec0d83bf61c4b57c9181900360600190a26040805163079cc67960e41b81523360048201526024810183905290516001600160a01b038416916379cc679091604480830192600092919082900301818387803b1580156122a557600080fd5b60ce5460ff1681565b600082820183811015611fc2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115612fbc576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061305882856001600160a01b031663dd62ed3e30876040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561302657600080fd5b505afa15801561303a573d6000803e3d6000fd5b505050506040513d602081101561305057600080fd5b505190612f0b565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790529091506130ad908590613432565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612c0d908490613432565b3390565b600082815260336020526040902061312190826134e3565b156119505761312e613105565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260336020526040902061318a90826134f8565b1561195057613197613105565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6131e3611bd8565b61322b576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61325e613105565b604080516001600160a01b039092168252519081900360200190a1565b60006132863061350d565b15905090565b600054610100900460ff16806132a557506132a561327b565b806132b3575060005460ff16155b6132ee5760405162461bcd60e51b815260040180806020018281038252602e815260200180613a64602e913960400191505060405180910390fd5b600054610100900460ff16158015613319576000805460ff1961ff0019909116610100171660011790555b613321613513565b611d75613513565b613331611bd8565b15613376576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861325e613105565b6000611fc283836135b3565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526130ad908590613432565b6000611fc2836001600160a01b038416613617565b6000611fc58261362f565b6060613487826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136339092919063ffffffff16565b805190915015612c0d578080602001905160208110156134a657600080fd5b5051612c0d5760405162461bcd60e51b815260040180806020018281038252602a815260200180613ad2602a913960400191505060405180910390fd5b6000611fc2836001600160a01b03841661364c565b6000611fc2836001600160a01b038416613696565b3b151590565b600054610100900460ff168061352c575061352c61327b565b8061353a575060005460ff16155b6135755760405162461bcd60e51b815260040180806020018281038252602e815260200180613a64602e913960400191505060405180910390fd5b600054610100900460ff16158015611d75576000805460ff1961ff0019909116610100171660011790558015611cce576000805461ff001916905550565b815460009082106135f55760405162461bcd60e51b815260040180806020018281038252602281526020018061395d6022913960400191505060405180910390fd5b82600001828154811061360457fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6060613642848460008561375c565b90505b9392505050565b60006136588383613617565b61368e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611fc5565b506000611fc5565b6000818152600183016020526040812054801561375257835460001980830191908101906000908790839081106136c957fe5b90600052602060002001549050808760000184815481106136e657fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061371657fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611fc5565b6000915050611fc5565b60608247101561379d5760405162461bcd60e51b8152600401808060200182810382526026815260200180613a0e6026913960400191505060405180910390fd5b6137a68561350d565b6137f7576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106138365780518252601f199092019160209182019101613817565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613898576040519150601f19603f3d011682016040523d82523d6000602084013e61389d565b606091505b50915091506138ad8282866138b8565b979650505050505050565b606083156138c7575081613645565b8251156138d75782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613921578181015183820152602001613909565b50505050905090810190601f16801561394e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e745265656e7472616e637947756172643a207265656e7472616e742063616c6c0071840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb14f56ec39e98539920503fd54ee56ae0cbebe9eb15aa778f18de67701eeae7c65416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564b5c00e6706c3d213edd70ff33717fac657eacc5fe161f07180cf1fcab13cc4cd416d6f756e74206d7573742062652067726561746572207468616e20666565005361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565644c6567616379206272696467652069732064697361626c656400000000000000416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220bda46fd2c0001f52709a618c413d4f39a7151ee6927e872e32e9b97c45d327e664736f6c634300060c0033