0x60806040526000805460ff60a01b1916600160a01b17905534801561002357600080fd5b50600080546001600160a01b03191633178155610d1390819061004690396000f3fe60806040526004361061007f5760003560e01c80639729be471161004e5780639729be4714610176578063c3869615146101ab578063c6bbd5a7146101cb578063f2fde38b146101f357600080fd5b8063098d3228146100da57806343d726d614610103578063735de9f7146101185780638da5cb5b1461015857600080fd5b366100d557600054600160a01b900460ff166100d35760405162461bcd60e51b815260206004820152600e60248201526d7768792073656e6420626e62733f60901b60448201526064015b60405180910390fd5b005b600080fd5b3480156100e657600080fd5b506100f060001981565b6040519081526020015b60405180910390f35b34801561010f57600080fd5b506100d3610213565b34801561012457600080fd5b506101407395bf28c6502a0544c7adc154bc60d886d9a80a5c81565b6040516001600160a01b0390911681526020016100fa565b34801561016457600080fd5b506000546001600160a01b0316610140565b34801561018257600080fd5b50610196610191366004610aba565b610263565b604080519283526020830191909152016100fa565b3480156101b757600080fd5b506101966101c6366004610aef565b6105c3565b3480156101d757600080fd5b50610140733f886b1274bb2ec14e0543c51fe0f9b73c97521981565b3480156101ff57600080fd5b506100d361020e366004610b36565b6108d9565b6000546001600160a01b031633146102555760405162461bcd60e51b81526020600482015260056024820152640cae4e460f60db1b60448201526064016100ca565b6000546001600160a01b0316ff5b6040516370a0823160e01b8152306004820152600090819084906001600160a01b038216906370a0823190602401602060405180830381865afa1580156102ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d29190610b5a565b60048190556102e290869061097b565b6040805160a081018252600060808201526001600160a01b0387168152734f9a0e7fd2bf6067db6994cf12e4495df938e6e96020820152600480548284015262ffffff871660608301529151636352813560e11b81529091733f886b1274bb2ec14e0543c51fe0f9b73c9752199163c6a5026a9161036291859101610b73565b6080604051808303816000875af1158015610381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a59190610bbb565b5050506005556040516370a0823160e01b8152306004820152734f9a0e7fd2bf6067db6994cf12e4495df938e6e99060009082906370a0823190602401602060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104239190610b5a565b6000805460ff60a01b1916600160a01b17815560408051610100810182526001600160a01b038c168152734f9a0e7fd2bf6067db6994cf12e4495df938e6e9602082015262ffffff8b1691810191909152306060820152919250906080810161048e426103e8610c23565b8152600480546020830152600060408084018290526060909301819052915163414bf38960e01b81529293507395bf28c6502a0544c7adc154bc60d886d9a80a5c9263414bf38992916104e391869101610c3b565b60206040518083038185885af1158015610501573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105269190610b5a565b506040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561056e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105929190610b5a565b6000805460ff60a01b1916905590506105ab8382610ca4565b60068190556005549b909a5098505050505050505050565b6040516370a0823160e01b8152306004820152600090819085906001600160a01b038216906370a0823190602401602060405180830381865afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190610b5a565b6004819055859061064490889061097b565b6040805160a081018252600060808201526001600160a01b03898116825288166020820152600480548284015262ffffff881660608301529151636352813560e11b81529091733f886b1274bb2ec14e0543c51fe0f9b73c9752199163c6a5026a916106b291859101610b73565b6080604051808303816000875af11580156106d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f59190610bbb565b5050506005556040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107669190610b5a565b6000805460ff60a01b1916600160a01b17815560408051610100810182526001600160a01b03808e1682528c16602082015262ffffff8b169181019190915230606082015291925090608081016107bf426103e8610c23565b8152600480546020830152600060408084018290526060909301819052915163414bf38960e01b81529293507395bf28c6502a0544c7adc154bc60d886d9a80a5c9263414bf389929161081491869101610c3b565b60206040518083038185885af1158015610832573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108579190610b5a565b506000805460ff60a01b191690556040516370a0823160e01b815230600482015282906001600160a01b038616906370a0823190602401602060405180830381865afa1580156108ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cf9190610b5a565b6105ab9190610ca4565b6000546001600160a01b0316331461091b5760405162461bcd60e51b81526020600482015260056024820152640cae4e460f60db1b60448201526064016100ca565b6001600160a01b0381166109595760405162461bcd60e51b81526020600482015260056024820152640cae4e462f60db1b60448201526064016100ca565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60405163095ea7b360e01b81527395bf28c6502a0544c7adc154bc60d886d9a80a5c6004820152600019602482015282906001600160a01b0382169063095ea7b3906044016020604051808303816000875af19250505080156109fb575060408051601f3d908101601f191682019092526109f891810190610cbb565b60015b610a845760405163095ea7b360e01b81527395bf28c6502a0544c7adc154bc60d886d9a80a5c6004820152602481018390526001600160a01b0382169063095ea7b3906044016020604051808303816000875af1158015610a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a849190610cbb565b50505050565b6001600160a01b0381168114610a9f57600080fd5b50565b803562ffffff81168114610ab557600080fd5b919050565b60008060408385031215610acd57600080fd5b8235610ad881610a8a565b9150610ae660208401610aa2565b90509250929050565b600080600060608486031215610b0457600080fd5b8335610b0f81610a8a565b92506020840135610b1f81610a8a565b9150610b2d60408501610aa2565b90509250925092565b600060208284031215610b4857600080fd5b8135610b5381610a8a565b9392505050565b600060208284031215610b6c57600080fd5b5051919050565b81516001600160a01b0390811682526020808401518216908301526040808401519083015260608084015162ffffff1690830152608092830151169181019190915260a00190565b60008060008060808587031215610bd157600080fd5b845193506020850151610be381610a8a565b604086015190935063ffffffff81168114610bfd57600080fd5b6060959095015193969295505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c3657610c36610c0d565b500190565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e09283015116918101919091526101000190565b600082821015610cb657610cb6610c0d565b500390565b600060208284031215610ccd57600080fd5b81518015158114610b5357600080fdfea26469706673582212209a7601697682b29a5edc1a282eef80aa1060c9fafde5d008873a00fd8594a41364736f6c634300080e0033