0x6080604052600060025534801561001557600080fd5b50600080546001600160a01b03191633179055610ae9806100376000396000f3fe6080604052600436106100865760003560e01c806351f1b9391161005957806351f1b93914610119578063880cdc311461015f578063a25983e514610181578063a461220814610194578063bbcaac38146101b457600080fd5b8063191655871461008b57806322759098146100c05780632b129518146100ee5780633ccfd60b14610104575b600080fd5b34801561009757600080fd5b506100ab6100a63660046109b6565b6101d4565b60405190151581526020015b60405180910390f35b3480156100cc57600080fd5b506100e06100db3660046109d8565b61036f565b6040519081526020016100b7565b3480156100fa57600080fd5b506100e060025481565b34801561011057600080fd5b506100ab61039c565b34801561012557600080fd5b506100e06101343660046109d8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561016b57600080fd5b5061017f61017a3660046109b6565b61040e565b005b6100ab61018f366004610a0b565b610447565b3480156101a057600080fd5b5061017f6101af366004610a3e565b6107ef565b3480156101c057600080fd5b5061017f6101cf3660046109b6565b610841565b3360009081526003602090815260408083206001600160a01b03851684529091528120548061025c5760405162461bcd60e51b815260206004820152602960248201527f546f6b656e4c6f636b3a204e6f20746f6b656e7320617661696c61626c6520746044820152686f2072656c6561736560b81b60648201526084015b60405180910390fd5b3360009081526004602090815260408083206001600160a01b038716845290915290205461028957600080fd5b3360009081526004602090815260408083206001600160a01b03871684529091529020544210156103145760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4c6f636b3a20546f6b656e73206e6f742079657420617661696c6160448201526e626c6520666f722072656c6561736560881b6064820152608401610253565b61031d8361087a565b604080516001600160a01b03851681523360208201529081018290527f3737f2a73c794dafe53d8aeea06810a9ebcf7167401b259406960e088e03f8309060600160405180910390a150600192915050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b600080546001600160a01b031633146103b457600080fd5b600080546040516001600160a01b039091169147919081818185875af1925050503d8060008114610401576040519150601f19603f3d011682016040523d82523d6000602084013e610406565b606091505b509092915050565b6000546001600160a01b0316331461042557600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60004282116104af5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4c6f636b3a2072656c656173652074696d65206973206265666f7260448201526d652063757272656e742074696d6560901b6064820152608401610253565b604051636eb1769f60e11b8152336004820152306024820152849084906001600160a01b0383169063dd62ed3e90604401602060405180830381865afa1580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105219190610a57565b10156105a55760405162461bcd60e51b815260206004820152604760248201527f546f6b656e4c6f636b3a20496e73756666696369656e7420616c6c6f77616e6360448201527f6520746f206c6f636b20746865207265717569726564206e756d626572206f6660648201526620746f6b656e7360c81b608482015260a401610253565b3360009081526004602090815260408083206001600160a01b038916845290915290205483116106485760405162461bcd60e51b815260206004820152604260248201527f546f6b656e4c6f636b3a2043616e6e6f7420746f6b656e7320666f72206c657360448201527f732074696d65207468616e20616c7265616479206578697374696e67206c6f636064820152616b7360f01b608482015260a401610253565b60025434146106a75760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4c6f636b3a20496e73756666696369656e742066756e647320746f604482015264206c6f636b60d81b6064820152608401610253565b6001546001600160a01b031615610711576001546002546040516000926001600160a01b031691908381818185875af1925050503d8060008114610707576040519150601f19603f3d011682016040523d82523d6000602084013e61070c565b606091505b505050505b6040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038216906323b872dd906064016020604051808303816000875af1158015610764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190610a70565b50610794858585610934565b604080516001600160a01b0387168152336020820152908101849052606081018590527fc8b76441f0c994977de3f73de32b3573a68b94e5d786ffd899638438754c9de99060800160405180910390a1506001949350505050565b6000546001600160a01b0316331461080657600080fd5b60028190556040518181527f0917298b55b05e8453cf524849d5e0b262045c4bf4d9c4fc71cddf342788e3f29060200160405180910390a150565b6000546001600160a01b0316331461085857600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03861680855292529182902054915163a9059cbb60e01b8152600481019390935260248301829052909163a9059cbb906044016020604051808303816000875af11580156108e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109099190610a70565b50503360009081526003602090815260408083206001600160a01b0394909416835292905290812055565b3360009081526003602090815260408083206001600160a01b038716845290915281208054849290610967908490610a92565b90915550503360009081526004602090815260408083206001600160a01b03969096168352949052929092209190915550565b80356001600160a01b03811681146109b157600080fd5b919050565b6000602082840312156109c857600080fd5b6109d18261099a565b9392505050565b600080604083850312156109eb57600080fd5b6109f48361099a565b9150610a026020840161099a565b90509250929050565b600080600060608486031215610a2057600080fd5b610a298461099a565b95602085013595506040909401359392505050565b600060208284031215610a5057600080fd5b5035919050565b600060208284031215610a6957600080fd5b5051919050565b600060208284031215610a8257600080fd5b815180151581146109d157600080fd5b8082018082111561039657634e487b7160e01b600052601160045260246000fdfea264697066735822122048cb7a8b02bdeaa94cba8a8cbcd3f5d2489f8ae0594999167fd2f250d1649a2e64736f6c63430008130033