0 txs
1 call
constructor
No constructor.
functions
erc20s
viewfunction erc20s() view returns (address[] erc20s_)
GAS_FOR_BH_QTY
viewfunction GAS_FOR_BH_QTY() view returns (uint256)
GAS_FOR_DISABLE_BASKET
viewfunction GAS_FOR_DISABLE_BASKET() view returns (uint256)
getRegistry
viewfunction getRegistry() view returns (tuple reg)
isRegistered
viewfunction isRegistered(address erc20) view returns (bool)
lastRefresh
viewfunction lastRefresh() view returns (uint48)
main
viewfunction main() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
size
viewfunction size() view returns (uint256)
toAsset
viewfunction toAsset(address erc20) view returns (address)
toColl
viewfunction toColl(address erc20) view returns (address)
validateCurrentAssets
viewfunction validateCurrentAssets() view
version
purefunction version() pure returns (string)
init
nonpayablefunction init(address main_, address[] assets_)
refresh
nonpayablefunction refresh()
register
nonpayablefunction register(address asset) returns (bool)
registerNewRTokenAsset
nonpayablefunction registerNewRTokenAsset(uint192 maxTradeVolume) returns (bool swapped)
swapRegistered
nonpayablefunction swapRegistered(address asset) returns (bool swapped)
unregister
nonpayablefunction unregister(address asset)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AssetRegistered
event AssetRegistered(address indexed erc20, address indexed asset)
AssetUnregistered
event AssetUnregistered(address indexed erc20, address indexed asset)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a06040523060805234801561001457600080fd5b50600054610100900460ff16158080156100355750600054600160ff909116105b8061004f5750303b15801561004f575060005460ff166001145b6100b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156100d9576000805461ff0019166101001790555b801561011f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50608051615f3a61015760003960008181610ea001528181610ee00152818161182c0152818161186c01526118ff0152615f3a6000f3fe60806040526004361061012a5760003560e01c806352d1902d116100ab5780639f2822f91161006f5780639f2822f914610343578063c3c5a5471461035a578063cdcff0011461037a578063cde2be8a1461039a578063dffeadd0146103ba578063f8ac93e8146103da57600080fd5b806352d1902d1461028b57806354fd4d50146102a057806357a26a40146102d45780635ab1bd531461030c578063949d225d1461032e57600080fd5b80633ba3712a116100f25780633ba3712a146101d25780633c5a3cea146102025780634420e486146102225780634f1ef286146102425780634fe882141461025557600080fd5b8063104b6e681461012f5780632510a1d7146101595780632ec2c2461461017b57806332e0f32f1461019d5780633659cfe6146101b2575b600080fd5b34801561013b57600080fd5b50610146620dbba081565b6040519081526020015b60405180910390f35b34801561016557600080fd5b5061016e6103ef565b6040516101509190612dd2565b34801561018757600080fd5b5061019b610196366004612e33565b610491565b005b3480156101a957600080fd5b5061019b610b9a565b3480156101be57600080fd5b5061019b6101cd366004612e33565b610e96565b3480156101de57600080fd5b506101f26101ed366004612e33565b610f72565b6040519015158152602001610150565b34801561020e57600080fd5b5061019b61021d366004612e50565b6113bd565b34801561022e57600080fd5b506101f261023d366004612e33565b611622565b61019b610250366004612f49565b611822565b34801561026157600080fd5b5060ce546102749065ffffffffffff1681565b60405165ffffffffffff9091168152602001610150565b34801561029757600080fd5b506101466118f2565b3480156102ac57600080fd5b5060408051808201825260058152640342e322e360dc1b602082015290516101509190613000565b3480156102e057600080fd5b506102f46102ef366004612e33565b6119a5565b6040516001600160a01b039091168152602001610150565b34801561031857600080fd5b50610321611ad8565b6040516101509190613033565b34801561033a57600080fd5b50610146611c42565b34801561034f57600080fd5b50610146620186a081565b34801561036657600080fd5b506101f2610375366004612e33565b611c53565b34801561038657600080fd5b506101f26103953660046130ea565b611c60565b3480156103a657600080fd5b506102f46103b5366004612e33565b611de2565b3480156103c657600080fd5b506097546102f4906001600160a01b031681565b3480156103e657600080fd5b5061019b611e30565b606060006103fd60cb611f6e565b90508067ffffffffffffffff81111561041857610418612eda565b604051908082528060200260200182016040528015610441578160200160208202803683370190505b50915060005b8181101561048c5761045a60cb82611f78565b83828151811061046c5761046c613107565b6001600160a01b0390921660209283029190910190910152600101610447565b505090565b60975460408051808201909152600581526427aba722a960d91b60208201526001600160a01b03909116906391d14854906104cb9061311d565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a9190613144565b61055f5760405162461bcd60e51b815260040161055690613166565b60405180910390fd5b609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d6919061318f565b6001600160a01b0316816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610641919061318f565b6001600160a01b0316036106975760405162461bcd60e51b815260206004820152601860248201527f63616e6e6f7420756e72656769737465722052546f6b656e00000000000000006044820152606401610556565b610704816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc919061318f565b60cb90611f8b565b6107495760405162461bcd60e51b815260206004820152601660248201527537379030b9b9b2ba103a37903ab73932b3b4b9ba32b960511b6044820152606401610556565b806001600160a01b031660cd6000836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b9919061318f565b6001600160a01b03908116825260208201929092526040016000205416146108155760405162461bcd60e51b815260206004820152600f60248201526e185cdcd95d081b9bdd08199bdd5b99608a1b6044820152606401610556565b60c9546001600160a01b031663a5a5828c61082e611fad565b836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610890919061318f565b6040516001600160e01b031960e085901b1681526001600160a01b0390911660048201526024016020604051808303818786fa935050505080156108f1575060408051601f3d908101601f191682019092526108ee918101906131ac565b60015b6109625760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b505050506109dc565b6001600160c01b038116156109da5760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109c157600080fd5b505af11580156109d5573d6000803e3d6000fd5b505050505b505b610a49816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a41919061318f565b60cb9061203f565b50600060cd6000836001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab2919061318f565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b0316816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061318f565b6001600160a01b03167f817f216d12af1855f1b81f88dc6421e26ebc7fa7eca01c58fd1035dd655b3d5460405160405180910390a350565b60975460408051630d99ba2560e41b815290516000926001600160a01b03169163d99ba2509160048083019260209291908290030181865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c08919061318f565b90506001600160a01b03811615610e93576000306001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c8191908101906131c9565b604051602001610c919190613240565b60408051601f1981840301815282825280516020918201206097546320632fb960e11b855292519094506000936001600160a01b03909316926340c65f729260048083019391928290030181865afa158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d15919061318f565b90506000610d21611ad8565b60208101515190915060005b81811015610e8d57600083602001518281518110610d4d57610d4d613107565b60200260200101519050846001600160a01b0316816001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc3919061318f565b6001600160a01b03161480610e44575060405163186b6f3760e31b8152600481018790526001600160a01b03828116602483015288169063c35b79b890604401602060405180830381865afa158015610e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e449190613144565b610e845760405162461bcd60e51b81526020600482015260116024820152701d5b9cdd5c1c1bdc9d195908185cdcd95d607a1b6044820152606401610556565b50600101610d2d565b50505050505b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ede5760405162461bcd60e51b81526004016105569061325c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f27600080516020615ebe833981519152546001600160a01b031690565b6001600160a01b031614610f4d5760405162461bcd60e51b8152600401610556906132a8565b610f5681612054565b60408051600080825260208201909252610e93918391906120a3565b60975460408051808201909152600581526427aba722a960d91b60208201526000916001600160a01b0316906391d1485490610fad9061311d565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c9190613144565b6110385760405162461bcd60e51b815260040161055690613166565b609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af919061318f565b6001600160a01b0316826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111a919061318f565b6001600160a01b0316036111655760405162461bcd60e51b815260206004820152601260248201527131b0b73737ba1039bbb0b810292a37b5b2b760711b6044820152606401610556565b6111a6826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b6111e75760405162461bcd60e51b815260206004820152601260248201527137379022a92199181031b7b63634b9b4b7b760711b6044820152606401610556565b60c9546001600160a01b031663a5a5828c611200611fad565b846001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611262919061318f565b6040516001600160e01b031960e085901b1681526001600160a01b0390911660048201526024016020604051808303818786fa935050505080156112c3575060408051601f3d908101601f191682019092526112c0918101906131ac565b60015b6113345760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561131757600080fd5b505af115801561132b573d6000803e3d6000fd5b505050506113ae565b6001600160c01b038116156113ac5760c960009054906101000a90046001600160a01b03166001600160a01b031663e27f3bef6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561139357600080fd5b505af11580156113a7573d6000803e3d6000fd5b505050505b505b6113b782612213565b92915050565b600054610100900460ff16158080156113dd5750600054600160ff909116105b806113f75750303b1580156113f7575060005460ff166001145b61145a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610556565b6000805460ff19166001179055801561147d576000805461ff0019166101001790555b6114868461280f565b836001600160a01b0316632f2439b16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e8919061318f565b60c960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001600160a01b031663dc8af5f66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611570919061318f565b60ca80546001600160a01b0319166001600160a01b03929092169190911790558160005b818110156115d4576115cb8585838181106115b1576115b1613107565b90506020020160208101906115c69190612e33565b6128ad565b50600101611594565b5050801561161c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60975460408051808201909152600581526427aba722a960d91b60208201526000916001600160a01b0316906391d148549061165d9061311d565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613144565b6116e85760405162461bcd60e51b815260040161055690613166565b609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175f919061318f565b6001600160a01b0316826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca919061318f565b6001600160a01b0316036118195760405162461bcd60e51b815260206004820152601660248201527531b0b73737ba103932b3b4b9ba32b910292a37b5b2b760511b6044820152606401610556565b6113b7826128ad565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361186a5760405162461bcd60e51b81526004016105569061325c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118b3600080516020615ebe833981519152546001600160a01b031690565b6001600160a01b0316146118d95760405162461bcd60e51b8152600401610556906132a8565b6118e282612054565b6118ee828260016120a3565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146119925760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610556565b50600080516020615ebe83398151915290565b60006119b260cb83611f8b565b6119f35760405162461bcd60e51b8152602060048201526012602482015271195c98cc8c081d5b9c9959da5cdd195c995960721b6044820152606401610556565b6001600160a01b03808316600090815260cd602090815260409182902054825163c59b3d6360e01b8152925193169263c59b3d639260048082019392918290030181865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190613144565b611ab95760405162461bcd60e51b815260206004820152601760248201527f6572633230206973206e6f7420636f6c6c61746572616c0000000000000000006044820152606401610556565b506001600160a01b03908116600090815260cd60205260409020541690565b60408051808201909152606080825260208201526000611af860cb611f6e565b90508067ffffffffffffffff811115611b1357611b13612eda565b604051908082528060200260200182016040528015611b3c578160200160208202803683370190505b5082528067ffffffffffffffff811115611b5857611b58612eda565b604051908082528060200260200182016040528015611b81578160200160208202803683370190505b50602083015260005b8181101561048c57611b9d60cb82611f78565b8351805183908110611bb157611bb1613107565b6001600160a01b039092166020928302919091019091015260cd6000611bd860cb84611f78565b6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b031683602001518281518110611c2257611c22613107565b6001600160a01b0390921660209283029190910190910152600101611b8a565b6000611c4e60cb611f6e565b905090565b60006113b760cb83611f8b565b60975460408051808201909152600581526427aba722a960d91b60208201526000916001600160a01b0316906391d1485490611c9b9061311d565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015611ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0a9190613144565b611d265760405162461bcd60e51b815260040161055690613166565b609754604080516320632fb960e11b815290516113b7926001600160a01b0316916340c65f729160048083019260209291908290030181865afa158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d95919061318f565b83604051611da290612dc5565b6001600160a01b0390921682526001600160c01b03166020820152604001604051809103906000f080158015611ddc573d6000803e3d6000fd5b50612213565b6000611def60cb83611f8b565b611ab95760405162461bcd60e51b8152602060048201526012602482015271195c98cc8c081d5b9c9959da5cdd195c995960721b6044820152606401610556565b6000611e3c60cb611f6e565b905060005b81811015611ee95760cd6000611e5860cb84611f78565b6001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ec657600080fd5b505af1158015611eda573d6000803e3d6000fd5b50505050806001019050611e41565b5060c960009054906101000a90046001600160a01b03166001600160a01b03166342046d6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f3a57600080fd5b505af1158015611f4e573d6000803e3d6000fd5b505060ce805465ffffffffffff19164265ffffffffffff16179055505050565b60006113b7825490565b6000611f8483836129d2565b9392505050565b6001600160a01b03811660009081526001830160205260408120541515611f84565b6000805a9050620dbba0603f611fc7620186a0604061330a565b611fd19190613321565b611fdb9190613343565b81116120355760405162461bcd60e51b815260206004820152602360248201527f6e6f7420656e6f7567682067617320746f20756e726567697374657220736166604482015262656c7960e81b6064820152608401610556565b620186a091505090565b6000611f84836001600160a01b0384166129fc565b6097546001600160a01b0316336001600160a01b031614610e935760405162461bcd60e51b81526020600482015260096024820152686d61696e206f6e6c7960b81b6044820152606401610556565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156120db576120d683612aef565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612135575060408051601f3d908101601f1916820190925261213291810190613356565b60015b6121985760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610556565b600080516020615ebe83398151915281146122075760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610556565b506120d6838383612b8b565b6000816001600160a01b031663c59b3d636040518163ffffffff1660e01b8152600401602060405180830381865afa158015612253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122779190613144565b15612335576000826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e09190613385565b60028111156122f1576122f161336f565b146123355760405162461bcd60e51b815260206004820152601460248201527318dbdb1b185d195c985b081b9bdd081cdbdd5b9960621b6044820152606401610556565b6000826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015612375573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612399919061318f565b9050609760009054906101000a90046001600160a01b03166001600160a01b03166340c65f726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612412919061318f565b6001600160a01b0316816001600160a01b0316146125f25760975460408051630d99ba2560e41b815290516000926001600160a01b03169163d99ba2509160048083019260209291908290030181865afa158015612474573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612498919061318f565b90506001600160a01b038116156125f057806001600160a01b031663c35b79b8306001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156124f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261251e91908101906131c9565b60405160200161252e9190613240565b60408051601f198184030181529082905280516020909101206001600160e01b031960e084901b16825260048201526001600160a01b0387166024820152604401602060405180830381865afa15801561258c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b09190613144565b6125f05760405162461bcd60e51b81526020600482015260116024820152701d5b9cdd5c1c1bdc9d195908185cdcd95d607a1b6044820152606401610556565b505b6125fd60cb82611f8b565b15612678576001600160a01b03818116600090815260cd602052604090205481851691160361262f5750600092915050565b6001600160a01b03808216600081815260cd60205260408082205490519316927f817f216d12af1855f1b81f88dc6421e26ebc7fa7eca01c58fd1035dd655b3d549190a3612685565b61268360cb82612bb0565b505b6001600160a01b03818116600081815260cd602052604080822080546001600160a01b0319169488169485179055517f7beb5803e95d997a3a41bdd114aad49420e9b4ee9fd80c96b9acb7a8bf9ee0779190a3826001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561271357600080fd5b505af1158015612727573d6000803e3d6000fd5b50505050609760009054906101000a90046001600160a01b03166001600160a01b031663054f7d9c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a29190613144565b6128065760ca546040516326009b6560e21b81526001600160a01b038381166004830152909116906398026d9490602401600060405180830381600087803b1580156127ed57600080fd5b505af1158015612801573d6000803e3d6000fd5b505050505b50600192915050565b600054610100900460ff166128365760405162461bcd60e51b8152600401610556906133a6565b6001600160a01b0381166128835760405162461bcd60e51b81526020600482015260146024820152736d61696e206973207a65726f206164647265737360601b6044820152606401610556565b61288b612bc5565b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60006128f0826001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b15806129865750816001600160a01b031660cd6000846001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015612943573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612967919061318f565b6001600160a01b03908116825260208201929092526040016000205416145b6113ae5760405162461bcd60e51b815260206004820152601860248201527f6475706c696361746520455243323020646574656374656400000000000000006044820152606401610556565b60008260000182815481106129e9576129e9613107565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612ae5576000612a206001836133f1565b8554909150600090612a34906001906133f1565b9050818114612a99576000866000018281548110612a5457612a54613107565b9060005260206000200154905080876000018481548110612a7757612a77613107565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612aaa57612aaa613404565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506113b7565b60009150506113b7565b6001600160a01b0381163b612b5c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610556565b600080516020615ebe83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b9483612bee565b600082511180612ba15750805b156120d65761161c8383612c2e565b6000611f84836001600160a01b038416612c53565b600054610100900460ff16612bec5760405162461bcd60e51b8152600401610556906133a6565b565b612bf781612aef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611f848383604051806060016040528060278152602001615ede60279139612ca2565b6000818152600183016020526040812054612c9a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556113b7565b5060006113b7565b6060600080856001600160a01b031685604051612cbf9190613240565b600060405180830381855af49150503d8060008114612cfa576040519150601f19603f3d011682016040523d82523d6000602084013e612cff565b606091505b5091509150612d1086838387612d1a565b9695505050505050565b60608315612d89578251600003612d82576001600160a01b0385163b612d825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610556565b5081612d93565b612d938383612d9b565b949350505050565b815115612dab5781518083602001fd5b8060405162461bcd60e51b81526004016105569190613000565b612aa38061341b83390190565b602080825282518282018190526000918401906040840190835b81811015612e135783516001600160a01b0316835260209384019390920191600101612dec565b509095945050505050565b6001600160a01b0381168114610e9357600080fd5b600060208284031215612e4557600080fd5b8135611f8481612e1e565b600080600060408486031215612e6557600080fd5b8335612e7081612e1e565b9250602084013567ffffffffffffffff811115612e8c57600080fd5b8401601f81018613612e9d57600080fd5b803567ffffffffffffffff811115612eb457600080fd5b8660208260051b8401011115612ec957600080fd5b939660209190910195509293505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f1957612f19612eda565b604052919050565b600067ffffffffffffffff821115612f3b57612f3b612eda565b50601f01601f191660200190565b60008060408385031215612f5c57600080fd5b8235612f6781612e1e565b9150602083013567ffffffffffffffff811115612f8357600080fd5b8301601f81018513612f9457600080fd5b8035612fa7612fa282612f21565b612ef0565b818152866020838501011115612fbc57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b83811015612ff7578181015183820152602001612fdf565b50506000910152565b602081526000825180602084015261301f816040850160208701612fdc565b601f01601f19169190910160400192915050565b602080825282516040838301528051606084018190526000929190910190829060808501905b808310156130855783516001600160a01b03168252602082019150602084019350600183019250613059565b50602086810151868303601f1901604088015280518084529082019450910191506000905b80821015612e135783516001600160a01b0316835260209384019390920191600191909101906130aa565b6001600160c01b0381168114610e9357600080fd5b6000602082840312156130fc57600080fd5b8135611f84816130d5565b634e487b7160e01b600052603260045260246000fd5b8051602080830151919081101561313e576000198160200360031b1b821691505b50919050565b60006020828403121561315657600080fd5b81518015158114611f8457600080fd5b6020808252600f908201526e676f7665726e616e6365206f6e6c7960881b604082015260600190565b6000602082840312156131a157600080fd5b8151611f8481612e1e565b6000602082840312156131be57600080fd5b8151611f84816130d5565b6000602082840312156131db57600080fd5b815167ffffffffffffffff8111156131f257600080fd5b8201601f8101841361320357600080fd5b8051613211612fa282612f21565b81815285602083850101111561322657600080fd5b613237826020830160208601612fdc565b95945050505050565b60008251613252818460208701612fdc565b9190910192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176113b7576113b76132f4565b60008261333e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156113b7576113b76132f4565b60006020828403121561336857600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561339757600080fd5b815160038110611f8457600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b818103818111156113b7576113b76132f4565b634e487b7160e01b600052603160045260246000fdfe61016060405234801561001157600080fd5b50604051612aa3380380612aa3833981016040819052610030916103b5565b6001600160a01b03821661007b5760405162461bcd60e51b815260206004820152600d60248201526c06d697373696e6720657263323609c1b60448201526064015b60405180910390fd5b806001600160c01b03166000036100d45760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206d617820747261646520766f6c756d6500000000000000006044820152606401610072565b6000826001600160a01b031663dffeadd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610114573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013891906103fb565b9050806001600160a01b031663979d7e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906103fb565b6001600160a01b03166080816001600160a01b031681525050806001600160a01b0316632f2439b16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021791906103fb565b6001600160a01b031660a0816001600160a01b031681525050806001600160a01b031663dc8af5f66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029291906103fb565b6001600160a01b031660c0816001600160a01b031681525050806001600160a01b031663656e96e16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030d91906103fb565b6001600160a01b0390811660e05283166101008190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa15801561035e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610382919061041f565b60ff1661012052506001600160c01b03166101405250610442565b6001600160a01b03811681146103b257600080fd5b50565b600080604083850312156103c857600080fd5b82516103d38161039d565b60208401519092506001600160c01b03811681146103f057600080fd5b809150509250929050565b60006020828403121561040d57600080fd5b81516104188161039d565b9392505050565b60006020828403121561043157600080fd5b815160ff8116811461041857600080fd5b60805160a05160c05160e051610100516101205161014051612590610513600039600061027a0152600061019901526000818161024b015281816103e30152818161057b0152610b46015260008181610224015261092b015260008181610306015281816107d70152818161086501528181610aa901528181610c3301528181610e990152610f28015260008181610158015281816104800152818161073d01528181610ad40152610e0a0152600081816102b00152818161099e015281816109d70152610cf201526125906000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806395acc4ae116100ad578063c59b3d6311610071578063c59b3d631461029c578063dc8af5f614610301578063efd3614c14610328578063f0f615f814610398578063f8ac93e8146103a057600080fd5b806395acc4ae1461027557806396f80ae91461029c578063979d7e86146102ab578063a035b1fe146102d2578063a3e6ba94146102da57600080fd5b806354fd4d50116100f457806354fd4d50146101cd5780635580f72a146101f4578063656e96e11461021f578063785e9e86146102465780637d1ea1371461026d57600080fd5b8063271181ec146101265780632f2439b114610153578063372500ab146101925780633cb5d37914610194575b600080fd5b61012e6103a8565b604080516001600160c01b039384168152929091166020830152015b60405180910390f35b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014a565b005b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161014a565b60408051808201825260058152640342e322e360dc1b6020820152905161014a9190611d13565b610207610202366004611d79565b6103bd565b6040516001600160c01b03909116815260200161014a565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b61012e610459565b6102077f000000000000000000000000000000000000000000000000000000000000000081565b6040516000815260200161014a565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b61012e610663565b6102e261071c565b604080516001600160c01b03909316835260208301919091520161014a565b61017a7f000000000000000000000000000000000000000000000000000000000000000081565b60005460015460025460035461035b936001600160c01b0316929165ffffffffffff80821692600160301b909204169085565b604080516001600160c01b039096168652602086019490945265ffffffffffff92831693850193909352166060830152608082015260a00161014a565b610192610921565b610192610929565b6000806103b3610663565b915091509091565b565b6040516370a0823160e01b81526001600160a01b038281166004830152600091610453917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e9190611d96565b610a50565b92915050565b604051633558aa1b60e11b8152600160048201526000908190819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636ab15436906024016040805180830381865afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190611dcb565b91509150816001600160c01b031660001415801561051157506001600160c01b0381811614155b6105525760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b60448201526064015b60405180910390fd5b806001600160c01b0316826001600160c01b0316111561057457610574611dfe565b60006105d77f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d6000803e3d6000fd5b9050806001600160c01b03166000036105f4575090939092509050565b60006105fe610a7e565b8051909150610619906001600160c01b031685846000610cb9565b6020820151909650610637906001600160c01b031684846002610cb9565b9450846001600160c01b0316866001600160c01b0316111561065b5761065b611dfe565b505050509091565b600080306001600160a01b0316637d1ea1376040518163ffffffff1660e01b81526004016040805180830381865afa9250505080156106bf575060408051601f3d908101601f191682019092526106bc91810190611dcb565b60015b610713573d8080156106ed576040519150601f19603f3d011682016040523d82523d6000602084013e6106f2565b606091505b50805160000361070157600080fd5b506000926001600160c01b0392509050565b90939092509050565b600080426103846000600101546107339190611e2a565b1115806107cf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611e3d565b60025465ffffffffffff908116911614155b8061085d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638767e6386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108579190611d96565b60035414155b806108fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c76aeb126040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611e3d565b600254600160301b900465ffffffffffff908116911614155b1561090b5761090b610cf0565b50506000546001546001600160c01b0390911691565b6103bb610cf0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635220f5106040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561098457600080fd5b505af1158015610998573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b031614610a49577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3057600080fd5b505af1158015610a44573d6000803e3d6000fd5b505050505b6000600155565b60006001600160c01b03821115610a7a5760405163f44398f560e01b815260040160405180910390fd5b5090565b6040805180820190915260008082526020820152604051635523caaf60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aa47955e906024016040805180830381865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190611f37565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc69190611f53565b9050806001600160c01b031682600001516001600160c01b031610610bfa576001600160c01b031680835260208301525090565b604051630e5f6e5360e31b815282516001600160c01b039081166004830152602084015116602482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906372fb729890604401600060405180830381865afa158015610c7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ca29190810190612144565b91509150610cb0828261101b565b94505050505090565b6000610ce561044e866001600160c01b0316866001600160c01b0316866001600160c01b031686611624565b90505b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d4b57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b50505050600080610d6e610663565b91509150816001600160c01b0316600014158015610d9557506001600160c01b0381811614155b610dd15760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b6044820152606401610549565b6040518060a0016040528060028385610dea919061229e565b610df491906122d3565b6001600160c01b031681526020014281526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611e3d565b65ffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c76aeb126040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f199190611e3d565b65ffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638767e6386040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa89190611d96565b90528051600080546001600160c01b039092166001600160c01b03199092169190911790556020810151600155604081015160028054606084015165ffffffffffff908116600160301b026bffffffffffffffffffffffff19909216931692909217919091179055608001516003555050565b60408051808201909152600080825260208201526020830151604051633558aa1b60e11b81526000600482018190529182916001600160a01b0390911690636ab15436906024016040805180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a29190611dcb565b91509150816001600160c01b03166000141580156110c957506001600160c01b0381811614155b6111045760405162461bcd60e51b815260206004820152600c60248201526b10955cc81d5b9c1c9a58d95960a21b6044820152606401610549565b60008560a001516001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190611f53565b9050806001600160c01b03168660000151602001516001600160c01b031611156111a35785516001600160c01b0382166020909101525b60008060005b8751518110156114e9578860a001516001600160a01b0316886000015182815181106111d7576111d7612302565b60200260200101516001600160a01b031603156114e1576000808960200151838151811061120757611207612302565b60200260200101516001600160a01b031663a035b1fe6040518163ffffffff1660e01b81526004016040805180830381865afa15801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190611dcb565b915091508a6101000151838151811061128a5761128a612302565b60200260200101516001600160c01b031660001480156112f257506112f08a6020015184815181106112be576112be612302565b60200260200101518c610120015185815181106112dd576112dd612302565b6020026020010151848e60c001516116d1565b155b156112fe5750506114e1565b60006113458c600001516020015160028e6101000151878151811061132557611325612302565b60200260200101516001600160c01b031661177b9092919063ffffffff16565b90508b6101200151848151811061135e5761135e612302565b60200260200101516001600160c01b0316816001600160c01b031611156113d9576113bf8c6101200151858151811061139957611399612302565b6020026020010151826113ac9190612318565b6001600160c01b038516908a6000610cb9565b6113d2906001600160c01b031687612337565b955061142f565b611419818d610120015186815181106113f4576113f4612302565b60200260200101516114069190612318565b6001600160c01b038416908b60026117b2565b61142c906001600160c01b03168761235e565b95505b5060006114578c600001516000015160008e6101000151878151811061132557611325612302565b9050600061149a828e6101200151878151811061147657611476612302565b60200260200101516114889190612318565b6001600160c01b03861690600061177b565b90508c60c001516001600160c01b0316816001600160c01b0316106114cd5760c08d01516114c89082612318565b6114d0565b60005b6114da908761229e565b9550505050505b6001016111a9565b506000821215611522576114ff61044e83612386565b88516020015161150f9190612318565b6001600160c01b0316602087015261157d565b8751602001516001600160c01b039061153d90821684611e2a565b1115611555576001600160c01b03602087015261157d565b61155e82610a50565b88516020015161156e919061229e565b6001600160c01b031660208701525b60e08801516115ac9061159990670de0b6b3a7640000906119c9565b6001600160c01b03831690866000610cb9565b8851516115b9919061229e565b6001600160c01b0390811687526020870151848216911611156115e6576001600160c01b03831660208701525b85602001516001600160c01b031686600001516001600160c01b031611156116195760208601516001600160c01b031686525b505050505092915050565b6000806116328686866119d5565b90506000836002811115611648576116486123a2565b03611654579050610ce8565b60008480611664576116646122bd565b8688099050600284600281111561167d5761167d6123a2565b0361169b57801561169657611693600183611e2a565b91505b6116c7565b60026116a86001876123b8565b6116b291906123cb565b8111156116c7576116c4600183611e2a565b91505b5095945050505050565b60006116f36116e08385611ab8565b6001600160c01b03908116908616101590565b8015610ce557506001611771866001600160a01b0316633cb5d3796040518163ffffffff1660e01b8152600401602060405180830381865afa15801561173d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176191906123df565b6001600160c01b03871690611b07565b1195945050505050565b60006117a861044e6117996001600160c01b03808716908816612402565b670de0b6b3a764000085611b15565b90505b9392505050565b60006001600160c01b03851615806117d157506001600160c01b038416155b156117de57506000610ce8565b6001600160c01b0385811614806117fd57506001600160c01b03848116145b8061180f57506001600160c01b038316155b1561182257506001600160c01b03610ce8565b6000806000611843886001600160c01b0316886001600160c01b0316611bba565b91509150856001600160c01b03168210611869576001600160c01b039350505050610ce8565b6000866001600160c01b031680611882576118826122bd565b886001600160c01b03168a6001600160c01b0316099050818111156118a8576001830392505b90819003906001600160c01b036000889003881681169088168181816118d0576118d06122bd565b0490508184816118e2576118e26122bd565b0493508182600003816118f7576118f76122bd565b04600101850293909301600284810380860282030280860282030280860282030280860282030280860282030280860282030280860282030282810297509194919089600281111561194b5761194b6123a2565b0361196257831561195d576001870196505b6119a3565b6001896002811115611976576119766123a2565b036119a35760026001600160c01b036000198c0116046001600160c01b03168411156119a3576001870196505b5050505050506001600160c01b0380168110610ce5576001600160c01b03915050610ce8565b60006117ab8284612318565b60008060006119e48686611bba565b91509150838210611a085760405163f44398f560e01b815260040160405180910390fd5b60008480611a1857611a186122bd565b868809905081811115611a2c576001830392505b908190039060008590038516808681611a4757611a476122bd565b049550808381611a5957611a596122bd565b049250808160000381611a6e57611a6e6122bd565b046001019390930291909101600285810380870282030280870282030280870282030280870282030280870282030280870282030295860290039094029390930295945050505050565b6000806001600160c01b03831615611ae457611adf6001600160c01b038516846002611be7565b611aed565b6001600160c01b035b9050806001600160c01b03166000036117ab576001610ce8565b60006117ab83836000611c1a565b600080611b2284866123cb565b90506000836002811115611b3857611b386123a2565b03611b445790506117ab565b6001836002811115611b5857611b586123a2565b03611b97576002611b6a6001866123b8565b611b7491906123cb565b611b7e8587612419565b1115611b925780611b8e8161242d565b9150505b6117a8565b611ba18486612419565b156117a85780611bb08161242d565b9695505050505050565b6000808060001984860990508385029150818103925081811015611bdf576001830392505b509250929050565b60006117a861044e611c0a670de0b6b3a76400006001600160c01b038816612402565b856001600160c01b031685611b15565b6000836001600160c01b0316600003611c35575060006117ab565b6029198360000b13611c6e576002826002811115611c5557611c556123a2565b14611c61576000611c64565b60015b60ff1690506117ab565b8260000b606013611c925760405163f44398f560e01b815260040160405180910390fd5b611c9d601284612446565b92506000611cad8460000b611cfb565b611cb890600a61254e565b905060008460000b1215611cdf57611cda856001600160c01b03168285611b15565b611cf2565b611cf2816001600160c01b038716612402565b95945050505050565b6000808212611d0a5781610453565b61045382612386565b602081526000825180602084015260005b81811015611d415760208186018101516040868401015201611d24565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611d7657600080fd5b50565b600060208284031215611d8b57600080fd5b81356117ab81611d61565b600060208284031215611da857600080fd5b5051919050565b80516001600160c01b0381168114611dc657600080fd5b919050565b60008060408385031215611dde57600080fd5b611de783611daf565b9150611df560208401611daf565b90509250929050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561045357610453611e14565b600060208284031215611e4f57600080fd5b815165ffffffffffff811681146117ab57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611e9e57611e9e611e65565b60405290565b604051610140810167ffffffffffffffff81118282101715611e9e57611e9e611e65565b604051601f8201601f1916810167ffffffffffffffff81118282101715611ef157611ef1611e65565b604052919050565b600060408284031215611f0b57600080fd5b611f13611e7b565b9050611f1e82611daf565b8152611f2c60208301611daf565b602082015292915050565b600060408284031215611f4957600080fd5b6117ab8383611ef9565b600060208284031215611f6557600080fd5b6117ab82611daf565b8051611dc681611d61565b600067ffffffffffffffff821115611f9357611f93611e65565b5060051b60200190565b600082601f830112611fae57600080fd5b8151611fc1611fbc82611f79565b611ec8565b8082825260208201915060208360051b860101925085831115611fe357600080fd5b602085015b838110156116c757611ff981611daf565b835260209283019201611fe8565b600082601f83011261201857600080fd5b8151612026611fbc82611f79565b8082825260208201915060208360051b86010192508583111561204857600080fd5b602085015b838110156116c757805161206081611d61565b83526020928301920161204d565b60006040828403121561208057600080fd5b612088611e7b565b9050815167ffffffffffffffff8111156120a157600080fd5b8201601f810184136120b257600080fd5b80516120c0611fbc82611f79565b8082825260208201915060208360051b8501019250868311156120e257600080fd5b6020840193505b8284101561210d5783516120fc81611d61565b8252602093840193909101906120e9565b8452505050602082015167ffffffffffffffff81111561212c57600080fd5b61213884828501612007565b60208301525092915050565b6000806040838503121561215757600080fd5b825167ffffffffffffffff81111561216e57600080fd5b8301610160818603121561218157600080fd5b612189611ea4565b6121938683611ef9565b81526121a160408301611f6e565b60208201526121b260608301611f6e565b60408201526121c360808301611f6e565b60608201526121d460a08301611f6e565b60808201526121e560c08301611f6e565b60a08201526121f660e08301611daf565b60c08201526122086101008301611daf565b60e082015261012082015167ffffffffffffffff81111561222857600080fd5b61223487828501611f9d565b6101008301525061014082015167ffffffffffffffff81111561225657600080fd5b61226287828501611f9d565b610120830152508093505050602083015167ffffffffffffffff81111561228857600080fd5b6122948582860161206e565b9150509250929050565b6001600160c01b03818116838216019081111561045357610453611e14565b634e487b7160e01b600052601260045260246000fd5b60006001600160c01b038316806122ec576122ec6122bd565b6001600160c01b03929092169190910492915050565b634e487b7160e01b600052603260045260246000fd5b6001600160c01b03828116828216039081111561045357610453611e14565b818103600083128015838313168383128216171561235757612357611e14565b5092915050565b808201828112600083128015821682158216171561237e5761237e611e14565b505092915050565b6000600160ff1b820161239b5761239b611e14565b5060000390565b634e487b7160e01b600052602160045260246000fd5b8181038181111561045357610453611e14565b6000826123da576123da6122bd565b500490565b6000602082840312156123f157600080fd5b815160ff811681146117ab57600080fd5b808202811582820484141761045357610453611e14565b600082612428576124286122bd565b500690565b60006001820161243f5761243f611e14565b5060010190565b600082810b9082900b03607f198112607f8213171561045357610453611e14565b6001815b60018411156124a25780850481111561248657612486611e14565b600184161561249457908102905b60019390931c92800261246b565b935093915050565b6000826124b957506001610453565b816124c657506000610453565b81600181146124dc57600281146124e657612502565b6001915050610453565b60ff8411156124f7576124f7611e14565b50506001821b610453565b5060208310610133831016604e8410600b8410161715612525575081810a610453565b6125326000198484612467565b806000190482111561254657612546611e14565b029392505050565b60006117ab83836124aa56fea2646970667358221220a42ab1cbfa9578d09ec5fdc6ca20fd54b75ac4945ff9d4ce85f2361d4dfc0bfe64736f6c634300081c0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206b29e526896a68e1168b5a870fc0a58704eab467981a8a6a2e905910ab14255964736f6c634300081c0033