0x608060405234801561001057600080fd5b50610645806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630121b93f146100515780631840f0ca1461006d5780638d337b8114610089578063c2353918146100b9575b600080fd5b61006b600480360381019061006691906103db565b6100e9565b005b610087600480360381019061008291906103db565b6101df565b005b6100a3600480360381019061009e9190610466565b61033b565b6040516100b091906104a2565b60405180910390f35b6100d360048036038101906100ce91906103db565b610383565b6040516100e091906104a2565b60405180910390f35b6000811161012c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101239061051a565b60405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016000828152602001908152602001600020600081548092919061019390610569565b9190505550803373ffffffffffffffffffffffffffffffffffffffff167fa36cc2bebb74db33e9f88110a07ef56e1b31b24b4c4f51b54b1664266e29f45b60405160405180910390a350565b60008111610222576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102199061051a565b60405180910390fd5b6000804767ffffffffffffffff81111561023f5761023e6105b1565b5b60405190808252806020026020018201604052801561026d5781602001602082028036833780820191505090505b50905060005b81518110156102fd5783600080848481518110610293576102926105e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036102ea5782806102e690610569565b9350505b80806102f590610569565b915050610273565b50827f31d81ebe37883c18b31e90cc63789b9828e3b4bece67d3173c4b9b388eeb00408360405161032e91906104a2565b60405180910390a2505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060016000838152602001908152602001600020549050919050565b600080fd5b6000819050919050565b6103b8816103a5565b81146103c357600080fd5b50565b6000813590506103d5816103af565b92915050565b6000602082840312156103f1576103f06103a0565b5b60006103ff848285016103c6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061043382610408565b9050919050565b61044381610428565b811461044e57600080fd5b50565b6000813590506104608161043a565b92915050565b60006020828403121561047c5761047b6103a0565b5b600061048a84828501610451565b91505092915050565b61049c816103a5565b82525050565b60006020820190506104b76000830184610493565b92915050565b600082825260208201905092915050565b7f496e76616c6964206f7074696f6e000000000000000000000000000000000000600082015250565b6000610504600e836104bd565b915061050f826104ce565b602082019050919050565b60006020820190508181036000830152610533816104f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610574826103a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a6576105a561053a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122063cbfd3370f8f65b1f584c083da8ff877c62f4de4e9d8e643579529df63a899264736f6c63430008120033