0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8e806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610086575f3560e01c8063745064851161005957806374506485146101365780638da5cb5b14610166578063ba43ba4b14610184578063f2fde38b146101b457610086565b806312f12b441461008a5780633b111c25146100ba5780636ccd5972146100d65780637225102d14610106575b5f5ffd5b6100a4600480360381019061009f91906105ea565b6101d0565b6040516100b19190610637565b60405180910390f35b6100d460048036038101906100cf9190610650565b6101db565b005b6100f060048036038101906100eb91906107ff565b610385565b6040516100fd9190610637565b60405180910390f35b610120600480360381019061011b9190610887565b610391565b60405161012d9190610925565b60405180910390f35b610150600480360381019061014b9190610945565b6103d1565b60405161015d9190610637565b60405180910390f35b61016e6103dd565b60405161017b91906109c0565b60405180910390f35b61019e600480360381019061019991906109d9565b610402565b6040516101ab91906109c0565b60405180910390f35b6101ce60048036038101906101c99190610a33565b61040c565b005b5f602a905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024090610aa8565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016102739190610637565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102fd9190610b0a565b5f6040518083038185875af1925050503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b5050905080610380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037790610b6a565b60405180910390fd5b505050565b5f602a90509392505050565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f602a90509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049290610bd2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050090610c3a565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61056f8161055d565b8114610579575f5ffd5b50565b5f8135905061058a81610566565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b982610590565b9050919050565b6105c9816105af565b81146105d3575f5ffd5b50565b5f813590506105e4816105c0565b92915050565b5f5f60408385031215610600576105ff610555565b5b5f61060d8582860161057c565b925050602061061e858286016105d6565b9150509250929050565b6106318161055d565b82525050565b5f60208201905061064a5f830184610628565b92915050565b5f5f6040838503121561066657610665610555565b5b5f610673858286016105d6565b92505060206106848582860161057c565b9150509250929050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106dc82610696565b810181811067ffffffffffffffff821117156106fb576106fa6106a6565b5b80604052505050565b5f61070d61054c565b905061071982826106d3565b919050565b5f67ffffffffffffffff821115610738576107376106a6565b5b61074182610696565b9050602081019050919050565b828183375f83830152505050565b5f61076e6107698461071e565b610704565b90508281526020810184848401111561078a57610789610692565b5b61079584828561074e565b509392505050565b5f82601f8301126107b1576107b061068e565b5b81356107c184826020860161075c565b91505092915050565b5f8115159050919050565b6107de816107ca565b81146107e8575f5ffd5b50565b5f813590506107f9816107d5565b92915050565b5f5f5f6060848603121561081657610815610555565b5b5f84013567ffffffffffffffff81111561083357610832610559565b5b61083f8682870161079d565b9350506020610850868287016107eb565b925050604084013567ffffffffffffffff81111561087157610870610559565b5b61087d8682870161079d565b9150509250925092565b5f5f6040838503121561089d5761089c610555565b5b5f6108aa858286016105d6565b92505060206108bb858286016105d6565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108f7826108c5565b61090181856108cf565b93506109118185602086016108df565b61091a81610696565b840191505092915050565b5f6020820190508181035f83015261093d81846108ed565b905092915050565b5f5f5f6060848603121561095c5761095b610555565b5b5f610969868287016105d6565b935050602061097a868287016107eb565b925050604084013567ffffffffffffffff81111561099b5761099a610559565b5b6109a78682870161079d565b9150509250925092565b6109ba816105af565b82525050565b5f6020820190506109d35f8301846109b1565b92915050565b5f5f604083850312156109ef576109ee610555565b5b5f83013567ffffffffffffffff811115610a0c57610a0b610559565b5b610a188582860161079d565b9250506020610a298582860161057c565b9150509250929050565b5f60208284031215610a4857610a47610555565b5b5f610a55848285016105d6565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610a926018836108cf565b9150610a9d82610a5e565b602082019050919050565b5f6020820190508181035f830152610abf81610a86565b9050919050565b5f81519050919050565b5f81905092915050565b5f610ae482610ac6565b610aee8185610ad0565b9350610afe8185602086016108df565b80840191505092915050565b5f610b158284610ada565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b54601d836108cf565b9150610b5f82610b20565b602082019050919050565b5f6020820190508181035f830152610b8181610b48565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610bbc6017836108cf565b9150610bc782610b88565b602082019050919050565b5f6020820190508181035f830152610be981610bb0565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c24601d836108cf565b9150610c2f82610bf0565b602082019050919050565b5f6020820190508181035f830152610c5181610c18565b905091905056fea26469706673582212208defae8463403025ccde9b0dbc46b5688ed90b6166139d840e19f1856ff8ad1064736f6c634300081c0033