0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638ebfc796116100c3578063a9059cbb1161007c578063a9059cbb146103d6578063d25da87114610402578063dd62ed3e1461040a578063f2fde38b14610438578063fbc968ac1461045e578063ff86190f1461046657610158565b80638ebfc7961461033e5780638f32d59b1461036c57806395d89b4114610374578063a22d48321461037c578063a457c2d7146103a2578063a8b08982146103ce57610158565b8063395093511161011557806339509351146102ac5780633f4218e0146102d85780634d709adf146102fe57806370a0823114610306578063715018a61461032c5780638da5cb5b1461033657610158565b806306fdde031461015d578063095ea7b3146101da57806318160ddd1461021a57806323b872dd14610234578063313ce5671461026a5780633268cc5614610288575b600080fd5b61016561046e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019f578181015183820152602001610187565b50505050905090810190601f1680156101cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610206600480360360408110156101f057600080fd5b506001600160a01b038135169060200135610504565b604080519115158252519081900360200190f35b610222610522565b60408051918252519081900360200190f35b6102066004803603606081101561024a57600080fd5b506001600160a01b03813581169160208101359091169060400135610528565b61027261060b565b6040805160ff9092168252519081900360200190f35b610290610614565b604080516001600160a01b039092168252519081900360200190f35b610206600480360360408110156102c257600080fd5b506001600160a01b038135169060200135610623565b610206600480360360208110156102ee57600080fd5b50356001600160a01b0316610676565b610290610694565b6102226004803603602081101561031c57600080fd5b50356001600160a01b03166106a3565b6103346106cb565b005b61029061072b565b6103346004803603604081101561035457600080fd5b506001600160a01b038135169060200135151561073f565b6102066107c5565b6101656107db565b6103346004803603602081101561039257600080fd5b50356001600160a01b031661083b565b610206600480360360408110156103b857600080fd5b506001600160a01b0381351690602001356108e7565b610290610957565b610206600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610966565b61022261097a565b6102226004803603604081101561042057600080fd5b506001600160a01b0381358116916020013516610980565b6103346004803603602081101561044e57600080fd5b50356001600160a01b03166109ab565b6102226109c8565b6102226109ce565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050505050905090565b6000610518610511610a34565b8484610a38565b5060015b92915050565b60055490565b6001600160a01b0383166000908152600860205260408120600019908261054d610a34565b6001600160a01b03166001600160a01b0316815260200190815260200160002054146105f6576001600160a01b03841660009081526008602052604081206105ba9184919061059a610a34565b6001600160a01b0316815260208101919091526040016000205490610b50565b6001600160a01b0385166000908152600860205260408120906105db610a34565b6001600160a01b031681526020810191909152604001600020555b610601848484610b92565b5060019392505050565b60025460ff1690565b600d546001600160a01b031681565b6000610518610630610a34565b846106718560086000610641610a34565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d75565b610a38565b6001600160a01b031660009081526004602052604090205460ff1690565b6003546001600160a01b031681565b6006546001600160a01b038216600090815260076020526040812054909161051c9190610dcf565b6106d36107c5565b6106dc57600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b031690565b6107476107c5565b61075057600080fd5b6001600160a01b03821661079a576040805162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b60025461010090046001600160a01b0316331490565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104fa5780601f106104cf576101008083540402835291602001916104fa565b6108436107c5565b61084c57600080fd5b6001600160a01b0381166108915760405162461bcd60e51b81526004018080602001828103825260278152602001806111e16027913960400191505060405180910390fd5b600e80546001600160a01b0383166001600160a01b0319918216811790925560038054909116821790556040517ff16665d2ca341ab9bf28a0c0c25537005d7cc2740a054d9f02e237ee138cb1da90600090a250565b600080600860006108f6610a34565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508083106109415761093c610934610a34565b856000610a38565b610601565b61060161094c610a34565b856106718487610b50565b600e546001600160a01b031681565b6000610518610973610a34565b8484610b92565b600a5481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6109b36107c5565b6109bc57600080fd5b6109c581610e11565b50565b600c5481565b600b5481565b6000826109e35750600061051c565b828202828482816109f057fe5b0414610a2d5760405162461bcd60e51b81526004018080602001828103825260218152602001806112086021913960400191505060405180910390fd5b9392505050565b3390565b6001600160a01b038316610a93576040805162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f2061646472657373000000604482015290519081900360640190fd5b6001600160a01b038216610aee576040805162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e8b565b6001600160a01b038216610bd75760405162461bcd60e51b81526004018080602001828103825260238152602001806112776023913960400191505060405180910390fd5b6001600160a01b038316610c1c5760405162461bcd60e51b81526004018080602001828103825260258152602001806112526025913960400191505060405180910390fd5b60008111610c5b5760405162461bcd60e51b81526004018080602001828103825260298152602001806112296029913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604081205460ff1680610c9a57506001600160a01b03831660009081526004602052604090205460ff165b90506000610cb3600654846109d490919063ffffffff16565b905081610cc557610cc5858585610f22565b6001600160a01b038516600090815260076020526040902054610ce89082610b50565b6001600160a01b038087166000908152600760205260408082209390935590861681522054610d179082610d75565b6001600160a01b0380861660008181526007602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b600082820183811015610a2d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a2d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061117b565b6001600160a01b038116610e2457600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008184841115610f1a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578181015183820152602001610ec7565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038084166000908152600960205260409020600e5490918481169116141561104b57600a54821115610f8c576040805162461bcd60e51b81526020600482015260076024820152666578636565647360c81b604482015290519081900360640190fd5b8054420362015180811180610fd05750610fbe6064610fb8600b546005546109d490919063ffffffff16565b90610dcf565b6001830154610fcd9085610d75565b11155b611016576040805162461bcd60e51b815260206004820152601260248201527114d95b1b081b1a5b5a5d081c995858da195960721b604482015290519081900360640190fd5b620151808111156110305742825560018201839055611045565b600182015461103f9084610d75565b60018301555b50611175565b600e546001600160a01b03858116911614156111755761107d6064610fb8600c546005546109d490919063ffffffff16565b8211156110bb576040805162461bcd60e51b81526020600482015260076024820152666578636565647360c81b604482015290519081900360640190fd5b60028101544203620151808111806110fc57506110ea6064610fb8600c546005546109d490919063ffffffff16565b60038301546110f99085610d75565b11155b611141576040805162461bcd60e51b8152602060048201526011602482015270109d5e481b1a5b5a5d081c995858da1959607a1b604482015290519081900360640190fd5b6201518081111561115e5742600283015560038201839055611173565b600382015461116d9084610d75565b60038301555b505b50505050565b600081836111ca5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610edf578181015183820152602001610ec7565b5060008385816111d657fe5b049594505050505056fe5061697220616464726573732063616e6e6f7420626520746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f43616e6e6f74207472616e736665722066726f6d20746865207a65726f206164647265737343616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373a2646970667358221220be6bf2b4b6d1c4c107ddfdff7f472c753caa400092cfe7d999da38d4d6e2821164736f6c63430007040033
0x608060405262989680600a556001600b556014600c553480156200002257600080fd5b506040516200182838038062001828833981810160405260208110156200004857600080fd5b5051604080518082018252600b81526a109b1858dac811dd585c9960aa1b602082810191825283518085019094526003845262424c4760e81b9084015281519192916005916200009c91600091906200047c565b508151620000b29060019060208501906200047c565b506002805460ff191660ff9290921691909117610100600160a81b031916610100330217905550506001600160a01b03811662000136576040805162461bcd60e51b815260206004820152601a60248201527f526f7574657220616464726573732063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0383811691909117918290556040805163c45a015560e01b815290519290911691829163c45a0155916004808301926020929190829003018186803b1580156200019457600080fd5b505afa158015620001a9573d6000803e3d6000fd5b505050506040513d6020811015620001c057600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c65396929085169163ad5c464891600480820192602092909190829003018186803b1580156200020f57600080fd5b505afa15801562000224573d6000803e3d6000fd5b505050506040513d60208110156200023b57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200028b57600080fd5b505af1158015620002a0573d6000803e3d6000fd5b505050506040513d6020811015620002b757600080fd5b5051600e80546001600160a01b03199081166001600160a01b03938416179182905560038054929093169116179055600160046000620002f6620003fd565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600483522080549092166001179091556402540be40060058190557b6df37f675ef6eadf5ab9a2072d44268d97df837e6748956e5c6c21176006819055620003769262000411811b620009d417901c565b600760006200038462000478565b6001600160a01b03168152602081019190915260400160002055620003a862000478565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3505062000528565b60025461010090046001600160a01b031690565b600082620004225750600062000472565b828202828482816200043057fe5b04146200046f5760405162461bcd60e51b8152600401808060200182810382526021815260200180620018076021913960400191505060405180910390fd5b90505b92915050565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620004b45760008555620004ff565b82601f10620004cf57805160ff1916838001178555620004ff565b82800160010185558215620004ff579182015b82811115620004ff578251825591602001919060010190620004e2565b506200050d92915062000511565b5090565b5b808211156200050d576000815560010162000512565b6112cf80620005386000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638ebfc796116100c3578063a9059cbb1161007c578063a9059cbb146103d6578063d25da87114610402578063dd62ed3e1461040a578063f2fde38b14610438578063fbc968ac1461045e578063ff86190f1461046657610158565b80638ebfc7961461033e5780638f32d59b1461036c57806395d89b4114610374578063a22d48321461037c578063a457c2d7146103a2578063a8b08982146103ce57610158565b8063395093511161011557806339509351146102ac5780633f4218e0146102d85780634d709adf146102fe57806370a0823114610306578063715018a61461032c5780638da5cb5b1461033657610158565b806306fdde031461015d578063095ea7b3146101da57806318160ddd1461021a57806323b872dd14610234578063313ce5671461026a5780633268cc5614610288575b600080fd5b61016561046e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019f578181015183820152602001610187565b50505050905090810190601f1680156101cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610206600480360360408110156101f057600080fd5b506001600160a01b038135169060200135610504565b604080519115158252519081900360200190f35b610222610522565b60408051918252519081900360200190f35b6102066004803603606081101561024a57600080fd5b506001600160a01b03813581169160208101359091169060400135610528565b61027261060b565b6040805160ff9092168252519081900360200190f35b610290610614565b604080516001600160a01b039092168252519081900360200190f35b610206600480360360408110156102c257600080fd5b506001600160a01b038135169060200135610623565b610206600480360360208110156102ee57600080fd5b50356001600160a01b0316610676565b610290610694565b6102226004803603602081101561031c57600080fd5b50356001600160a01b03166106a3565b6103346106cb565b005b61029061072b565b6103346004803603604081101561035457600080fd5b506001600160a01b038135169060200135151561073f565b6102066107c5565b6101656107db565b6103346004803603602081101561039257600080fd5b50356001600160a01b031661083b565b610206600480360360408110156103b857600080fd5b506001600160a01b0381351690602001356108e7565b610290610957565b610206600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610966565b61022261097a565b6102226004803603604081101561042057600080fd5b506001600160a01b0381358116916020013516610980565b6103346004803603602081101561044e57600080fd5b50356001600160a01b03166109ab565b6102226109c8565b6102226109ce565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050505050905090565b6000610518610511610a34565b8484610a38565b5060015b92915050565b60055490565b6001600160a01b0383166000908152600860205260408120600019908261054d610a34565b6001600160a01b03166001600160a01b0316815260200190815260200160002054146105f6576001600160a01b03841660009081526008602052604081206105ba9184919061059a610a34565b6001600160a01b0316815260208101919091526040016000205490610b50565b6001600160a01b0385166000908152600860205260408120906105db610a34565b6001600160a01b031681526020810191909152604001600020555b610601848484610b92565b5060019392505050565b60025460ff1690565b600d546001600160a01b031681565b6000610518610630610a34565b846106718560086000610641610a34565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d75565b610a38565b6001600160a01b031660009081526004602052604090205460ff1690565b6003546001600160a01b031681565b6006546001600160a01b038216600090815260076020526040812054909161051c9190610dcf565b6106d36107c5565b6106dc57600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b031690565b6107476107c5565b61075057600080fd5b6001600160a01b03821661079a576040805162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b60025461010090046001600160a01b0316331490565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104fa5780601f106104cf576101008083540402835291602001916104fa565b6108436107c5565b61084c57600080fd5b6001600160a01b0381166108915760405162461bcd60e51b81526004018080602001828103825260278152602001806111e16027913960400191505060405180910390fd5b600e80546001600160a01b0383166001600160a01b0319918216811790925560038054909116821790556040517ff16665d2ca341ab9bf28a0c0c25537005d7cc2740a054d9f02e237ee138cb1da90600090a250565b600080600860006108f6610a34565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508083106109415761093c610934610a34565b856000610a38565b610601565b61060161094c610a34565b856106718487610b50565b600e546001600160a01b031681565b6000610518610973610a34565b8484610b92565b600a5481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6109b36107c5565b6109bc57600080fd5b6109c581610e11565b50565b600c5481565b600b5481565b6000826109e35750600061051c565b828202828482816109f057fe5b0414610a2d5760405162461bcd60e51b81526004018080602001828103825260218152602001806112086021913960400191505060405180910390fd5b9392505050565b3390565b6001600160a01b038316610a93576040805162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f2061646472657373000000604482015290519081900360640190fd5b6001600160a01b038216610aee576040805162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e8b565b6001600160a01b038216610bd75760405162461bcd60e51b81526004018080602001828103825260238152602001806112776023913960400191505060405180910390fd5b6001600160a01b038316610c1c5760405162461bcd60e51b81526004018080602001828103825260258152602001806112526025913960400191505060405180910390fd5b60008111610c5b5760405162461bcd60e51b81526004018080602001828103825260298152602001806112296029913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604081205460ff1680610c9a57506001600160a01b03831660009081526004602052604090205460ff165b90506000610cb3600654846109d490919063ffffffff16565b905081610cc557610cc5858585610f22565b6001600160a01b038516600090815260076020526040902054610ce89082610b50565b6001600160a01b038087166000908152600760205260408082209390935590861681522054610d179082610d75565b6001600160a01b0380861660008181526007602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b600082820183811015610a2d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a2d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061117b565b6001600160a01b038116610e2457600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008184841115610f1a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578181015183820152602001610ec7565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038084166000908152600960205260409020600e5490918481169116141561104b57600a54821115610f8c576040805162461bcd60e51b81526020600482015260076024820152666578636565647360c81b604482015290519081900360640190fd5b8054420362015180811180610fd05750610fbe6064610fb8600b546005546109d490919063ffffffff16565b90610dcf565b6001830154610fcd9085610d75565b11155b611016576040805162461bcd60e51b815260206004820152601260248201527114d95b1b081b1a5b5a5d081c995858da195960721b604482015290519081900360640190fd5b620151808111156110305742825560018201839055611045565b600182015461103f9084610d75565b60018301555b50611175565b600e546001600160a01b03858116911614156111755761107d6064610fb8600c546005546109d490919063ffffffff16565b8211156110bb576040805162461bcd60e51b81526020600482015260076024820152666578636565647360c81b604482015290519081900360640190fd5b60028101544203620151808111806110fc57506110ea6064610fb8600c546005546109d490919063ffffffff16565b60038301546110f99085610d75565b11155b611141576040805162461bcd60e51b8152602060048201526011602482015270109d5e481b1a5b5a5d081c995858da1959607a1b604482015290519081900360640190fd5b6201518081111561115e5742600283015560038201839055611173565b600382015461116d9084610d75565b60038301555b505b50505050565b600081836111ca5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610edf578181015183820152602001610ec7565b5060008385816111d657fe5b049594505050505056fe5061697220616464726573732063616e6e6f7420626520746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f43616e6e6f74207472616e736665722066726f6d20746865207a65726f206164647265737343616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373a2646970667358221220be6bf2b4b6d1c4c107ddfdff7f472c753caa400092cfe7d999da38d4d6e2821164736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f770000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d