0x6080604052600436106100f2575f3560e01c806370a082311161008757806395d89b411161005757806395d89b41146102c6578063a9059cbb146102f3578063dd62ed3e14610312578063f2fde38b14610348575f80fd5b806370a0823114610255578063715018a614610280578063751039fc146102965780638da5cb5b146102aa575f80fd5b806323b872dd116100c257806323b872dd146101de578063313ce567146101fd57806349bd5a5e14610218578063622565891461023c575f80fd5b806306fdde03146100fd578063095ea7b3146101545780631694505e1461018357806318160ddd146101ba575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5060408051808201909152601181527f546865204a656574736f6e7320436f696e00000000000000000000000000000060208201525b60405161014b91906108c6565b60405180910390f35b34801561015f575f80fd5b5061017361016e36600461092c565b610367565b604051901515815260200161014b565b34801561018e575f80fd5b50600f546101a2906001600160a01b031681565b6040516001600160a01b03909116815260200161014b565b3480156101c5575f80fd5b5067016345785d8a00005b60405190815260200161014b565b3480156101e9575f80fd5b506101736101f8366004610954565b6103d3565b348015610208575f80fd5b506040516009815260200161014b565b348015610223575f80fd5b50600c546101a29061010090046001600160a01b031681565b348015610247575f80fd5b50600c546101739060ff1681565b348015610260575f80fd5b506101d061026f36600461098d565b60096020525f908152604090205481565b34801561028b575f80fd5b5061029461044f565b005b3480156102a1575f80fd5b506102946104f5565b3480156102b5575f80fd5b505f546001600160a01b03166101a2565b3480156102d1575f80fd5b506040805180820190915260058152644a4545545360d81b602082015261013e565b3480156102fe575f80fd5b5061017361030d36600461092c565b61055a565b34801561031d575f80fd5b506101d061032c3660046109ad565b600560209081525f928352604080842090915290825290205481565b348015610353575f80fd5b5061029461036236600461098d565b610570565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103c19086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600560209081526040808320338452909152812054821115610401575f80fd5b6001600160a01b0384165f908152600560209081526040808320338452909152812080548492906104339084906109f2565b909155506104449050848484610687565b506001949350505050565b5f546001600160a01b031633146104ad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461054e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b600c805460ff19169055565b5f610566338484610687565b5060019392505050565b5f546001600160a01b031633146105c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b6001600160a01b03811661062e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600c545f906001600160a01b03848116610100909204161480156106b857505f546001600160a01b03858116911614155b80156106d957506001600160a01b0384165f90815260086020526040902054155b1561073057600c5460ff166107305760405162461bcd60e51b815260206004820152601d60248201527f53656c6c73206172652063757272656e746c792064697361626c65642e00000060448201526064016104a4565b6001600160a01b0384165f90815260086020526040812054900361077b576001600160a01b0384165f90815260096020526040812080548492906107759084906109f2565b90915550505b815f036107b257600a546001600160a01b0384165f90815260076020526040812080549091906107ac908490610a05565b90915550505b600c546001600160a01b0385811661010090920416148015906107ea57506001600160a01b0384165f90815260086020526040902054155b801561080c57506001600160a01b0384165f9081526007602052604090205415155b1561084157600a546001600160a01b0385165f908152600860205260408120805490919061083b9084906109f2565b90915550505b6001600160a01b0383165f9081526009602052604081208054849290610868908490610a05565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108b491815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156108f1578581018301518582016040015282016108d5565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610927575f80fd5b919050565b5f806040838503121561093d575f80fd5b61094683610911565b946020939093013593505050565b5f805f60608486031215610966575f80fd5b61096f84610911565b925061097d60208501610911565b9150604084013590509250925092565b5f6020828403121561099d575f80fd5b6109a682610911565b9392505050565b5f80604083850312156109be575f80fd5b6109c783610911565b91506109d560208401610911565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103cd576103cd6109de565b808201808211156103cd576103cd6109de56fea2646970667358221220d9b083e71520eaf1a35d8398cfecb7d7dd88c7bb87d6b05943aeb4dfd517477764736f6c63430008140033
0x60806040525f600281905560038190556052600a55600c805460ff60ff60a81b0119166001179055600e5561003d67016345785d8a00005f19610301565b610048905f19610320565b601055600e546011556013805460ff19166001179055348015610069575f80fd5b50604051610dcd380380610dcd83398101604081905261008891610345565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601054335f818152600b6020908152604080832094909455600a546001600160a01b038616835260088252848320559181526009825282902067016345785d8a00009055600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a0155926004808401938290030181865afa15801561016a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018e9190610345565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101fd9190610345565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610247573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026b9190610345565b600c8054610100600160a81b0319166101006001600160a01b03938416021790555f80549091168152600660209081526040808320805460ff199081166001908117909255308552828520805490911690911790555167016345785d8a000081523392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050610372565b5f8261031b57634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561033f57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215610355575f80fd5b81516001600160a01b038116811461036b575f80fd5b9392505050565b610a4e8061037f5f395ff3fe6080604052600436106100f2575f3560e01c806370a082311161008757806395d89b411161005757806395d89b41146102c6578063a9059cbb146102f3578063dd62ed3e14610312578063f2fde38b14610348575f80fd5b806370a0823114610255578063715018a614610280578063751039fc146102965780638da5cb5b146102aa575f80fd5b806323b872dd116100c257806323b872dd146101de578063313ce567146101fd57806349bd5a5e14610218578063622565891461023c575f80fd5b806306fdde03146100fd578063095ea7b3146101545780631694505e1461018357806318160ddd146101ba575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5060408051808201909152601181527f546865204a656574736f6e7320436f696e00000000000000000000000000000060208201525b60405161014b91906108c6565b60405180910390f35b34801561015f575f80fd5b5061017361016e36600461092c565b610367565b604051901515815260200161014b565b34801561018e575f80fd5b50600f546101a2906001600160a01b031681565b6040516001600160a01b03909116815260200161014b565b3480156101c5575f80fd5b5067016345785d8a00005b60405190815260200161014b565b3480156101e9575f80fd5b506101736101f8366004610954565b6103d3565b348015610208575f80fd5b506040516009815260200161014b565b348015610223575f80fd5b50600c546101a29061010090046001600160a01b031681565b348015610247575f80fd5b50600c546101739060ff1681565b348015610260575f80fd5b506101d061026f36600461098d565b60096020525f908152604090205481565b34801561028b575f80fd5b5061029461044f565b005b3480156102a1575f80fd5b506102946104f5565b3480156102b5575f80fd5b505f546001600160a01b03166101a2565b3480156102d1575f80fd5b506040805180820190915260058152644a4545545360d81b602082015261013e565b3480156102fe575f80fd5b5061017361030d36600461092c565b61055a565b34801561031d575f80fd5b506101d061032c3660046109ad565b600560209081525f928352604080842090915290825290205481565b348015610353575f80fd5b5061029461036236600461098d565b610570565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103c19086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600560209081526040808320338452909152812054821115610401575f80fd5b6001600160a01b0384165f908152600560209081526040808320338452909152812080548492906104339084906109f2565b909155506104449050848484610687565b506001949350505050565b5f546001600160a01b031633146104ad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461054e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b600c805460ff19169055565b5f610566338484610687565b5060019392505050565b5f546001600160a01b031633146105c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b6001600160a01b03811661062e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600c545f906001600160a01b03848116610100909204161480156106b857505f546001600160a01b03858116911614155b80156106d957506001600160a01b0384165f90815260086020526040902054155b1561073057600c5460ff166107305760405162461bcd60e51b815260206004820152601d60248201527f53656c6c73206172652063757272656e746c792064697361626c65642e00000060448201526064016104a4565b6001600160a01b0384165f90815260086020526040812054900361077b576001600160a01b0384165f90815260096020526040812080548492906107759084906109f2565b90915550505b815f036107b257600a546001600160a01b0384165f90815260076020526040812080549091906107ac908490610a05565b90915550505b600c546001600160a01b0385811661010090920416148015906107ea57506001600160a01b0384165f90815260086020526040902054155b801561080c57506001600160a01b0384165f9081526007602052604090205415155b1561084157600a546001600160a01b0385165f908152600860205260408120805490919061083b9084906109f2565b90915550505b6001600160a01b0383165f9081526009602052604081208054849290610868908490610a05565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108b491815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156108f1578581018301518582016040015282016108d5565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610927575f80fd5b919050565b5f806040838503121561093d575f80fd5b61094683610911565b946020939093013593505050565b5f805f60608486031215610966575f80fd5b61096f84610911565b925061097d60208501610911565b9150604084013590509250925092565b5f6020828403121561099d575f80fd5b6109a682610911565b9392505050565b5f80604083850312156109be575f80fd5b6109c783610911565b91506109d560208401610911565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103cd576103cd6109de565b808201808211156103cd576103cd6109de56fea2646970667358221220d9b083e71520eaf1a35d8398cfecb7d7dd88c7bb87d6b05943aeb4dfd517477764736f6c63430008140033000000000000000000000000bb077b078a329d2d26f31ccaf2a728a7abe555c1