0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739fde2c4253a40ce7696aa72d820ee49b2eb806c0600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610db5806100b56000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638c1543da1161005b5780638c1543da146100d85780639611caa2146101095780639b19251a14610125578063f9f92be4146101555761007d565b80630dbe671f14610082578063140a62ef146100a05780636bc8aa41146100bc575b600080fd5b61008a610185565b60405161009791906107b0565b60405180910390f35b6100ba60048036038101906100b59190610964565b6101a9565b005b6100d660048036038101906100d191906109e5565b61035d565b005b6100f260048036038101906100ed9190610a5b565b6104b4565b604051610100929190610ae5565b60405180910390f35b610123600480360381019061011e9190610b0e565b610630565b005b61013f600480360381019061013a9190610b0e565b61072f565b60405161014c9190610b4a565b60405180910390f35b61016f600480360381019061016a9190610b0e565b61074f565b60405161017c9190610b4a565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461020157600080fd5b60005b81518160ff16101561035957600160026000848460ff168151811061022c5761022b610b65565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30848460ff16815181106102da576102d9610b65565b5b602002602001015160006040518463ffffffff1660e01b815260040161030293929190610bd9565b6020604051808303816000875af1158015610321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103459190610c25565b50808061035190610c8e565b915050610204565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b557600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd308460006040518463ffffffff1660e01b815260040161046c93929190610bd9565b6020604051808303816000875af115801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190610c25565b505050565b600080600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561051f578385846105169190610cb7565b91509150610626565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156105785750600085145b156105945760648461058a9190610d1a565b8391509150610626565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156105ed5750600085145b1561060957836064846106009190610d1a565b91509150610626565b84846106159190610d4b565b85846106219190610cb7565b915091505b9550959350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461068857600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60036020528060005260406000206000915054906101000a900460ff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061079a8261076f565b9050919050565b6107aa8161078f565b82525050565b60006020820190506107c560008301846107a1565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61082d826107e4565b810181811067ffffffffffffffff8211171561084c5761084b6107f5565b5b80604052505050565b600061085f6107cb565b905061086b8282610824565b919050565b600067ffffffffffffffff82111561088b5761088a6107f5565b5b602082029050602081019050919050565b600080fd5b6108aa8161078f565b81146108b557600080fd5b50565b6000813590506108c7816108a1565b92915050565b60006108e06108db84610870565b610855565b905080838252602082019050602084028301858111156109035761090261089c565b5b835b8181101561092c578061091888826108b8565b845260208401935050602081019050610905565b5050509392505050565b600082601f83011261094b5761094a6107df565b5b813561095b8482602086016108cd565b91505092915050565b60006020828403121561097a576109796107d5565b5b600082013567ffffffffffffffff811115610998576109976107da565b5b6109a484828501610936565b91505092915050565b60008115159050919050565b6109c2816109ad565b81146109cd57600080fd5b50565b6000813590506109df816109b9565b92915050565b600080604083850312156109fc576109fb6107d5565b5b6000610a0a858286016108b8565b9250506020610a1b858286016109d0565b9150509250929050565b6000819050919050565b610a3881610a25565b8114610a4357600080fd5b50565b600081359050610a5581610a2f565b92915050565b600080600080600060a08688031215610a7757610a766107d5565b5b6000610a85888289016108b8565b9550506020610a96888289016108b8565b9450506040610aa788828901610a46565b9350506060610ab888828901610a46565b9250506080610ac988828901610a46565b9150509295509295909350565b610adf81610a25565b82525050565b6000604082019050610afa6000830185610ad6565b610b076020830184610ad6565b9392505050565b600060208284031215610b2457610b236107d5565b5b6000610b32848285016108b8565b91505092915050565b610b44816109ad565b82525050565b6000602082019050610b5f6000830184610b3b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000610bc3610bbe610bb984610b94565b610b9e565b610a25565b9050919050565b610bd381610ba8565b82525050565b6000606082019050610bee60008301866107a1565b610bfb60208301856107a1565b610c086040830184610bca565b949350505050565b600081519050610c1f816109b9565b92915050565b600060208284031215610c3b57610c3a6107d5565b5b6000610c4984828501610c10565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff82169050919050565b6000610c9982610c81565b915060ff8203610cac57610cab610c52565b5b600182019050919050565b6000610cc282610a25565b9150610ccd83610a25565b9250828201905080821115610ce557610ce4610c52565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610d2582610a25565b9150610d3083610a25565b925082610d4057610d3f610ceb565b5b828204905092915050565b6000610d5682610a25565b9150610d6183610a25565b9250828203905081811115610d7957610d78610c52565b5b9291505056fea2646970667358221220792df334314015f4815bea9f6fe69447c4be791eac4ea2c4bef6627f2674039064736f6c63430008120033