0x6080604052600436106100745760003560e01c8063916f1fd71161004e578063916f1fd7146100f5578063ad729a711461012f578063adcbc23714610144578063d2f6ed4d1461015957610083565b8063133512581461008b5780633ebdd0eb146100b5578063773f5be8146100d557610083565b3661008357610081610179565b005b610081610179565b34801561009757600080fd5b506100a061018b565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100816100d0366004610a77565b6101b2565b3480156100e157600080fd5b506100816100f0366004610a77565b610267565b34801561010157600080fd5b5061010a610318565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b34801561013b57600080fd5b5061010a610327565b34801561015057600080fd5b50610081610331565b34801561016557600080fd5b50610081610174366004610ad1565b6104ab565b610189610184610564565b61056e565b565b600080610196610597565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006101bc610597565b905073ffffffffffffffffffffffffffffffffffffffff811661020b576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116331461025a576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610263826105d7565b5050565b6000610271610597565b905073ffffffffffffffffffffffffffffffffffffffff81166102c0576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116331461030f576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61026382610624565b6000610322610597565b905090565b6000610322610564565b600061033b610597565b905073ffffffffffffffffffffffffffffffffffffffff811661038a576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811633146103d9576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103e3610597565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281519293507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f929081900390910190a16040517f158b204828f9326d9bb3c2be9336986c14911b4a72b93d1801f207aac3c68b9f90600090a15050565b60006104b5610597565b905073ffffffffffffffffffffffffffffffffffffffff8116610504576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81163314610553576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61055e848484610688565b50505050565b60006103226106ad565b3660008037600080366000845af43d6000803e80801561058d573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6105e0816106d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61064d610597565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a1610685816107e7565b50565b610691836105d7565b60008251118061069e5750805b156105925761055e83836108b1565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105bb565b73ffffffffffffffffffffffffffffffffffffffff81163b61077e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff811661088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610775565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036107a1565b60606108d68383604051806060016040528060278152602001610c7a602791396108dd565b9392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516109079190610c0c565b600060405180830381855af49150503d8060008114610942576040519150601f19603f3d011682016040523d82523d6000602084013e610947565b606091505b509150915061095886838387610962565b9695505050505050565b606083156109f85782516000036109f15773ffffffffffffffffffffffffffffffffffffffff85163b6109f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610775565b5081610a02565b610a028383610a0a565b949350505050565b815115610a1a5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107759190610c28565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a7257600080fd5b919050565b600060208284031215610a8957600080fd5b6108d682610a4e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80358015158114610a7257600080fd5b600080600060608486031215610ae657600080fd5b610aef84610a4e565b9250602084013567ffffffffffffffff811115610b0b57600080fd5b8401601f81018613610b1c57600080fd5b803567ffffffffffffffff811115610b3657610b36610a92565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715610ba257610ba2610a92565b604052818152828201602001881015610bba57600080fd5b81602084016020830137600060208383010152809450505050610bdf60408501610ac1565b90509250925092565b60005b83811015610c03578181015183820152602001610beb565b50506000910152565b60008251610c1e818460208701610be8565b9190910192915050565b6020815260008251806020840152610c47816040850160208701610be8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e7bfb47a195b3906d17bf29582ec275406f768071c18b2b778f631d7f7c3541964736f6c634300081c0033
0x608060405234801561001057600080fd5b5060405161125238038061125283398101604081905261002f91610401565b828161003d82826000610051565b5061004990508261007d565b505050610526565b61005a836100eb565b6000825111806100675750805b1561007857610076838361012b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100bd60008051602061120b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100e881610157565b50565b6100f4816101f3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610150838360405180606001604052806027815260200161122b60279139610287565b9392505050565b6001600160a01b0381166101c15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602061120b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102605760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101b8565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101d2565b6060600080856001600160a01b0316856040516102a491906104d7565b600060405180830381855af49150503d80600081146102df576040519150601f19603f3d011682016040523d82523d6000602084013e6102e4565b606091505b5090925090506102f686838387610300565b9695505050505050565b6060831561036f578251600003610368576001600160a01b0385163b6103685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101b8565b5081610379565b6103798383610381565b949350505050565b8151156103915781518083602001fd5b8060405162461bcd60e51b81526004016101b891906104f3565b80516001600160a01b03811681146103c257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103f85781810151838201526020016103e0565b50506000910152565b60008060006060848603121561041657600080fd5b61041f846103ab565b925061042d602085016103ab565b60408501519092506001600160401b0381111561044957600080fd5b8401601f8101861361045a57600080fd5b80516001600160401b03811115610473576104736103c7565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104a1576104a16103c7565b6040528181528282016020018810156104b957600080fd5b6104ca8260208301602086016103dd565b8093505050509250925092565b600082516104e98184602087016103dd565b9190910192915050565b60208152600082518060208401526105128160408501602087016103dd565b601f01601f19169190910160400192915050565b610cd6806105356000396000f3fe6080604052600436106100745760003560e01c8063916f1fd71161004e578063916f1fd7146100f5578063ad729a711461012f578063adcbc23714610144578063d2f6ed4d1461015957610083565b8063133512581461008b5780633ebdd0eb146100b5578063773f5be8146100d557610083565b3661008357610081610179565b005b610081610179565b34801561009757600080fd5b506100a061018b565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100816100d0366004610a77565b6101b2565b3480156100e157600080fd5b506100816100f0366004610a77565b610267565b34801561010157600080fd5b5061010a610318565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b34801561013b57600080fd5b5061010a610327565b34801561015057600080fd5b50610081610331565b34801561016557600080fd5b50610081610174366004610ad1565b6104ab565b610189610184610564565b61056e565b565b600080610196610597565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006101bc610597565b905073ffffffffffffffffffffffffffffffffffffffff811661020b576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116331461025a576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610263826105d7565b5050565b6000610271610597565b905073ffffffffffffffffffffffffffffffffffffffff81166102c0576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116331461030f576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61026382610624565b6000610322610597565b905090565b6000610322610564565b600061033b610597565b905073ffffffffffffffffffffffffffffffffffffffff811661038a576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811633146103d9576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103e3610597565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281519293507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f929081900390910190a16040517f158b204828f9326d9bb3c2be9336986c14911b4a72b93d1801f207aac3c68b9f90600090a15050565b60006104b5610597565b905073ffffffffffffffffffffffffffffffffffffffff8116610504576040517fb83646a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81163314610553576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61055e848484610688565b50505050565b60006103226106ad565b3660008037600080366000845af43d6000803e80801561058d573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6105e0816106d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61064d610597565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a1610685816107e7565b50565b610691836105d7565b60008251118061069e5750805b156105925761055e83836108b1565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105bb565b73ffffffffffffffffffffffffffffffffffffffff81163b61077e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff811661088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610775565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036107a1565b60606108d68383604051806060016040528060278152602001610c7a602791396108dd565b9392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516109079190610c0c565b600060405180830381855af49150503d8060008114610942576040519150601f19603f3d011682016040523d82523d6000602084013e610947565b606091505b509150915061095886838387610962565b9695505050505050565b606083156109f85782516000036109f15773ffffffffffffffffffffffffffffffffffffffff85163b6109f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610775565b5081610a02565b610a028383610a0a565b949350505050565b815115610a1a5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107759190610c28565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a7257600080fd5b919050565b600060208284031215610a8957600080fd5b6108d682610a4e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80358015158114610a7257600080fd5b600080600060608486031215610ae657600080fd5b610aef84610a4e565b9250602084013567ffffffffffffffff811115610b0b57600080fd5b8401601f81018613610b1c57600080fd5b803567ffffffffffffffff811115610b3657610b36610a92565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715610ba257610ba2610a92565b604052818152828201602001881015610bba57600080fd5b81602084016020830137600060208383010152809450505050610bdf60408501610ac1565b90509250925092565b60005b83811015610c03578181015183820152602001610beb565b50506000910152565b60008251610c1e818460208701610be8565b9190910192915050565b6020815260008251806020840152610c47816040850160208701610be8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e7bfb47a195b3906d17bf29582ec275406f768071c18b2b778f631d7f7c3541964736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000151cababb9204dae7ec6b4a030377dc63c8aab22000000000000000000000000d8cba23cdaf8e969fd17c8eabecf82a4f002ee8d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000144f2208a0200000000000000000000000000000000000000000000000000000000000000200000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c59900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000007a120000000000000000000000000adad07ba0091f3e3e71412857658a24867bd6477000000000000000000000000000000000000000000000000000000000000000a7465737473706442544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a746573747370644254430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000