0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4f806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610086575f3560e01c80638da5cb5b116100595780638da5cb5b1461013657806393c2098114610154578063ea4340b314610184578063f2fde38b146101b457610086565b806330e118441461008a57806338664b91146100ba5780633b111c25146100ea5780634508715514610106575b5f5ffd5b6100a4600480360381019061009f9190610653565b6101d0565b6040516100b191906106b2565b60405180910390f35b6100d460048036038101906100cf9190610807565b6101dc565b6040516100e1919061085d565b60405180910390f35b61010460048036038101906100ff9190610876565b6101e5565b005b610120600480360381019061011b91906108b4565b61038f565b60405161012d9190610952565b60405180910390f35b61013e6103cf565b60405161014b919061085d565b60405180910390f35b61016e60048036038101906101699190610972565b6103f4565b60405161017b9190610952565b60405180910390f35b61019e60048036038101906101999190610653565b610434565b6040516101ab91906109db565b60405180910390f35b6101ce60048036038101906101c991906109f4565b610440565b005b5f602a90509392505050565b5f5f9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024a90610a69565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16828360405160240161027d91906106b2565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103079190610acb565b5f6040518083038185875af1925050503d805f8114610341576040519150601f19603f3d011682016040523d82523d5f602084013e610346565b606091505b505090508061038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038190610b2b565b60405180910390fd5b505050565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f600190509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c690610b93565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361053d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053490610bfb565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f8115159050919050565b6105a581610591565b81146105af575f5ffd5b50565b5f813590506105c08161059c565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105ef826105c6565b9050919050565b6105ff816105e5565b8114610609575f5ffd5b50565b5f8135905061061a816105f6565b92915050565b5f819050919050565b61063281610620565b811461063c575f5ffd5b50565b5f8135905061064d81610629565b92915050565b5f5f5f6060848603121561066a57610669610589565b5b5f610677868287016105b2565b93505060206106888682870161060c565b92505060406106998682870161063f565b9150509250925092565b6106ac81610620565b82525050565b5f6020820190506106c55f8301846106a3565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610719826106d3565b810181811067ffffffffffffffff82111715610738576107376106e3565b5b80604052505050565b5f61074a610580565b90506107568282610710565b919050565b5f67ffffffffffffffff821115610775576107746106e3565b5b61077e826106d3565b9050602081019050919050565b828183375f83830152505050565b5f6107ab6107a68461075b565b610741565b9050828152602081018484840111156107c7576107c66106cf565b5b6107d284828561078b565b509392505050565b5f82601f8301126107ee576107ed6106cb565b5b81356107fe848260208601610799565b91505092915050565b5f6020828403121561081c5761081b610589565b5b5f82013567ffffffffffffffff8111156108395761083861058d565b5b610845848285016107da565b91505092915050565b610857816105e5565b82525050565b5f6020820190506108705f83018461084e565b92915050565b5f5f6040838503121561088c5761088b610589565b5b5f6108998582860161060c565b92505060206108aa8582860161063f565b9150509250929050565b5f5f604083850312156108ca576108c9610589565b5b5f6108d78582860161060c565b92505060206108e8858286016105b2565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610924826108f2565b61092e81856108fc565b935061093e81856020860161090c565b610947816106d3565b840191505092915050565b5f6020820190508181035f83015261096a818461091a565b905092915050565b5f5f6040838503121561098857610987610589565b5b5f83013567ffffffffffffffff8111156109a5576109a461058d565b5b6109b1858286016107da565b92505060206109c28582860161060c565b9150509250929050565b6109d581610591565b82525050565b5f6020820190506109ee5f8301846109cc565b92915050565b5f60208284031215610a0957610a08610589565b5b5f610a168482850161060c565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610a536018836108fc565b9150610a5e82610a1f565b602082019050919050565b5f6020820190508181035f830152610a8081610a47565b9050919050565b5f81519050919050565b5f81905092915050565b5f610aa582610a87565b610aaf8185610a91565b9350610abf81856020860161090c565b80840191505092915050565b5f610ad68284610a9b565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b15601d836108fc565b9150610b2082610ae1565b602082019050919050565b5f6020820190508181035f830152610b4281610b09565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610b7d6017836108fc565b9150610b8882610b49565b602082019050919050565b5f6020820190508181035f830152610baa81610b71565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610be5601d836108fc565b9150610bf082610bb1565b602082019050919050565b5f6020820190508181035f830152610c1281610bd9565b905091905056fea2646970667358221220529a3c5ae7cfcf5525e8a0d0be42025b5514be161021f0e6ec03b38b9aab27e664736f6c634300081c0033