0x60a060405234801561000f575f80fd5b50604051610947380380610947833981810160405281019061003191906100da565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050610105565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100988261006f565b9050919050565b5f6100a98261008e565b9050919050565b6100b98161009f565b81146100c3575f80fd5b50565b5f815190506100d4816100b0565b92915050565b5f602082840312156100ef576100ee61006b565b5b5f6100fc848285016100c6565b91505092915050565b6080516108236101245f395f818161013e01526102a001526108235ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806319f364d5146100435780638b1b925f14610073578063a8ab49b2146100a3575b5f80fd5b61005d6004803603810190610058919061033e565b6100c1565b60405161006a9190610383565b60405180910390f35b61008d6004803603810190610088919061033e565b610214565b60405161009a9190610383565b60405180910390f35b6100ab61029e565b6040516100b891906103f7565b60405180910390f35b5f805f808473ffffffffffffffffffffffffffffffffffffffff1663fa24f7436040518163ffffffff1660e01b81526004015f60405180830381865afa15801561010d573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061013591906105b8565b9250925092505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635f0150cb8585856040518463ffffffff1660e01b815260040161019993929190610694565b6040805180830381865afa1580156101b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d79190610721565b5090508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614945050505050919050565b5f3073ffffffffffffffffffffffffffffffffffffffff166319f364d5836040518263ffffffff1660e01b815260040161024e919061077f565b602060405180830381865afa92505050801561028857506040513d601f19601f8201168201806040525081019061028591906107c2565b60015b610294575f9050610299565b809150505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102fc826102d3565b9050919050565b5f61030d826102f2565b9050919050565b61031d81610303565b8114610327575f80fd5b50565b5f8135905061033881610314565b92915050565b5f60208284031215610353576103526102cb565b5b5f6103608482850161032a565b91505092915050565b5f8115159050919050565b61037d81610369565b82525050565b5f6020820190506103965f830184610374565b92915050565b5f819050919050565b5f6103bf6103ba6103b5846102d3565b61039c565b6102d3565b9050919050565b5f6103d0826103a5565b9050919050565b5f6103e1826103c6565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f63ffffffff82169050919050565b61042881610410565b8114610432575f80fd5b50565b5f815190506104438161041f565b92915050565b5f819050919050565b61045b81610449565b8114610465575f80fd5b50565b5f8151905061047681610452565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104ca82610484565b810181811067ffffffffffffffff821117156104e9576104e8610494565b5b80604052505050565b5f6104fb6102c2565b905061050782826104c1565b919050565b5f67ffffffffffffffff82111561052657610525610494565b5b61052f82610484565b9050602081019050919050565b8281835e5f83830152505050565b5f61055c6105578461050c565b6104f2565b90508281526020810184848401111561057857610577610480565b5b61058384828561053c565b509392505050565b5f82601f83011261059f5761059e61047c565b5b81516105af84826020860161054a565b91505092915050565b5f805f606084860312156105cf576105ce6102cb565b5b5f6105dc86828701610435565b93505060206105ed86828701610468565b925050604084015167ffffffffffffffff81111561060e5761060d6102cf565b5b61061a8682870161058b565b9150509250925092565b61062d81610410565b82525050565b61063c81610449565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f61066682610642565b610670818561064c565b935061068081856020860161053c565b61068981610484565b840191505092915050565b5f6060820190506106a75f830186610624565b6106b46020830185610633565b81810360408301526106c6818461065c565b9050949350505050565b5f815190506106de81610314565b92915050565b5f67ffffffffffffffff82169050919050565b610700816106e4565b811461070a575f80fd5b50565b5f8151905061071b816106f7565b92915050565b5f8060408385031215610737576107366102cb565b5b5f610744858286016106d0565b92505060206107558582860161070d565b9150509250929050565b5f610769826103c6565b9050919050565b6107798161075f565b82525050565b5f6020820190506107925f830184610770565b92915050565b6107a181610369565b81146107ab575f80fd5b50565b5f815190506107bc81610798565b92915050565b5f602082840312156107d7576107d66102cb565b5b5f6107e4848285016107ae565b9150509291505056fea2646970667358221220e90f586939867041bc53aa861c8387d4076ff9e987e0f73a4bb0d513edb8982264736f6c634300081a0033000000000000000000000000e5965ab5962edc7477c8520243a95517cd252fa9