0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100e8578063cfed246b14610103578063f2fde38b14610123578063fc57d4df1461013657600080fd5b806341976e091461008d5780634352fa9f146100b357806366331bba146100c8578063715018a6146100e0575b600080fd5b6100a061009b366004610512565b610149565b6040519081526020015b60405180910390f35b6100c66100c136600461060c565b6101cd565b005b6100d0600181565b60405190151581526020016100aa565b6100c66102b5565b6000546040516001600160a01b0390911681526020016100aa565b6100a0610111366004610512565b60016020526000908152604090205481565b6100c6610131366004610512565b6102c9565b6100a0610144366004610512565b610342565b600080826001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ae91906106ce565b6001600160a01b03166000908152600160205260409020549392505050565b6101d5610453565b80518251146102355760405162461bcd60e51b815260206004820152602160248201527f746f6b656e7320616e6420707269636573206c656e677468206d69736d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b60005b82518110156102b057818181518110610253576102536106eb565b602002602001015160016000858481518110610271576102716106eb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080806102a890610717565b915050610238565b505050565b6102bd610453565b6102c760006104ad565b565b6102d1610453565b6001600160a01b0381166103365760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161022c565b61033f816104ad565b50565b600080826001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a791906106ce565b90506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040d9190610730565b60ff16905061041d816012610753565b61042890600a610850565b6001600160a01b03831660009081526001602052604090205461044b919061085c565b949350505050565b6000546001600160a01b031633146102c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161022c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461033f57600080fd5b60006020828403121561052457600080fd5b813561052f816104fd565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561057557610575610536565b604052919050565b600067ffffffffffffffff82111561059757610597610536565b5060051b60200190565b600082601f8301126105b257600080fd5b813560206105c76105c28361057d565b61054c565b82815260059290921b840181019181810190868411156105e657600080fd5b8286015b8481101561060157803583529183019183016105ea565b509695505050505050565b6000806040838503121561061f57600080fd5b823567ffffffffffffffff8082111561063757600080fd5b818501915085601f83011261064b57600080fd5b8135602061065b6105c28361057d565b82815260059290921b8401810191818101908984111561067a57600080fd5b948201945b838610156106a1578535610692816104fd565b8252948201949082019061067f565b965050860135925050808211156106b757600080fd5b506106c4858286016105a1565b9150509250929050565b6000602082840312156106e057600080fd5b815161052f816104fd565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161072957610729610701565b5060010190565b60006020828403121561074257600080fd5b815160ff8116811461052f57600080fd5b8181038181111561076657610766610701565b92915050565b600181815b808511156107a757816000190482111561078d5761078d610701565b8085161561079a57918102915b93841c9390800290610771565b509250929050565b6000826107be57506001610766565b816107cb57506000610766565b81600181146107e157600281146107eb57610807565b6001915050610766565b60ff8411156107fc576107fc610701565b50506001821b610766565b5060208310610133831016604e8410600b841016171561082a575081810a610766565b610834838361076c565b806000190482111561084857610848610701565b029392505050565b600061052f83836107af565b600081600019048311821515161561087657610876610701565b50029056fea2646970667358221220690b25e0714a36d72dcb9746418d72f893aa13d20d8d556b78bc4564d72c51d564736f6c63430008100033