0x608060405234801561001057600080fd5b5061083c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063da5b4ffd14610030575b600080fd5b61004a600480360381019061004591906103b1565b610060565b604051610057919061056c565b60405180910390f35b60608282905085859050146100aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a1906105ae565b60405180910390fd5b60008383905067ffffffffffffffff8111156100ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561012257816020015b606081526020019060019003908161010d5790505b50905060005b868690508110156102d25760008088888481811061016f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101849190610388565b73ffffffffffffffffffffffffffffffffffffffff168787858181106101d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906101e591906105ce565b6040516101f3929190610553565b600060405180830381855afa9150503d806000811461022e576040519150601f19603f3d011682016040523d82523d6000602084013e610233565b606091505b509150915081610278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026f9061058e565b60405180910390fd5b808484815181106102b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250505080806102ca90610714565b915050610128565b5080915050949350505050565b6000813590506102ee816107ef565b92915050565b60008083601f84011261030657600080fd5b8235905067ffffffffffffffff81111561031f57600080fd5b60208301915083602082028301111561033757600080fd5b9250929050565b60008083601f84011261035057600080fd5b8235905067ffffffffffffffff81111561036957600080fd5b60208301915083602082028301111561038157600080fd5b9250929050565b60006020828403121561039a57600080fd5b60006103a8848285016102df565b91505092915050565b600080600080604085870312156103c757600080fd5b600085013567ffffffffffffffff8111156103e157600080fd5b6103ed878288016102f4565b9450945050602085013567ffffffffffffffff81111561040c57600080fd5b6104188782880161033e565b925092505092959194509250565b600061043283836104d4565b905092915050565b600061044582610635565b61044f8185610658565b93508360208202850161046185610625565b8060005b8581101561049d578484038952815161047e8582610426565b94506104898361064b565b925060208a01995050600181019050610465565b50829750879550505050505092915050565b60006104bb838561067a565b93506104c88385846106d2565b82840190509392505050565b60006104df82610640565b6104e98185610669565b93506104f98185602086016106e1565b6105028161078c565b840191505092915050565b600061051a600b83610685565b91506105258261079d565b602082019050919050565b600061053d601c83610685565b9150610548826107c6565b602082019050919050565b60006105608284866104af565b91508190509392505050565b60006020820190508181036000830152610586818461043a565b905092915050565b600060208201905081810360008301526105a78161050d565b9050919050565b600060208201905081810360008301526105c781610530565b9050919050565b600080833560016020038436030381126105e757600080fd5b80840192508235915067ffffffffffffffff82111561060557600080fd5b60208301925060018202360383131561061d57600080fd5b509250929050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006106a1826106a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106ff5780820151818401526020810190506106e4565b8381111561070e576000848401525b50505050565b600061071f826106c8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156107525761075161075d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c206661696c6564000000000000000000000000000000000000000000600082015250565b7f746172676574206c656e67746820213d2064617461206c656e67746800000000600082015250565b6107f881610696565b811461080357600080fd5b5056fea2646970667358221220f4dd5ee732edb2675433bee1d12cf23875e351ee65ee97afb6f773fdd89b450664736f6c63430008040033