60806040526003805460ff60a01b1916905534801561001d57600080fd5b506b204fce5e3e25026110000000600255600380546001600160a01b031916736d881594c2638e21ef8be440d341aece3c81875f17908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600254600380546001600160a01b03908116600090815260208181526040808320869055935484519586529351939092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3610eff806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610126578063a457c2d714610332578063a9059cbb1461035e578063dd62ed3e1461038a578063f2fde38b146103b857610121565b806370a08231146102ac57806379cc6790146102d25780638456cb59146102fe5780638da5cb5b146103065780638f32d59b1461032a57610121565b8063313ce567116100f4578063313ce5671461023357806339509351146102515780633f4ba83a1461027d57806342966c68146102875780635c975abb146102a457610121565b806306fdde0314610126578063095ea7b3146101a357806318160ddd146101e357806323b872dd146101fd575b600080fd5b61012e6103de565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101cf600480360360408110156101b957600080fd5b506001600160a01b0381351690602001356103ff565b604080519115158252519081900360200190f35b6101eb61045c565b60408051918252519081900360200190f35b6101cf6004803603606081101561021357600080fd5b506001600160a01b03813581169160208101359091169060400135610462565b61023b6104c1565b6040805160ff9092168252519081900360200190f35b6101cf6004803603604081101561026757600080fd5b506001600160a01b0381351690602001356104c6565b61028561051c565b005b6102856004803603602081101561029d57600080fd5b50356105df565b6101cf61062f565b6101eb600480360360208110156102c257600080fd5b50356001600160a01b031661063f565b610285600480360360408110156102e857600080fd5b506001600160a01b03813516906020013561065a565b6102856106ab565b61030e610775565b604080516001600160a01b039092168252519081900360200190f35b6101cf610784565b6101cf6004803603604081101561034857600080fd5b506001600160a01b038135169060200135610795565b6101cf6004803603604081101561037457600080fd5b506001600160a01b0381351690602001356107eb565b6101eb600480360360408110156103a057600080fd5b506001600160a01b0381358116916020013516610841565b610285600480360360208110156103ce57600080fd5b50356001600160a01b031661086c565b604051806040016040528060058152602001644c55434b5960d81b81525081565b600354600090600160a01b900460ff161561044b5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e59602e913960400191505060405180910390fd5b61045583836108b8565b9392505050565b60025490565b600354600090600160a01b900460ff16156104ae5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e59602e913960400191505060405180910390fd5b6104b98484846108ce565b949350505050565b601281565b600354600090600160a01b900460ff16156105125760405162461bcd60e51b815260040180806020018281038252602e815260200180610e59602e913960400191505060405180910390fd5b6104558383610925565b610524610784565b61055f5760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b600354600160a01b900460ff166105a75760405162461bcd60e51b815260040180806020018281038252602a815260200180610e2f602a913960400191505060405180910390fd5b6003805460ff60a01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6105e7610784565b6106225760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b61062c3382610961565b50565b600354600160a01b900460ff1681565b6001600160a01b031660009081526020819052604090205490565b610662610784565b61069d5760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b6106a78282610a43565b5050565b6106b3610784565b6106ee5760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b600354600160a01b900460ff16156107375760405162461bcd60e51b815260040180806020018281038252602e815260200180610e59602e913960400191505060405180910390fd5b6003805460ff60a01b1916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b600354600090600160a01b900460ff16156107e15760405162461bcd60e51b815260040180806020018281038252602e815260200180610e59602e913960400191505060405180910390fd5b6104558383610a88565b600354600090600160a01b900460ff16156108375760405162461bcd60e51b815260040180806020018281038252602e815260200180610e59602e913960400191505060405180910390fd5b6104558383610ac4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610874610784565b6108af5760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b61062c81610ad1565b60006108c5338484610b72565b50600192915050565b60006108db848484610c5e565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461091b918691610916908663ffffffff610d5b16565b610b72565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108c5918590610916908663ffffffff610d7016565b6001600160a01b0382166109a65760405162461bcd60e51b8152600401808060200182810382526029815260200180610dc66029913960400191505060405180910390fd5b6001600160a01b0382166000908152602081905260409020546109cf908263ffffffff610d5b16565b6001600160a01b0383166000908152602081905260409020556002546109fb908263ffffffff610d5b16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b610a4d8282610961565b6001600160a01b0382166000908152600160209081526040808320338085529252909120546106a7918491610916908563ffffffff610d5b16565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108c5918590610916908663ffffffff610d5b16565b60006108c5338484610c5e565b6001600160a01b038116610b165760405162461bcd60e51b8152600401808060200182810382526040815260200180610def6040913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610bb75760405162461bcd60e51b8152600401808060200182810382526022815260200180610d836022913960400191505060405180910390fd5b6001600160a01b038316610bfc5760405162461bcd60e51b8152600401808060200182810382526021815260200180610da56021913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216610ca35760405162461bcd60e51b8152600401808060200182810382526023815260200180610e876023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610ccc908263ffffffff610d5b16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610d01908263ffffffff610d7016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610d6a57600080fd5b50900390565b60008282018381101561045557600080fdfe43616e6e6f7420617070726f766520746f20746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f20616464726573735374616e64617264546f6b656e3a206275726e2066726f6d20746865207a65726f20616464726573734f776e61626c653a2063616e6e6f74207472616e7366657220636f6e74726f6c206f662074686520636f6e747261637420746f207a65726f20616464726573735061757361626c653a206f6e6c79207768656e2074686520636f6e7472616374206973207061757365645061757361626c653a206f6e6c79207768656e2074686520636f6e7472616374206973206e6f742070617573656443616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a207468652063616c6c6572206d757374206265206f776e6572a265627a7a72315820f4c47bf0c5d595ce07dc349a6ec97611a754482d45a97f31240c0423ca7054c664736f6c634300050f0032