0x608060405234801561000f575f80fd5b506108668061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806306ceeed614610059578063913208be146100895780639330376d146100b9578063ddfb1319146100d5578063f67f6fba14610105575b5f80fd5b610073600480360381019061006e9190610503565b610121565b6040516100809190610562565b60405180910390f35b6100a3600480360381019061009e9190610503565b610148565b6040516100b09190610562565b60405180910390f35b6100d360048036038101906100ce9190610503565b610175565b005b6100ef60048036038101906100ea91906105d5565b610288565b6040516100fc919061061a565b60405180910390f35b61011f600480360381019061011a9190610503565b6102a4565b005b5f600182604051610132919061069f565b9081526020016040518091039020549050919050565b6001818051602081018201805184825260208301602085012081835280955050505050505f915090505481565b5f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156101fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f59061070f565b60405180910390fd5b60018160405161020e919061069f565b90815260200160405180910390205f81548092919061022c9061075a565b919050555060015f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661032c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610323906107eb565b60405180910390fd5b60018160405161033c919061069f565b90815260200160405180910390205f81548092919061035a90610809565b919050555060015f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610415826103cf565b810181811067ffffffffffffffff82111715610434576104336103df565b5b80604052505050565b5f6104466103b6565b9050610452828261040c565b919050565b5f67ffffffffffffffff821115610471576104706103df565b5b61047a826103cf565b9050602081019050919050565b828183375f83830152505050565b5f6104a76104a284610457565b61043d565b9050828152602081018484840111156104c3576104c26103cb565b5b6104ce848285610487565b509392505050565b5f82601f8301126104ea576104e96103c7565b5b81356104fa848260208601610495565b91505092915050565b5f60208284031215610518576105176103bf565b5b5f82013567ffffffffffffffff811115610535576105346103c3565b5b610541848285016104d6565b91505092915050565b5f819050919050565b61055c8161054a565b82525050565b5f6020820190506105755f830184610553565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105a48261057b565b9050919050565b6105b48161059a565b81146105be575f80fd5b50565b5f813590506105cf816105ab565b92915050565b5f602082840312156105ea576105e96103bf565b5b5f6105f7848285016105c1565b91505092915050565b5f8115159050919050565b61061481610600565b82525050565b5f60208201905061062d5f83018461060b565b92915050565b5f81519050919050565b5f81905092915050565b5f5b83811015610664578082015181840152602081019050610649565b5f8484015250505050565b5f61067982610633565b610683818561063d565b9350610693818560208601610647565b80840191505092915050565b5f6106aa828461066f565b915081905092915050565b5f82825260208201905092915050565b7f746f6e65206163746f72206368616d70696f6e206e756d6265720000000000005f82015250565b5f6106f9601a836106b5565b9150610704826106c5565b602082019050919050565b5f6020820190508181035f830152610726816106ed565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107648261054a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107965761079561072d565b5b600182019050919050565b7f627573696e657373206e756d62657200000000000000000000000000000000005f82015250565b5f6107d5600f836106b5565b91506107e0826107a1565b602082019050919050565b5f6020820190508181035f830152610802816107c9565b9050919050565b5f6108138261054a565b91505f82036108255761082461072d565b5b60018203905091905056fea26469706673582212208ccc88cad79efaff798df925b56bc8ab43c71e246628cad1295e9656c96c99ae64736f6c63430008160033