//
0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556112ec806100326000396000f3fe608060405234801561001057600080fd5b50600436106100d05760003560e01c806310c7f0b9146100d557806312d43a511461010e5780631a153391146101165780631d4c0fc414610146578063200c250c146101e95780633a2a80c7146102b15780633a81ee19146102cb5780634067b13214610398578063487c3868146103c15780634fdfb0861461046257806350a09e551461049c5780635841fcaa146105695780636024179814610571578063c83d751c1461063e578063cb0269c91461071e578063cfad57a214610726575b600080fd5b6100f2600480360360208110156100eb57600080fd5b503561074c565b604080516001600160a01b039092168252519081900360200190f35b6100f2610773565b6101446004803603604081101561012c57600080fd5b506001600160a01b0381351690602001351515610782565b005b6101446004803603604081101561015c57600080fd5b810190602081018135600160201b81111561017657600080fd5b82018360208201111561018857600080fd5b803590602001918460208302840111600160201b831117156101a957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506107fa915050565b610144600480360360e08110156101ff57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561022957600080fd5b82018360208201111561023b57600080fd5b803590602001918460208302840111600160201b8311171561025c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505082359350505060208101359060408101359060608101359060800135610856565b6102b9610a56565b60408051918252519081900360200190f35b610144600480360360c08110156102e157600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561030b57600080fd5b82018360208201111561031d57600080fd5b803590602001918460208302840111600160201b8311171561033e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505082359350506001600160a01b036020830135811692604081013592506060013516610a5c565b610144600480360360608110156103ae57600080fd5b5080359060208101359060400135610b3c565b610144600480360360208110156103d757600080fd5b810190602081018135600160201b8111156103f157600080fd5b82018360208201111561040357600080fd5b803590602001918460208302840111600160201b8311171561042457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610bdd945050505050565b6104886004803603602081101561047857600080fd5b50356001600160a01b0316610c93565b604080519115158252519081900360200190f35b610144600480360360c08110156104b257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156104dc57600080fd5b8201836020820111156104ee57600080fd5b803590602001918460208302840111600160201b8311171561050f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505082359350506001600160a01b036020830135811692604081013592506060013516610ca8565b6102b9610d68565b610144600480360360c081101561058757600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105b157600080fd5b8201836020820111156105c357600080fd5b803590602001918460208302840111600160201b831117156105e457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505082359350506001600160a01b036020830135811692604081013592506060013516610d6e565b610144600480360361010081101561065557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561067f57600080fd5b82018360208201111561069157600080fd5b803590602001918460208302840111600160201b831117156106b257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505082359350506001600160a01b0360208301358116926040810135821692506060810135821691608082013515159160a0013516610e2e565b6102b9610f13565b6101446004803603602081101561073c57600080fd5b50356001600160a01b0316610f19565b6004818154811061075957fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031681565b6000546001600160a01b031633146107cf576040805162461bcd60e51b81526020600482015260156024820152600080516020611272833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b3360009081526005602052604090205460ff166108485760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b6108528282610f88565b5050565b3360009081526005602052604090205460ff166108a45760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b6108ae8686610f88565b6000879050600061092484836001600160a01b0316639b5786206040518163ffffffff1660e01b815260040160206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d602081101561091c57600080fd5b50519061116d565b9050600061096584846001600160a01b0316631bca8cf06040518163ffffffff1660e01b815260040160206040518083038186803b1580156108f257600080fd5b905081871115610973578196505b8086111561097f578095505b60408051629a208160e81b81526004810189905233602482015290516001600160a01b03851691639a20810091604480830192600092919082900301818387803b1580156109cc57600080fd5b505af11580156109e0573d6000803e3d6000fd5b50506040805163f3883d8b60e01b8152600481018a905233602482015290516001600160a01b038716935063f3883d8b9250604480830192600092919082900301818387803b158015610a3257600080fd5b505af1158015610a46573d6000803e3d6000fd5b5050505050505050505050505050565b60025481565b3360009081526005602052604090205460ff16610aaa5760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b610ab48585610f88565b856001600160a01b03166307c7edc38484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001826001600160a01b031681526020019350505050600060405180830381600087803b158015610b1c57600080fd5b505af1158015610b30573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b03163314610b89576040805162461bcd60e51b81526020600482015260156024820152600080516020611272833981519152604482015290519081900360640190fd5b600183905560028290556003819055604080518481526020810184905280820183905290517fb98e759701eaca2e60c25e91109003c1c7442ef731b5d569037063005da8254d9181900360600190a1505050565b6000546001600160a01b03163314610c2a576040805162461bcd60e51b81526020600482015260156024820152600080516020611272833981519152604482015290519081900360640190fd5b6000815111610c80576040805162461bcd60e51b815260206004820152601f60248201527f4d756c74695072696365466565643a20696e76616c6964206c656e6774687300604482015290519081900360640190fd5b80516108529060049060208401906111cc565b60056020526000908152604090205460ff1681565b3360009081526005602052604090205460ff16610cf65760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b610d008585610f88565b856001600160a01b03166311d9444a8484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001826001600160a01b031681526020019350505050600060405180830381600087803b158015610b1c57600080fd5b60015481565b3360009081526005602052604090205460ff16610dbc5760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b610dc68585610f88565b856001600160a01b031663d38ab5198484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001826001600160a01b031681526020019350505050600060405180830381600087803b158015610b1c57600080fd5b3360009081526005602052604090205460ff16610e7c5760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b610e868787610f88565b60408051631bc5d52960e31b81526001600160a01b03878116600483015286811660248301528581166044830152841515606483015283811660848301529151918a169163de2ea9489160a48082019260009290919082900301818387803b158015610ef157600080fd5b505af1158015610f05573d6000803e3d6000fd5b505050505050505050505050565b60035481565b6000546001600160a01b03163314610f66576040805162461bcd60e51b81526020600482015260156024820152600080516020611272833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045482511115610fca5760405162461bcd60e51b81526004018080602001828103825260258152602001806112926025913960400191505060405180910390fd5b42610fe06003548361116d90919063ffffffff16565b11611023576040805162461bcd60e51b815260206004820152600e60248201526d1c1c9a58d95cc8195e1c1a5c995960921b604482015290519081900360640190fd5b60005b825181101561116857600083828151811061103d57fe5b6020026020010151905060008160170b131561115f5760408051600180825281830190925260609160208083019080368337019050509050818160008151811061108357fe5b602002602001019060170b908160170b81525050600483815481106110a457fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b031663dd9b2314826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015611120578181015183820152602001611108565b5050505090500192505050600060405180830381600087803b15801561114557600080fd5b505af1158015611159573d6000803e3d6000fd5b50505050505b50600101611026565b505050565b6000828201838110156111c5576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b9392505050565b828054828255906000526020600020908101928215611221579160200282015b8281111561122157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906111ec565b5061122d929150611231565b5090565b5b8082111561122d5780546001600160a01b031916815560010161123256fe4d756c74695072696365466565643a20666f7262696464656e2075706461746573476f7665726e61626c653a20666f7262696464656e00000000000000000000004d756c74695072696365466565643a20696e76616c6964207072696365206c656e67746873a2646970667358221220bc431cc47b7b25f130a5927bce51ae856e9c7f93b5f847bb61965c53014db72464736f6c634300060c0033