0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610cc68061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063d0ff7a8111610066578063d0ff7a81146100e7578063e84ed618146100fa578063f06fc1031461010d578063f2fde38b14610120578063f53ec9101461013357600080fd5b806304927a5c146100985780630da7fadf146100ad578063715018a6146100c05780638da5cb5b146100c8575b600080fd5b6100ab6100a6366004610b01565b610146565b005b6100ab6100bb366004610b01565b6102f8565b6100ab61045f565b600054604080516001600160a01b039092168252519081900360200190f35b6100ab6100f5366004610b01565b610495565b6100ab610108366004610b01565b610617565b6100ab61011b366004610b01565b61083f565b6100ab61012e366004610b36565b610950565b6100ab610141366004610b01565b6109eb565b6000546001600160a01b031633146101795760405162461bcd60e51b815260040161017090610b5a565b60405180910390fd5b604051630468d16d60e41b8152600481018390526000906001600160a01b0385169063468d16d090602401600060405180830381865afa1580156101c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101e99190810190610bb5565b905060008160008151811061020057610200610c7a565b6020026020010151905060008260018151811061021f5761021f610c7a565b6020908102919091010151604051633e04836560e01b815260048101869052600060248201529091506001600160a01b03831690633e04836590604401600060405180830381600087803b15801561027657600080fd5b505af115801561028a573d6000803e3d6000fd5b5050604051633e04836560e01b815260048101879052600060248201526001600160a01b0384169250633e04836591506044015b600060405180830381600087803b1580156102d857600080fd5b505af11580156102ec573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b031633146103225760405162461bcd60e51b815260040161017090610b5a565b604051630468d16d60e41b8152600481018390526000906001600160a01b0385169063468d16d090602401600060405180830381865afa15801561036a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103929190810190610bb5565b90506000816000815181106103a9576103a9610c7a565b602002602001015190506000826001815181106103c8576103c8610c7a565b60200260200101519050816001600160a01b0316636164e45d856040518263ffffffff1660e01b815260040161040091815260200190565b600060405180830381600087803b15801561041a57600080fd5b505af115801561042e573d6000803e3d6000fd5b5050604051636164e45d60e01b8152600481018790526001600160a01b0384169250636164e45d91506024016102be565b6000546001600160a01b031633146104895760405162461bcd60e51b815260040161017090610b5a565b6104936000610a9c565b565b6000546001600160a01b031633146104bf5760405162461bcd60e51b815260040161017090610b5a565b604051630468d16d60e41b8152600481018390526000906001600160a01b0385169063468d16d090602401600060405180830381865afa158015610507573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261052f9190810190610bb5565b905060008160018151811061054657610546610c7a565b60200260200101519050806001600160a01b0316636164e45d846040518263ffffffff1660e01b815260040161057e91815260200190565b600060405180830381600087803b15801561059857600080fd5b505af11580156105ac573d6000803e3d6000fd5b50506040516329322e0560e01b8152600481018690523360248201526001600160a01b03841692506329322e059150604401600060405180830381600087803b1580156105f857600080fd5b505af115801561060c573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146106415760405162461bcd60e51b815260040161017090610b5a565b604051630468d16d60e41b8152600481018390526000906001600160a01b0385169063468d16d090602401600060405180830381865afa158015610689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b19190810190610bb5565b90506000816000815181106106c8576106c8610c7a565b602002602001015190506000826001815181106106e7576106e7610c7a565b60200260200101519050816001600160a01b0316636164e45d856040518263ffffffff1660e01b815260040161071f91815260200190565b600060405180830381600087803b15801561073957600080fd5b505af115801561074d573d6000803e3d6000fd5b5050604051636164e45d60e01b8152600481018790526001600160a01b0384169250636164e45d9150602401600060405180830381600087803b15801561079357600080fd5b505af11580156107a7573d6000803e3d6000fd5b50506040516329322e0560e01b8152600481018790523360248201526001600160a01b03851692506329322e0591506044015b600060405180830381600087803b1580156107f457600080fd5b505af1158015610808573d6000803e3d6000fd5b50506040516329322e0560e01b8152600481018790523360248201526001600160a01b03841692506329322e0591506044016102be565b6000546001600160a01b031633146108695760405162461bcd60e51b815260040161017090610b5a565b604051630468d16d60e41b8152600481018390526000906001600160a01b0385169063468d16d090602401600060405180830381865afa1580156108b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108d99190810190610bb5565b90506000816000815181106108f0576108f0610c7a565b6020026020010151905060008260018151811061090f5761090f610c7a565b60209081029190910101516040516329322e0560e01b8152600481018690523360248201529091506001600160a01b038316906329322e05906044016107da565b6000546001600160a01b0316331461097a5760405162461bcd60e51b815260040161017090610b5a565b6001600160a01b0381166109df5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610170565b6109e881610a9c565b50565b6000546001600160a01b03163314610a155760405162461bcd60e51b815260040161017090610b5a565b604051630468d16d60e41b8152600481018390526000906001600160a01b0385169063468d16d090602401600060405180830381865afa158015610a5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a859190810190610bb5565b905060008160008151811061054657610546610c7a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146109e857600080fd5b600080600060608486031215610b1657600080fd5b8335610b2181610aec565b95602085013595506040909401359392505050565b600060208284031215610b4857600080fd5b8135610b5381610aec565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b8051610bb081610aec565b919050565b60006020808385031215610bc857600080fd5b825167ffffffffffffffff80821115610be057600080fd5b818501915085601f830112610bf457600080fd5b815181811115610c0657610c06610b8f565b8060051b604051601f19603f83011681018181108582111715610c2b57610c2b610b8f565b604052918252848201925083810185019188831115610c4957600080fd5b938501935b82851015610c6e57610c5f85610ba5565b84529385019392850192610c4e565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209fe1757fd9ee5e2f004cca17cfb9a11e68ecadd15ff4af8e26c301f8c82f77b764736f6c634300080f0033