60806040523480156200001157600080fd5b5060408051808201825260198082527f594452546f6b656e5f4469766964656e645f547261636b6572000000000000006020808401829052845180860190955291845290830152908181600362000069838262000197565b50600462000078828262000197565b50505060006200008d620000ee60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35050610e1060125550600060135562000263565b3390565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200011d57607f821691505b6020821081036200013e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019257600081815260208120601f850160051c810160208610156200016d5750805b601f850160051c820191505b818110156200018e5782815560010162000179565b5050505b505050565b81516001600160401b03811115620001b357620001b3620000f2565b620001cb81620001c4845462000108565b8462000144565b602080601f831160018114620002035760008415620001ea5750858301515b600019600386901b1c1916600185901b1785556200018e565b600085815260208120601f198616915b82811015620002345788860151825594840194600190910190840162000213565b5085821015620002535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611ba180620002736000396000f3fe6080604052600436106101fd5760003560e01c806385a6b3ae1161010d578063a9059cbb116100a0578063bea9849e1161006f578063bea9849e146105d6578063dd62ed3e146105f6578063e30443bc1461063c578063f2fde38b1461065c578063f7c618c11461067c57600080fd5b8063a9059cbb1461054a578063aafd847a1461056a578063ac7218dc146105a0578063be10b614146105c057600080fd5b806392f74e1e116100dc57806392f74e1e146104d557806395d89b41146104f5578063a457c2d71461050a578063a8b9d2401461052a57600080fd5b806385a6b3ae146104615780638aee8127146104775780638da5cb5b1461049757806391b89fba146104b557600080fd5b8063313ce567116101905780636a4740021161015f5780636a474002146103cb5780636bf5ecd5146103e05780636f2789ec1461040057806370a0823114610416578063715018a61461044c57600080fd5b8063313ce5671461033f57806331e79db01461035b578063395093511461037b5780634e7b827f1461039b57600080fd5b80631694505e116101cc5780631694505e146102a557806318160ddd146102dd578063226cfa3d146102f257806323b872dd1461031f57600080fd5b806306fdde0314610209578063095ea7b31461023457806309bbedde14610264578063163c7cef1461028357600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021e61069c565b60405161022b9190611838565b60405180910390f35b34801561024057600080fd5b5061025461024f36600461189b565b61072e565b604051901515815260200161022b565b34801561027057600080fd5b50600c545b60405190815260200161022b565b34801561028f57600080fd5b506102a361029e3660046118c7565b610745565b005b3480156102b157600080fd5b506009546102c5906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102e957600080fd5b50600254610275565b3480156102fe57600080fd5b5061027561030d3660046118e0565b60116020526000908152604090205481565b34801561032b57600080fd5b5061025461033a3660046118fd565b61081a565b34801561034b57600080fd5b506040516012815260200161022b565b34801561036757600080fd5b506102a36103763660046118e0565b610883565b34801561038757600080fd5b5061025461039636600461189b565b6109aa565b3480156103a757600080fd5b506102546103b63660046118e0565b60106020526000908152604090205460ff1681565b3480156103d757600080fd5b506102a36109e0565b3480156103ec57600080fd5b506102a36103fb3660046118c7565b610a16565b34801561040c57600080fd5b5061027560125481565b34801561042257600080fd5b506102756104313660046118e0565b6001600160a01b031660009081526020819052604090205490565b34801561045857600080fd5b506102a3610af2565b34801561046d57600080fd5b5061027560075481565b34801561048357600080fd5b506102a36104923660046118e0565b610b66565b3480156104a357600080fd5b506005546001600160a01b03166102c5565b3480156104c157600080fd5b506102756104d03660046118e0565b610b99565b3480156104e157600080fd5b506102546104f036600461194c565b610ba4565b34801561050157600080fd5b5061021e610c52565b34801561051657600080fd5b5061025461052536600461189b565b610c61565b34801561053657600080fd5b506102756105453660046118e0565b610cb0565b34801561055657600080fd5b5061025461056536600461189b565b610cdc565b34801561057657600080fd5b506102756105853660046118e0565b6001600160a01b03166000908152600b602052604090205490565b3480156105ac57600080fd5b506102756105bb3660046118e0565b610ce9565b3480156105cc57600080fd5b5061027560135481565b3480156105e257600080fd5b506102a36105f13660046118e0565b610d45565b34801561060257600080fd5b50610275610611366004611985565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064857600080fd5b506102a361065736600461189b565b610d78565b34801561066857600080fd5b506102a36106773660046118e0565b610ee0565b34801561068857600080fd5b506008546102c5906001600160a01b031681565b6060600380546106ab906119b3565b80601f01602080910402602001604051908101604052809291908181526020018280546106d7906119b3565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b5050505050905090565b600061073b338484610fcb565b5060015b92915050565b6005546001600160a01b031633146107785760405162461bcd60e51b815260040161076f906119ed565b60405180910390fd5b80601354036108155760405162461bcd60e51b815260206004820152605b60248201527f594452546f6b656e5f4469766964656e645f547261636b65723a206d696e696d60448201527f756d546f6b656e42616c616e6365466f724469766964656e647320616c72656160648201527f6479207468652076616c7565206f6620276e657756616c7565272e0000000000608482015260a40161076f565b601355565b60006108278484846110ef565b610879843361087485604051806060016040528060288152602001611b1f602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061114f565b610fcb565b5060019392505050565b6005546001600160a01b031633146108ad5760405162461bcd60e51b815260040161076f906119ed565b6001600160a01b03811660009081526010602052604090205460ff16156108d357600080fd5b6001600160a01b0381166000908152601060205260408120805460ff19166001179055610901908290611189565b60405163131836e760e21b8152600c60048201526001600160a01b038216602482015273c347a57f15a259316eefc32570616d87eb8b139390634c60db9c9060440160006040518083038186803b15801561095b57600080fd5b505af415801561096f573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161073b91859061087490866111e8565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b815260040161076f906119ed565b610a133361124e565b50565b6005546001600160a01b03163314610a405760405162461bcd60e51b815260040161076f906119ed565b6000610a4b60025490565b11610a5557600080fd5b6000610a614783611a38565b90506000610a6f8284611a4f565b90508015610aed57610aa4610a8360025490565b610a9183600160801b6113b3565b610a9b9190611a62565b600654906111e8565b60065560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a2600754610ae990826111e8565b6007555b505050565b6005546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161076f906119ed565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610b905760405162461bcd60e51b815260040161076f906119ed565b610a1381611435565b600061073f82610cb0565b6005546000906001600160a01b03163314610bd15760405162461bcd60e51b815260040161076f906119ed565b6000610bdc8461124e565b90508015610c48576001600160a01b038416600081815260116020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610c369085815260200190565b60405180910390a3600191505061073f565b5060009392505050565b6060600480546106ab906119b3565b600061073b338461087485604051806060016040528060258152602001611b47602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061114f565b6001600160a01b0381166000908152600b602052604081205461073f90610cd684610ce9565b90611481565b600061073b3384846110ef565b6001600160a01b0381166000908152600a602090815260408083205491839052822054600654600160801b92610d3b92610d3692610d3091610d2b91906113b3565b6114c3565b906114d3565b611511565b61073f9190611a62565b6005546001600160a01b03163314610d6f5760405162461bcd60e51b815260040161076f906119ed565b610a1381611524565b6005546001600160a01b03163314610da25760405162461bcd60e51b815260040161076f906119ed565b6001600160a01b03821660009081526010602052604090205460ff16610edc576013548110610e5357610dd58282611189565b604051632f0ad01760e21b8152600c60048201526001600160a01b03831660248201526044810182905273c347a57f15a259316eefc32570616d87eb8b13939063bc2b405c9060640160006040518083038186803b158015610e3657600080fd5b505af4158015610e4a573d6000803e3d6000fd5b50505050610ed1565b610e5e826000611189565b60405163131836e760e21b8152600c60048201526001600160a01b038316602482015273c347a57f15a259316eefc32570616d87eb8b139390634c60db9c9060440160006040518083038186803b158015610eb857600080fd5b505af4158015610ecc573d6000803e3d6000fd5b505050505b610aed826001610ba4565b5050565b6005546001600160a01b03163314610f0a5760405162461bcd60e51b815260040161076f906119ed565b6001600160a01b038116610f6f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161076f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661102d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161076f565b6001600160a01b03821661108e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161076f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602f60248201527f594452546f6b656e5f4469766964656e645f547261636b65723a204e6f20747260448201526e185b9cd9995c9cc8185b1b1bddd959608a1b606482015260840161076f565b600081848411156111735760405162461bcd60e51b815260040161076f9190611838565b5060006111808486611a4f565b95945050505050565b6001600160a01b038216600090815260208190526040902054808211156111c85760006111b68383611481565b90506111c28482611570565b50505050565b80821015610aed5760006111dc8284611481565b90506111c284826115d4565b6000806111f58385611a84565b9050838110156112475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161076f565b9392505050565b60008061125a83610cb0565b905080156113aa576001600160a01b0383166000908152600b602052604090205461128590826111e8565b6001600160a01b0384166000818152600b6020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906112d49084815260200190565b60405180910390a260085460405163a9059cbb60e01b81526001600160a01b03858116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af1158015611330573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113549190611a97565b9050806113a3576001600160a01b0384166000908152600b602052604090205461137e9083611481565b6001600160a01b039094166000908152600b6020526040812094909455509192915050565b5092915050565b50600092915050565b6000826000036113c55750600061073f565b60006113d18385611a38565b9050826113de8583611a62565b146112475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161076f565b6005546001600160a01b0316331461145f5760405162461bcd60e51b815260040161076f906119ed565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600061124783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114f565b6000818181121561073f57600080fd5b6000806114e08385611ab4565b9050600083121580156114f35750838112155b80611508575060008312801561150857508381125b61124757600080fd5b60008082121561152057600080fd5b5090565b6005546001600160a01b0316331461154e5760405162461bcd60e51b815260040161076f906119ed565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b61157a8282611618565b6115b4611595610d2b836006546113b390919063ffffffff16565b6001600160a01b0384166000908152600a6020526040902054906116f7565b6001600160a01b039092166000908152600a602052604090209190915550565b6115de8282611734565b6115b46115f9610d2b836006546113b390919063ffffffff16565b6001600160a01b0384166000908152600a6020526040902054906114d3565b6001600160a01b03821661166e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161076f565b60025461167b90826111e8565b6002556001600160a01b0382166000908152602081905260409020546116a190826111e8565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000806117048385611adc565b9050600083121580156117175750838113155b806115085750600083128015611508575083811361124757600080fd5b6001600160a01b0382166117945760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161076f565b6117d181604051806060016040528060228152602001611afd602291396001600160a01b038516600090815260208190526040902054919061114f565b6001600160a01b0383166000908152602081905260409020556002546117f79082611481565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016116eb565b600060208083528351808285015260005b8181101561186557858101830151858201604001528201611849565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a1357600080fd5b600080604083850312156118ae57600080fd5b82356118b981611886565b946020939093013593505050565b6000602082840312156118d957600080fd5b5035919050565b6000602082840312156118f257600080fd5b813561124781611886565b60008060006060848603121561191257600080fd5b833561191d81611886565b9250602084013561192d81611886565b929592945050506040919091013590565b8015158114610a1357600080fd5b6000806040838503121561195f57600080fd5b823561196a81611886565b9150602083013561197a8161193e565b809150509250929050565b6000806040838503121561199857600080fd5b82356119a381611886565b9150602083013561197a81611886565b600181811c908216806119c757607f821691505b6020821081036119e757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761073f5761073f611a22565b8181038181111561073f5761073f611a22565b600082611a7f57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561073f5761073f611a22565b600060208284031215611aa957600080fd5b81516112478161193e565b8082018281126000831280158216821582161715611ad457611ad4611a22565b505092915050565b81810360008312801583831316838312821617156113a3576113a3611a2256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203463b6adb0f5bf100b1da9fd0dbdc7128ee6a8783918d4f3b161464e1283f5ca64736f6c63430008120033