0x608060405234801561001057600080fd5b5061062d806100206000396000f3fe608060405260043610610066577c010000000000000000000000000000000000000000000000000000000060003504631ecd5d2881146100df578063631e95dd14610121578063c0ee0b8a14610136578063d8e322871461020b578063ddd934dd14610249575b60405173df552a7eadf42b5be39e71bfc662f1c39440e548903480156108fc02916000818181858888f193505050501580156100a6573d6000803e3d6000fd5b5060408051348152905130917febc0dd10bc68e4b0554895d666f348a3fa7d9d8ac65b6eadbe1174e9a2f351d7919081900360200190a2005b3480156100eb57600080fd5b5061011f6004803603602081101561010257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661025e565b005b34801561012d57600080fd5b5061011f610441565b34801561014257600080fd5b5061011f6004803603606081101561015957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561019657600080fd5b8201836020820111156101a857600080fd5b803590602001918460018302840111640100000000831117156101ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104bf945050505050565b34801561021757600080fd5b506102206105d1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561025557600080fd5b506102206105e9565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051829160009173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b1580156102cf57600080fd5b505afa1580156102e3573d6000803e3d6000fd5b505050506040513d60208110156102f957600080fd5b5051604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273821a08770c428fb15b49f562f606f209de535e80600482015260248101839052905191925060009173ffffffffffffffffffffffffffffffffffffffff85169163a9059cbb916044808301928692919082900301818387803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b505050503d600081146103b657602081146103c057600080fd5b60001991506103cc565b60206000803e60005191505b5080151561043b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7472616e73666572206572726f72000000000000000000000000000000000000604482015290519081900360640190fd5b50505050565b60405130319073df552a7eadf42b5be39e71bfc662f1c39440e5489082156108fc029083906000818181858888f19350505050158015610485573d6000803e3d6000fd5b5060408051828152905130917febc0dd10bc68e4b0554895d666f348a3fa7d9d8ac65b6eadbe1174e9a2f351d7919081900360200190a250565b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273821a08770c428fb15b49f562f606f209de535e8060048201526024810184905290513391829163a9059cbb916044808201926020929091908290030181600087803b15801561053557600080fd5b505af1158015610549573d6000803e3d6000fd5b505050506040513d602081101561055f57600080fd5b5051151560011461043b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f455243323233207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b73821a08770c428fb15b49f562f606f209de535e8081565b73df552a7eadf42b5be39e71bfc662f1c39440e5488156fea165627a7a723058202068a651ffbfe343bbb67b4be8d02a622c7848205057cdc3b413f3affbbaa7c20029