0x60806040523480156200001157600080fd5b506040516200106238038062001062833981810160405281019062000037919062000302565b8033620000596200004d620001cc60201b60201c565b620001d460201b60201c565b60008273ffffffffffffffffffffffffffffffffffffffff166302571be37f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b6040518263ffffffff1660e01b8152600401620000b991906200034f565b602060405180830381865afa158015620000d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000fd919062000302565b90508073ffffffffffffffffffffffffffffffffffffffff16631e83409a836040518263ffffffff1660e01b81526004016200013a91906200037d565b6020604051808303816000875af11580156200015a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001809190620003cb565b5050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620003fd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002ca826200029d565b9050919050565b620002dc81620002bd565b8114620002e857600080fd5b50565b600081519050620002fc81620002d1565b92915050565b6000602082840312156200031b576200031a62000298565b5b60006200032b84828501620002eb565b91505092915050565b6000819050919050565b620003498162000334565b82525050565b60006020820190506200036660008301846200033e565b92915050565b6200037781620002bd565b82525050565b60006020820190506200039460008301846200036c565b92915050565b620003a58162000334565b8114620003b157600080fd5b50565b600081519050620003c5816200039a565b92915050565b600060208284031215620003e457620003e362000298565b5b6000620003f484828501620003b4565b91505092915050565b610c55806200040d6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633f15457f1461006757806341395bd114610085578063715018a6146100a15780638da5cb5b146100ab578063bd73c298146100c9578063f2fde38b146100f9575b600080fd5b61006f610115565b60405161007c9190610685565b60405180910390f35b61009f600480360381019061009a9190610838565b61013b565b005b6100a9610295565b005b6100b36102a9565b6040516100c091906108a3565b60405180910390f35b6100e360048036038101906100de91906108be565b6102d2565b6040516100f091906108a3565b60405180910390f35b610113600480360381019061010e9190610907565b610409565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61014361048c565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be37f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b6040518263ffffffff1660e01b81526004016101c3919061094d565b602060405180830381865afa1580156101e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610204919061097d565b90508073ffffffffffffffffffffffffffffffffffffffff16637a806d6b3061022b6102a9565b85876040518563ffffffff1660e01b815260040161024c9493929190610a29565b6020604051808303816000875af115801561026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028f9190610aa1565b50505050565b61029d61048c565b6102a7600061050a565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806102de836105ce565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b815260040161033d919061094d565b602060405180830381865afa15801561035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037e919061097d565b905060008190508073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff1660e01b81526004016103be919061094d565b602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff919061097d565b9350505050919050565b61041161048c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047790610b40565b60405180910390fd5b6104898161050a565b50565b6104946105fe565b73ffffffffffffffffffffffffffffffffffffffff166104b26102a9565b73ffffffffffffffffffffffffffffffffffffffff1614610508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ff90610bac565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000816040516020016105e19190610c08565b604051602081830303815290604052805190602001209050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061064b61064661064184610606565b610626565b610606565b9050919050565b600061065d82610630565b9050919050565b600061066f82610652565b9050919050565b61067f81610664565b82525050565b600060208201905061069a6000830184610676565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610707826106be565b810181811067ffffffffffffffff82111715610726576107256106cf565b5b80604052505050565b60006107396106a0565b905061074582826106fe565b919050565b600067ffffffffffffffff821115610765576107646106cf565b5b61076e826106be565b9050602081019050919050565b82818337600083830152505050565b600061079d6107988461074a565b61072f565b9050828152602081018484840111156107b9576107b86106b9565b5b6107c484828561077b565b509392505050565b600082601f8301126107e1576107e06106b4565b5b81356107f184826020860161078a565b91505092915050565b600061080582610606565b9050919050565b610815816107fa565b811461082057600080fd5b50565b6000813590506108328161080c565b92915050565b6000806040838503121561084f5761084e6106aa565b5b600083013567ffffffffffffffff81111561086d5761086c6106af565b5b610879858286016107cc565b925050602061088a85828601610823565b9150509250929050565b61089d816107fa565b82525050565b60006020820190506108b86000830184610894565b92915050565b6000602082840312156108d4576108d36106aa565b5b600082013567ffffffffffffffff8111156108f2576108f16106af565b5b6108fe848285016107cc565b91505092915050565b60006020828403121561091d5761091c6106aa565b5b600061092b84828501610823565b91505092915050565b6000819050919050565b61094781610934565b82525050565b6000602082019050610962600083018461093e565b92915050565b6000815190506109778161080c565b92915050565b600060208284031215610993576109926106aa565b5b60006109a184828501610968565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109e45780820151818401526020810190506109c9565b60008484015250505050565b60006109fb826109aa565b610a0581856109b5565b9350610a158185602086016109c6565b610a1e816106be565b840191505092915050565b6000608082019050610a3e6000830187610894565b610a4b6020830186610894565b610a586040830185610894565b8181036060830152610a6a81846109f0565b905095945050505050565b610a7e81610934565b8114610a8957600080fd5b50565b600081519050610a9b81610a75565b92915050565b600060208284031215610ab757610ab66106aa565b5b6000610ac584828501610a8c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b2a6026836109b5565b9150610b3582610ace565b604082019050919050565b60006020820190508181036000830152610b5981610b1d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610b966020836109b5565b9150610ba182610b60565b602082019050919050565b60006020820190508181036000830152610bc581610b89565b9050919050565b600081905092915050565b6000610be2826109aa565b610bec8185610bcc565b9350610bfc8185602086016109c6565b80840191505092915050565b6000610c148284610bd7565b91508190509291505056fea264697066735822122078a35daede74a1c4b8610aa4fbe3f3e057bdb98863bb3481e2cca396f2145bde64736f6c6343000814003300000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e