0x6080604052600436106100c65760003560e01c8063715018a61161007f578063a9059cbb11610059578063a9059cbb14610245578063da0ebc6214610265578063dd62ed3e1461027b578063f8f3c5a9146102c157600080fd5b8063715018a6146101d95780638da5cb5b146101f057806395d89b411461021857600080fd5b806306fdde03146100d2578063095ea7b31461011457806318160ddd1461014457806323b872dd14610167578063313ce5671461018757806370a08231146101a357600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b50604080518082019091526007815266436174426f6e6b60c81b60208201525b60405161010b9190610e22565b60405180910390f35b34801561012057600080fd5b5061013461012f366004610e93565b6102d7565b604051901515815260200161010b565b34801561015057600080fd5b506101596102ee565b60405190815260200161010b565b34801561017357600080fd5b50610134610182366004610ebd565b61030f565b34801561019357600080fd5b506040516009815260200161010b565b3480156101af57600080fd5b506101596101be366004610ef9565b6001600160a01b031660009081526001602052604090205490565b3480156101e557600080fd5b506101ee610378565b005b3480156101fc57600080fd5b506000546040516001600160a01b03909116815260200161010b565b34801561022457600080fd5b506040805180820190915260048152634341424f60e01b60208201526100fe565b34801561025157600080fd5b50610134610260366004610e93565b610421565b34801561027157600080fd5b5061015960075481565b34801561028757600080fd5b50610159610296366004610f14565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156102cd57600080fd5b5061015960085481565b60006102e433848461042e565b5060015b92915050565b60006102fc6009600a611041565b61030a906319133850611050565b905090565b600061031c848484610553565b61036e8433610369856040518060600160405280602881526020016110f6602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610800565b61042e565b5060019392505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102e4338484610553565b6001600160a01b0383166104905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ce565b6001600160a01b0382166104f15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ce565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166105b75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103ce565b6001600160a01b0382166106195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103ce565b6000811161067b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103ce565b6001600160a01b03821660009081526003602052604090205460ff161580156106bd57506001600160a01b03831660009081526003602052604090205460ff16155b156107f5576001600160a01b03831660009081526004602052604090205460ff16610734576008548111156107345760405162461bcd60e51b815260206004820152601860248201527f4552523a204d6178207478206c696d697420657863656564000000000000000060448201526064016103ce565b60055460ff600160c81b82048116600160b01b9092041610156107e5576001600160a01b03821660009081526004602052604090205460ff166107e55760075481610794846001600160a01b031660009081526001602052604090205490565b61079e919061106f565b11156107e55760405162461bcd60e51b81526020600482015260166024820152751154948e8813585e081dd85b1b195d08195e18d9595960521b60448201526064016103ce565b6107f083838361083a565b505050565b6107f0838383610a62565b600081848411156108245760405162461bcd60e51b81526004016103ce9190610e22565b5060006108318486611087565b95945050505050565b600554600090819061085f9060ff600160c01b8204811691600160b81b900416610b1f565b9092509050600061087e60646108788660ff8716610b73565b90610bfc565b6001600160a01b03871660009081526004602052604090205490915060ff166108b6576108b360646108788660ff8616610b73565b90505b6001600160a01b03861660009081526004602052604090205460ff161561090b5760058054600160b01b900460ff169060166108f18361109e565b91906101000a81548160ff021916908360ff160217905550505b8015610996576005546001600160a01b03166000908152600160205260409020546109369082610c3e565b600580546001600160a01b03908116600090815260016020908152604091829020949094559154915184815291811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0386166000908152600160205260409020546109b99085610c9d565b6001600160a01b0387166000908152600160205260409020556109fe6109df8583610c9d565b6001600160a01b03871660009081526001602052604090205490610c3e565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a529088815260200190565b60405180910390a3505050505050565b6001600160a01b038316600090815260016020526040902054610a859082610c9d565b6001600160a01b038416600090815260016020526040902055610acb610aac828585610cdf565b6001600160a01b03841660009081526001602052604090205490610c3e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105469085815260200190565b6005546040805180820190915260ff600160a81b83048116825284811660208301526000928392600160a01b909104821691851660028110610b6357610b636110bd565b6020020151915091509250929050565b600082600003610b85575060006102e8565b6000610b918385611050565b905082610b9e85836110d3565b14610bf55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103ce565b9392505050565b6000610bf583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dac565b600080610c4b838561106f565b905083811015610bf55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103ce565b6000610bf583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610800565b600a5460009081906001600160a01b038581169116148015610d0f57506000546001600160a01b03848116911614155b15610da2576001600160a01b03831660009081526003602052604090205460ff168015610d4957506005546001600160b81b90910460ff16105b15610da25760058054600160b81b900460ff16906017610d688361109e565b91906101000a81548160ff021916908360ff16021790555050610d9f6000600560179054906101000a900460ff1660ff1611610dda565b90505b6108318582610c3e565b60008183610dcd5760405162461bcd60e51b81526004016103ce9190610e22565b50600061083184866110d3565b60008115610e1a57600160068190555b60208160ff1611610e1857600654610e0390600a611050565b60065580610e108161109e565b915050610dea565b505b505060065490565b600060208083528351808285015260005b81811015610e4f57858101830151858201604001528201610e33565b81811115610e61576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610e8e57600080fd5b919050565b60008060408385031215610ea657600080fd5b610eaf83610e77565b946020939093013593505050565b600080600060608486031215610ed257600080fd5b610edb84610e77565b9250610ee960208501610e77565b9150604084013590509250925092565b600060208284031215610f0b57600080fd5b610bf582610e77565b60008060408385031215610f2757600080fd5b610f3083610e77565b9150610f3e60208401610e77565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610f98578160001904821115610f7e57610f7e610f47565b80851615610f8b57918102915b93841c9390800290610f62565b509250929050565b600082610faf575060016102e8565b81610fbc575060006102e8565b8160018114610fd25760028114610fdc57610ff8565b60019150506102e8565b60ff841115610fed57610fed610f47565b50506001821b6102e8565b5060208310610133831016604e8410600b841016171561101b575081810a6102e8565b6110258383610f5d565b806000190482111561103957611039610f47565b029392505050565b6000610bf560ff841683610fa0565b600081600019048311821515161561106a5761106a610f47565b500290565b6000821982111561108257611082610f47565b500190565b60008282101561109957611099610f47565b500390565b600060ff821660ff81036110b4576110b4610f47565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000826110f057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202471a240be96a1dcb9ac83844a847831e554d09a771feb9b57ad1f4085f06abd64736f6c634300080f0033
0x60806040526005805465ff00ffffffff60a01b1916600f60c91b17905560016006556200002f6009600a620005ed565b6200003e9062c0939c62000605565b6007556200004f6009600a620005ed565b6200005e9062c0939c62000605565b6008553480156200006e57600080fd5b50604051620017da380380620017da833981016040819052620000919162000627565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005805460ff60c01b1916600160c01b60ff84160217905560098054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0319909116811782556200013e913091906200012890600a620005ed565b6200013890631913385062000605565b620003ac565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000192573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b891906200064c565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024191906200064c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b591906200064c565b600a80546001600160a01b0319166001600160a01b03929092169182178155600091825260046020526040909120805460ff19166001179055620002fc90600990620005ed565b6200030c90631913385062000605565b33600081815260016020818152604080842095909555600580546001600160a01b0319168517905582546001600160a01b0316835260039052928120805460ff1916909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003846009600a620005ed565b6200039490631913385062000605565b60405190815260200160405180910390a35062000677565b6001600160a01b038316620004145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200040b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200052f578160001904821115620005135762000513620004d8565b808516156200052157918102915b93841c9390800290620004f3565b509250929050565b6000826200054857506001620005e7565b816200055757506000620005e7565b81600181146200057057600281146200057b576200059b565b6001915050620005e7565b60ff8411156200058f576200058f620004d8565b50506001821b620005e7565b5060208310610133831016604e8410600b8410161715620005c0575081810a620005e7565b620005cc8383620004ee565b8060001904821115620005e357620005e3620004d8565b0290505b92915050565b6000620005fe60ff84168362000537565b9392505050565b6000816000190483118215151615620006225762000622620004d8565b500290565b6000602082840312156200063a57600080fd5b815160ff81168114620005fe57600080fd5b6000602082840312156200065f57600080fd5b81516001600160a01b0381168114620005fe57600080fd5b61115380620006876000396000f3fe6080604052600436106100c65760003560e01c8063715018a61161007f578063a9059cbb11610059578063a9059cbb14610245578063da0ebc6214610265578063dd62ed3e1461027b578063f8f3c5a9146102c157600080fd5b8063715018a6146101d95780638da5cb5b146101f057806395d89b411461021857600080fd5b806306fdde03146100d2578063095ea7b31461011457806318160ddd1461014457806323b872dd14610167578063313ce5671461018757806370a08231146101a357600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b50604080518082019091526007815266436174426f6e6b60c81b60208201525b60405161010b9190610e22565b60405180910390f35b34801561012057600080fd5b5061013461012f366004610e93565b6102d7565b604051901515815260200161010b565b34801561015057600080fd5b506101596102ee565b60405190815260200161010b565b34801561017357600080fd5b50610134610182366004610ebd565b61030f565b34801561019357600080fd5b506040516009815260200161010b565b3480156101af57600080fd5b506101596101be366004610ef9565b6001600160a01b031660009081526001602052604090205490565b3480156101e557600080fd5b506101ee610378565b005b3480156101fc57600080fd5b506000546040516001600160a01b03909116815260200161010b565b34801561022457600080fd5b506040805180820190915260048152634341424f60e01b60208201526100fe565b34801561025157600080fd5b50610134610260366004610e93565b610421565b34801561027157600080fd5b5061015960075481565b34801561028757600080fd5b50610159610296366004610f14565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156102cd57600080fd5b5061015960085481565b60006102e433848461042e565b5060015b92915050565b60006102fc6009600a611041565b61030a906319133850611050565b905090565b600061031c848484610553565b61036e8433610369856040518060600160405280602881526020016110f6602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610800565b61042e565b5060019392505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102e4338484610553565b6001600160a01b0383166104905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ce565b6001600160a01b0382166104f15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ce565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166105b75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103ce565b6001600160a01b0382166106195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103ce565b6000811161067b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103ce565b6001600160a01b03821660009081526003602052604090205460ff161580156106bd57506001600160a01b03831660009081526003602052604090205460ff16155b156107f5576001600160a01b03831660009081526004602052604090205460ff16610734576008548111156107345760405162461bcd60e51b815260206004820152601860248201527f4552523a204d6178207478206c696d697420657863656564000000000000000060448201526064016103ce565b60055460ff600160c81b82048116600160b01b9092041610156107e5576001600160a01b03821660009081526004602052604090205460ff166107e55760075481610794846001600160a01b031660009081526001602052604090205490565b61079e919061106f565b11156107e55760405162461bcd60e51b81526020600482015260166024820152751154948e8813585e081dd85b1b195d08195e18d9595960521b60448201526064016103ce565b6107f083838361083a565b505050565b6107f0838383610a62565b600081848411156108245760405162461bcd60e51b81526004016103ce9190610e22565b5060006108318486611087565b95945050505050565b600554600090819061085f9060ff600160c01b8204811691600160b81b900416610b1f565b9092509050600061087e60646108788660ff8716610b73565b90610bfc565b6001600160a01b03871660009081526004602052604090205490915060ff166108b6576108b360646108788660ff8616610b73565b90505b6001600160a01b03861660009081526004602052604090205460ff161561090b5760058054600160b01b900460ff169060166108f18361109e565b91906101000a81548160ff021916908360ff160217905550505b8015610996576005546001600160a01b03166000908152600160205260409020546109369082610c3e565b600580546001600160a01b03908116600090815260016020908152604091829020949094559154915184815291811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0386166000908152600160205260409020546109b99085610c9d565b6001600160a01b0387166000908152600160205260409020556109fe6109df8583610c9d565b6001600160a01b03871660009081526001602052604090205490610c3e565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a529088815260200190565b60405180910390a3505050505050565b6001600160a01b038316600090815260016020526040902054610a859082610c9d565b6001600160a01b038416600090815260016020526040902055610acb610aac828585610cdf565b6001600160a01b03841660009081526001602052604090205490610c3e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105469085815260200190565b6005546040805180820190915260ff600160a81b83048116825284811660208301526000928392600160a01b909104821691851660028110610b6357610b636110bd565b6020020151915091509250929050565b600082600003610b85575060006102e8565b6000610b918385611050565b905082610b9e85836110d3565b14610bf55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103ce565b9392505050565b6000610bf583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dac565b600080610c4b838561106f565b905083811015610bf55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103ce565b6000610bf583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610800565b600a5460009081906001600160a01b038581169116148015610d0f57506000546001600160a01b03848116911614155b15610da2576001600160a01b03831660009081526003602052604090205460ff168015610d4957506005546001600160b81b90910460ff16105b15610da25760058054600160b81b900460ff16906017610d688361109e565b91906101000a81548160ff021916908360ff16021790555050610d9f6000600560179054906101000a900460ff1660ff1611610dda565b90505b6108318582610c3e565b60008183610dcd5760405162461bcd60e51b81526004016103ce9190610e22565b50600061083184866110d3565b60008115610e1a57600160068190555b60208160ff1611610e1857600654610e0390600a611050565b60065580610e108161109e565b915050610dea565b505b505060065490565b600060208083528351808285015260005b81811015610e4f57858101830151858201604001528201610e33565b81811115610e61576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610e8e57600080fd5b919050565b60008060408385031215610ea657600080fd5b610eaf83610e77565b946020939093013593505050565b600080600060608486031215610ed257600080fd5b610edb84610e77565b9250610ee960208501610e77565b9150604084013590509250925092565b600060208284031215610f0b57600080fd5b610bf582610e77565b60008060408385031215610f2757600080fd5b610f3083610e77565b9150610f3e60208401610e77565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610f98578160001904821115610f7e57610f7e610f47565b80851615610f8b57918102915b93841c9390800290610f62565b509250929050565b600082610faf575060016102e8565b81610fbc575060006102e8565b8160018114610fd25760028114610fdc57610ff8565b60019150506102e8565b60ff841115610fed57610fed610f47565b50506001821b6102e8565b5060208310610133831016604e8410600b841016171561101b575081810a6102e8565b6110258383610f5d565b806000190482111561103957611039610f47565b029392505050565b6000610bf560ff841683610fa0565b600081600019048311821515161561106a5761106a610f47565b500290565b6000821982111561108257611082610f47565b500190565b60008282101561109957611099610f47565b500390565b600060ff821660ff81036110b4576110b4610f47565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000826110f057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202471a240be96a1dcb9ac83844a847831e554d09a771feb9b57ad1f4085f06abd64736f6c634300080f00330000000000000000000000000000000000000000000000000000000000000064