0x608060405234801561000f575f80fd5b506040516109cf3803806109cf833981810160405281019061003191906100d5565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610100565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a48261007b565b9050919050565b6100b48161009a565b81146100be575f80fd5b50565b5f815190506100cf816100ab565b92915050565b5f602082840312156100ea576100e9610077565b5b5f6100f7848285016100c1565b91505092915050565b6108c28061010d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80630387a7a01461005957806342b30dec14610075578063a6e9b996146100a5578063bd1c07d0146100d5578063e4beac1c146100f3575b5f80fd5b610073600480360381019061006e9190610538565b610123565b005b61008f600480360381019061008a9190610538565b61043f565b60405161009c91906105a2565b60405180910390f35b6100bf60048036038101906100ba91906105e5565b61046f565b6040516100cc919061062a565b60405180910390f35b6100dd61048b565b6040516100ea919061069e565b60405180910390f35b61010d600480360381019061010891906105e5565b6104b0565b60405161011a919061062a565b60405180910390f35b5f3390508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b815260040161019891906106c6565b602060405180830381865afa1580156101b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d791906106f3565b73ffffffffffffffffffffffffffffffffffffffff161461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610778565b60405180910390fd5b5f808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156102b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ad906107e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034b9061086e565b60405180910390fd5b60015f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818173ffffffffffffffffffffffffffffffffffffffff167ff94b406e4a887d40eeed920c1d145a8f1279ea71af35bffbd9862c4fb0c3fa9d60405160405180910390a35050565b6001602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f80fd5b5f819050919050565b61051781610505565b8114610521575f80fd5b50565b5f813590506105328161050e565b92915050565b5f6020828403121561054d5761054c610501565b5b5f61055a84828501610524565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61058c82610563565b9050919050565b61059c81610582565b82525050565b5f6020820190506105b55f830184610593565b92915050565b6105c481610582565b81146105ce575f80fd5b50565b5f813590506105df816105bb565b92915050565b5f602082840312156105fa576105f9610501565b5b5f610607848285016105d1565b91505092915050565b5f8115159050919050565b61062481610610565b82525050565b5f60208201905061063d5f83018461061b565b92915050565b5f819050919050565b5f61066661066161065c84610563565b610643565b610563565b9050919050565b5f6106778261064c565b9050919050565b5f6106888261066d565b9050919050565b6106988161067e565b82525050565b5f6020820190506106b15f83018461068f565b92915050565b6106c081610505565b82525050565b5f6020820190506106d95f8301846106b7565b92915050565b5f815190506106ed816105bb565b92915050565b5f6020828403121561070857610707610501565b5b5f610715848285016106df565b91505092915050565b5f82825260208201905092915050565b7f596f7520646f206e6f74206f776e2074686520746f6b656e00000000000000005f82015250565b5f61076260188361071e565b915061076d8261072e565b602082019050919050565b5f6020820190508181035f83015261078f81610756565b9050919050565b7f596f75206861766520616c72656164792073656e742061206d657373616765005f82015250565b5f6107ca601f8361071e565b91506107d582610796565b602082019050919050565b5f6020820190508181035f8301526107f7816107be565b9050919050565b7f5468697320546f6b656e49442068617320616c7265616479206265656e2075735f8201527f656420627920616e6f7468657220616464726573730000000000000000000000602082015250565b5f61085860358361071e565b9150610863826107fe565b604082019050919050565b5f6020820190508181035f8301526108858161084c565b905091905056fea264697066735822122078e4ced8b8e69d386f8e2b48998492be7e5891251b362c5e0b4e6aa461eb2f1064736f6c634300081a00330000000000000000000000003efa12df0ff40e084f90bd7d2645eb9107f8aee5