0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b3a806100745f395ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c80638da5cb5b116100595780638da5cb5b146100fa578063b055941014610118578063d5d2d25014610148578063f2fde38b146101785761007a565b80626cc8791461007e5780633b111c25146100ae5780636b8cae68146100ca575b5f5ffd5b610098600480360381019061009391906106a8565b610194565b6040516100a5919061072e565b60405180910390f35b6100c860048036038101906100c39190610747565b6101a0565b005b6100e460048036038101906100df91906107af565b61034a565b6040516100f191906107e9565b60405180910390f35b610102610353565b60405161010f91906107e9565b60405180910390f35b610132600480360381019061012d9190610802565b610378565b60405161013f919061072e565b60405180910390f35b610162600480360381019061015d919061086e565b610384565b60405161016f919061072e565b60405180910390f35b610192600480360381019061018d9190610899565b61038e565b005b5f600190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361020e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102059061091e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168283604051602401610238919061094b565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102c291906109b6565b5f6040518083038185875af1925050503d805f81146102fc576040519150601f19603f3d011682016040523d82523d5f602084013e610301565b606091505b5050905080610345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033c90610a16565b60405180910390fd5b505050565b5f5f9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600190509392505050565b5f60019050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041490610a7e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361048b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048290610ae6565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610508826104df565b9050919050565b610518816104fe565b8114610522575f5ffd5b50565b5f813590506105338161050f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61058782610541565b810181811067ffffffffffffffff821117156105a6576105a5610551565b5b80604052505050565b5f6105b86104ce565b90506105c4828261057e565b919050565b5f67ffffffffffffffff8211156105e3576105e2610551565b5b6105ec82610541565b9050602081019050919050565b828183375f83830152505050565b5f610619610614846105c9565b6105af565b9050828152602081018484840111156106355761063461053d565b5b6106408482856105f9565b509392505050565b5f82601f83011261065c5761065b610539565b5b813561066c848260208601610607565b91505092915050565b5f819050919050565b61068781610675565b8114610691575f5ffd5b50565b5f813590506106a28161067e565b92915050565b5f5f5f606084860312156106bf576106be6104d7565b5b5f6106cc86828701610525565b935050602084013567ffffffffffffffff8111156106ed576106ec6104db565b5b6106f986828701610648565b925050604061070a86828701610694565b9150509250925092565b5f8115159050919050565b61072881610714565b82525050565b5f6020820190506107415f83018461071f565b92915050565b5f5f6040838503121561075d5761075c6104d7565b5b5f61076a85828601610525565b925050602061077b85828601610694565b9150509250929050565b61078e81610714565b8114610798575f5ffd5b50565b5f813590506107a981610785565b92915050565b5f602082840312156107c4576107c36104d7565b5b5f6107d18482850161079b565b91505092915050565b6107e3816104fe565b82525050565b5f6020820190506107fc5f8301846107da565b92915050565b5f5f5f60608486031215610819576108186104d7565b5b5f6108268682870161079b565b935050602084013567ffffffffffffffff811115610847576108466104db565b5b61085386828701610648565b925050604061086486828701610694565b9150509250925092565b5f60208284031215610883576108826104d7565b5b5f61089084828501610694565b91505092915050565b5f602082840312156108ae576108ad6104d7565b5b5f6108bb84828501610525565b91505092915050565b5f82825260208201905092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f6109086018836108c4565b9150610913826108d4565b602082019050919050565b5f6020820190508181035f830152610935816108fc565b9050919050565b61094581610675565b82525050565b5f60208201905061095e5f83018461093c565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61099082610964565b61099a818561096e565b93506109aa818560208601610978565b80840191505092915050565b5f6109c18284610986565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610a00601d836108c4565b9150610a0b826109cc565b602082019050919050565b5f6020820190508181035f830152610a2d816109f4565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610a686017836108c4565b9150610a7382610a34565b602082019050919050565b5f6020820190508181035f830152610a9581610a5c565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610ad0601d836108c4565b9150610adb82610a9c565b602082019050919050565b5f6020820190508181035f830152610afd81610ac4565b905091905056fea2646970667358221220dc5a24cf212599f7a5aa5388a945a6fefb78041f2e7aebcb17d4973ab658ef3d64736f6c634300081c0033