0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d714610257578063a9059cbb1461026a578063cc1776d31461027d578063dc1052e214610286578063dd62ed3e1461029957600080fd5b806370a08231146101de578063715018a6146102075780638cd09d50146102115780638da5cb5b1461022457806395d89b411461024f57600080fd5b806323b872dd116100f457806323b872dd1461018d578063313ce567146101a057806339509351146101af5780634f7041a5146101c25780636ed5378f146101cb57600080fd5b806306fdde0314610126578063095ea7b314610144578063162790551461016757806318160ddd1461017b575b600080fd5b61012e6102ac565b60405161013b9190610a76565b60405180910390f35b610157610152366004610ae7565b61033e565b604051901515815260200161013b565b610157610175366004610b11565b3b151590565b6002545b60405190815260200161013b565b61015761019b366004610b33565b610356565b6040516012815260200161013b565b6101576101bd366004610ae7565b61037c565b61017f60055481565b6101576101d9366004610ae7565b61039e565b61017f6101ec366004610b11565b6001600160a01b031660009081526020819052604090205490565b61020f610432565b005b61020f61021f366004610b6f565b6104b5565b600754610237906001600160a01b031681565b6040516001600160a01b03909116815260200161013b565b61012e61052d565b610157610265366004610ae7565b61053c565b610157610278366004610ae7565b6105b7565b61017f60065481565b61020f610294366004610b6f565b6105c6565b61017f6102a7366004610b88565b610638565b6060600380546102bb90610bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546102e790610bbb565b80156103345780601f1061030957610100808354040283529160200191610334565b820191906000526020600020905b81548152906001019060200180831161031757829003601f168201915b5050505050905090565b60003361034c818585610663565b5060019392505050565b600033610364858285610787565b6103718585856001610801565b506001949350505050565b60003361034c81858561038f8383610638565b6103999190610c0c565b610663565b6000600a82106104045760405162461bcd60e51b815260206004820152602660248201527f546865206c617374206469676974206d757374206265206265747765656e203060448201526520616e64203960d01b60648201526084015b60405180910390fd5b6001600160a01b03831660009081526020819052604090205482610429600a83610c3a565b14949350505050565b6007546001600160a01b0316336001600160a01b0316146104655760405162461bcd60e51b81526004016103fb90610c4e565b60075460405161dead916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b03191661dead179055565b6007546001600160a01b0316336001600160a01b0316146104e85760405162461bcd60e51b81526004016103fb90610c4e565b600681905560055460408051918252602082018390527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560591015b60405180910390a150565b6060600480546102bb90610bbb565b6000338161054a8286610638565b9050838110156105aa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103fb565b6103718286868403610663565b60003361034c81858585610801565b6007546001600160a01b0316336001600160a01b0316146105f95760405162461bcd60e51b81526004016103fb90610c4e565b60058190556006546040805183815260208101929092527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad856059101610522565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106c55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103fb565b6001600160a01b0382166107265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103fb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107938484610638565b905060001981146107fb57818110156107ee5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103fb565b6107fb8484848403610663565b50505050565b6001600160a01b0384166108655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103fb565b6001600160a01b0383166108c75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103fb565b6001600160a01b0384166000908152602081905260409020548281101561093f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103fb565b600082610965576064600554856109569190610c9d565b6109609190610cbc565b61097f565b6064600654856109759190610c9d565b61097f9190610cbc565b9050600061098d8286610cd0565b6001600160a01b038881166000818152602081815260408083208b8a039055938b168083529184902080548601905592518481529394509290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38115610a6d576007546001600160a01b031660009081526020819052604081208054849290610a22908490610c0c565b90915550506007546040518381526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b600060208083528351808285015260005b81811015610aa357858101830151858201604001528201610a87565b81811115610ab5576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610ae257600080fd5b919050565b60008060408385031215610afa57600080fd5b610b0383610acb565b946020939093013593505050565b600060208284031215610b2357600080fd5b610b2c82610acb565b9392505050565b600080600060608486031215610b4857600080fd5b610b5184610acb565b9250610b5f60208501610acb565b9150604084013590509250925092565b600060208284031215610b8157600080fd5b5035919050565b60008060408385031215610b9b57600080fd5b610ba483610acb565b9150610bb260208401610acb565b90509250929050565b600181811c90821680610bcf57607f821691505b60208210811415610bf057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c1f57610c1f610bf6565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610c4957610c49610c24565b500690565b6020808252602f908201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60408201526e103a3434b990333ab731ba34b7b71760891b606082015260800190565b6000816000190483118215151615610cb757610cb7610bf6565b500290565b600082610ccb57610ccb610c24565b500490565b600082821015610ce257610ce2610bf6565b50039056fea2646970667358221220d50c3d727ff3466c8ab3de3718906c355fbddce4766f3e58e7b2f34663df829b64736f6c63430008090033
0x60806040526016600555601a6006553480156200001b57600080fd5b50604080518082018252601081526f13995dc815195cdb184813585cd8dbdd60821b6020808301918252835180850190945260058452642a27a924a760d91b908401528151919291633b9aca009162000078916003919062000124565b5081516200008e90600490602085019062000124565b50600780546001600160a01b031916331790556012620000b090600a620002df565b620000bc9082620002f7565b6002819055600780546001600160a01b0390811660009081526020818152604080832086905593549351948552929091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505062000356565b828054620001329062000319565b90600052602060002090601f016020900481019282620001565760008555620001a1565b82601f106200017157805160ff1916838001178555620001a1565b82800160010185558215620001a1579182015b82811115620001a157825182559160200191906001019062000184565b50620001af929150620001b3565b5090565b5b80821115620001af5760008155600101620001b4565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000221578160001904821115620002055762000205620001ca565b808516156200021357918102915b93841c9390800290620001e5565b509250929050565b6000826200023a57506001620002d9565b816200024957506000620002d9565b81600181146200026257600281146200026d576200028d565b6001915050620002d9565b60ff841115620002815762000281620001ca565b50506001821b620002d9565b5060208310610133831016604e8410600b8410161715620002b2575081810a620002d9565b620002be8383620001e0565b8060001904821115620002d557620002d5620001ca565b0290505b92915050565b6000620002f060ff84168362000229565b9392505050565b6000816000190483118215151615620003145762000314620001ca565b500290565b600181811c908216806200032e57607f821691505b602082108114156200035057634e487b7160e01b600052602260045260246000fd5b50919050565b610d1d80620003666000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d714610257578063a9059cbb1461026a578063cc1776d31461027d578063dc1052e214610286578063dd62ed3e1461029957600080fd5b806370a08231146101de578063715018a6146102075780638cd09d50146102115780638da5cb5b1461022457806395d89b411461024f57600080fd5b806323b872dd116100f457806323b872dd1461018d578063313ce567146101a057806339509351146101af5780634f7041a5146101c25780636ed5378f146101cb57600080fd5b806306fdde0314610126578063095ea7b314610144578063162790551461016757806318160ddd1461017b575b600080fd5b61012e6102ac565b60405161013b9190610a76565b60405180910390f35b610157610152366004610ae7565b61033e565b604051901515815260200161013b565b610157610175366004610b11565b3b151590565b6002545b60405190815260200161013b565b61015761019b366004610b33565b610356565b6040516012815260200161013b565b6101576101bd366004610ae7565b61037c565b61017f60055481565b6101576101d9366004610ae7565b61039e565b61017f6101ec366004610b11565b6001600160a01b031660009081526020819052604090205490565b61020f610432565b005b61020f61021f366004610b6f565b6104b5565b600754610237906001600160a01b031681565b6040516001600160a01b03909116815260200161013b565b61012e61052d565b610157610265366004610ae7565b61053c565b610157610278366004610ae7565b6105b7565b61017f60065481565b61020f610294366004610b6f565b6105c6565b61017f6102a7366004610b88565b610638565b6060600380546102bb90610bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546102e790610bbb565b80156103345780601f1061030957610100808354040283529160200191610334565b820191906000526020600020905b81548152906001019060200180831161031757829003601f168201915b5050505050905090565b60003361034c818585610663565b5060019392505050565b600033610364858285610787565b6103718585856001610801565b506001949350505050565b60003361034c81858561038f8383610638565b6103999190610c0c565b610663565b6000600a82106104045760405162461bcd60e51b815260206004820152602660248201527f546865206c617374206469676974206d757374206265206265747765656e203060448201526520616e64203960d01b60648201526084015b60405180910390fd5b6001600160a01b03831660009081526020819052604090205482610429600a83610c3a565b14949350505050565b6007546001600160a01b0316336001600160a01b0316146104655760405162461bcd60e51b81526004016103fb90610c4e565b60075460405161dead916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b03191661dead179055565b6007546001600160a01b0316336001600160a01b0316146104e85760405162461bcd60e51b81526004016103fb90610c4e565b600681905560055460408051918252602082018390527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560591015b60405180910390a150565b6060600480546102bb90610bbb565b6000338161054a8286610638565b9050838110156105aa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103fb565b6103718286868403610663565b60003361034c81858585610801565b6007546001600160a01b0316336001600160a01b0316146105f95760405162461bcd60e51b81526004016103fb90610c4e565b60058190556006546040805183815260208101929092527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad856059101610522565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106c55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103fb565b6001600160a01b0382166107265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103fb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107938484610638565b905060001981146107fb57818110156107ee5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103fb565b6107fb8484848403610663565b50505050565b6001600160a01b0384166108655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103fb565b6001600160a01b0383166108c75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103fb565b6001600160a01b0384166000908152602081905260409020548281101561093f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103fb565b600082610965576064600554856109569190610c9d565b6109609190610cbc565b61097f565b6064600654856109759190610c9d565b61097f9190610cbc565b9050600061098d8286610cd0565b6001600160a01b038881166000818152602081815260408083208b8a039055938b168083529184902080548601905592518481529394509290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38115610a6d576007546001600160a01b031660009081526020819052604081208054849290610a22908490610c0c565b90915550506007546040518381526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b600060208083528351808285015260005b81811015610aa357858101830151858201604001528201610a87565b81811115610ab5576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610ae257600080fd5b919050565b60008060408385031215610afa57600080fd5b610b0383610acb565b946020939093013593505050565b600060208284031215610b2357600080fd5b610b2c82610acb565b9392505050565b600080600060608486031215610b4857600080fd5b610b5184610acb565b9250610b5f60208501610acb565b9150604084013590509250925092565b600060208284031215610b8157600080fd5b5035919050565b60008060408385031215610b9b57600080fd5b610ba483610acb565b9150610bb260208401610acb565b90509250929050565b600181811c90821680610bcf57607f821691505b60208210811415610bf057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c1f57610c1f610bf6565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610c4957610c49610c24565b500690565b6020808252602f908201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60408201526e103a3434b990333ab731ba34b7b71760891b606082015260800190565b6000816000190483118215151615610cb757610cb7610bf6565b500290565b600082610ccb57610ccb610c24565b500490565b600082821015610ce257610ce2610bf6565b50039056fea2646970667358221220d50c3d727ff3466c8ab3de3718906c355fbddce4766f3e58e7b2f34663df829b64736f6c63430008090033