0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b4114610287578063a9059cbb1461028f578063dd62ed3e146102bb578063e724529c146102e9576100cf565b806342966c681461022757806370a08231146102445780637e1f2bb81461026a576100cf565b806306fdde03146100d4578063095ea7b31461015157806313af40351461019157806318160ddd146101b957806323b872dd146101d3578063313ce56714610209575b600080fd5b6100dc610317565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b03813516906020013561033f565b604080519115158252519081900360200190f35b6101b7600480360360208110156101a757600080fd5b50356001600160a01b0316610371565b005b6101c16103aa565b60408051918252519081900360200190f35b61017d600480360360608110156101e957600080fd5b506001600160a01b038135811691602081013590911690604001356103b0565b6102116103fe565b6040805160ff9092168252519081900360200190f35b61017d6004803603602081101561023d57600080fd5b5035610403565b6101c16004803603602081101561025a57600080fd5b50356001600160a01b03166104b4565b61017d6004803603602081101561028057600080fd5b50356104cf565b6100dc610594565b61017d600480360360408110156102a557600080fd5b506001600160a01b0381351690602001356105b8565b6101c1600480360360408110156102d157600080fd5b506001600160a01b03813581169160200135166105f9565b6101b7600480360360408110156102ff57600080fd5b506001600160a01b0381351690602001351515610624565b604051806040016040528060098152602001600160b81b6844454c474f506c75730281525081565b600061034b33846105f9565b1580610355575081155b61035e57600080fd5b61036883836106b4565b90505b92915050565b6002546001600160a01b0316331461038857600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60045490565b6001600160a01b03831660009081526003602052604081205460ff16156103d657600080fd5b60055460ff16156103e9575060016103f7565b6103f484848461071a565b90505b9392505050565b600881565b3360009081526020819052604081205482111561041f57600080fd5b6002546001600160a01b0316331461043657600080fd5b3360009081526020819052604090205461045090836108b7565b3360009081526020819052604090205560045461046d90836108b7565b600455604080513381526020810184905281517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5929181900390910190a15060015b919050565b6001600160a01b031660009081526020819052604090205490565b6002546000906001600160a01b031633146104e957600080fd5b811561058c576105036706f05b59d3b200006004546108b7565b821115610512575060006104af565b3360009081526020819052604090205461052c90836108c9565b3360009081526020819052604090205560045461054990836108c9565b60045560408051838152905133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060016104af565b506000919050565b604051806040016040528060058152602001600160d81b6444454c474f0281525081565b3360009081526003602052604081205460ff16156105d557600080fd5b60055460ff16156105e85750600161036b565b6105f283836108d8565b905061036b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6002546001600160a01b0316331461063b57600080fd5b336001600160a01b038316141561065157600080fd5b6001600160a01b038216600081815260036020908152604091829020805460ff1916600117905581519283528315159083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b3360008181526001602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60006001600160a01b03831661072f57600080fd5b6001600160a01b0384166000908152600160209081526040808320338452909152902054821115610762575060006103f7565b6001600160a01b03841660009081526020819052604090205482111561078a575060006103f7565b6000821180156107ac5750826001600160a01b0316846001600160a01b031614155b15610862576001600160a01b03841660009081526001602090815260408083203384529091529020546107df90836108b7565b6001600160a01b038516600081815260016020908152604080832033845282528083209490945591815290819052205461081990836108b7565b6001600160a01b03808616600090815260208190526040808220939093559085168152205461084890836108c9565b6001600160a01b0384166000908152602081905260409020555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b6000828211156108c357fe5b50900390565b60008282018381101561036857fe5b60006001600160a01b0383166108ed57600080fd5b3360009081526020819052604090205482111561090c5750600061036b565b6000821180156109255750336001600160a01b03841614155b1561098a573360009081526020819052604090205461094490836108b7565b33600090815260208190526040808220929092556001600160a01b0385168152205461097090836108c9565b6001600160a01b0384166000908152602081905260409020555b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019291505056fea165627a7a723058201ab201e029f2fe55f6f2e291147d5a22cdab375bcc1f6c3d433138564dd641740029
0x608060405260006004556005805460ff1916905534801561001f57600080fd5b50600280546001600160a01b031916331790556109ff806100416000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b4114610287578063a9059cbb1461028f578063dd62ed3e146102bb578063e724529c146102e9576100cf565b806342966c681461022757806370a08231146102445780637e1f2bb81461026a576100cf565b806306fdde03146100d4578063095ea7b31461015157806313af40351461019157806318160ddd146101b957806323b872dd146101d3578063313ce56714610209575b600080fd5b6100dc610317565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b03813516906020013561033f565b604080519115158252519081900360200190f35b6101b7600480360360208110156101a757600080fd5b50356001600160a01b0316610371565b005b6101c16103aa565b60408051918252519081900360200190f35b61017d600480360360608110156101e957600080fd5b506001600160a01b038135811691602081013590911690604001356103b0565b6102116103fe565b6040805160ff9092168252519081900360200190f35b61017d6004803603602081101561023d57600080fd5b5035610403565b6101c16004803603602081101561025a57600080fd5b50356001600160a01b03166104b4565b61017d6004803603602081101561028057600080fd5b50356104cf565b6100dc610594565b61017d600480360360408110156102a557600080fd5b506001600160a01b0381351690602001356105b8565b6101c1600480360360408110156102d157600080fd5b506001600160a01b03813581169160200135166105f9565b6101b7600480360360408110156102ff57600080fd5b506001600160a01b0381351690602001351515610624565b604051806040016040528060098152602001600160b81b6844454c474f506c75730281525081565b600061034b33846105f9565b1580610355575081155b61035e57600080fd5b61036883836106b4565b90505b92915050565b6002546001600160a01b0316331461038857600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60045490565b6001600160a01b03831660009081526003602052604081205460ff16156103d657600080fd5b60055460ff16156103e9575060016103f7565b6103f484848461071a565b90505b9392505050565b600881565b3360009081526020819052604081205482111561041f57600080fd5b6002546001600160a01b0316331461043657600080fd5b3360009081526020819052604090205461045090836108b7565b3360009081526020819052604090205560045461046d90836108b7565b600455604080513381526020810184905281517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5929181900390910190a15060015b919050565b6001600160a01b031660009081526020819052604090205490565b6002546000906001600160a01b031633146104e957600080fd5b811561058c576105036706f05b59d3b200006004546108b7565b821115610512575060006104af565b3360009081526020819052604090205461052c90836108c9565b3360009081526020819052604090205560045461054990836108c9565b60045560408051838152905133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060016104af565b506000919050565b604051806040016040528060058152602001600160d81b6444454c474f0281525081565b3360009081526003602052604081205460ff16156105d557600080fd5b60055460ff16156105e85750600161036b565b6105f283836108d8565b905061036b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6002546001600160a01b0316331461063b57600080fd5b336001600160a01b038316141561065157600080fd5b6001600160a01b038216600081815260036020908152604091829020805460ff1916600117905581519283528315159083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b3360008181526001602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60006001600160a01b03831661072f57600080fd5b6001600160a01b0384166000908152600160209081526040808320338452909152902054821115610762575060006103f7565b6001600160a01b03841660009081526020819052604090205482111561078a575060006103f7565b6000821180156107ac5750826001600160a01b0316846001600160a01b031614155b15610862576001600160a01b03841660009081526001602090815260408083203384529091529020546107df90836108b7565b6001600160a01b038516600081815260016020908152604080832033845282528083209490945591815290819052205461081990836108b7565b6001600160a01b03808616600090815260208190526040808220939093559085168152205461084890836108c9565b6001600160a01b0384166000908152602081905260409020555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b6000828211156108c357fe5b50900390565b60008282018381101561036857fe5b60006001600160a01b0383166108ed57600080fd5b3360009081526020819052604090205482111561090c5750600061036b565b6000821180156109255750336001600160a01b03841614155b1561098a573360009081526020819052604090205461094490836108b7565b33600090815260208190526040808220929092556001600160a01b0385168152205461097090836108c9565b6001600160a01b0384166000908152602081905260409020555b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019291505056fea165627a7a723058201ab201e029f2fe55f6f2e291147d5a22cdab375bcc1f6c3d433138564dd641740029