0x608060405234801561001057600080fd5b5061087e806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638b2b099914610030575b600080fd5b61004361003e36600461052c565b610059565b6040516100509190610611565b60405180910390f35b60606100668460016106df565b67ffffffffffffffff81111561007e5761007e6106f8565b6040519080825280602002602001820160405280156100f157816020015b6100de6040518060c0016040528060006001600160a01b0316815260200160608152602001606081526020016000815260200160008152602001600081525090565b81526020019060019003908161009c5790505b50905060005b848110156104195760008686838181106101135761011361070e565b90506020020160208101906101289190610724565b90506040518060c001604052808888858181106101475761014761070e565b905060200201602081019061015c9190610724565b6001600160a01b03168152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156101a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101d09190810190610746565b8152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610213573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261023b9190810190610746565b8152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561027e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a291906107f3565b60ff1681526020016001600160a01b0387166102bf576000610342565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528416906370a0823190602401602060405180830381865afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610816565b81526020016001600160a01b03861661035c5760006103e7565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152878116602483015284169063dd62ed3e90604401602060405180830381865afa1580156103c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e79190610816565b8152508383815181106103fc576103fc61070e565b602002602001018190525050806104129061082f565b90506100f7565b506040518060c0016040528060006001600160a01b031681526020016040518060400160405280600881526020017f457468657265756d00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600381526020017f455448000000000000000000000000000000000000000000000000000000000081525081526020016012815260200160006001600160a01b0316856001600160a01b0316036104d35760006104df565b846001600160a01b0316315b8152600060209091015281518290869081106104fd576104fd61070e565b6020026020010181905250949350505050565b80356001600160a01b038116811461052757600080fd5b919050565b6000806000806060858703121561054257600080fd5b843567ffffffffffffffff8082111561055a57600080fd5b818701915087601f83011261056e57600080fd5b81358181111561057d57600080fd5b8860208260051b850101111561059257600080fd5b6020928301965094506105a89187019050610510565b91506105b660408601610510565b905092959194509250565b60005b838110156105dc5781810151838201526020016105c4565b50506000910152565b600081518084526105fd8160208601602086016105c1565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156106bb57603f19898403018552815160c06001600160a01b03825116855288820151818a87015261066f828701826105e5565b915050878201518582038987015261068782826105e5565b606084810151908801526080808501519088015260a093840151939096019290925250509386019390860190600101610638565b509098975050505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106f2576106f26106c9565b92915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561073657600080fd5b61073f82610510565b9392505050565b60006020828403121561075857600080fd5b815167ffffffffffffffff8082111561077057600080fd5b818401915084601f83011261078457600080fd5b815181811115610796576107966106f8565b604051601f8201601f19908116603f011681019083821181831017156107be576107be6106f8565b816040528281528760208487010111156107d757600080fd5b6107e88360208301602088016105c1565b979650505050505050565b60006020828403121561080557600080fd5b815160ff8116811461073f57600080fd5b60006020828403121561082857600080fd5b5051919050565b600060018201610841576108416106c9565b506001019056fea264697066735822122028d36f312ef82ac04cae9583b8bbc6480b6a4ae3c3142aab94e21321eeaed13b64736f6c63430008110033