60806040526004805460ff191690553480156200001b57600080fd5b50600180546001600160a01b0319163317905560408051808201909152600e8082527f4465782d547261646520436f696e0000000000000000000000000000000000006020909201918252620000749160059162000143565b506040805180820190915260038082527f44584300000000000000000000000000000000000000000000000000000000006020909201918252620000bb9160069162000143565b506007805460ff191660121790556a115eec47f6cf7e35000000600081815560048054336101008102610100600160a81b03199092169190911790915580825260026020908152604080842085905580519485525191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3620001e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018657805160ff1916838001178555620001b6565b82800160010185558215620001b6579182015b82811115620001b657825182559160200191906001019062000199565b50620001c4929150620001c8565b5090565b620001e591905b80821115620001c45760008155600101620001cf565b90565b610f9d80620001f86000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638456cb59116100b8578063a9059cbb1161007c578063a9059cbb14610381578063d3d38193146103ad578063d73dd623146103d3578063dd62ed3e146103ff578063e9b2f0ad1461042d578063f2fde38b1461045957610142565b80638456cb59146103175780638da5cb5b1461031f57806395d89b41146103275780639f2cfaf11461032f578063a4df6c6a1461035557610142565b80633f4ba83a1161010a5780633f4ba83a146102725780634d853ee51461027c5780635c975abb146102a057806366188463146102a85780636d1b229d146102d457806370a08231146102f157610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e578063313ce56714610254575b600080fd5b61014f61047f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561050d565b604080519115158252519081900360200190f35b61020c61054b565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b03813581169160208101359091169060400135610551565b61025c610591565b6040805160ff9092168252519081900360200190f35b61027a61059a565b005b6102846105f5565b604080516001600160a01b039092168252519081900360200190f35b6101f0610609565b6101f0600480360360408110156102be57600080fd5b506001600160a01b038135169060200135610612565b61027a600480360360208110156102ea57600080fd5b5035610649565b61020c6004803603602081101561030757600080fd5b50356001600160a01b03166106f5565b61027a61071e565b610284610797565b61014f6107a6565b61020c6004803603602081101561034557600080fd5b50356001600160a01b0316610801565b61027a6004803603604081101561036b57600080fd5b506001600160a01b03813516906020013561081c565b6101f06004803603604081101561039757600080fd5b506001600160a01b0381351690602001356108b8565b61020c600480360360208110156103c357600080fd5b50356001600160a01b03166108ef565b6101f0600480360360408110156103e957600080fd5b506001600160a01b03813516906020013561090a565b61020c6004803603604081101561041557600080fd5b506001600160a01b0381358116916020013516610941565b61027a6004803603604081101561044357600080fd5b506001600160a01b03813516906020013561096c565b61027a6004803603602081101561046f57600080fd5b50356001600160a01b0316610a08565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105055780601f106104da57610100808354040283529160200191610505565b820191906000526020600020905b8154815290600101906020018083116104e857829003601f168201915b505050505081565b60045460009060ff161580610531575060045461010090046001600160a01b031633145b61053a57600080fd5b6105448383610a8e565b9392505050565b60005481565b60045460009060ff161580610575575060045461010090046001600160a01b031633145b61057e57600080fd5b610589848484610b2e565b949350505050565b60075460ff1681565b6001546001600160a01b031633146105b157600080fd5b60045460ff166105c057600080fd5b6004805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60045461010090046001600160a01b031681565b60045460ff1681565b60045460009060ff161580610636575060045461010090046001600160a01b031633145b61063f57600080fd5b6105448383610cc8565b6001546001600160a01b0316331461066057600080fd5b8061066a336106f5565b101561067557600080fd5b33600090815260026020526040902054610695908263ffffffff610db816565b33600090815260026020526040812091909155546106b9908263ffffffff610db816565b60005560408051828152905133917ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6919081900360200190a250565b600061071861070383610801565b61070c846108ef565b9063ffffffff610db816565b92915050565b6001546001600160a01b0316331461073557600080fd5b60045460ff161580610756575060045461010090046001600160a01b031633145b61075f57600080fd5b6004805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6001546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105055780601f106104da57610100808354040283529160200191610505565b6001600160a01b031660009081526008602052604090205490565b6001546001600160a01b0316331461083357600080fd5b61083c826106f5565b81111561084857600080fd5b600061085383610801565b90506000610867828463ffffffff610dca16565b90506108738482610dd9565b6040805184815290516001600160a01b038616917f2303912415a23c08c0cbb3a0b2b2813870ad5a2fd7b18c6d9da7d0086d9c188e919081900360200190a250505050565b60045460009060ff1615806108dc575060045461010090046001600160a01b031633145b6108e557600080fd5b6105448383610df5565b6001600160a01b031660009081526002602052604090205490565b60045460009060ff16158061092e575060045461010090046001600160a01b031633145b61093757600080fd5b6105448383610ecf565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6001546001600160a01b0316331461098357600080fd5b61098c82610801565b81111561099857600080fd5b60006109a383610801565b905060006109b7828463ffffffff610db816565b90506109c38482610dd9565b6040805184815290516001600160a01b038616917f25f6369ffb8611a066eafc897e56f4f4d2b8fc713cca586bd93e9b1af04a6cc0919081900360200190a250505050565b6001546001600160a01b03163314610a1f57600080fd5b6001600160a01b038116610a3257600080fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000811580610abe57503360009081526003602090815260408083206001600160a01b0387168452909152902054155b610ac757600080fd5b3360008181526003602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60006001600160a01b038316610b4357600080fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902054821115610b7357600080fd5b81610b7d856106f5565b1015610b8857600080fd5b6001600160a01b038316600090815260026020526040902054610bb1818463ffffffff610dca16565b11610bbb57600080fd5b6001600160a01b038416600090815260026020526040902054610be4908363ffffffff610db816565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610c19908363ffffffff610dca16565b6001600160a01b038085166000908152600260209081526040808320949094559187168152600382528281203382529091522054610c5d908363ffffffff610db816565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205480831115610d1d573360009081526003602090815260408083206001600160a01b0388168452909152812055610d52565b610d2d818463ffffffff610db816565b3360009081526003602090815260408083206001600160a01b03891684529091529020555b3360008181526003602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600082821115610dc457fe5b50900390565b60008282018381101561054457fe5b6001600160a01b03909116600090815260086020526040902055565b60006001600160a01b038316610e0a57600080fd5b610e13336106f5565b821115610e1f57600080fd5b33600090815260026020526040902054610e3f908363ffffffff610db816565b33600090815260026020526040808220929092556001600160a01b03851681522054610e71908363ffffffff610dca16565b6001600160a01b0384166000818152600260209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054610f03908363ffffffff610dca16565b3360008181526003602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060019291505056fea265627a7a7231582056ac9d3c37cad45a62dc7c20af42ef495fe27dbeb9d9489b08059dbe2a8dd27f64736f6c634300050b0032