0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca9806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c80638da5cb5b116100645780638da5cb5b146101415780639e32cd1b1461015f5780639f4300bc1461018f578063bbd8542a146101bf578063f2fde38b146101ef57610091565b80630564428c146100955780633b111c25146100c55780633ffbbf64146100e157806371c0d43c14610111575b5f5ffd5b6100af60048036038101906100aa91906106dd565b61020b565b6040516100bc9190610763565b60405180910390f35b6100df60048036038101906100da91906107d9565b610214565b005b6100fb60048036038101906100f691906106dd565b6103be565b6040516101089190610831565b60405180910390f35b61012b6004803603810190610126919061084a565b6103c8565b6040516101389190610904565b60405180910390f35b610149610408565b6040516101569190610763565b60405180910390f35b6101796004803603810190610174919061094e565b61042d565b6040516101869190610831565b60405180910390f35b6101a960048036038101906101a491906109ba565b610439565b6040516101b69190610763565b60405180910390f35b6101d960048036038101906101d4919061094e565b610444565b6040516101e69190610831565b60405180910390f35b61020960048036038101906102049190610a26565b610450565b005b5f5f9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027990610a9b565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016102ac9190610ac8565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103369190610b25565b5f6040518083038185875af1925050503d805f8114610370576040519150601f19603f3d011682016040523d82523d5f602084013e610375565b606091505b50509050806103b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b090610b85565b60405180910390fd5b505050565b5f60019050919050565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600190509392505050565b5f5f90509392505050565b5f600190509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d690610bed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490610c55565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ef826105a9565b810181811067ffffffffffffffff8211171561060e5761060d6105b9565b5b80604052505050565b5f610620610590565b905061062c82826105e6565b919050565b5f67ffffffffffffffff82111561064b5761064a6105b9565b5b610654826105a9565b9050602081019050919050565b828183375f83830152505050565b5f61068161067c84610631565b610617565b90508281526020810184848401111561069d5761069c6105a5565b5b6106a8848285610661565b509392505050565b5f82601f8301126106c4576106c36105a1565b5b81356106d484826020860161066f565b91505092915050565b5f602082840312156106f2576106f1610599565b5b5f82013567ffffffffffffffff81111561070f5761070e61059d565b5b61071b848285016106b0565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61074d82610724565b9050919050565b61075d81610743565b82525050565b5f6020820190506107765f830184610754565b92915050565b61078581610743565b811461078f575f5ffd5b50565b5f813590506107a08161077c565b92915050565b5f819050919050565b6107b8816107a6565b81146107c2575f5ffd5b50565b5f813590506107d3816107af565b92915050565b5f5f604083850312156107ef576107ee610599565b5b5f6107fc85828601610792565b925050602061080d858286016107c5565b9150509250929050565b5f8115159050919050565b61082b81610817565b82525050565b5f6020820190506108445f830184610822565b92915050565b5f5f604083850312156108605761085f610599565b5b5f61086d858286016107c5565b925050602083013567ffffffffffffffff81111561088e5761088d61059d565b5b61089a858286016106b0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108d6826108a4565b6108e081856108ae565b93506108f08185602086016108be565b6108f9816105a9565b840191505092915050565b5f6020820190508181035f83015261091c81846108cc565b905092915050565b61092d81610817565b8114610937575f5ffd5b50565b5f8135905061094881610924565b92915050565b5f5f5f6060848603121561096557610964610599565b5b5f610972868287016107c5565b93505060206109838682870161093a565b925050604084013567ffffffffffffffff8111156109a4576109a361059d565b5b6109b0868287016106b0565b9150509250925092565b5f5f5f606084860312156109d1576109d0610599565b5b5f6109de8682870161093a565b93505060206109ef868287016107c5565b925050604084013567ffffffffffffffff811115610a1057610a0f61059d565b5b610a1c868287016106b0565b9150509250925092565b5f60208284031215610a3b57610a3a610599565b5b5f610a4884828501610792565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610a856018836108ae565b9150610a9082610a51565b602082019050919050565b5f6020820190508181035f830152610ab281610a79565b9050919050565b610ac2816107a6565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b5f81519050919050565b5f81905092915050565b5f610aff82610ae1565b610b098185610aeb565b9350610b198185602086016108be565b80840191505092915050565b5f610b308284610af5565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b6f601d836108ae565b9150610b7a82610b3b565b602082019050919050565b5f6020820190508181035f830152610b9c81610b63565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610bd76017836108ae565b9150610be282610ba3565b602082019050919050565b5f6020820190508181035f830152610c0481610bcb565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c3f601d836108ae565b9150610c4a82610c0b565b602082019050919050565b5f6020820190508181035f830152610c6c81610c33565b905091905056fea26469706673582212200b80b76c66e95a7efa07fdcb82161ea08b8c646f487dc1a65e4f84250e016dde64736f6c634300081c0033