60806040526006805460ff199081169091555f6007819055600880549092169091556009819055600a818155600b829055600c829055600d829055600e829055600f82905560109190915562000058906012906200086a565b6200006790621e84806200087a565b601155620000786012600a6200086a565b6200008790621e84806200087a565b6012556012600a6200009a91906200086a565b620000a6905f6200087a565b601355620000b76012600a6200086a565b620000c690620f42406200087a565b6014556016805462ffffff60a81b19169055601780546001600160a01b0319908116737002421c457b83425293de5a7bfeb68b01a6f6931790915567011c37937e080000601855601980549091167339ef50bd29ae125fe10c6a909e42e1c6a94dde29179055604051620025a0388190039081908339810160408190526200014e9162000894565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350333214620001e35760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206973206e6f7420657175616c20746f206f726967696e00000060448201526064015b60405180910390fd5b805f0b5f1480620001f65750805f0b6001145b620002445760405162461bcd60e51b815260206004820152601460248201527f496e76616c696420706179546f6b656e547970650000000000000000000000006044820152606401620001da565b805f0b5f036200032c57601854341015620002a25760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742062616c616e636520746f207472616e736665726044820152606401620001da565b6017546018546040516001600160a01b039092169181156108fc0291905f818181858888f19350505050158015620002dc573d5f803e3d5ffd5b506018545f90620002ef903490620005ce565b905080156200032557604051339082156108fc029083905f818181858888f1935050505015801562000323573d5f803e3d5ffd5b505b50620004ac565b5f60195f9054906101000a90046001600160a01b03169050620003c2611388620003bb6001846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b49190620008b5565b9062000620565b90620006a6565b6040516370a0823160e01b81523360048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801562000405573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042b9190620008b5565b11620004aa5760405162461bcd60e51b815260206004820152604160248201527f526563697069656e74546f6b656e2062616c616e6365206973206e6f7420677260448201527f6561746572207468616e20302e30303032206f6620746f74616c20737570706c6064820152607960f81b608482015260a401620001da565b505b60068054610100600160a81b0319166101003302179055620004d16012600a6200086a565b620004e1906305f5e1006200087a565b335f9081526001602081905260408220929092556003906200050a5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600390935281832080548516600190811790915560065461010090049091168352912080549092161790556200056d3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005a66012600a6200086a565b620005b6906305f5e1006200087a565b60405190815260200160405180910390a35062000951565b5f6200061783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620006ef60201b60201c565b90505b92915050565b5f825f036200063157505f6200061a565b5f6200063e83856200087a565b9050826200064d8583620008cd565b14620006175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620001da565b5f6200061783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200072c60201b60201c565b5f8184841115620007155760405162461bcd60e51b8152600401620001da9190620008ed565b505f6200072384866200093b565b95945050505050565b5f81836200074f5760405162461bcd60e51b8152600401620001da9190620008ed565b505f620007238486620008cd565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620007b157815f19048211156200079557620007956200075d565b80851615620007a357918102915b93841c939080029062000776565b509250929050565b5f82620007c9575060016200061a565b81620007d757505f6200061a565b8160018114620007f05760028114620007fb576200081b565b60019150506200061a565b60ff8411156200080f576200080f6200075d565b50506001821b6200061a565b5060208310610133831016604e8410600b841016171562000840575081810a6200061a565b6200084c838362000771565b805f19048211156200086257620008626200075d565b029392505050565b5f6200061760ff841683620007b9565b80820281158282048414176200061a576200061a6200075d565b5f60208284031215620008a5575f80fd5b8151805f0b811462000617575f80fd5b5f60208284031215620008c6575f80fd5b5051919050565b5f82620008e857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b818110156200091b57858101830151858201604001528201620008fd565b505f604082860101526040601f19601f8301168501019250505092915050565b818103818111156200061a576200061a6200075d565b611c41806200095f5f395ff3fe608060405260043610610134575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb14610351578063bf474bed14610370578063c876d0b914610385578063d16336491461039e578063dd62ed3e146103b1578063ffb54a99146103f5575f80fd5b80637d1db4a5146102ac5780638da5cb5b146102c15780638f9a55c0146102f157806395d89b4114610306578063a8aa1b3114610334575f80fd5b806323b872dd116100f957806323b872dd14610200578063313ce5671461021f57806351bc3c851461023a57806370a0823114610250578063715018a614610284578063751039fc14610298575f80fd5b806306fdde031461013f57806307e3eaf814610180578063095ea7b3146101aa5780630faee56f146101c957806318160ddd146101ec575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506040805180820190915260078152662134ba31b7b4b760c91b60208201525b604051610177919061181a565b60405180910390f35b34801561018b575f80fd5b50601654600160b81b900460ff165b6040519015158152602001610177565b3480156101b5575f80fd5b5061019a6101c436600461187d565b610413565b3480156101d4575f80fd5b506101de60145481565b604051908152602001610177565b3480156101f7575f80fd5b506101de610429565b34801561020b575f80fd5b5061019a61021a3660046118a7565b610449565b34801561022a575f80fd5b5060405160128152602001610177565b348015610245575f80fd5b5061024e6104b0565b005b34801561025b575f80fd5b506101de61026a3660046118e5565b6001600160a01b03165f9081526001602052604090205490565b34801561028f575f80fd5b5061024e610506565b3480156102a3575f80fd5b5061024e610580565b3480156102b7575f80fd5b506101de60115481565b3480156102cc575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610177565b3480156102fc575f80fd5b506101de60125481565b348015610311575f80fd5b50604080518082019091526006815265425443e5b9b360d01b602082015261016a565b34801561033f575f80fd5b506016546001600160a01b03166102d9565b34801561035c575f80fd5b5061019a61036b36600461187d565b610650565b34801561037b575f80fd5b506101de60135481565b348015610390575f80fd5b5060065461019a9060ff1681565b61024e6103ac366004611900565b61065c565b3480156103bc575f80fd5b506101de6103cb366004611917565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610400575f80fd5b50601654600160a01b900460ff1661019a565b5f61041f338484610c88565b5060015b92915050565b5f6104366012600a611a42565b610444906305f5e100611a50565b905090565b5f610455848484610dab565b6104a684336104a185604051806060016040528060288152602001611be4602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611479565b610c88565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104d4575f80fd5b305f9081526001602052604090205480156104f2576104f2816114b1565b478015610502576105028161163a565b5050565b5f546001600160a01b031633146105385760405162461bcd60e51b815260040161052f90611a67565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105a95760405162461bcd60e51b815260040161052f90611a67565b6105b56012600a611a42565b6105c3906305f5e100611a50565b6011556105d26012600a611a42565b6105e0906305f5e100611a50565b60129081556006805460ff191690556016805460ff60b81b1916600160b81b1790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061062f90600a611a42565b61063d906305f5e100611a50565b60405190815260200160405180910390a1565b5f61041f338484610dab565b5f546001600160a01b031633146106855760405162461bcd60e51b815260040161052f90611a67565b601654600160a01b900460ff16156106df5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161052f565b6106eb6012600a611a42565b6106f9906305f5e100611a50565b8111156107525760405162461bcd60e51b815260206004820152602160248201527f546f6b656e20616d6f756e74206578636565647320746f74616c20737570706c6044820152607960f81b606482015260840161052f565b6040516323b872dd60e01b8152336004820152306024820181905260448201839052906323b872dd906064016020604051808303815f875af115801561079a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107be9190611a9c565b6108025760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604482015260640161052f565b5f341161085b5760405162461bcd60e51b815260206004820152602160248201527f45544820616d6f756e74206d7573742062652067726561746572207468616e206044820152600360fc1b606482015260840161052f565b601580546001600160a01b03191673c532a74256d3db42d0bf7a0400fefdbad769400890811790915561089090309083610c88565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156108d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fb9190611abb565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109819190611abb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156109ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ee9190611abb565b601680546001600160a01b0319166001600160a01b03929092169182179055610b2457806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a959190611abb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610adf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b039190611abb565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d7194730610b55816001600160a01b03165f9081526001602052604090205490565b5f80610b685f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bce573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bf39190611ad6565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6c9190611a9c565b50506016805462ff00ff60a01b19166201000160a01b17905550565b6001600160a01b038316610cea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052f565b6001600160a01b038216610d4b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052f565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161052f565b6001600160a01b038216610e715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161052f565b5f8111610ed25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161052f565b5f6001610ee65f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610f1457505f546001600160a01b03858116911614155b1561133b57610f4c6064610f46601660149054906101000a900460ff16610f3d57600954610f3f565b5f5b8690611675565b906116fa565b60065490925060ff1615611006576015546001600160a01b03858116911614801590610f8657506016546001600160a01b03858116911614155b1561100657325f908152600560205260409020544311610ff45760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b606482015260840161052f565b325f9081526005602052604090204390555b6016546001600160a01b03868116911614801561103157506015546001600160a01b03858116911614155b801561105557506001600160a01b0384165f9081526003602052604090205460ff16155b15611192576011548311156110a85760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161052f565b601254836110ca866001600160a01b03165f9081526001602052604090205490565b6110d49190611b01565b11156111225760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161052f565b600f54601054101561113957833b15611139575f80fd5b60108054905f61114883611b14565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461118f91606491610f46911061118557600954610f3f565b600b548690611675565b91505b6016546001600160a01b0385811691161480156111b857506001600160a01b0385163014155b156112905760115483111561120b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161052f565b6112306064610f46600e546010541161122657600a54610f3f565b600c548690611675565b6001600160a01b0386165f9081526004602052604090205490925042148061126d57506001600160a01b0385165f90815260046020526040902054155b1561127557505f5b60085460ff168015611288575043600754145b1561129057505f5b305f90815260016020526040902054601654600160a81b900460ff161580156112c657506016546001600160a01b038681169116145b80156112db5750601654600160b01b900460ff165b80156112e8575060135481115b80156112f75750600f54601054115b80156113005750815b156113395761132261131d856113188460145461173b565b61173b565b6114b1565b478015611337576113324761163a565b436007555b505b505b81156113b357305f9081526001602052604090205461135a908361174f565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113aa9086815260200190565b60405180910390a35b6001600160a01b0385165f908152600160205260409020546113d590846117ad565b6001600160a01b0386165f908152600160205260409020556114186113fa84846117ad565b6001600160a01b0386165f908152600160205260409020549061174f565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146186866117ad565b60405190815260200160405180910390a35050505050565b5f818484111561149c5760405162461bcd60e51b815260040161052f919061181a565b505f6114a88486611b2c565b95945050505050565b6016805460ff60a81b1916600160a81b179055801561162a57601654600160a01b900460ff161561162a576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061150f5761150f611b3f565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611566573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158a9190611abb565b8160018151811061159d5761159d611b3f565b6001600160a01b0392831660209182029290920101526015546115c39130911684610c88565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115fb9085905f90869030904290600401611b53565b5f604051808303815f87803b158015611612575f80fd5b505af1158015611624573d5f803e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610502573d5f803e3d5ffd5b5f825f0361168457505f610423565b5f61168f8385611a50565b90508261169c8583611bc4565b146116f35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052f565b9392505050565b5f6116f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ee565b5f81831161174957826116f3565b50919050565b5f8061175b8385611b01565b9050838110156116f35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052f565b5f6116f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611479565b5f818361180e5760405162461bcd60e51b815260040161052f919061181a565b505f6114a88486611bc4565b5f602080835283518060208501525f5b818110156118465785810183015185820160400152820161182a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461187a575f80fd5b50565b5f806040838503121561188e575f80fd5b823561189981611866565b946020939093013593505050565b5f805f606084860312156118b9575f80fd5b83356118c481611866565b925060208401356118d481611866565b929592945050506040919091013590565b5f602082840312156118f5575f80fd5b81356116f381611866565b5f60208284031215611910575f80fd5b5035919050565b5f8060408385031215611928575f80fd5b823561193381611866565b9150602083013561194381611866565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561199c57815f19048211156119825761198261194e565b8085161561198f57918102915b93841c9390800290611967565b509250929050565b5f826119b257506001610423565b816119be57505f610423565b81600181146119d457600281146119de576119fa565b6001915050610423565b60ff8411156119ef576119ef61194e565b50506001821b610423565b5060208310610133831016604e8410600b8410161715611a1d575081810a610423565b611a278383611962565b805f1904821115611a3a57611a3a61194e565b029392505050565b5f6116f360ff8416836119a4565b80820281158282048414176104235761042361194e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aac575f80fd5b815180151581146116f3575f80fd5b5f60208284031215611acb575f80fd5b81516116f381611866565b5f805f60608486031215611ae8575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104235761042361194e565b5f60018201611b2557611b2561194e565b5060010190565b818103818111156104235761042361194e565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ba35784516001600160a01b031683529383019391830191600101611b7e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611bde57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201ffa7ef49b60b11f45835f4264e2d7657074e49bcd2b315d88e2f92bb7d82d1664736f6c634300081600330000000000000000000000000000000000000000000000000000000000000000