0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b58806100745f395ff3fe608060405234801561000f575f5ffd5b506004361061007b575f3560e01c80638da5cb5b116100595780638da5cb5b146100fb578063ce17973714610119578063f2fde38b14610149578063fbb57efa146101655761007b565b80630580419d1461007f5780633b111c25146100af578063655d30d6146100cb575b5f5ffd5b6100996004803603810190610094919061057a565b610195565b6040516100a691906105f7565b60405180910390f35b6100c960048036038101906100c4919061063a565b61019f565b005b6100e560048036038101906100e091906107b4565b610349565b6040516100f291906105f7565b60405180910390f35b610103610352565b60405161011091906105f7565b60405180910390f35b610133600480360381019061012e91906107b4565b610377565b604051610140919061085b565b60405180910390f35b610163600480360381019061015e919061087b565b6103b6565b005b61017f600480360381019061017a91906108a6565b6104f6565b60405161018c919061090f565b60405180910390f35b5f5f905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361020d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020490610972565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168283604051602401610237919061090f565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102c191906109d4565b5f6040518083038185875af1925050503d805f81146102fb576040519150601f19603f3d011682016040523d82523d5f602084013e610300565b606091505b5050905080610344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033b90610a34565b60405180910390fd5b505050565b5f5f9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f53756363657373000000000000000000000000000000000000000000000000008152509050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043c90610a9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104aa90610b04565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f602a905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61052481610512565b811461052e575f5ffd5b50565b5f8135905061053f8161051b565b92915050565b5f8115159050919050565b61055981610545565b8114610563575f5ffd5b50565b5f8135905061057481610550565b92915050565b5f5f604083850312156105905761058f61050a565b5b5f61059d85828601610531565b92505060206105ae85828601610566565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105e1826105b8565b9050919050565b6105f1816105d7565b82525050565b5f60208201905061060a5f8301846105e8565b92915050565b610619816105d7565b8114610623575f5ffd5b50565b5f8135905061063481610610565b92915050565b5f5f604083850312156106505761064f61050a565b5b5f61065d85828601610626565b925050602061066e85828601610531565b9150509250929050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106c682610680565b810181811067ffffffffffffffff821117156106e5576106e4610690565b5b80604052505050565b5f6106f7610501565b905061070382826106bd565b919050565b5f67ffffffffffffffff82111561072257610721610690565b5b61072b82610680565b9050602081019050919050565b828183375f83830152505050565b5f61075861075384610708565b6106ee565b9050828152602081018484840111156107745761077361067c565b5b61077f848285610738565b509392505050565b5f82601f83011261079b5761079a610678565b5b81356107ab848260208601610746565b91505092915050565b5f602082840312156107c9576107c861050a565b5b5f82013567ffffffffffffffff8111156107e6576107e561050e565b5b6107f284828501610787565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61082d826107fb565b6108378185610805565b9350610847818560208601610815565b61085081610680565b840191505092915050565b5f6020820190508181035f8301526108738184610823565b905092915050565b5f602082840312156108905761088f61050a565b5b5f61089d84828501610626565b91505092915050565b5f5f604083850312156108bc576108bb61050a565b5b5f6108c985828601610531565b925050602083013567ffffffffffffffff8111156108ea576108e961050e565b5b6108f685828601610787565b9150509250929050565b61090981610512565b82525050565b5f6020820190506109225f830184610900565b92915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f61095c601883610805565b915061096782610928565b602082019050919050565b5f6020820190508181035f83015261098981610950565b9050919050565b5f81519050919050565b5f81905092915050565b5f6109ae82610990565b6109b8818561099a565b93506109c8818560208601610815565b80840191505092915050565b5f6109df82846109a4565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610a1e601d83610805565b9150610a29826109ea565b602082019050919050565b5f6020820190508181035f830152610a4b81610a12565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610a86601783610805565b9150610a9182610a52565b602082019050919050565b5f6020820190508181035f830152610ab381610a7a565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610aee601d83610805565b9150610af982610aba565b602082019050919050565b5f6020820190508181035f830152610b1b81610ae2565b905091905056fea26469706673582212202a617c34cebfa65ebeb60e10c436402aa4b2b9882ebccc2464578437a285c13a64736f6c634300081c0033