608060405234801561001057600080fd5b50600780546001600160a01b03191633179055611081806100326000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806342966c68116100a257806380f556051161007157806380f556051461047b57806395d89b411461049f578063a9059cbb146104a7578063c45a0155146104d3578063dd62ed3e146104db5761010b565b806342966c68146103e65780636fcfff451461040357806370a0823114610429578063782d6fe11461044f5761010b565b806318160ddd116100de57806318160ddd1461034c57806323b872dd14610366578063313ce5671461039c57806340c10f19146103ba5761010b565b806306fdde0314610110578063077f224a1461018d578063095ea7b3146102c75780630cdfebfa14610307575b600080fd5b610118610509565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c5600480360360608110156101a357600080fd5b8101906020810181356401000000008111156101be57600080fd5b8201836020820111156101d057600080fd5b803590602001918460018302840111640100000000831117156101f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561024557600080fd5b82018360208201111561025757600080fd5b8035906020019184600183028401116401000000008311171561027957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506105979050565b005b6102f3600480360360408110156102dd57600080fd5b506001600160a01b03813516906020013561062e565b604080519115158252519081900360200190f35b6103336004803603604081101561031d57600080fd5b506001600160a01b038135169060200135610645565b6040805192835260208301919091528051918290030190f35b610354610669565b60408051918252519081900360200190f35b6102f36004803603606081101561037c57600080fd5b506001600160a01b0381358116916020810135909116906040013561066f565b6103a4610703565b6040805160ff9092168252519081900360200190f35b6102c5600480360360408110156103d057600080fd5b506001600160a01b038135169060200135610708565b6102c5600480360360208110156103fc57600080fd5b5035610761565b6103546004803603602081101561041957600080fd5b50356001600160a01b03166107c5565b6103546004803603602081101561043f57600080fd5b50356001600160a01b03166107d7565b6103546004803603604081101561046557600080fd5b506001600160a01b0381351690602001356107e9565b6104836109ab565b604080516001600160a01b039092168252519081900360200190f35b6101186109ba565b6102f3600480360360408110156104bd57600080fd5b506001600160a01b038135169060200135610a14565b610483610a21565b610354600480360360408110156104f157600080fd5b506001600160a01b0381358116916020013516610a30565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058f5780601f106105645761010080835404028352916020019161058f565b820191906000526020600020905b81548152906001019060200180831161057257829003601f168201915b505050505081565b6007546001600160a01b031633146105e2576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b82516105f5906000906020860190610f7d565b508151610609906001906020850190610f7d565b50600880546001600160a01b0319166001600160a01b03929092169190911790555050565b600061063b338484610a4d565b5060015b92915050565b60056020908152600092835260408084209091529082529020805460019091015482565b60025481565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146106ee576001600160a01b03841660009081526004602090815260408083203384529091529020546106c99083610aaf565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6106f9848484610b0c565b5060019392505050565b601281565b6008546001600160a01b03163314610753576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b61075d8282610bc5565b5050565b6008546001600160a01b031633146107ac576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6008546107c2906001600160a01b031682610c58565b50565b60066020526000908152604090205481565b60036020526000908152604090205481565b60004382106108295760405162461bcd60e51b815260040180806020018281038252602181526020018061102b6021913960400191505060405180910390fd5b6001600160a01b0383166000908152600660205260409020548061085157600091505061063f565b6001600160a01b03841660009081526005602090815260408083206000198501845290915290205483106108b1576001600160a01b038416600090815260056020908152604080832060001990940183529290522060010154905061063f565b6001600160a01b03841660009081526005602090815260408083208380529091529020548310156108e657600091505061063f565b600060001982015b8181111561097b576002828203048103610906610ffb565b506001600160a01b0387166000908152600560209081526040808320848452825291829020825180840190935280548084526001909101549183019190915287141561095c5760200151945061063f9350505050565b805187111561096d57819350610974565b6001820392505b50506108ee565b506001600160a01b0385166000908152600560209081526040808320938352929052206001015491505092915050565b6008546001600160a01b031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058f5780601f106105645761010080835404028352916020019161058f565b600061063b338484610b0c565b6007546001600160a01b031681565b600460209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082821115610b06576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038316600090815260036020526040902054610b2f9082610aaf565b6001600160a01b038085166000908152600360205260408082209390935590841681522054610b5e9082610ce9565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3610bc0838383610d4a565b505050565b600254610bd29082610ce9565b6002556001600160a01b038216600090815260036020526040902054610bf89082610ce9565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361075d60008383610d4a565b6001600160a01b038216600090815260036020526040902054610c7b9082610aaf565b6001600160a01b038316600090815260036020526040902055600254610ca19082610aaf565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082820183811015610d43576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b816001600160a01b0316836001600160a01b031614158015610d6c5750600081115b15610bc0576001600160a01b03831615610df2576001600160a01b0383166000908152600660205260408120549081610da6576000610dd2565b6001600160a01b0385166000908152600560209081526040808320600019860184529091529020600101545b90506000610de08285610aaf565b9050610dee86848484610e77565b5050505b6001600160a01b03821615610bc0576001600160a01b0382166000908152600660205260408120549081610e27576000610e53565b6001600160a01b0384166000908152600560209081526040808320600019860184529091529020600101545b90506000610e618285610ce9565b9050610e6f85848484610e77565b505050505050565b438315801590610ead57506001600160a01b03851660009081526005602090815260408083206000198801845290915290205481145b15610ee4576001600160a01b0385166000908152600560209081526040808320600019880184529091529020600101829055610f33565b60408051808201825282815260208082018581526001600160a01b0389166000818152600584528581208a82528452858120945185559151600194850155815260069091529190912090850190555b604080518481526020810184905281516001600160a01b038816927f6ccddc06f2c8965011b39c0ab7dd59841ac61fadda03d5bd4e707d7102819ecd928290030190a25050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610fbe57805160ff1916838001178555610feb565b82800160010185558215610feb579182015b82811115610feb578251825591602001919060010190610fd0565b50610ff7929150611015565b5090565b604051806040016040528060008152602001600081525090565b5b80821115610ff7576000815560010161101656fe6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564a2646970667358221220fabf266d0f18b78fd9658a1a0b5cc589ff72e3d0ba9276a364b8a4b7321c7ef764736f6c634300060c0033