0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610c398061007e6000396000f3fe60806040526004361061006c5760003560e01c80630fbe133c14610075578063360d0fad146100885780633ccfd60b146100be5780636e9ebc81146100d3578063715018a6146100e65780638da5cb5b146100fb5780639e281a9814610110578063f2fde38b1461013057005b3661007357005b005b6100736100833660046109b9565b610150565b34801561009457600080fd5b506100a86100a3366004610a0b565b610215565b6040516100b59190610a35565b60405180910390f35b3480156100ca57600080fd5b50610073610233565b6100736100e1366004610a49565b6102a8565b3480156100f257600080fd5b50610073610366565b34801561010757600080fd5b506100a86103a1565b34801561011c57600080fd5b5061007361012b366004610a0b565b6103b0565b34801561013c57600080fd5b5061007361014b366004610aa2565b6103fb565b6000610164846001600160a01b031661049b565b905034158061017257508115155b6101975760405162461bcd60e51b815260040161018e90610abd565b60405180910390fd5b81156101ea576101e883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050506001600160a01b03841691905034610538565b505b600080516020610bbb833981519152816040516102079190610a35565b60405180910390a150505050565b600061022a6001600160a01b03841683610568565b90505b92915050565b3361023c6103a1565b6001600160a01b0316146102625760405162461bcd60e51b815260040161018e90610af0565b600061026c6103a1565b6040519091506001600160a01b038216904780156108fc02916000818181858888f193505050501580156102a4573d6000803e3d6000fd5b5050565b60006102bd6001600160a01b038616856105ce565b90503415806102cb57508115155b6102e75760405162461bcd60e51b815260040161018e90610abd565b811561033a5761033883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050506001600160a01b03841691905034610538565b505b600080516020610bbb833981519152816040516103579190610a35565b60405180910390a15050505050565b3361036f6103a1565b6001600160a01b0316146103955760405162461bcd60e51b815260040161018e90610af0565b61039f6000610668565b565b6000546001600160a01b031690565b336103b96103a1565b6001600160a01b0316146103df5760405162461bcd60e51b815260040161018e90610af0565b6102a46103ea6103a1565b6001600160a01b03841690836106b8565b336104046103a1565b6001600160a01b03161461042a5760405162461bcd60e51b815260040161018e90610af0565b6001600160a01b03811661048f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161018e565b61049881610668565b50565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b0381166105335760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015260640161018e565b919050565b606061055e848484604051806060016040528060298152602001610bdb6029913961070f565b90505b9392505050565b600061022a838330604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b8152606093841b60148201526f5af43d82803e903d91602b57fd5bf3ff60801b6028820152921b6038830152604c8201526037808220606c830152605591012090565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528360601b60148201526e5af43d82803e903d91602b57fd5bf360881b6028820152826037826000f59150506001600160a01b03811661022d5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161018e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261070a908490610840565b505050565b6060824710156107705760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161018e565b6001600160a01b0385163b6107c75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161018e565b600080866001600160a01b031685876040516107e39190610b49565b60006040518083038185875af1925050503d8060008114610820576040519150601f19603f3d011682016040523d82523d6000602084013e610825565b606091505b5091509150610835828286610912565b979650505050505050565b6000610895826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661094b9092919063ffffffff16565b80519091501561070a57808060200190518101906108b39190610b65565b61070a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161018e565b60608315610921575081610561565b8251156109315782518084602001fd5b8160405162461bcd60e51b815260040161018e9190610b87565b606061055e848460008561070f565b80356001600160a01b038116811461053357600080fd5b60008083601f84011261098357600080fd5b5081356001600160401b0381111561099a57600080fd5b6020830191508360208285010111156109b257600080fd5b9250929050565b6000806000604084860312156109ce57600080fd5b6109d78461095a565b925060208401356001600160401b038111156109f257600080fd5b6109fe86828701610971565b9497909650939450505050565b60008060408385031215610a1e57600080fd5b610a278361095a565b946020939093013593505050565b6001600160a01b0391909116815260200190565b60008060008060608587031215610a5f57600080fd5b610a688561095a565b93506020850135925060408501356001600160401b03811115610a8a57600080fd5b610a9687828801610971565b95989497509550505050565b600060208284031215610ab457600080fd5b61022a8261095a565b6020808252601990820152781354d18e881c1c99599d5b99081dda5d1a1bdd5d081a5b9a5d603a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60005b83811015610b40578181015183820152602001610b28565b50506000910152565b60008251610b5b818460208701610b25565b9190910192915050565b600060208284031215610b7757600080fd5b8151801515811461056157600080fd5b6020815260008251806020840152610ba6816040850160208701610b25565b601f01601f1916919091016040019291505056fe43cf09a8cc603b25e23c8056f0293ab8c77ce27a9ac3f196c1546dd570a9dd13416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212201c24b54f63fe0a195177aee6aa997a2ed76661ea6560dc986552fa8652900af864736f6c63430008110033