0x6080604052600436106100ab5760003560e01c806370a082311161006457806370a08231146101ad578063715018a6146101e35780638da5cb5b146101f857806395d89b4114610220578063a9059cbb1461024e578063dd62ed3e1461026e57600080fd5b806306fdde03146100b7578063095ea7b3146100fc57806318160ddd1461012c57806323b872dd1461014f578063313ce5671461016f578063502aafc11461018b57600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b5060408051808201909152600a815269213ab9373a102bb7b63360b11b60208201525b6040516100f39190610bb6565b60405180910390f35b34801561010857600080fd5b5061011c610117366004610c20565b6102b4565b60405190151581526020016100f3565b34801561013857600080fd5b506101416102cb565b6040519081526020016100f3565b34801561015b57600080fd5b5061011c61016a366004610c4a565b6102ec565b34801561017b57600080fd5b50604051600981526020016100f3565b34801561019757600080fd5b506101ab6101a6366004610c86565b610355565b005b3480156101b957600080fd5b506101416101c8366004610cc2565b6001600160a01b031660009081526001602052604090205490565b3480156101ef57600080fd5b506101ab6103e1565b34801561020457600080fd5b506000546040516001600160a01b0390911681526020016100f3565b34801561022c57600080fd5b50604080518082019091526005815264122ba7a62360d91b60208201526100e6565b34801561025a57600080fd5b5061011c610269366004610c20565b610485565b34801561027a57600080fd5b50610141610289366004610cdd565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102c1338484610492565b5060015b92915050565b60006102d96009600a610e0a565b6102e790633b9aca00610e19565b905090565b60006102f98484846105b7565b61034b843361034685604051806060016040528060288152602001610e98602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610889565b610492565b5060019392505050565b6000546001600160a01b031633146103b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60058054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b6000546001600160a01b0316331461043b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102c13384846105b7565b6001600160a01b0383166104f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ab565b6001600160a01b0382166105555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ab565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906105d757506001600160a01b03821615155b80156105e35750600081115b61062f5760405162461bcd60e51b815260206004820152601c60248201527f5a65726f2061646472657373206f72207a65726f20616d6f756e742e0000000060448201526064016103ab565b6000546001600160a01b0384811691161480159061065b57506000546001600160a01b03838116911614155b156106b957600554600160a01b900460ff166106b95760405162461bcd60e51b815260206004820152601860248201527f53776170206973206e6f7420656e61626c6564207965742e000000000000000060448201526064016103ab565b6000806106c685856108c3565b90508015610785576005546001600160a01b03908116908516036107335761072c60646107266001600560159054906101000a900460ff1660ff16101561070e57600061071c565b600554600160b81b900460ff165b869060ff1661090c565b9061098e565b9150610774565b61077160646107266001600560159054906101000a900460ff1660ff16101561075d57600061071c565b6005548690600160b01b900460ff1661090c565b91505b61077e83836109d0565b925061082d565b6000546001600160a01b038581169116148015906107b057506005546001600160a01b038681169116145b80156107d457506001600160a01b03841660009081526003602052604090205460ff165b80156107ed57506005546001600160a81b90910460ff16105b1561082d5760065460058054919350600160a81b90910460ff1690601561081383610e30565b91906101000a81548160ff021916908360ff160217905550505b811561085e573060009081526001602052604090205461084d9083610a12565b306000908152600160205260409020555b3060009081526001602052604090205461087790610a71565b610882858585610ae2565b5050505050565b600081848411156108ad5760405162461bcd60e51b81526004016103ab9190610bb6565b5060006108ba8486610e4f565b95945050505050565b6001600160a01b03821660009081526003602052604081205460ff1615801561090557506001600160a01b03821660009081526003602052604090205460ff16155b9392505050565b60008260000361091e575060006102c5565b600061092a8385610e19565b9050826109378583610e62565b146109055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103ab565b600061090583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b88565b600061090583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610889565b600080610a1f8385610e84565b9050838110156109055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103ab565b600754811115610adf5730600090815260016020526040902054610a9590826109d0565b30600090815260016020526040808220929092556004546001600160a01b031681522054610ac39082610a12565b6004546001600160a01b03166000908152600160205260409020555b50565b6001600160a01b038316600090815260016020526040902054610b0590826109d0565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b349082610a12565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105aa9085815260200190565b60008183610ba95760405162461bcd60e51b81526004016103ab9190610bb6565b5060006108ba8486610e62565b600060208083528351808285015260005b81811015610be357858101830151858201604001528201610bc7565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c1b57600080fd5b919050565b60008060408385031215610c3357600080fd5b610c3c83610c04565b946020939093013593505050565b600080600060608486031215610c5f57600080fd5b610c6884610c04565b9250610c7660208501610c04565b9150604084013590509250925092565b60008060408385031215610c9957600080fd5b610ca283610c04565b915060208301358015158114610cb757600080fd5b809150509250929050565b600060208284031215610cd457600080fd5b61090582610c04565b60008060408385031215610cf057600080fd5b610cf983610c04565b9150610d0760208401610c04565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610d61578160001904821115610d4757610d47610d10565b80851615610d5457918102915b93841c9390800290610d2b565b509250929050565b600082610d78575060016102c5565b81610d85575060006102c5565b8160018114610d9b5760028114610da557610dc1565b60019150506102c5565b60ff841115610db657610db6610d10565b50506001821b6102c5565b5060208310610133831016604e8410600b8410161715610de4575081810a6102c5565b610dee8383610d26565b8060001904821115610e0257610e02610d10565b029392505050565b600061090560ff841683610d69565b80820281158282048414176102c5576102c5610d10565b600060ff821660ff8103610e4657610e46610d10565b60010192915050565b818103818111156102c5576102c5610d10565b600082610e7f57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156102c5576102c5610d1056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220856a4f8b012f5711a26a44671503d7964cf01a4c8471a0c1870b253a2ec02f3164736f6c63430008130033
0x60806040526200003c60646200003560016200001e6009600a62000421565b6200002e90633b9aca0062000432565b90620001f1565b9062000288565b6007553480156200004c57600080fd5b506040516200141c3803806200141c8339810160408190526200006f9162000463565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000be6009600a62000421565b620000ce90633b9aca0062000432565b33600081815260016020526040902091909155600480546001600160a01b0319169091179055620001026009600a62000421565b6200010e908462000432565b6006556005805460ff838116600160b81b0260ff60b81b19918616600160b01b029190911661ffff60b01b19909216919091171790556001600360006200015d6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556200018d3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c76009600a62000421565b620001d790633b9aca0062000432565b60405190815260200160405180910390a350505062000517565b600082600003620002055750600062000282565b600062000213838562000432565b905082620002228583620004a4565b146200027f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200027f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002d260201b60201c565b60008183620002f65760405162461bcd60e51b8152600401620002769190620004c7565b506000620003058486620004a4565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003655781600019048211156200034957620003496200030e565b808516156200035757918102915b93841c939080029062000329565b509250929050565b6000826200037e5750600162000282565b816200038d5750600062000282565b8160018114620003a65760028114620003b157620003d1565b600191505062000282565b60ff841115620003c557620003c56200030e565b50506001821b62000282565b5060208310610133831016604e8410600b8410161715620003f6575081810a62000282565b62000402838362000324565b80600019048211156200041957620004196200030e565b029392505050565b60006200027f60ff8416836200036d565b80820281158282048414176200028257620002826200030e565b805160ff811681146200045e57600080fd5b919050565b6000806000606084860312156200047957600080fd5b835192506200048b602085016200044c565b91506200049b604085016200044c565b90509250925092565b600082620004c257634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620004f657858101830151858201604001528201620004d8565b506000604082860101526040601f19601f8301168501019250505092915050565b610ef580620005276000396000f3fe6080604052600436106100ab5760003560e01c806370a082311161006457806370a08231146101ad578063715018a6146101e35780638da5cb5b146101f857806395d89b4114610220578063a9059cbb1461024e578063dd62ed3e1461026e57600080fd5b806306fdde03146100b7578063095ea7b3146100fc57806318160ddd1461012c57806323b872dd1461014f578063313ce5671461016f578063502aafc11461018b57600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b5060408051808201909152600a815269213ab9373a102bb7b63360b11b60208201525b6040516100f39190610bb6565b60405180910390f35b34801561010857600080fd5b5061011c610117366004610c20565b6102b4565b60405190151581526020016100f3565b34801561013857600080fd5b506101416102cb565b6040519081526020016100f3565b34801561015b57600080fd5b5061011c61016a366004610c4a565b6102ec565b34801561017b57600080fd5b50604051600981526020016100f3565b34801561019757600080fd5b506101ab6101a6366004610c86565b610355565b005b3480156101b957600080fd5b506101416101c8366004610cc2565b6001600160a01b031660009081526001602052604090205490565b3480156101ef57600080fd5b506101ab6103e1565b34801561020457600080fd5b506000546040516001600160a01b0390911681526020016100f3565b34801561022c57600080fd5b50604080518082019091526005815264122ba7a62360d91b60208201526100e6565b34801561025a57600080fd5b5061011c610269366004610c20565b610485565b34801561027a57600080fd5b50610141610289366004610cdd565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102c1338484610492565b5060015b92915050565b60006102d96009600a610e0a565b6102e790633b9aca00610e19565b905090565b60006102f98484846105b7565b61034b843361034685604051806060016040528060288152602001610e98602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610889565b610492565b5060019392505050565b6000546001600160a01b031633146103b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60058054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b6000546001600160a01b0316331461043b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102c13384846105b7565b6001600160a01b0383166104f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ab565b6001600160a01b0382166105555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ab565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906105d757506001600160a01b03821615155b80156105e35750600081115b61062f5760405162461bcd60e51b815260206004820152601c60248201527f5a65726f2061646472657373206f72207a65726f20616d6f756e742e0000000060448201526064016103ab565b6000546001600160a01b0384811691161480159061065b57506000546001600160a01b03838116911614155b156106b957600554600160a01b900460ff166106b95760405162461bcd60e51b815260206004820152601860248201527f53776170206973206e6f7420656e61626c6564207965742e000000000000000060448201526064016103ab565b6000806106c685856108c3565b90508015610785576005546001600160a01b03908116908516036107335761072c60646107266001600560159054906101000a900460ff1660ff16101561070e57600061071c565b600554600160b81b900460ff165b869060ff1661090c565b9061098e565b9150610774565b61077160646107266001600560159054906101000a900460ff1660ff16101561075d57600061071c565b6005548690600160b01b900460ff1661090c565b91505b61077e83836109d0565b925061082d565b6000546001600160a01b038581169116148015906107b057506005546001600160a01b038681169116145b80156107d457506001600160a01b03841660009081526003602052604090205460ff165b80156107ed57506005546001600160a81b90910460ff16105b1561082d5760065460058054919350600160a81b90910460ff1690601561081383610e30565b91906101000a81548160ff021916908360ff160217905550505b811561085e573060009081526001602052604090205461084d9083610a12565b306000908152600160205260409020555b3060009081526001602052604090205461087790610a71565b610882858585610ae2565b5050505050565b600081848411156108ad5760405162461bcd60e51b81526004016103ab9190610bb6565b5060006108ba8486610e4f565b95945050505050565b6001600160a01b03821660009081526003602052604081205460ff1615801561090557506001600160a01b03821660009081526003602052604090205460ff16155b9392505050565b60008260000361091e575060006102c5565b600061092a8385610e19565b9050826109378583610e62565b146109055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103ab565b600061090583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b88565b600061090583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610889565b600080610a1f8385610e84565b9050838110156109055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103ab565b600754811115610adf5730600090815260016020526040902054610a9590826109d0565b30600090815260016020526040808220929092556004546001600160a01b031681522054610ac39082610a12565b6004546001600160a01b03166000908152600160205260409020555b50565b6001600160a01b038316600090815260016020526040902054610b0590826109d0565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b349082610a12565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105aa9085815260200190565b60008183610ba95760405162461bcd60e51b81526004016103ab9190610bb6565b5060006108ba8486610e62565b600060208083528351808285015260005b81811015610be357858101830151858201604001528201610bc7565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c1b57600080fd5b919050565b60008060408385031215610c3357600080fd5b610c3c83610c04565b946020939093013593505050565b600080600060608486031215610c5f57600080fd5b610c6884610c04565b9250610c7660208501610c04565b9150604084013590509250925092565b60008060408385031215610c9957600080fd5b610ca283610c04565b915060208301358015158114610cb757600080fd5b809150509250929050565b600060208284031215610cd457600080fd5b61090582610c04565b60008060408385031215610cf057600080fd5b610cf983610c04565b9150610d0760208401610c04565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610d61578160001904821115610d4757610d47610d10565b80851615610d5457918102915b93841c9390800290610d2b565b509250929050565b600082610d78575060016102c5565b81610d85575060006102c5565b8160018114610d9b5760028114610da557610dc1565b60019150506102c5565b60ff841115610db657610db6610d10565b50506001821b6102c5565b5060208310610133831016604e8410600b8410161715610de4575081810a6102c5565b610dee8383610d26565b8060001904821115610e0257610e02610d10565b029392505050565b600061090560ff841683610d69565b80820281158282048414176102c5576102c5610d10565b600060ff821660ff8103610e4657610e46610d10565b60010192915050565b818103818111156102c5576102c5610d10565b600082610e7f57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156102c5576102c5610d1056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220856a4f8b012f5711a26a44671503d7964cf01a4c8471a0c1870b253a2ec02f3164736f6c634300081300330000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064