0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061085e806100606000396000f3fe6080604052600436106100555760003560e01c806327e235e31461005a5780632e1a7d4d146100975780638da5cb5b146100c0578063a9059cbb146100eb578063d0e30db014610114578063f8b2cb4f1461011e575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c91906105f0565b61015b565b60405161008e9190610636565b60405180910390f35b3480156100a357600080fd5b506100be60048036038101906100b9919061067d565b610173565b005b3480156100cc57600080fd5b506100d56102e3565b6040516100e291906106b9565b60405180910390f35b3480156100f757600080fd5b50610112600480360381019061010d91906106d4565b610307565b005b61011c61049e565b005b34801561012a57600080fd5b50610145600480360381019061014091906105f0565b610544565b6040516101529190610636565b60405180910390f35b60016020528060005260406000206000915090505481565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ec90610771565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461024491906107c0565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610291573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516102d89190610636565b60405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038090610771565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103d891906107c0565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461042e91906107f4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104929190610636565b60405180910390a35050565b34600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104ed91906107f4565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405161053a9190610636565b60405180910390a2565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bd82610592565b9050919050565b6105cd816105b2565b81146105d857600080fd5b50565b6000813590506105ea816105c4565b92915050565b6000602082840312156106065761060561058d565b5b6000610614848285016105db565b91505092915050565b6000819050919050565b6106308161061d565b82525050565b600060208201905061064b6000830184610627565b92915050565b61065a8161061d565b811461066557600080fd5b50565b60008135905061067781610651565b92915050565b6000602082840312156106935761069261058d565b5b60006106a184828501610668565b91505092915050565b6106b3816105b2565b82525050565b60006020820190506106ce60008301846106aa565b92915050565b600080604083850312156106eb576106ea61058d565b5b60006106f9858286016105db565b925050602061070a85828601610668565b9150509250929050565b600082825260208201905092915050565b7f496e73756666696369656e742062616c616e63652e0000000000000000000000600082015250565b600061075b601583610714565b915061076682610725565b602082019050919050565b6000602082019050818103600083015261078a8161074e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006107cb8261061d565b91506107d68361061d565b92508282039050818111156107ee576107ed610791565b5b92915050565b60006107ff8261061d565b915061080a8361061d565b925082820190508082111561082257610821610791565b5b9291505056fea26469706673582212207960a054ba85110699ba8b4e5cc08a445dcd3b4a97e290bc0b74fc0a2ce3d62d64736f6c63430008120033