6080604052600060048190556005556200001c6009600a6200025c565b6006556101f4620000306009600a6200025c565b620000409063041cdb4062000274565b6200004c91906200028e565b6007556009805462ffffff60a01b191690553480156200006b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b03191633179055620000cd6009600a6200025c565b620000dd9063041cdb4062000274565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001206009600a6200025c565b620001309063041cdb4062000274565b60405190815260200160405180910390a3620002b1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200019e57816000190482111562000182576200018262000147565b808516156200019057918102915b93841c939080029062000162565b509250929050565b600082620001b75750600162000256565b81620001c65750600062000256565b8160018114620001df5760028114620001ea576200020a565b600191505062000256565b60ff841115620001fe57620001fe62000147565b50506001821b62000256565b5060208310610133831016604e8410600b84101617156200022f575081810a62000256565b6200023b83836200015d565b806000190482111562000252576200025262000147565b0290505b92915050565b60006200026d60ff841683620001a6565b9392505050565b808202811582820484141762000256576200025662000147565b600082620002ac57634e487b7160e01b600052601260045260246000fd5b500490565b6115b380620002c16000396000f3fe60806040526004361061012d5760003560e01c806359d0f713116100ab578063928c13551161006f578063928c13551461036a57806395d89b411461037f578063a4bbf363146103b1578063a9059cbb146103c7578063cc1776d3146103e7578063dd62ed3e146103fd57600080fd5b806359d0f713146102c457806370a08231146102ec578063715018a61461032257806371d611a6146103375780638da5cb5b1461034c57600080fd5b806323b872dd116100f257806323b872dd14610228578063313ce567146102485780633459202a146102645780633fc8cef3146102865780634f7041a5146102ae57600080fd5b80623740661461013957806306fdde0314610169578063095ea7b3146101a55780631694505e146101c557806318160ddd1461020557600080fd5b3661013457005b600080fd5b34801561014557600080fd5b50600954600160a01b900460ff165b60405190151581526020015b60405180910390f35b34801561017557600080fd5b5060408051808201909152600a81526950657065205768616c6560b01b60208201525b6040516101609190611199565b3480156101b157600080fd5b506101546101c03660046111ff565b610443565b3480156101d157600080fd5b506101ed737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610160565b34801561021157600080fd5b5061021a61045a565b604051908152602001610160565b34801561023457600080fd5b5061015461024336600461122b565b61047b565b34801561025457600080fd5b5060405160098152602001610160565b34801561027057600080fd5b5061028461027f36600461127a565b6104e4565b005b34801561029257600080fd5b506101ed73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156102ba57600080fd5b5061021a60045481565b3480156102d057600080fd5b506101ed735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b3480156102f857600080fd5b5061021a6103073660046112b3565b6001600160a01b031660009081526001602052604090205490565b34801561032e57600080fd5b5061028461080c565b34801561034357600080fd5b5060055461021a565b34801561035857600080fd5b506000546001600160a01b03166101ed565b34801561037657600080fd5b5060045461021a565b34801561038b57600080fd5b50604080518082019091526009815268504550455748414c4560b81b6020820152610198565b3480156103bd57600080fd5b5061021a60001981565b3480156103d357600080fd5b506101546103e23660046111ff565b6108b0565b3480156103f357600080fd5b5061021a60055481565b34801561040957600080fd5b5061021a6104183660046112d0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006104503384846108bd565b5060015b92915050565b60006104686009600a6113f8565b6104769063041cdb40611407565b905090565b60006104888484846109e1565b6104da84336104d585604051806060016040528060288152602001611556602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610dc7565b6108bd565b5060019392505050565b6000546001600160a01b031633146105435760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600954600160a01b900460ff161561059d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053a565b806105a757600080fd5b600880546001600160a01b0319166001600160a01b0384161790556105e330737a250d5630b4cf539739df2c5dacb4c659f2488d6000196108bd565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063c9c65396906044016020604051808303816000875af115801561064e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610672919061141e565b600980546001600160a01b0319166001600160a01b039290921691909117905530600081815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791906000806106d66000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561073e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610763919061143b565b505060095460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d600482015260001960248201526001600160a01b03909116915063095ea7b3906044016020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f09190611469565b50506009805462ff00ff60a01b19166201000160a01b17905550565b6000546001600160a01b031633146108665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161053a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104503384846109e1565b6001600160a01b03831661091f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053a565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053a565b6001600160a01b038216610aa75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053a565b60008111610b095760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053a565b600080546001600160a01b03858116911614801590610b3657506000546001600160a01b03848116911614155b8015610b5057506003546001600160a01b03848116911614155b15610ca3576009546001600160a01b038581169116148015610b8f57506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15610bbb57610bb46064610bae60045485610e0190919063ffffffff16565b90610e8a565b9050610c03565b6009546001600160a01b038481169116148015610be157506001600160a01b0384163014155b15610c0357610c006064610bae60055485610e0190919063ffffffff16565b90505b30600090815260016020526040902054600954600160a81b900460ff16158015610c3a57506009546001600160a01b038581169116145b8015610c4f5750600954600160b01b900460ff165b8015610c5c575060065481115b15610ca15760006007548211610c725781610c76565b6007545b9050610c8e818511610c885784610ecc565b81610ecc565b478015610c9e57610c9e8161100e565b50505b505b600080610cb1868585611066565b6001600160a01b0388166000908152600160205260409020549193509150821115610cdb57600080fd5b8215610d555730600090815260016020526040902054610cfb90846110ca565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4c9087815260200190565b60405180910390a35b6001600160a01b03808716600081815260016020526040808220805487900390559288168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610db79085815260200190565b60405180910390a3505050505050565b60008184841115610deb5760405162461bcd60e51b815260040161053a9190611199565b506000610df88486611486565b95945050505050565b600082600003610e1357506000610454565b6000610e1f8385611407565b905082610e2c8583611499565b14610e835760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053a565b9392505050565b6000610e8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611129565b6009805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f1457610f146114bb565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f5c57610f5c6114bb565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94783610f9e6064610bae8382610e01565b610fa89086611486565b8430426040518663ffffffff1660e01b8152600401610fcb9594939291906114d1565b600060405180830381600087803b158015610fe557600080fd5b505af1158015610ff9573d6000803e3d6000fd5b50506009805460ff60a81b1916905550505050565b6003546040516001600160a01b03909116908290600081818185875af1925050503d806000811461105b576040519150601f19603f3d011682016040523d82523d6000602084013e611060565b606091505b50505050565b6008546000908190611095906001600160a01b039081169087160361108b578461108e565b60005b8590611157565b6008546110be906001600160a01b03908116908816036110b557846110b7565b845b8690611157565b91509150935093915050565b6000806110d78385611542565b905083811015610e835760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053a565b6000818361114a5760405162461bcd60e51b815260040161053a9190611199565b506000610df88486611499565b6000610e8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dc7565b600060208083528351808285015260005b818110156111c6578581018301518582016040015282016111aa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111fc57600080fd5b50565b6000806040838503121561121257600080fd5b823561121d816111e7565b946020939093013593505050565b60008060006060848603121561124057600080fd5b833561124b816111e7565b9250602084013561125b816111e7565b929592945050506040919091013590565b80151581146111fc57600080fd5b6000806040838503121561128d57600080fd5b8235611298816111e7565b915060208301356112a88161126c565b809150509250929050565b6000602082840312156112c557600080fd5b8135610e83816111e7565b600080604083850312156112e357600080fd5b82356112ee816111e7565b915060208301356112a8816111e7565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561134f578160001904821115611335576113356112fe565b8085161561134257918102915b93841c9390800290611319565b509250929050565b60008261136657506001610454565b8161137357506000610454565b81600181146113895760028114611393576113af565b6001915050610454565b60ff8411156113a4576113a46112fe565b50506001821b610454565b5060208310610133831016604e8410600b84101617156113d2575081810a610454565b6113dc8383611314565b80600019048211156113f0576113f06112fe565b029392505050565b6000610e8360ff841683611357565b8082028115828204841417610454576104546112fe565b60006020828403121561143057600080fd5b8151610e83816111e7565b60008060006060848603121561145057600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561147b57600080fd5b8151610e838161126c565b81810381811115610454576104546112fe565b6000826114b657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115215784516001600160a01b0316835293830193918301916001016114fc565b50506001600160a01b03969096166060850152505050608001529392505050565b80820180821115610454576104546112fe56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220748005276fe32961be873997b64cabfae76a1fdf60ee0de41d308d039f3bb39364736f6c63430008130033