0x6080604052600436106100a8575f3560e01c806370a082311161006257806370a08231146101a3578063715018a6146101d75780638da5cb5b146101eb57806395d89b4114610211578063a9059cbb14610240578063dd62ed3e1461025f575f80fd5b806306fdde03146100b3578063095ea7b3146100f757806318160ddd1461012657806323b872dd14610148578063313ce56714610167578063502aafc114610182575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b5060408051808201909152600a8152695368696e6a7520496e7560b01b60208201525b6040516100ee9190610b7d565b60405180910390f35b348015610102575f80fd5b50610116610111366004610be3565b6102a3565b60405190151581526020016100ee565b348015610131575f80fd5b5061013a6102b9565b6040519081526020016100ee565b348015610153575f80fd5b50610116610162366004610c0b565b6102d9565b348015610172575f80fd5b50604051600981526020016100ee565b34801561018d575f80fd5b506101a161019c366004610c44565b610340565b005b3480156101ae575f80fd5b5061013a6101bd366004610c7d565b6001600160a01b03165f9081526001602052604090205490565b3480156101e2575f80fd5b506101a16103cb565b3480156101f6575f80fd5b505f546040516001600160a01b0390911681526020016100ee565b34801561021c575f80fd5b50604080518082019091526007815266245348494e4a5560c81b60208201526100e1565b34801561024b575f80fd5b5061011661025a366004610be3565b61046c565b34801561026a575f80fd5b5061013a610279366004610c96565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102af338484610478565b5060015b92915050565b5f6102c66009600a610dbb565b6102d490633b9aca00610dc9565b905090565b5f6102e584848461059c565b610336843361033185604051806060016040528060288152602001610e44602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610863565b610478565b5060019392505050565b5f546001600160a01b0316331461039e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60058054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b5f546001600160a01b031633146104245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610395565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102af33848461059c565b6001600160a01b0383166104da5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610395565b6001600160a01b03821661053b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610395565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906105bc57506001600160a01b03821615155b80156105c757505f81115b6106135760405162461bcd60e51b815260206004820152601c60248201527f5a65726f2061646472657373206f72207a65726f20616d6f756e742e000000006044820152606401610395565b5f546001600160a01b0384811691161480159061063d57505f546001600160a01b03838116911614155b1561069b57600554600160a01b900460ff1661069b5760405162461bcd60e51b815260206004820152601860248201527f53776170206973206e6f7420656e61626c6564207965742e00000000000000006044820152606401610395565b5f806106a7858561089b565b90508015610764576005546001600160a01b03908116908516036107135761070c60646107066001600560159054906101000a900460ff1660ff1610156106ee575f6106fc565b600554600160b81b900460ff165b869060ff166108e2565b90610960565b9150610753565b61075060646107066001600560159054906101000a900460ff1660ff16101561073c575f6106fc565b6005548690600160b01b900460ff166108e2565b91505b61075d83836109a1565b925061080a565b5f546001600160a01b0385811691161480159061078e57506005546001600160a01b038681169116145b80156107b157506001600160a01b0384165f9081526003602052604090205460ff165b80156107ca57506005546001600160a81b90910460ff16105b1561080a5760065460058054919350600160a81b90910460ff169060156107f083610de0565b91906101000a81548160ff021916908360ff160217905550505b811561083957305f9081526001602052604090205461082990836109e2565b305f908152600160205260409020555b305f9081526001602052604090205461085190610a40565b61085c858585610aae565b5050505050565b5f81848411156108865760405162461bcd60e51b81526004016103959190610b7d565b505f6108928486610dfe565b95945050505050565b6001600160a01b0382165f9081526003602052604081205460ff161580156108db57506001600160a01b0382165f9081526003602052604090205460ff16155b9392505050565b5f825f036108f157505f6102b3565b5f6108fc8385610dc9565b9050826109098583610e11565b146108db5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610395565b5f6108db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b51565b5f6108db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610863565b5f806109ee8385610e30565b9050838110156108db5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610395565b600754811115610aab57305f90815260016020526040902054610a6390826109a1565b305f90815260016020526040808220929092556004546001600160a01b031681522054610a9090826109e2565b6004546001600160a01b03165f908152600160205260409020555b50565b6001600160a01b0383165f90815260016020526040902054610ad090826109a1565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610afe90826109e2565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058f9085815260200190565b5f8183610b715760405162461bcd60e51b81526004016103959190610b7d565b505f6108928486610e11565b5f6020808352835180828501525f5b81811015610ba857858101830151858201604001528201610b8c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bde575f80fd5b919050565b5f8060408385031215610bf4575f80fd5b610bfd83610bc8565b946020939093013593505050565b5f805f60608486031215610c1d575f80fd5b610c2684610bc8565b9250610c3460208501610bc8565b9150604084013590509250925092565b5f8060408385031215610c55575f80fd5b610c5e83610bc8565b915060208301358015158114610c72575f80fd5b809150509250929050565b5f60208284031215610c8d575f80fd5b6108db82610bc8565b5f8060408385031215610ca7575f80fd5b610cb083610bc8565b9150610cbe60208401610bc8565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610d1557815f1904821115610cfb57610cfb610cc7565b80851615610d0857918102915b93841c9390800290610ce0565b509250929050565b5f82610d2b575060016102b3565b81610d3757505f6102b3565b8160018114610d4d5760028114610d5757610d73565b60019150506102b3565b60ff841115610d6857610d68610cc7565b50506001821b6102b3565b5060208310610133831016604e8410600b8410161715610d96575081810a6102b3565b610da08383610cdb565b805f1904821115610db357610db3610cc7565b029392505050565b5f6108db60ff841683610d1d565b80820281158282048414176102b3576102b3610cc7565b5f60ff821660ff8103610df557610df5610cc7565b60010192915050565b818103818111156102b3576102b3610cc7565b5f82610e2b57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156102b3576102b3610cc756fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209efce3dda6dfda1def8f566339cb9e1f7871c1381b0519820d5971bce3eb0a9664736f6c63430008140033
0x60806040526200003c60646200003560016200001e6009600a6200040d565b6200002e90633b9aca006200041d565b90620001ea565b906200027d565b6007553480156200004b575f80fd5b50604051620013a7380380620013a78339810160408190526200006e916200044d565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000bc6009600a6200040d565b620000cc90633b9aca006200041d565b335f81815260016020526040902091909155600480546001600160a01b0319169091179055620000ff6009600a6200040d565b6200010b90846200041d565b6006556005805460ff838116600160b81b0260ff60b81b19918616600160b01b029190911661ffff60b01b1990921691909117179055600160035f620001585f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055620001873390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c06009600a6200040d565b620001d090633b9aca006200041d565b60405190815260200160405180910390a3505050620004f8565b5f825f03620001fb57505f62000277565b5f6200020883856200041d565b9050826200021785836200048b565b14620002745760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200027483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002c660201b60201c565b5f8183620002e95760405162461bcd60e51b81526004016200026b9190620004ab565b505f620002f784866200048b565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200035457815f190482111562000338576200033862000300565b808516156200034657918102915b93841c939080029062000319565b509250929050565b5f826200036c5750600162000277565b816200037a57505f62000277565b81600181146200039357600281146200039e57620003be565b600191505062000277565b60ff841115620003b257620003b262000300565b50506001821b62000277565b5060208310610133831016604e8410600b8410161715620003e3575081810a62000277565b620003ef838362000314565b805f190482111562000405576200040562000300565b029392505050565b5f6200027460ff8416836200035c565b808202811582820484141762000277576200027762000300565b805160ff8116811462000448575f80fd5b919050565b5f805f6060848603121562000460575f80fd5b83519250620004726020850162000437565b9150620004826040850162000437565b90509250925092565b5f82620004a657634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b81811015620004d857858101830151858201604001528201620004ba565b505f604082860101526040601f19601f8301168501019250505092915050565b610ea180620005065f395ff3fe6080604052600436106100a8575f3560e01c806370a082311161006257806370a08231146101a3578063715018a6146101d75780638da5cb5b146101eb57806395d89b4114610211578063a9059cbb14610240578063dd62ed3e1461025f575f80fd5b806306fdde03146100b3578063095ea7b3146100f757806318160ddd1461012657806323b872dd14610148578063313ce56714610167578063502aafc114610182575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b5060408051808201909152600a8152695368696e6a7520496e7560b01b60208201525b6040516100ee9190610b7d565b60405180910390f35b348015610102575f80fd5b50610116610111366004610be3565b6102a3565b60405190151581526020016100ee565b348015610131575f80fd5b5061013a6102b9565b6040519081526020016100ee565b348015610153575f80fd5b50610116610162366004610c0b565b6102d9565b348015610172575f80fd5b50604051600981526020016100ee565b34801561018d575f80fd5b506101a161019c366004610c44565b610340565b005b3480156101ae575f80fd5b5061013a6101bd366004610c7d565b6001600160a01b03165f9081526001602052604090205490565b3480156101e2575f80fd5b506101a16103cb565b3480156101f6575f80fd5b505f546040516001600160a01b0390911681526020016100ee565b34801561021c575f80fd5b50604080518082019091526007815266245348494e4a5560c81b60208201526100e1565b34801561024b575f80fd5b5061011661025a366004610be3565b61046c565b34801561026a575f80fd5b5061013a610279366004610c96565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102af338484610478565b5060015b92915050565b5f6102c66009600a610dbb565b6102d490633b9aca00610dc9565b905090565b5f6102e584848461059c565b610336843361033185604051806060016040528060288152602001610e44602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610863565b610478565b5060019392505050565b5f546001600160a01b0316331461039e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60058054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b5f546001600160a01b031633146104245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610395565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102af33848461059c565b6001600160a01b0383166104da5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610395565b6001600160a01b03821661053b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610395565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906105bc57506001600160a01b03821615155b80156105c757505f81115b6106135760405162461bcd60e51b815260206004820152601c60248201527f5a65726f2061646472657373206f72207a65726f20616d6f756e742e000000006044820152606401610395565b5f546001600160a01b0384811691161480159061063d57505f546001600160a01b03838116911614155b1561069b57600554600160a01b900460ff1661069b5760405162461bcd60e51b815260206004820152601860248201527f53776170206973206e6f7420656e61626c6564207965742e00000000000000006044820152606401610395565b5f806106a7858561089b565b90508015610764576005546001600160a01b03908116908516036107135761070c60646107066001600560159054906101000a900460ff1660ff1610156106ee575f6106fc565b600554600160b81b900460ff165b869060ff166108e2565b90610960565b9150610753565b61075060646107066001600560159054906101000a900460ff1660ff16101561073c575f6106fc565b6005548690600160b01b900460ff166108e2565b91505b61075d83836109a1565b925061080a565b5f546001600160a01b0385811691161480159061078e57506005546001600160a01b038681169116145b80156107b157506001600160a01b0384165f9081526003602052604090205460ff165b80156107ca57506005546001600160a81b90910460ff16105b1561080a5760065460058054919350600160a81b90910460ff169060156107f083610de0565b91906101000a81548160ff021916908360ff160217905550505b811561083957305f9081526001602052604090205461082990836109e2565b305f908152600160205260409020555b305f9081526001602052604090205461085190610a40565b61085c858585610aae565b5050505050565b5f81848411156108865760405162461bcd60e51b81526004016103959190610b7d565b505f6108928486610dfe565b95945050505050565b6001600160a01b0382165f9081526003602052604081205460ff161580156108db57506001600160a01b0382165f9081526003602052604090205460ff16155b9392505050565b5f825f036108f157505f6102b3565b5f6108fc8385610dc9565b9050826109098583610e11565b146108db5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610395565b5f6108db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b51565b5f6108db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610863565b5f806109ee8385610e30565b9050838110156108db5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610395565b600754811115610aab57305f90815260016020526040902054610a6390826109a1565b305f90815260016020526040808220929092556004546001600160a01b031681522054610a9090826109e2565b6004546001600160a01b03165f908152600160205260409020555b50565b6001600160a01b0383165f90815260016020526040902054610ad090826109a1565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610afe90826109e2565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058f9085815260200190565b5f8183610b715760405162461bcd60e51b81526004016103959190610b7d565b505f6108928486610e11565b5f6020808352835180828501525f5b81811015610ba857858101830151858201604001528201610b8c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bde575f80fd5b919050565b5f8060408385031215610bf4575f80fd5b610bfd83610bc8565b946020939093013593505050565b5f805f60608486031215610c1d575f80fd5b610c2684610bc8565b9250610c3460208501610bc8565b9150604084013590509250925092565b5f8060408385031215610c55575f80fd5b610c5e83610bc8565b915060208301358015158114610c72575f80fd5b809150509250929050565b5f60208284031215610c8d575f80fd5b6108db82610bc8565b5f8060408385031215610ca7575f80fd5b610cb083610bc8565b9150610cbe60208401610bc8565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610d1557815f1904821115610cfb57610cfb610cc7565b80851615610d0857918102915b93841c9390800290610ce0565b509250929050565b5f82610d2b575060016102b3565b81610d3757505f6102b3565b8160018114610d4d5760028114610d5757610d73565b60019150506102b3565b60ff841115610d6857610d68610cc7565b50506001821b6102b3565b5060208310610133831016604e8410600b8410161715610d96575081810a6102b3565b610da08383610cdb565b805f1904821115610db357610db3610cc7565b029392505050565b5f6108db60ff841683610d1d565b80820281158282048414176102b3576102b3610cc7565b5f60ff821660ff8103610df557610df5610cc7565b60010192915050565b818103818111156102b3576102b3610cc7565b5f82610e2b57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156102b3576102b3610cc756fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209efce3dda6dfda1def8f566339cb9e1f7871c1381b0519820d5971bce3eb0a9664736f6c634300081400330000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064