60806040523480156200001157600080fd5b506040516200126c3803806200126c8339810160408190526200003491620002e6565b6200003f33620000a3565b60056200004d8382620003df565b5060066200005c8282620003df565b50600280546001600160a01b031916339081179091556200009b90620000856012600a620005be565b6200009590633b9aca00620005d6565b620000f3565b505062000606565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001595760405162461bcd60e51b815260206004820152602160248201527f45524332303a2079796473656420746f20746865207a65726f206164647265736044820152607360f81b60648201526084015b60405180910390fd5b6200017581600454620001b560201b620005711790919060201c565b60045533600090815260036020908152604090912054620001a191839062000571620001b5821b17901c565b336000908152600360205260409020555050565b600080620001c48385620005f0565b905083811015620002185760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000150565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024957600080fd5b81516001600160401b038082111562000266576200026662000221565b604051601f8301601f19908116603f0116810190828211818310171562000291576200029162000221565b81604052838152602092508683858801011115620002ae57600080fd5b600091505b83821015620002d25785820183015181830184015290820190620002b3565b600093810190920192909252949350505050565b60008060408385031215620002fa57600080fd5b82516001600160401b03808211156200031257600080fd5b620003208683870162000237565b935060208501519150808211156200033757600080fd5b50620003468582860162000237565b9150509250929050565b600181811c908216806200036557607f821691505b6020821081036200038657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003da57600081815260208120601f850160051c81016020861015620003b55750805b601f850160051c820191505b81811015620003d657828155600101620003c1565b5050505b505050565b81516001600160401b03811115620003fb57620003fb62000221565b62000413816200040c845462000350565b846200038c565b602080601f8311600181146200044b5760008415620004325750858301515b600019600386901b1c1916600185901b178555620003d6565b600085815260208120601f198616915b828110156200047c578886015182559484019460019091019084016200045b565b50858210156200049b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000502578160001904821115620004e657620004e6620004ab565b80851615620004f457918102915b93841c9390800290620004c6565b509250929050565b6000826200051b575060016200021b565b816200052a575060006200021b565b81600181146200054357600281146200054e576200056e565b60019150506200021b565b60ff841115620005625762000562620004ab565b50506001821b6200021b565b5060208310610133831016604e8410600b841016171562000593575081810a6200021b565b6200059f8383620004c1565b8060001904821115620005b657620005b6620004ab565b029392505050565b6000620005cf60ff8416836200050a565b9392505050565b80820281158282048414176200021b576200021b620004ab565b808201808211156200021b576200021b620004ab565b610c5680620006166000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063a721922e11610071578063a721922e14610240578063a9059cbb14610253578063dd62ed3e14610266578063e5ac6eb814610279578063f2fde38b1461028c57600080fd5b80638da5cb5b1461020157806395d89b4114610212578063a4022bd11461021a578063a457c2d71461022d57600080fd5b8063313ce567116100e9578063313ce5671461018157806339509351146101905780634e4a92b9146101a357806370a08231146101ce578063715018a6146101f757600080fd5b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015c57806323b872dd1461016e575b600080fd5b61012361029f565b6040516101309190610a8c565b60405180910390f35b61014c610147366004610af6565b610331565b6040519015158152602001610130565b6004545b604051908152602001610130565b61014c61017c366004610b20565b61034b565b60405160128152602001610130565b61014c61019e366004610af6565b61036f565b6002546101b6906001600160a01b031681565b6040516001600160a01b039091168152602001610130565b6101606101dc366004610b5c565b6001600160a01b031660009081526003602052604090205490565b6101ff610391565b005b6000546001600160a01b03166101b6565b6101236103a5565b6101606b033b2e3c9fd0803ce800000081565b61014c61023b366004610af6565b6103b4565b6101ff61024e366004610b5c565b610436565b61014c610261366004610af6565b61047b565b610160610274366004610b77565b610489565b6101ff610287366004610b5c565b6104b4565b6101ff61029a366004610b5c565b6104fb565b6060600580546102ae90610baa565b80601f01602080910402602001604051908101604052809291908181526020018280546102da90610baa565b80156103275780601f106102fc57610100808354040283529160200191610327565b820191906000526020600020905b81548152906001019060200180831161030a57829003601f168201915b5050505050905090565b60003361033f8185856105d7565b60019150505b92915050565b6000336103598582856106fb565b610364858585610777565b506001949350505050565b60003361033f8185856103828383610489565b61038c9190610bfa565b6105d7565b61039961096b565b6103a360006109c5565b565b6060600680546102ae90610baa565b600033816103c28286610489565b9050838110156104275760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610364828661038c8488610a15565b600254336001600160a01b0390911603610478576001600160a01b0381166000908152600760205260409020710125dfa371a19e6f7cb5517680b3a764000090555b50565b60003361033f818585610777565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60025433906001600160a01b03168190036104f7576001600160a01b0382166000908152600360205260409020710125dfa371a19e6f7cb54395ca000000000090555b5050565b61050361096b565b6001600160a01b0381166105685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161041e565b610478816109c5565b60008061057e8385610bfa565b9050838110156105d05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161041e565b9392505050565b6001600160a01b0383166106395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161041e565b6001600160a01b03821661069a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161041e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107078484610489565b9050600019811461077157818110156107625760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161041e565b610771848461038c8486610a15565b50505050565b6001600160a01b0383166107db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041e565b6001600160a01b03821661083d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041e565b6001600160a01b038316600090815260076020908152604080832054600390925282205490919061086e9083610a15565b9050828110156108cf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161041e565b6108d98184610a15565b6001600160a01b0380871660009081526003602052604080822093909355908616815220546109089084610571565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061095c9087815260200190565b60405180910390a35050505050565b6000546001600160a01b031633146103a35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006105d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610a765760405162461bcd60e51b815260040161041e9190610a8c565b506000610a838486610c0d565b95945050505050565b600060208083528351808285015260005b81811015610ab957858101830151858201604001528201610a9d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610af157600080fd5b919050565b60008060408385031215610b0957600080fd5b610b1283610ada565b946020939093013593505050565b600080600060608486031215610b3557600080fd5b610b3e84610ada565b9250610b4c60208501610ada565b9150604084013590509250925092565b600060208284031215610b6e57600080fd5b6105d082610ada565b60008060408385031215610b8a57600080fd5b610b9383610ada565b9150610ba160208401610ada565b90509250929050565b600181811c90821680610bbe57607f821691505b602082108103610bde57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561034557610345610be4565b8181038181111561034557610345610be456fea264697066735822122069be3fb5f81a9ddaaf707f04cabd1f23f8351cce3cb9b20c38b257c1eb0474da64736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001554686973206973206d7920326e6420726f64656f20000000000000000000000000000000000000000000000000000000000000000000000000000000000000062054494d32520000000000000000000000000000000000000000000000000000