6080604052600880546001600160a01b0319908116909155600980549091169055600a80546001600160a81b03191690553480156200003d57600080fd5b50604080518082018252600d81526c742e6d652f534f43484144363960981b602080830191825283518085019094526008845267534f43484144363960c01b908401528151919291601291620000979160009190620002b0565b508151620000ad906001906020850190620002b0565b506002805460ff191660ff929092169190911790555060009050620000d162000144565b600680546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200013e33690397e42e6a62838400006001600160e01b036200014916565b62000352565b335b90565b6001600160a01b038216620001a5576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620001c1816005546200024e60201b620015001790919060201c565b6005556001600160a01b038216600090815260036020908152604090912054620001f6918390620015006200024e821b17901c565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620002a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f357805160ff191683800117855562000323565b8280016001018555821562000323579182015b828111156200032357825182559160200191906001019062000306565b506200033192915062000335565b5090565b6200014691905b808211156200033157600081556001016200033c565b6119ca80620003626000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806370a082311161010457806395d89b41116100a2578063c5fdd88311610071578063c5fdd88314610508578063cebc65ba14610510578063dd62ed3e14610518578063f2fde38b14610546576101cf565b806395d89b41146104a05780639b4dc8cc146104a8578063a457c2d7146104b0578063a9059cbb146104dc576101cf565b80638da5cb5b116100de5780638da5cb5b146104625780638f32d59b1461046a578063927b73be1461047257806394d620ec14610498576101cf565b806370a0823114610408578063715018a61461042e57806379cc679014610436576101cf565b806341cb87fc116101715780634d51f7a41161014b5780634d51f7a41461039c5780635bba123f146103a45780636f5e0212146103da5780636fd8d0bb14610400576101cf565b806341cb87fc1461034f57806342966c681461037557806348cd4cb114610394576101cf565b806323b872dd116101ad57806323b872dd146102ab578063313ce567146102e15780633268cc56146102ff5780633950935114610323576101cf565b806306fdde03146101d4578063095ea7b31461025157806318160ddd14610291575b600080fd5b6101dc61056c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561026757600080fd5b506001600160a01b038135169060200135610603565b604080519115158252519081900360200190f35b610299610621565b60408051918252519081900360200190f35b61027d600480360360608110156102c157600080fd5b506001600160a01b03813581169160208101359091169060400135610627565b6102e96106a5565b6040805160ff9092168252519081900360200190f35b6103076106ae565b604080516001600160a01b039092168252519081900360200190f35b61027d6004803603604081101561033957600080fd5b506001600160a01b0381351690602001356106bd565b61027d6004803603602081101561036557600080fd5b50356001600160a01b0316610716565b6103926004803603602081101561038b57600080fd5b50356107b1565b005b6102996107c5565b61027d6107cb565b610299600480360360608110156103ba57600080fd5b506001600160a01b038135811691602081013590911690604001356107db565b61027d600480360360208110156103f057600080fd5b50356001600160a01b0316610af6565b61027d610b90565b6102996004803603602081101561041e57600080fd5b50356001600160a01b0316610c26565b610392610c41565b6103926004803603604081101561044c57600080fd5b506001600160a01b038135169060200135610ce4565b610307610cf2565b61027d610d01565b61027d6004803603602081101561048857600080fd5b50356001600160a01b0316610d27565b61027d610dc1565b6101dc610e4d565b610307610ead565b61027d600480360360408110156104c657600080fd5b506001600160a01b038135169060200135610ebc565b61027d600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610f2a565b61027d610fbe565b610307611050565b6102996004803603604081101561052e57600080fd5b506001600160a01b038135811691602001351661105f565b6103926004803603602081101561055c57600080fd5b50356001600160a01b031661108a565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f85780601f106105cd576101008083540402835291602001916105f8565b820191906000526020600020905b8154815290600101906020018083116105db57829003601f168201915b505050505090505b90565b60006106176106106110ec565b84846110f0565b5060015b92915050565b60055490565b6000806106358585856107db565b905082811561068b5761064e848363ffffffff6111dc16565b9050610660818363ffffffff6111dc16565b90506106818673e89aa4e300d9cc2d59e626503ea0c13b9657670f8461121e565b61068b868361137c565b610696868686611478565b506001925050505b9392505050565b60025460ff1690565b6009546001600160a01b031681565b60006106176106ca6110ec565b8461071185600460006106db6110ec565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61150016565b6110f0565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561075157600080fd5b505afa158015610765573d6000803e3d6000fd5b505050506040513d602081101561077b57600080fd5b50516001600160a01b03163314156101cf5750600980546001600160a01b0319166001600160a01b03831617905560015b919050565b6107c26107bc6110ec565b8261137c565b50565b60075481565b600a54600160a01b900460ff1681565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081657600080fd5b505afa15801561082a573d6000803e3d6000fd5b505050506040513d602081101561084057600080fd5b50516001600160a01b0385811691161480610877575073e89aa4e300d9cc2d59e626503ea0c13b9657670f6001600160a01b038516145b8061088c5750600a54600160a01b900460ff16155b156108995750600061069e565b6008546001600160a01b03858116911614806108c257506009546001600160a01b038581169116145b806108da5750600a546001600160a01b038581169116145b156108e75750600061069e565b6101596108ff600754436111dc90919063ffffffff16565b10156109305761092961271061091d84610d7a63ffffffff61155a16565b9063ffffffff6115b316565b905061069e565b6803bd913e6c1df40000306001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561097357600080fd5b505afa158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b5051116109ac5750600061069e565b6803bd913e6c1df40000610a426109d161271061091d8661015963ffffffff61155a16565b306001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0a57600080fd5b505afa158015610a1e573d6000803e3d6000fd5b505050506040513d6020811015610a3457600080fd5b50519063ffffffff6111dc16565b1015610ad65760006803bd913e6c1df400009050610acb306001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9257600080fd5b505afa158015610aa6573d6000803e3d6000fd5b505050506040513d6020811015610abc57600080fd5b5051829063ffffffff6111dc16565b60000391505061069e565b610aee61271061091d8461015963ffffffff61155a16565b949350505050565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3157600080fd5b505afa158015610b45573d6000803e3d6000fd5b505050506040513d6020811015610b5b57600080fd5b50516001600160a01b03163314156101cf5750600880546001600160a01b0319166001600160a01b03831617905560016107ac565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bcb57600080fd5b505afa158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b50516001600160a01b03163314156101cf5750600a805460ff60a01b1916600160a01b179055436007556001610600565b6001600160a01b031660009081526003602052604090205490565b610c49610d01565b610c9a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b610cee82826115f5565b5050565b6006546001600160a01b031690565b6006546000906001600160a01b0316610d186110ec565b6001600160a01b031614905090565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b50516001600160a01b03163314156101cf5750600a80546001600160a01b0319166001600160a01b03831617905560016107ac565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dfc57600080fd5b505afa158015610e10573d6000803e3d6000fd5b505050506040513d6020811015610e2657600080fd5b50516001600160a01b03163314156101cf5750600a805460ff60a01b191690556001610600565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f85780601f106105cd576101008083540402835291602001916105f8565b6008546001600160a01b031681565b6000610617610ec96110ec565b84610711856040518060600160405280602581526020016119716025913960046000610ef36110ec565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61164916565b600080610f3f610f386110ec565b85856107db565b9050828115610fa157610f6882610f5c868263ffffffff6111dc16565b9063ffffffff6111dc16565b9050610f90610f756110ec565b73e89aa4e300d9cc2d59e626503ea0c13b9657670f8461121e565b610fa1610f9b6110ec565b8361137c565b610fb3610fac6110ec565b868361121e565b506001949350505050565b6000306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ff957600080fd5b505afa15801561100d573d6000803e3d6000fd5b505050506040513d602081101561102357600080fd5b50516001600160a01b03163314156101cf5750600a805460ff60a01b1916600160a01b1790556001610600565b600a546001600160a01b031681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b611092610d01565b6110e3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107c2816116e0565b3390565b6001600160a01b0383166111355760405162461bcd60e51b815260040180806020018281038252602481526020018061194d6024913960400191505060405180910390fd5b6001600160a01b03821661117a5760405162461bcd60e51b81526004018080602001828103825260228152602001806118526022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061069e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611649565b6001600160a01b0383166112635760405162461bcd60e51b81526004018080602001828103825260258152602001806119286025913960400191505060405180910390fd5b6001600160a01b0382166112a85760405162461bcd60e51b81526004018080602001828103825260238152602001806117e76023913960400191505060405180910390fd5b6112eb81604051806060016040528060268152602001611874602691396001600160a01b038616600090815260036020526040902054919063ffffffff61164916565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611320908263ffffffff61150016565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0382166113c15760405162461bcd60e51b81526004018080602001828103825260218152602001806119076021913960400191505060405180910390fd5b6114048160405180606001604052806022815260200161180a602291396001600160a01b038516600090815260036020526040902054919063ffffffff61164916565b6001600160a01b038316600090815260036020526040902055600554611430908263ffffffff6111dc16565b6005556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061148584848461121e565b6114f6846114916110ec565b610711856040518060600160405280602881526020016118bb602891396001600160a01b038a166000908152600460205260408120906114cf6110ec565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61164916565b5060019392505050565b60008282018381101561069e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826115695750600061061b565b8282028284828161157657fe5b041461069e5760405162461bcd60e51b815260040180806020018281038252602181526020018061189a6021913960400191505060405180910390fd5b600061069e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611781565b6115ff828261137c565b610cee8261160b6110ec565b610711846040518060600160405280602481526020016118e3602491396001600160a01b0388166000908152600460205260408120906114cf6110ec565b600081848411156116d85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561169d578181015183820152602001611685565b50505050905090810190601f1680156116ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0381166117255760405162461bcd60e51b815260040180806020018281038252602681526020018061182c6026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600081836117d05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561169d578181015183820152602001611685565b5060008385816117dc57fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158207877e0faac5f141aa7ca627f0eac33287e1832f05987534908afa37cba9814f064736f6c63430005110032