0x60806040526004361061036f5760003560e01c806388790a68116101c6578063c469b6dd116100f7578063cdf7249311610095578063dd62ed3e1161006f578063dd62ed3e146109f3578063e2f2a68614610a39578063f0cd1dac14610a59578063f2fde38b14610a6f57600080fd5b8063cdf724931461099c578063d9419b73146109bc578063dc44b6a0146109dd57600080fd5b8063c816841b116100d1578063c816841b14610920578063c860795214610940578063c867d60b14610956578063cab034711461098657600080fd5b8063c469b6dd146108d4578063c49b9a80146108ea578063c5d241891461090a57600080fd5b8063a073d37f11610164578063a83f53a71161013e578063a83f53a71461085e578063a8602fea14610874578063a9059cbb14610894578063a911928c146108b457600080fd5b8063a073d37f14610813578063a08e671f14610828578063a457c2d71461083e57600080fd5b8063914eb66a116101a0578063914eb66a146107b357806395d89b41146107c8578063989200de146107dd5780639daec0bc146107fd57600080fd5b806388790a681461074f5780638b42507f146107655780638da5cb5b1461079557600080fd5b80633e07387c116102a057806361a23c691161023e57806370a02c8b1161021857806370a02c8b146106c357806370a08231146106e357806382eefb4314610719578063844d591c1461072f57600080fd5b806361a23c691461067757806362e8e50b1461068d5780636ad53b59146106ad57600080fd5b80634a74bb021161027a5780634a74bb02146105f05780635342acb41461061157806357a5802f146106415780635d098b381461065757600080fd5b80633e07387c1461057f5780633ecad2711461059f57806346663b82146105cf57600080fd5b806323b872dd1161030d5780632b112e49116102e75780632b112e4914610508578063313ce5671461051d578063395093511461053f5780633b97084a1461055f57600080fd5b806323b872dd1461048f5780632598cdb2146104af57806327c8f835146104d457600080fd5b806311ffeaf21161034957806311ffeaf2146103f85780631694505e1461043057806318160ddd146104505780631afe88921461046f57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630ecc200f146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a8f565b60405161039d9190611e95565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004611f02565b610b21565b604051901515815260200161039d565b3480156103e257600080fd5b506103f66103f1366004611f43565b610b38565b005b34801561040457600080fd5b50600454610418906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561043c57600080fd5b50601b54610418906001600160a01b031681565b34801561045c57600080fd5b506017545b60405190815260200161039d565b34801561047b57600080fd5b506103f661048a366004611fc7565b610bed565b34801561049b57600080fd5b506103c66104aa366004611ffc565b610c42565b3480156104bb57600080fd5b506003546104189061010090046001600160a01b031681565b3480156104e057600080fd5b506104187f000000000000000000000000000000000000000000000000000000000000dead81565b34801561051457600080fd5b50610461610cad565b34801561052957600080fd5b5060035460405160ff909116815260200161039d565b34801561054b57600080fd5b506103c661055a366004611f02565b610cf7565b34801561056b57600080fd5b506103f661057a36600461203d565b610d2d565b34801561058b57600080fd5b506103f661059a366004612056565b610d5c565b3480156105ab57600080fd5b506103c66105ba366004612071565b600a6020526000908152604090205460ff1681565b3480156105db57600080fd5b50601c546103c690600160b81b900460ff1681565b3480156105fc57600080fd5b50601c546103c690600160a81b900460ff1681565b34801561061d57600080fd5b506103c661062c366004612071565b60076020526000908152604090205460ff1681565b34801561064d57600080fd5b5061046160115481565b34801561066357600080fd5b506103f6610672366004612071565b610da4565b34801561068357600080fd5b5061046160125481565b34801561069957600080fd5b506103f66106a8366004612056565b610df6565b3480156106b957600080fd5b5061046160185481565b3480156106cf57600080fd5b506103f66106de366004611fc7565b610e3e565b3480156106ef57600080fd5b506104616106fe366004612071565b6001600160a01b031660009081526005602052604090205490565b34801561072557600080fd5b5061046160155481565b34801561073b57600080fd5b506103f661074a366004611fc7565b610e93565b34801561075b57600080fd5b50610461600e5481565b34801561077157600080fd5b506103c6610780366004612071565b60096020526000908152604090205460ff1681565b3480156107a157600080fd5b506000546001600160a01b0316610418565b3480156107bf57600080fd5b506103f6610ee8565b3480156107d457600080fd5b50610390610f62565b3480156107e957600080fd5b506103f66107f836600461203d565b610f71565b34801561080957600080fd5b5061046160195481565b34801561081f57600080fd5b50601a54610461565b34801561083457600080fd5b5061046160165481565b34801561084a57600080fd5b506103c6610859366004611f02565b610fbc565b34801561086a57600080fd5b5061046160135481565b34801561088057600080fd5b506103f661088f366004612071565b61100b565b3480156108a057600080fd5b506103c66108af366004611f02565b611057565b3480156108c057600080fd5b506103c66108cf36600461208e565b101590565b3480156108e057600080fd5b50610461600d5481565b3480156108f657600080fd5b506103f6610905366004612056565b611064565b34801561091657600080fd5b50610461600c5481565b34801561092c57600080fd5b50601c54610418906001600160a01b031681565b34801561094c57600080fd5b50610461600f5481565b34801561096257600080fd5b506103c6610971366004612071565b60086020526000908152604090205460ff1681565b34801561099257600080fd5b5061046160105481565b3480156109a857600080fd5b506103f66109b736600461203d565b6110e6565b3480156109c857600080fd5b50601c546103c690600160b01b900460ff1681565b3480156109e957600080fd5b50610461600b5481565b3480156109ff57600080fd5b50610461610a0e3660046120b0565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a4557600080fd5b506103f6610a54366004611fc7565b611131565b348015610a6557600080fd5b5061046160145481565b348015610a7b57600080fd5b506103f6610a8a366004612071565b611186565b606060018054610a9e906120e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610aca906120e9565b8015610b175780601f10610aec57610100808354040283529160200191610b17565b820191906000526020600020905b815481529060010190602001808311610afa57829003601f168201915b5050505050905090565b6000610b2e338484611393565b5060015b92915050565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b8152600401610b6290612123565b60405180910390fd5b60c98210610b7857600080fd5b60005b82811015610be7578160076000868685818110610b9a57610b9a612158565b9050602002016020810190610baf9190612071565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610be081612184565b9050610b7b565b50505050565b6000546001600160a01b03163314610c175760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c4f8484846114b7565b50610ca28433610c9d856040518060600160405280602881526020016123ed602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611845565b611393565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260056020526040812054601754610cf29161187f565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b2e918590610c9d9086611270565b6000546001600160a01b03163314610d575760405162461bcd60e51b8152600401610b6290612123565b601a55565b6000546001600160a01b03163314610d865760405162461bcd60e51b8152600401610b6290612123565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610b6290612123565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610e205760405162461bcd60e51b8152600401610b6290612123565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b03163314610e685760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f125760405162461bcd60e51b8152600401610b6290612123565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060028054610a9e906120e9565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b8152600401610b6290612123565b60035460ff16610fac90600a612281565b610fb69082612290565b60195550565b6000610b2e3384610c9d85604051806060016040528060258152602001612415602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611845565b6000546001600160a01b031633146110355760405162461bcd60e51b8152600401610b6290612123565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ca23384846114b7565b6000546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610b6290612123565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110db90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111105760405162461bcd60e51b8152600401610b6290612123565b60035460ff1661112190600a612281565b61112b9082612290565b60185550565b6000546001600160a01b0316331461115b5760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111b05760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b0381166112155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b62565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061127d83856122af565b905083811015610ca65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b62565b6000826000036112e157506000610b32565b60006112ed8385612290565b9050826112fa85836122c7565b14610ca65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b62565b6000610ca683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118c1565b6001600160a01b0383166113f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b62565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b62565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661151d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b62565b6001600160a01b03831661157f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b62565b601c54600160a01b900460ff16156115a35761159c8484846118ef565b9050610ca6565b6001600160a01b03841660009081526009602052604090205460ff161580156115e557506001600160a01b03831660009081526009602052604090205460ff16155b156115ff576115f682601854101590565b6115ff57600080fd5b30600090815260056020526040902054601a548110801590819061162d5750601c54600160a01b900460ff16155b801561165257506001600160a01b0386166000908152600a602052604090205460ff16155b80156116675750601c54600160a81b900460ff165b1561168d57601c54600160b01b900460ff161561168457601a5491505b61168d826119d5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546116df918690611845565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061172c57506001600160a01b03861660009081526007602052604090205460ff165b15611738575083611746565b611743878787611b10565b90505b601c54600160b81b900460ff16801561177857506001600160a01b03861660009081526008602052604090205460ff16155b156117ba576117b16117a9826117a3896001600160a01b031660009081526005602052604090205490565b90611270565b601954101590565b6117ba57600080fd5b6001600160a01b0386166000908152600560205260409020546117dd9082611270565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118319085815260200190565b60405180910390a360019350505050610ca6565b600081848411156118695760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122e9565b95945050505050565b6000610ca683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611845565b600081836118e25760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122c7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611940918490611845565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461196f9083611270565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119c39086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b179055601654601154600091611a0b91600291611a0591829087906112cf565b90611351565b90506000611a19838361187f565b9050611a2481611c16565b6011544790600090611a4490611a3b906002611351565b6016549061187f565b90506000611a666002611a0584611a05601154886112cf90919063ffffffff16565b90506000611a8383611a05601354876112cf90919063ffffffff16565b90506000611a9b82611a95878661187f565b9061187f565b90508015611abe57600354611abe9061010090046001600160a01b031682611da3565b8115611ada57600454611ada906001600160a01b031683611da3565b600083118015611aea5750600087115b15611af957611af98784611dde565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611b5457611b4d6064611a05601454866112cf90919063ffffffff16565b9050611b92565b6001600160a01b0384166000908152600a602052604090205460ff1615611b9257611b8f6064611a05601554866112cf90919063ffffffff16565b90505b8015611c0c5730600090815260056020526040902054611bb29082611270565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c039085815260200190565b60405180910390a35b611876838261187f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4b57611c4b612158565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc89190612300565b81600181518110611cdb57611cdb612158565b6001600160a01b039283166020918202929092010152601b54611d019130911684611393565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d3a908590600090869030904290600401612361565b600060405180830381600087803b158015611d5457600080fd5b505af1925050508015611d65575060015b507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611d9792919061239d565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611dd9573d6000803e3d6000fd5b505050565b601b54611df69030906001600160a01b031684611393565b601b5460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af193505050508015611e88575060408051601f3d908101601f19168201909252611e85918101906123be565b60015b15611e91575050505b5050565b600060208083528351808285015260005b81811015611ec257858101830151858201604001528201611ea6565b81811115611ed4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611eff57600080fd5b50565b60008060408385031215611f1557600080fd5b8235611f2081611eea565b946020939093013593505050565b80358015158114611f3e57600080fd5b919050565b600080600060408486031215611f5857600080fd5b833567ffffffffffffffff80821115611f7057600080fd5b818601915086601f830112611f8457600080fd5b813581811115611f9357600080fd5b8760208260051b8501011115611fa857600080fd5b602092830195509350611fbe9186019050611f2e565b90509250925092565b60008060408385031215611fda57600080fd5b8235611fe581611eea565b9150611ff360208401611f2e565b90509250929050565b60008060006060848603121561201157600080fd5b833561201c81611eea565b9250602084013561202c81611eea565b929592945050506040919091013590565b60006020828403121561204f57600080fd5b5035919050565b60006020828403121561206857600080fd5b610ca682611f2e565b60006020828403121561208357600080fd5b8135610ca681611eea565b600080604083850312156120a157600080fd5b50508035926020909101359150565b600080604083850312156120c357600080fd5b82356120ce81611eea565b915060208301356120de81611eea565b809150509250929050565b600181811c908216806120fd57607f821691505b60208210810361211d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121965761219661216e565b5060010190565b600181815b808511156121d85781600019048211156121be576121be61216e565b808516156121cb57918102915b93841c93908002906121a2565b509250929050565b6000826121ef57506001610b32565b816121fc57506000610b32565b8160018114612212576002811461221c57612238565b6001915050610b32565b60ff84111561222d5761222d61216e565b50506001821b610b32565b5060208310610133831016604e8410600b841016171561225b575081810a610b32565b612265838361219d565b80600019048211156122795761227961216e565b029392505050565b6000610ca660ff8416836121e0565b60008160001904831182151516156122aa576122aa61216e565b500290565b600082198211156122c2576122c261216e565b500190565b6000826122e457634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156122fb576122fb61216e565b500390565b60006020828403121561231257600080fd5b8151610ca681611eea565b600081518084526020808501945080840160005b838110156123565781516001600160a01b031687529582019590820190600101612331565b509495945050505050565b85815284602082015260a06040820152600061238060a083018661231d565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123b6604083018461231d565b949350505050565b6000806000606084860312156123d357600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122089b6b5af81e78bc25ad3d74aeee85f6d7148b2f7565adc02e3f8ef97e50eff4964736f6c634300080f0033
0x60a060405261dead608052601c805462ffffff60a81b19166201000160a81b1790553480156200002e57600080fd5b50604051806040016040528060048152602001634465666960e01b815250604051806040016040528060048152602001634465666960e01b81525064174876e800604051806060016040528060008152602001600081526020016000815250604051806060016040528060008152602001600081526020016000815250604051806060016040528060008152602001600081526020016000815250604051806040016040528064174876e800815260200164174876e8008152506040518060400160405280733efe2737cb25e4f7b3f527baeace74fe1e5274316001600160a01b03166001600160a01b03168152602001733efe2737cb25e4f7b3f527baeace74fe1e5274316001600160a01b03166001600160a01b031681525060006200015b6200072460201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001620001b389826200094d565b506002620001c288826200094d565b506003805460ff19166009908117909155620001e090600a62000b2c565b620001ec908762000b3d565b6017558451600b819055602080870151600c819055604080890151600d8190558851600e5588840151600f558882015160105587516011558784015160125590870151601355620002629390926200024e92906200127062000728821b17901c565b6200072860201b620012701790919060201c565b6014819055506200028d6010546200024e600f54600e546200072860201b620012701790919060201c565b601581905550620002b86013546200024e6012546011546200072860201b620012701790919060201c565b601655600354620002ce9060ff16600a62000b2c565b8251620002dc919062000b3d565b601855600354620002f29060ff16600a62000b2c565b602083015162000303919062000b3d565b601981905550620003416127106200032d60016017546200079860201b620012cf1790919060201c565b6200082260201b620013511790919060201c565b601a55805160038054610100600160a81b0319166101006001600160a01b039384160217905560208083015160048054919093166001600160a01b03199091161782556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a015593808301939192908290030181865afa158015620003d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f9919062000b5f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000447573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046d919062000b5f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620004bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e1919062000b5f565b601c80546001600160a01b039283166001600160a01b031991821617909155601b8054928416929091168217905560175430600090815260066020908152604080832094835293905291822055600190600790620005476000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526007909252812080549092166001908117909255600890620005a06000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601c5490911681526008909252808220805484166001908117909155308352908220805484168217905561dead82527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805490931681179092556009906200063e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260098452828120805486166001908117909155601c549092168152600a90935290822080549093161790915560175490600590620006aa3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6017546040516200070d91815260200190565b60405180910390a350505050505050505062000c20565b3390565b60008062000737838562000b8a565b9050838110156200078f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b600082600003620007ac5750600062000792565b6000620007ba838562000b3d565b905082620007c9858362000ba5565b146200078f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000786565b60006200078f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200086c60201b60201c565b60008183620008905760405162461bcd60e51b815260040162000786919062000bc8565b5060006200089f848662000ba5565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620008d357607f821691505b602082108103620008f457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200094857600081815260208120601f850160051c81016020861015620009235750805b601f850160051c820191505b8181101562000944578281556001016200092f565b5050505b505050565b81516001600160401b03811115620009695762000969620008a8565b62000981816200097a8454620008be565b84620008fa565b602080601f831160018114620009b95760008415620009a05750858301515b600019600386901b1c1916600185901b17855562000944565b600085815260208120601f198616915b82811015620009ea57888601518255948401946001909101908401620009c9565b508582101562000a095787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000a7057816000190482111562000a545762000a5462000a19565b8085161562000a6257918102915b93841c939080029062000a34565b509250929050565b60008262000a895750600162000792565b8162000a985750600062000792565b816001811462000ab1576002811462000abc5762000adc565b600191505062000792565b60ff84111562000ad05762000ad062000a19565b50506001821b62000792565b5060208310610133831016604e8410600b841016171562000b01575081810a62000792565b62000b0d838362000a2f565b806000190482111562000b245762000b2462000a19565b029392505050565b60006200078f60ff84168362000a78565b600081600019048311821515161562000b5a5762000b5a62000a19565b500290565b60006020828403121562000b7257600080fd5b81516001600160a01b03811681146200078f57600080fd5b6000821982111562000ba05762000ba062000a19565b500190565b60008262000bc357634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101562000bf75785810183015185820160400152820162000bd9565b8181111562000c0a576000604083870101525b50601f01601f1916929092016040019392505050565b60805161246f62000c43600039600081816104e60152610caf015261246f6000f3fe60806040526004361061036f5760003560e01c806388790a68116101c6578063c469b6dd116100f7578063cdf7249311610095578063dd62ed3e1161006f578063dd62ed3e146109f3578063e2f2a68614610a39578063f0cd1dac14610a59578063f2fde38b14610a6f57600080fd5b8063cdf724931461099c578063d9419b73146109bc578063dc44b6a0146109dd57600080fd5b8063c816841b116100d1578063c816841b14610920578063c860795214610940578063c867d60b14610956578063cab034711461098657600080fd5b8063c469b6dd146108d4578063c49b9a80146108ea578063c5d241891461090a57600080fd5b8063a073d37f11610164578063a83f53a71161013e578063a83f53a71461085e578063a8602fea14610874578063a9059cbb14610894578063a911928c146108b457600080fd5b8063a073d37f14610813578063a08e671f14610828578063a457c2d71461083e57600080fd5b8063914eb66a116101a0578063914eb66a146107b357806395d89b41146107c8578063989200de146107dd5780639daec0bc146107fd57600080fd5b806388790a681461074f5780638b42507f146107655780638da5cb5b1461079557600080fd5b80633e07387c116102a057806361a23c691161023e57806370a02c8b1161021857806370a02c8b146106c357806370a08231146106e357806382eefb4314610719578063844d591c1461072f57600080fd5b806361a23c691461067757806362e8e50b1461068d5780636ad53b59146106ad57600080fd5b80634a74bb021161027a5780634a74bb02146105f05780635342acb41461061157806357a5802f146106415780635d098b381461065757600080fd5b80633e07387c1461057f5780633ecad2711461059f57806346663b82146105cf57600080fd5b806323b872dd1161030d5780632b112e49116102e75780632b112e4914610508578063313ce5671461051d578063395093511461053f5780633b97084a1461055f57600080fd5b806323b872dd1461048f5780632598cdb2146104af57806327c8f835146104d457600080fd5b806311ffeaf21161034957806311ffeaf2146103f85780631694505e1461043057806318160ddd146104505780631afe88921461046f57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630ecc200f146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a8f565b60405161039d9190611e95565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004611f02565b610b21565b604051901515815260200161039d565b3480156103e257600080fd5b506103f66103f1366004611f43565b610b38565b005b34801561040457600080fd5b50600454610418906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561043c57600080fd5b50601b54610418906001600160a01b031681565b34801561045c57600080fd5b506017545b60405190815260200161039d565b34801561047b57600080fd5b506103f661048a366004611fc7565b610bed565b34801561049b57600080fd5b506103c66104aa366004611ffc565b610c42565b3480156104bb57600080fd5b506003546104189061010090046001600160a01b031681565b3480156104e057600080fd5b506104187f000000000000000000000000000000000000000000000000000000000000000081565b34801561051457600080fd5b50610461610cad565b34801561052957600080fd5b5060035460405160ff909116815260200161039d565b34801561054b57600080fd5b506103c661055a366004611f02565b610cf7565b34801561056b57600080fd5b506103f661057a36600461203d565b610d2d565b34801561058b57600080fd5b506103f661059a366004612056565b610d5c565b3480156105ab57600080fd5b506103c66105ba366004612071565b600a6020526000908152604090205460ff1681565b3480156105db57600080fd5b50601c546103c690600160b81b900460ff1681565b3480156105fc57600080fd5b50601c546103c690600160a81b900460ff1681565b34801561061d57600080fd5b506103c661062c366004612071565b60076020526000908152604090205460ff1681565b34801561064d57600080fd5b5061046160115481565b34801561066357600080fd5b506103f6610672366004612071565b610da4565b34801561068357600080fd5b5061046160125481565b34801561069957600080fd5b506103f66106a8366004612056565b610df6565b3480156106b957600080fd5b5061046160185481565b3480156106cf57600080fd5b506103f66106de366004611fc7565b610e3e565b3480156106ef57600080fd5b506104616106fe366004612071565b6001600160a01b031660009081526005602052604090205490565b34801561072557600080fd5b5061046160155481565b34801561073b57600080fd5b506103f661074a366004611fc7565b610e93565b34801561075b57600080fd5b50610461600e5481565b34801561077157600080fd5b506103c6610780366004612071565b60096020526000908152604090205460ff1681565b3480156107a157600080fd5b506000546001600160a01b0316610418565b3480156107bf57600080fd5b506103f6610ee8565b3480156107d457600080fd5b50610390610f62565b3480156107e957600080fd5b506103f66107f836600461203d565b610f71565b34801561080957600080fd5b5061046160195481565b34801561081f57600080fd5b50601a54610461565b34801561083457600080fd5b5061046160165481565b34801561084a57600080fd5b506103c6610859366004611f02565b610fbc565b34801561086a57600080fd5b5061046160135481565b34801561088057600080fd5b506103f661088f366004612071565b61100b565b3480156108a057600080fd5b506103c66108af366004611f02565b611057565b3480156108c057600080fd5b506103c66108cf36600461208e565b101590565b3480156108e057600080fd5b50610461600d5481565b3480156108f657600080fd5b506103f6610905366004612056565b611064565b34801561091657600080fd5b50610461600c5481565b34801561092c57600080fd5b50601c54610418906001600160a01b031681565b34801561094c57600080fd5b50610461600f5481565b34801561096257600080fd5b506103c6610971366004612071565b60086020526000908152604090205460ff1681565b34801561099257600080fd5b5061046160105481565b3480156109a857600080fd5b506103f66109b736600461203d565b6110e6565b3480156109c857600080fd5b50601c546103c690600160b01b900460ff1681565b3480156109e957600080fd5b50610461600b5481565b3480156109ff57600080fd5b50610461610a0e3660046120b0565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a4557600080fd5b506103f6610a54366004611fc7565b611131565b348015610a6557600080fd5b5061046160145481565b348015610a7b57600080fd5b506103f6610a8a366004612071565b611186565b606060018054610a9e906120e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610aca906120e9565b8015610b175780601f10610aec57610100808354040283529160200191610b17565b820191906000526020600020905b815481529060010190602001808311610afa57829003601f168201915b5050505050905090565b6000610b2e338484611393565b5060015b92915050565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b8152600401610b6290612123565b60405180910390fd5b60c98210610b7857600080fd5b60005b82811015610be7578160076000868685818110610b9a57610b9a612158565b9050602002016020810190610baf9190612071565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610be081612184565b9050610b7b565b50505050565b6000546001600160a01b03163314610c175760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c4f8484846114b7565b50610ca28433610c9d856040518060600160405280602881526020016123ed602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611845565b611393565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260056020526040812054601754610cf29161187f565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b2e918590610c9d9086611270565b6000546001600160a01b03163314610d575760405162461bcd60e51b8152600401610b6290612123565b601a55565b6000546001600160a01b03163314610d865760405162461bcd60e51b8152600401610b6290612123565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610b6290612123565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610e205760405162461bcd60e51b8152600401610b6290612123565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b03163314610e685760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f125760405162461bcd60e51b8152600401610b6290612123565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060028054610a9e906120e9565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b8152600401610b6290612123565b60035460ff16610fac90600a612281565b610fb69082612290565b60195550565b6000610b2e3384610c9d85604051806060016040528060258152602001612415602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611845565b6000546001600160a01b031633146110355760405162461bcd60e51b8152600401610b6290612123565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ca23384846114b7565b6000546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610b6290612123565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110db90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111105760405162461bcd60e51b8152600401610b6290612123565b60035460ff1661112190600a612281565b61112b9082612290565b60185550565b6000546001600160a01b0316331461115b5760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111b05760405162461bcd60e51b8152600401610b6290612123565b6001600160a01b0381166112155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b62565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061127d83856122af565b905083811015610ca65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b62565b6000826000036112e157506000610b32565b60006112ed8385612290565b9050826112fa85836122c7565b14610ca65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b62565b6000610ca683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118c1565b6001600160a01b0383166113f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b62565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b62565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661151d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b62565b6001600160a01b03831661157f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b62565b601c54600160a01b900460ff16156115a35761159c8484846118ef565b9050610ca6565b6001600160a01b03841660009081526009602052604090205460ff161580156115e557506001600160a01b03831660009081526009602052604090205460ff16155b156115ff576115f682601854101590565b6115ff57600080fd5b30600090815260056020526040902054601a548110801590819061162d5750601c54600160a01b900460ff16155b801561165257506001600160a01b0386166000908152600a602052604090205460ff16155b80156116675750601c54600160a81b900460ff165b1561168d57601c54600160b01b900460ff161561168457601a5491505b61168d826119d5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546116df918690611845565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061172c57506001600160a01b03861660009081526007602052604090205460ff165b15611738575083611746565b611743878787611b10565b90505b601c54600160b81b900460ff16801561177857506001600160a01b03861660009081526008602052604090205460ff16155b156117ba576117b16117a9826117a3896001600160a01b031660009081526005602052604090205490565b90611270565b601954101590565b6117ba57600080fd5b6001600160a01b0386166000908152600560205260409020546117dd9082611270565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118319085815260200190565b60405180910390a360019350505050610ca6565b600081848411156118695760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122e9565b95945050505050565b6000610ca683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611845565b600081836118e25760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122c7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611940918490611845565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461196f9083611270565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119c39086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b179055601654601154600091611a0b91600291611a0591829087906112cf565b90611351565b90506000611a19838361187f565b9050611a2481611c16565b6011544790600090611a4490611a3b906002611351565b6016549061187f565b90506000611a666002611a0584611a05601154886112cf90919063ffffffff16565b90506000611a8383611a05601354876112cf90919063ffffffff16565b90506000611a9b82611a95878661187f565b9061187f565b90508015611abe57600354611abe9061010090046001600160a01b031682611da3565b8115611ada57600454611ada906001600160a01b031683611da3565b600083118015611aea5750600087115b15611af957611af98784611dde565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611b5457611b4d6064611a05601454866112cf90919063ffffffff16565b9050611b92565b6001600160a01b0384166000908152600a602052604090205460ff1615611b9257611b8f6064611a05601554866112cf90919063ffffffff16565b90505b8015611c0c5730600090815260056020526040902054611bb29082611270565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c039085815260200190565b60405180910390a35b611876838261187f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4b57611c4b612158565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc89190612300565b81600181518110611cdb57611cdb612158565b6001600160a01b039283166020918202929092010152601b54611d019130911684611393565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d3a908590600090869030904290600401612361565b600060405180830381600087803b158015611d5457600080fd5b505af1925050508015611d65575060015b507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611d9792919061239d565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611dd9573d6000803e3d6000fd5b505050565b601b54611df69030906001600160a01b031684611393565b601b5460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af193505050508015611e88575060408051601f3d908101601f19168201909252611e85918101906123be565b60015b15611e91575050505b5050565b600060208083528351808285015260005b81811015611ec257858101830151858201604001528201611ea6565b81811115611ed4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611eff57600080fd5b50565b60008060408385031215611f1557600080fd5b8235611f2081611eea565b946020939093013593505050565b80358015158114611f3e57600080fd5b919050565b600080600060408486031215611f5857600080fd5b833567ffffffffffffffff80821115611f7057600080fd5b818601915086601f830112611f8457600080fd5b813581811115611f9357600080fd5b8760208260051b8501011115611fa857600080fd5b602092830195509350611fbe9186019050611f2e565b90509250925092565b60008060408385031215611fda57600080fd5b8235611fe581611eea565b9150611ff360208401611f2e565b90509250929050565b60008060006060848603121561201157600080fd5b833561201c81611eea565b9250602084013561202c81611eea565b929592945050506040919091013590565b60006020828403121561204f57600080fd5b5035919050565b60006020828403121561206857600080fd5b610ca682611f2e565b60006020828403121561208357600080fd5b8135610ca681611eea565b600080604083850312156120a157600080fd5b50508035926020909101359150565b600080604083850312156120c357600080fd5b82356120ce81611eea565b915060208301356120de81611eea565b809150509250929050565b600181811c908216806120fd57607f821691505b60208210810361211d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121965761219661216e565b5060010190565b600181815b808511156121d85781600019048211156121be576121be61216e565b808516156121cb57918102915b93841c93908002906121a2565b509250929050565b6000826121ef57506001610b32565b816121fc57506000610b32565b8160018114612212576002811461221c57612238565b6001915050610b32565b60ff84111561222d5761222d61216e565b50506001821b610b32565b5060208310610133831016604e8410600b841016171561225b575081810a610b32565b612265838361219d565b80600019048211156122795761227961216e565b029392505050565b6000610ca660ff8416836121e0565b60008160001904831182151516156122aa576122aa61216e565b500290565b600082198211156122c2576122c261216e565b500190565b6000826122e457634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156122fb576122fb61216e565b500390565b60006020828403121561231257600080fd5b8151610ca681611eea565b600081518084526020808501945080840160005b838110156123565781516001600160a01b031687529582019590820190600101612331565b509495945050505050565b85815284602082015260a06040820152600061238060a083018661231d565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123b6604083018461231d565b949350505050565b6000806000606084860312156123d357600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122089b6b5af81e78bc25ad3d74aeee85f6d7148b2f7565adc02e3f8ef97e50eff4964736f6c634300080f0033