0x608060405234801561001057600080fd5b50600436106101005760003560e01c806379cc679011610097578063983b2d5611610066578063983b2d56146102e6578063a9059cbb1461030c578063aa271e1a14610338578063f2fde38b1461035e57610100565b806379cc6790146102865780638da5cb5b146102b25780638f32d59b146102d657806395d89b41146102de57610100565b8063313ce567116100d3578063313ce5671461020e57806340c10f191461022c57806370a0823114610258578063715018a61461027e57610100565b806306fdde031461010557806318160ddd1461018257806323b872dd1461019c5780633092afd5146101e6575b600080fd5b61010d610384565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018a61040f565b60408051918252519081900360200190f35b6101d2600480360360608110156101b257600080fd5b506001600160a01b03813581169160208101359091169060400135610415565b604080519115158252519081900360200190f35b61020c600480360360208110156101fc57600080fd5b50356001600160a01b03166105c0565b005b610216610628565b6040805160ff9092168252519081900360200190f35b6101d26004803603604081101561024257600080fd5b506001600160a01b038135169060200135610631565b61018a6004803603602081101561026e57600080fd5b50356001600160a01b031661075a565b61020c61076c565b6101d26004803603604081101561029c57600080fd5b506001600160a01b0381351690602001356107fd565b6102ba610946565b604080516001600160a01b039092168252519081900360200190f35b6101d2610955565b61010d610979565b61020c600480360360208110156102fc57600080fd5b50356001600160a01b03166109d4565b6101d26004803603604081101561032257600080fd5b506001600160a01b038135169060200135610a8f565b6101d26004803603602081101561034e57600080fd5b50356001600160a01b0316610aa3565b61020c6004803603602081101561037457600080fd5b50356001600160a01b0316610ad8565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b820191906000526020600020905b8154815290600101906020018083116103ea57829003601f168201915b505050505081565b60065481565b600061042033610aa3565b610469576040805162461bcd60e51b815260206004820152601560248201527422a921991820bbb0bc9d103737ba1036b4b73a32b960591b604482015290519081900360640190fd5b6001600160a01b0384166104ae5760405162461bcd60e51b8152600401808060200182810382526029815260200180610dd26029913960400191505060405180910390fd5b6001600160a01b0383166104f35760405162461bcd60e51b8152600401808060200182810382526027815260200180610d8a6027913960400191505060405180910390fd5b610530826040518060600160405280602a8152602001610e41602a91396001600160a01b0387166000908152600560205260409020549190610b2b565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461055f9083610bc2565b6001600160a01b0380851660008181526005602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b6105c8610955565b610607576040805162461bcd60e51b81526020600482018190526024820152600080516020610e21833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b60045460ff1681565b600061063c33610aa3565b610685576040805162461bcd60e51b815260206004820152601560248201527422a921991820bbb0bc9d103737ba1036b4b73a32b960591b604482015290519081900360640190fd5b6001600160a01b0383166106ca5760405162461bcd60e51b8152600401808060200182810382526023815260200180610e6b6023913960400191505060405180910390fd5b6006546106d79083610bc2565b6006556001600160a01b0383166000908152600560205260409020546106fd9083610bc2565b6001600160a01b03841660008181526005602090815260408083209490945583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60056020526000908152604090205481565b610774610955565b6107b3576040805162461bcd60e51b81526020600482018190526024820152600080516020610e21833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061080833610aa3565b610851576040805162461bcd60e51b815260206004820152601560248201527422a921991820bbb0bc9d103737ba1036b4b73a32b960591b604482015290519081900360640190fd5b6001600160a01b0383166108965760405162461bcd60e51b8152600401808060200182810382526025815260200180610d656025913960400191505060405180910390fd5b6108d382604051806060016040528060268152602001610dfb602691396001600160a01b0386166000908152600560205260409020549190610b2b565b6001600160a01b0384166000908152600560205260409020556006546108f99083610c1c565b6006556040805183815290516000916001600160a01b038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6000546001600160a01b031690565b600080546001600160a01b031661096a610c5e565b6001600160a01b031614905090565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b6109dc610955565b610a1b576040805162461bcd60e51b81526020600482018190526024820152600080516020610e21833981519152604482015290519081900360640190fd5b610a2d816001600160a01b0316610c62565b610a685760405162461bcd60e51b8152600401808060200182810382526021815260200180610db16021913960400191505060405180910390fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610a9c338484610415565b9392505050565b6001600160a01b038116600090815260016020819052604082205460ff1615151480610ad25750610ad2610955565b92915050565b610ae0610955565b610b1f576040805162461bcd60e51b81526020600482018190526024820152600080516020610e21833981519152604482015290519081900360640190fd5b610b2881610c9e565b50565b60008184841115610bba5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b7f578181015183820152602001610b67565b50505050905090810190601f168015610bac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610a9c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b2b565b3390565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c9657508115155b949350505050565b6001600160a01b038116610ce35760405162461bcd60e51b8152600401808060200182810382526026815260200180610d3f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433230417761793a206275726e2066726f6d20746865207a65726f20616464726573734552433230417761793a207472616e7366657220746f20746865207a65726f20616464726573734d696e746572526f6c653a206d696e7465722063616e206f6e6c792062652043414552433230417761793a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230417761793a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724552433230417761793a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433230417761793a206d696e7420746f20746865207a65726f2061646472657373a2646970667358221220b4f588c8b4e7899aad6670bc3b31c5ddb5609cb03d8564aad884e5b1c2aded4364736f6c634300060c0033