0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca1806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610086575f3560e01c8063cc0e9e8111610059578063cc0e9e8114610124578063e3d9341314610154578063eb5c75d114610184578063f2fde38b146101b457610086565b80633142f4c31461008a5780633b111c25146100ba5780638468220b146100d65780638da5cb5b14610106575b5f5ffd5b6100a4600480360381019061009f919061078d565b6101d0565b6040516100b19190610859565b60405180910390f35b6100d460048036038101906100cf9190610879565b610211565b005b6100f060048036038101906100eb91906108ec565b6103bb565b6040516100fd9190610859565b60405180910390f35b61010e6103fb565b60405161011b9190610955565b60405180910390f35b61013e6004803603810190610139919061096e565b610420565b60405161014b9190610955565b60405180910390f35b61016e600480360381019061016991906109b5565b610429565b60405161017b9190610a02565b60405180910390f35b61019e60048036038101906101999190610a1b565b610434565b6040516101ab9190610859565b60405180910390f35b6101ce60048036038101906101c99190610a46565b610473565b005b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361027f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027690610abb565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016102a99190610a02565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103339190610b1d565b5f6040518083038185875af1925050503d805f811461036d576040519150601f19603f3d011682016040523d82523d5f602084013e610372565b606091505b50509050806103b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ad90610b7d565b60405180910390fd5b505050565b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9050919050565b5f602a905092915050565b60606040518060400160405280600781526020017f53756363657373000000000000000000000000000000000000000000000000008152509050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f990610be5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056790610c4d565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610612826105cc565b810181811067ffffffffffffffff82111715610631576106306105dc565b5b80604052505050565b5f6106436105b3565b905061064f8282610609565b919050565b5f67ffffffffffffffff82111561066e5761066d6105dc565b5b610677826105cc565b9050602081019050919050565b828183375f83830152505050565b5f6106a461069f84610654565b61063a565b9050828152602081018484840111156106c0576106bf6105c8565b5b6106cb848285610684565b509392505050565b5f82601f8301126106e7576106e66105c4565b5b81356106f7848260208601610692565b91505092915050565b5f819050919050565b61071281610700565b811461071c575f5ffd5b50565b5f8135905061072d81610709565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61075c82610733565b9050919050565b61076c81610752565b8114610776575f5ffd5b50565b5f8135905061078781610763565b92915050565b5f5f5f606084860312156107a4576107a36105bc565b5b5f84013567ffffffffffffffff8111156107c1576107c06105c0565b5b6107cd868287016106d3565b93505060206107de8682870161071f565b92505060406107ef86828701610779565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61082b826107f9565b6108358185610803565b9350610845818560208601610813565b61084e816105cc565b840191505092915050565b5f6020820190508181035f8301526108718184610821565b905092915050565b5f5f6040838503121561088f5761088e6105bc565b5b5f61089c85828601610779565b92505060206108ad8582860161071f565b9150509250929050565b5f8115159050919050565b6108cb816108b7565b81146108d5575f5ffd5b50565b5f813590506108e6816108c2565b92915050565b5f5f60408385031215610902576109016105bc565b5b5f83013567ffffffffffffffff81111561091f5761091e6105c0565b5b61092b858286016106d3565b925050602061093c858286016108d8565b9150509250929050565b61094f81610752565b82525050565b5f6020820190506109685f830184610946565b92915050565b5f60208284031215610983576109826105bc565b5b5f82013567ffffffffffffffff8111156109a05761099f6105c0565b5b6109ac848285016106d3565b91505092915050565b5f5f604083850312156109cb576109ca6105bc565b5b5f6109d88582860161071f565b92505060206109e985828601610779565b9150509250929050565b6109fc81610700565b82525050565b5f602082019050610a155f8301846109f3565b92915050565b5f60208284031215610a3057610a2f6105bc565b5b5f610a3d8482850161071f565b91505092915050565b5f60208284031215610a5b57610a5a6105bc565b5b5f610a6884828501610779565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610aa5601883610803565b9150610ab082610a71565b602082019050919050565b5f6020820190508181035f830152610ad281610a99565b9050919050565b5f81519050919050565b5f81905092915050565b5f610af782610ad9565b610b018185610ae3565b9350610b11818560208601610813565b80840191505092915050565b5f610b288284610aed565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610b67601d83610803565b9150610b7282610b33565b602082019050919050565b5f6020820190508181035f830152610b9481610b5b565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610bcf601783610803565b9150610bda82610b9b565b602082019050919050565b5f6020820190508181035f830152610bfc81610bc3565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610c37601d83610803565b9150610c4282610c03565b602082019050919050565b5f6020820190508181035f830152610c6481610c2b565b905091905056fea2646970667358221220e232f630bc3bb54d93b37d8f47413655a482531470b13072042d1ec8057c84f564736f6c634300081c0033