0x6080604052600580546001600160a01b031990811661dead908117909255600680546001600160a81b031916600160a01b179055600a805490911690911781555f600c908155605a600d55600e829055600f819055601055601181905560168054600162ffff0160a01b0319167364a2bf938194ac603f9fc3241f745f0e0546656e179055620000b1906032906200009a90600990620004d2565b620000aa906319133850620004e2565b90620002e1565b601755620000c860326200009a6009600a620004d2565b601855620000e06182356200009a6009600a620004d2565b601955348015620000ef575f80fd5b50620000fb3362000333565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200015e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001849190620004fc565b600480546001600160a01b0319166001600160a01b03928316179055305f8181526002602090815260408083206012548616845282528083205f19905582548516835260078252808320805460ff199081166001908117909255858552828520805482168317905584548716855260089093528184208054841682179055938352808320805483168517905560055490941682529290208054909216179055620002316009600a620004d2565b62000241906319133850620004e2565b60015f620002565f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f2055620002815f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002ba6009600a620004d2565b620002ca906319133850620004e2565b60405190815260200160405180910390a362000598565b5f6200032a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200038260201b60201c565b90505b92915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620003ae5760405162461bcd60e51b8152600401620003a591906200052b565b60405180910390fd5b505f620003bc848662000578565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200041957815f1904821115620003fd57620003fd620003c5565b808516156200040b57918102915b93841c9390800290620003de565b509250929050565b5f8262000431575060016200032d565b816200043f57505f6200032d565b8160018114620004585760028114620004635762000483565b60019150506200032d565b60ff841115620004775762000477620003c5565b50506001821b6200032d565b5060208310610133831016604e8410600b8410161715620004a8575081810a6200032d565b620004b48383620003d9565b805f1904821115620004ca57620004ca620003c5565b029392505050565b5f6200032a60ff84168362000421565b80820281158282048414176200032d576200032d620003c5565b5f602082840312156200050d575f80fd5b81516001600160a01b038116811462000524575f80fd5b9392505050565b5f6020808352835180828501525f5b8181101562000558578581018301518582016040015282016200053a565b505f604082860101526040601f19601f8301168501019250505092915050565b5f826200059357634e487b7160e01b5f52601260045260245ffd5b500490565b611f8a80620005a65f395ff3fe608060405260043610610236575f3560e01c806389291a8f11610129578063c45a0155116100a8578063f2fde38b1161006d578063f2fde38b146106a4578063f7f23a0c146106c3578063f887ea40146106d7578063f8b45b05146106f6578063ffb54a991461070b575f80fd5b8063c45a0155146105ee578063c51955f51461060d578063c8d1293d1461062c578063dd62ed3e14610641578063e79ee7b114610685575f80fd5b806395d89b41116100ee57806395d89b411461055a5780639865d01a14610587578063a8aa1b311461059b578063a9059cbb146105ba578063bf56b371146105d9575f80fd5b806389291a8f146104b8578063893d20e8146104cc5780638a8c523c146104fc5780638b42507f146105105780638da5cb5b1461053e575f80fd5b80634551bbe9116101b557806370a082311161017a57806370a0823114610426578063715018a61461045a5780637437681e1461046e5780637dfcbe341461048357806389215317146104a3575f80fd5b80634551bbe91461039157806347062402146103bc5780634a74bb02146103d1578063571ac8b0146103f157806366eb378514610410575f80fd5b8063246ea64e116101fb578063246ea64e1461030a5780632b112e491461031f5780632b14ca5614610333578063313ce567146103485780633f4218e014610363575f80fd5b80630445b6671461024157806306fdde0314610269578063095ea7b3146102a857806318160ddd146102d757806323b872dd146102eb575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061025660195481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5060408051808201909152600e81526d54616b65204d79204d6f6e65792160901b60208201525b6040516102609190611b5a565b3480156102b3575f80fd5b506102c76102c2366004611bb9565b61072b565b6040519015158152602001610260565b3480156102e2575f80fd5b50610256610797565b3480156102f6575f80fd5b506102c7610305366004611be3565b6107b7565b348015610315575f80fd5b50610256600e5481565b34801561032a575f80fd5b50610256610875565b34801561033e575f80fd5b5061025660105481565b348015610353575f80fd5b5060405160098152602001610260565b34801561036e575f80fd5b506102c761037d366004611c21565b60076020525f908152604090205460ff1681565b34801561039c575f80fd5b506102566103ab366004611c21565b600b6020525f908152604090205481565b3480156103c7575f80fd5b50610256600f5481565b3480156103dc575f80fd5b506016546102c790600160a81b900460ff1681565b3480156103fc575f80fd5b506102c761040b366004611c21565b6108d1565b34801561041b575f80fd5b506104246108dd565b005b348015610431575f80fd5b50610256610440366004611c21565b6001600160a01b03165f9081526001602052604090205490565b348015610465575f80fd5b50610424610946565b348015610479575f80fd5b5061025660175481565b34801561048e575f80fd5b506006546102c790600160a01b900460ff1681565b3480156104ae575f80fd5b50610256600d5481565b3480156104c3575f80fd5b50610424610978565b3480156104d7575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610260565b348015610507575f80fd5b506104246109e4565b34801561051b575f80fd5b506102c761052a366004611c21565b60086020525f908152604090205460ff1681565b348015610549575f80fd5b505f546001600160a01b03166104e4565b348015610565575f80fd5b506040805180820190915260058152644d4f4e455960d81b602082015261029b565b348015610592575f80fd5b50610424610a28565b3480156105a6575f80fd5b506013546104e4906001600160a01b031681565b3480156105c5575f80fd5b506102c76105d4366004611bb9565b610a77565b3480156105e4575f80fd5b5061025660095481565b3480156105f9575f80fd5b506014546104e4906001600160a01b031681565b348015610618575f80fd5b506016546104e4906001600160a01b031681565b348015610637575f80fd5b50610256600c5481565b34801561064c575f80fd5b5061025661065b366004611c3c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610690575f80fd5b5061042461069f366004611c73565b610a83565b3480156106af575f80fd5b506104246106be366004611c21565b610b13565b3480156106ce575f80fd5b50610424610baa565b3480156106e2575f80fd5b506012546104e4906001600160a01b031681565b348015610701575f80fd5b5061025660185481565b348015610716575f80fd5b506016546102c790600160b01b900460ff1681565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107859086815260200190565b60405180910390a35060015b92915050565b5f6107a46009600a611d87565b6107b2906319133850611d95565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f1914610860576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260028252838120338252909152919091205461083c918490610f02565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b61086b848484610f3a565b90505b9392505050565b6006546001600160a01b03165f908152600160205260408120546107b2906005546001600160a01b03165f908152600160205260409020546108cb906108bd6009600a611d87565b6108cb906319133850611d95565b90611424565b5f610791825f1961072b565b6016546001600160a01b0316331461093c5760405162461bcd60e51b815260206004820152601f60248201527f4d616e75616c20737761706261636b206973206e6f7420616c6c6f7765642e0060448201526064015b60405180910390fd5b610944611465565b565b5f546001600160a01b0316331461096f5760405162461bcd60e51b815260040161093390611dac565b6109445f6115df565b5f546001600160a01b031633146109a15760405162461bcd60e51b815260040161093390611dac565b4780156109e1576016546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109df573d5f803e3d5ffd5b505b50565b5f546001600160a01b03163314610a0d5760405162461bcd60e51b815260040161093390611dac565b436009556016805461ffff60a81b191661010160a81b179055565b5f546001600160a01b03163314610a515760405162461bcd60e51b815260040161093390611dac565b5f610a5e6009600a611d87565b610a6c906319133850611d95565b601781905560185550565b5f61086e338484610f3a565b5f546001600160a01b03163314610aac5760405162461bcd60e51b815260040161093390611dac565b600582108015610abc5750600581105b610b085760405162461bcd60e51b815260206004820152601960248201527f466565206d757374206265206c657373207468616e2035252e000000000000006044820152606401610933565b600f91909155601055565b5f546001600160a01b03163314610b3c5760405162461bcd60e51b815260040161093390611dac565b6001600160a01b038116610ba15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610933565b6109e1816115df565b5f546001600160a01b03163314610bd35760405162461bcd60e51b815260040161093390611dac565b601654600160b01b900460ff1615610c2d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610933565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca19190611de1565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190611de1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d929190611de1565b601380546001600160a01b039283166001600160a01b031990911681179091555f908152600860209081526040808320805460ff1916600117905530808452600283528184206012805487168652935292205f199055549091169063f305d719904790610e13816001600160a01b03165f9081526001602052604090205490565b5f80610e265f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610e4896959493929190611dfc565b60606040518083038185885af1158015610e64573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e899190611e37565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e19190611e62565b5f8184841115610f255760405162461bcd60e51b81526004016109339190611b5a565b505f610f318486611e81565b95945050505050565b5f6001600160a01b038416610f9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610933565b6001600160a01b0384165f908152600160205260409020548211156110205760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610933565b5f821161106f5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206d757374206e6f74206265207a65726f2e00000000000000006044820152606401610933565b6001600160a01b0384165f9081526007602052604090205460ff161580156110af57506001600160a01b0383165f9081526007602052604090205460ff16155b1561110557601654600160b01b900460ff166111055760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610933565b601654600160a01b900460ff16156111295761112284848461162e565b905061086e565b6017548211158061115157506001600160a01b0384165f9081526008602052604090205460ff165b6111825760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610933565b6001600160a01b0383165f9081526008602052604090205460ff161580156111b35750600654600160a01b900460ff165b15611214576018546001600160a01b0384165f908152600160205260409020546111dd9084611711565b11156112145760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610933565b305f52600160205260195460135490831015906001600160a01b03858116911614801561124b5750601654600160a01b900460ff16155b80156112605750601654600160a81b900460ff165b80156112695750805b801561128d57506001600160a01b0385165f9081526007602052604090205460ff16155b80156112b157506001600160a01b0384165f9081526007602052604090205460ff16155b156112be576112be611465565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388165f9081526001909152919091205461130f918590610f02565b6001600160a01b0386165f90815260016020908152604080832093909355600790529081205460ff1615801561135d57506001600160a01b0385165f9081526007602052604090205460ff16155b6113675783611372565b61137286868661176f565b6001600160a01b0386165f908152600160205260409020549091506113979082611711565b6001600160a01b038087165f8181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ea9085815260200190565b60405180910390a35050506001600160a01b038084165f908152600b60205260408082204290819055928516825290205560019392505050565b5f61086e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f02565b6016805460ff60a01b1916600160a01b179055305f90815260016020526040812054600e549091906114a59060649061149f908590611893565b90611911565b90505f6114c7600261149f606461149f600c548861189390919063ffffffff16565b90505f6114d8836108cb8685611424565b90506114e381611952565b60055460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303815f875af1158015611531573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115559190611e62565b505f4790505f61157a600261149f606461149f600c548761189390919063ffffffff16565b9050831561158c5761158c8482611aa7565b81156115ca576016546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156115c8573d5f803e3d5ffd5b505b50506016805460ff60a01b1916905550505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260019091529182205461167e918490610f02565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546116ac9083611711565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ff9086815260200190565b60405180910390a35060019392505050565b5f8061171d8385611e94565b90508381101561086e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610933565b6013545f9081906001600160a01b0385811691161480156117905760105491505b6016546001600160a01b0387811691161480156117ab575080155b156117cf576117cc600e546011546117c39190611ea7565b60105490611893565b91505b6013546001600160a01b03908116908716036117eb57600f5491505b5f6117fb606461149f8786611893565b305f908152600160205260409020549091506118179082611711565b305f81815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118679085815260200190565b60405180910390a361188885821161187f5781611881565b5f5b8690611424565b979650505050505050565b5f825f036118a257505f610791565b5f6118ad8385611d95565b9050826118ba8583611eb2565b1461086e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610933565b5f61086e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b2e565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061198557611985611ed1565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a009190611de1565b81600181518110611a1357611a13611ed1565b60200260200101906001600160a01b031690816001600160a01b031681525050611a3d308361072b565b5060125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a769085905f90869030904290600401611ee5565b5f604051808303815f87803b158015611a8d575f80fd5b505af1158015611a9f573d5f803e3d5ffd5b505050505050565b601254600a5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611ae692309289925f92839216904290600401611dfc565b60606040518083038185885af1158015611b02573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b279190611e37565b5050505050565b5f8183611b4e5760405162461bcd60e51b81526004016109339190611b5a565b505f610f318486611eb2565b5f6020808352835180828501525f5b81811015611b8557858101830151858201604001528201611b69565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109e1575f80fd5b5f8060408385031215611bca575f80fd5b8235611bd581611ba5565b946020939093013593505050565b5f805f60608486031215611bf5575f80fd5b8335611c0081611ba5565b92506020840135611c1081611ba5565b929592945050506040919091013590565b5f60208284031215611c31575f80fd5b813561086e81611ba5565b5f8060408385031215611c4d575f80fd5b8235611c5881611ba5565b91506020830135611c6881611ba5565b809150509250929050565b5f8060408385031215611c84575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ce157815f1904821115611cc757611cc7611c93565b80851615611cd457918102915b93841c9390800290611cac565b509250929050565b5f82611cf757506001610791565b81611d0357505f610791565b8160018114611d195760028114611d2357611d3f565b6001915050610791565b60ff841115611d3457611d34611c93565b50506001821b610791565b5060208310610133831016604e8410600b8410161715611d62575081810a610791565b611d6c8383611ca7565b805f1904821115611d7f57611d7f611c93565b029392505050565b5f61086e60ff841683611ce9565b808202811582820484141761079157610791611c93565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611df1575f80fd5b815161086e81611ba5565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611e49575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e72575f80fd5b8151801515811461086e575f80fd5b8181038181111561079157610791611c93565b8082018082111561079157610791611c93565b5f61086e8383611ce9565b5f82611ecc57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f335784516001600160a01b031683529383019391830191600101611f0e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200af786f9dddcec4d54a667c4f4364e36b6d9fdb89e561a6c67fc6cc649a3f10464736f6c63430008150033