0x60806040526001600460006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040516200105e3803806200105e833981810160405281019062000052919062000232565b6200007262000066620000fc60201b60201c565b6200010460201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000279565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fa82620001cd565b9050919050565b6200020c81620001ed565b81146200021857600080fd5b50565b6000815190506200022c8162000201565b92915050565b600080604083850312156200024c576200024b620001c8565b5b60006200025c858286016200021b565b92505060206200026f858286016200021b565b9150509250929050565b610dd580620002896000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b146100fa578063ad4d3f4c14610118578063d56d229d14610122578063ed9ec88814610140578063f2fde38b1461017057610093565b806324bbd049146100985780634e772708146100b65780635367de6a146100d4578063715018a6146100f0575b600080fd5b6100a061018c565b6040516100ad91906107be565b60405180910390f35b6100be61019f565b6040516100cb9190610858565b60405180910390f35b6100ee60048036038101906100e991906108ae565b6101c5565b005b6100f8610448565b005b6101026104d0565b60405161010f91906108fc565b60405180910390f35b6101206104f9565b005b61012a6105a1565b6040516101379190610938565b60405180910390f35b61015a6004803603810190610155919061097f565b6105c7565b60405161016791906109bb565b60405180910390f35b61018a6004803603810190610185919061097f565b6105df565b005b600460009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816102109190610a05565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161026b91906108fc565b60206040518083038186803b15801561028357600080fd5b505afa158015610297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bb9190610a70565b10156102fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f390610afa565b60405180910390fd5b60005b818110156104445760008067ffffffffffffffff81111561032357610322610b1a565b5b6040519080825280602002602001820160405280156103515781602001602082028036833780820191505090505b509050338160008151811061036957610368610b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d1957b826040518263ffffffff1660e01b81526004016103fe9190610c36565b600060405180830381600087803b15801561041857600080fd5b505af115801561042c573d6000803e3d6000fd5b5050505050808061043c90610c58565b9150506102ff565b5050565b6104506106d7565b73ffffffffffffffffffffffffffffffffffffffff1661046e6104d0565b73ffffffffffffffffffffffffffffffffffffffff16146104c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bb90610ced565b60405180910390fd5b6104ce60006106df565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105016106d7565b73ffffffffffffffffffffffffffffffffffffffff1661051f6104d0565b73ffffffffffffffffffffffffffffffffffffffff1614610575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056c90610ced565b60405180910390fd5b600460009054906101000a900460ff1615600460006101000a81548160ff021916908315150217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090505481565b6105e76106d7565b73ffffffffffffffffffffffffffffffffffffffff166106056104d0565b73ffffffffffffffffffffffffffffffffffffffff161461065b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065290610ced565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c290610d7f565b60405180910390fd5b6106d4816106df565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008115159050919050565b6107b8816107a3565b82525050565b60006020820190506107d360008301846107af565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061081e610819610814846107d9565b6107f9565b6107d9565b9050919050565b600061083082610803565b9050919050565b600061084282610825565b9050919050565b61085281610837565b82525050565b600060208201905061086d6000830184610849565b92915050565b600080fd5b6000819050919050565b61088b81610878565b811461089657600080fd5b50565b6000813590506108a881610882565b92915050565b6000602082840312156108c4576108c3610873565b5b60006108d284828501610899565b91505092915050565b60006108e6826107d9565b9050919050565b6108f6816108db565b82525050565b600060208201905061091160008301846108ed565b92915050565b600061092282610825565b9050919050565b61093281610917565b82525050565b600060208201905061094d6000830184610929565b92915050565b61095c816108db565b811461096757600080fd5b50565b60008135905061097981610953565b92915050565b60006020828403121561099557610994610873565b5b60006109a38482850161096a565b91505092915050565b6109b581610878565b82525050565b60006020820190506109d060008301846109ac565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a1082610878565b9150610a1b83610878565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610a5057610a4f6109d6565b5b828201905092915050565b600081519050610a6a81610882565b92915050565b600060208284031215610a8657610a85610873565b5b6000610a9484828501610a5b565b91505092915050565b600082825260208201905092915050565b7f4d6178206d696e74656400000000000000000000000000000000000000000000600082015250565b6000610ae4600a83610a9d565b9150610aef82610aae565b602082019050919050565b60006020820190508181036000830152610b1381610ad7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610bad816108db565b82525050565b6000610bbf8383610ba4565b60208301905092915050565b6000602082019050919050565b6000610be382610b78565b610bed8185610b83565b9350610bf883610b94565b8060005b83811015610c29578151610c108882610bb3565b9750610c1b83610bcb565b925050600181019050610bfc565b5085935050505092915050565b60006020820190508181036000830152610c508184610bd8565b905092915050565b6000610c6382610878565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610c9657610c956109d6565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610cd7602083610a9d565b9150610ce282610ca1565b602082019050919050565b60006020820190508181036000830152610d0681610cca565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610d69602683610a9d565b9150610d7482610d0d565b604082019050919050565b60006020820190508181036000830152610d9881610d5c565b905091905056fea264697066735822122096a4db4ce87afe3272349ea0068ec25af74a737c9b593d17866773d70c256bf164736f6c634300080900330000000000000000000000001a7e29a8c5d2320a1b56735b7654139e7b2860af00000000000000000000000080ac2af6ea6cb4de78c97ec26a7b10e764b3e625