0x6080604052600436106100c65760003560e01c8063715018a61161007f5780639e78fb4f116100595780639e78fb4f14610212578063a9059cbb14610227578063c9567bf914610247578063dd62ed3e1461025c57600080fd5b8063715018a6146101d35780638da5cb5b146101ea57806395d89b41146100d257600080fd5b806306fdde03146100d2578063095ea7b31461010e57806318160ddd1461013e57806323b872dd14610161578063313ce5671461018157806370a082311461019d57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b5060408051808201825260048152630989298b60e31b6020820152905161010591906110c5565b60405180910390f35b34801561011a57600080fd5b5061012e610129366004611132565b6102a2565b6040519015158152602001610105565b34801561014a57600080fd5b506101536102b9565b604051908152602001610105565b34801561016d57600080fd5b5061012e61017c36600461115e565b6102da565b34801561018d57600080fd5b5060405160098152602001610105565b3480156101a957600080fd5b506101536101b836600461119f565b6001600160a01b031660009081526001602052604090205490565b3480156101df57600080fd5b506101e8610343565b005b3480156101f657600080fd5b506000546040516001600160a01b039091168152602001610105565b34801561021e57600080fd5b506101e86103c0565b34801561023357600080fd5b5061012e610242366004611132565b6105c3565b34801561025357600080fd5b506101e86105d0565b34801561026857600080fd5b506101536102773660046111bc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102af33848461073c565b5060015b92915050565b60006102c76009600a6112ef565b6102d590633b9aca006112fe565b905090565b60006102e7848484610860565b610339843361033485604051806060016040528060288152602001611491602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610ada565b61073c565b5060019392505050565b6000546001600160a01b031633146103765760405162461bcd60e51b815260040161036d9061131d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146103ea5760405162461bcd60e51b815260040161036d9061131d565b600580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556104339030906104256009600a6112ef565b61033490633b9aca006112fe565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104aa9190611352565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190611352565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a19190611352565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60006102af338484610860565b6000546001600160a01b031633146105fa5760405162461bcd60e51b815260040161036d9061131d565b601054610100900460ff16156106525760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161036d565b6005546001600160a01b031663f305d7194730610684816001600160a01b031660009081526001602052604090205490565b6000806106996000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610701573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610726919061136f565b50506010805462ffff0019166201010017905550565b6001600160a01b03831661079e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161036d565b6001600160a01b0382166107ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161036d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161036d565b6001600160a01b0382166109265760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161036d565b600081116109885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161036d565b6000610995848484610b14565b90508015610a1157306000908152600160205260409020546109b79082610c7f565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a089085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610a349083610ce5565b6001600160a01b038516600090815260016020526040902055610a79610a5a8383610ce5565b6001600160a01b03851660009081526001602052604090205490610c7f565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ac38585610ce5565b60405190815260200160405180910390a350505050565b60008184841115610afe5760405162461bcd60e51b815260040161036d91906110c5565b506000610b0b848661139d565b95945050505050565b60008032610b2a6000546001600160a01b031690565b6001600160a01b0316866001600160a01b031614158015610b5957506000546001600160a01b03868116911614155b15610c7657610b8a6064610b84600b54600e5411610b7957600754610b7d565b6009545b8790610d27565b90610da6565b6004549092506001600160a01b038781169116148015610bb857506005546001600160a01b03868116911614155b8015610bdd57506001600160a01b03851660009081526003602052604090205460ff16155b15610bf857600e8054906000610bf2836113b4565b91905055505b6004546001600160a01b038681169116148015610c1e57506001600160a01b0386163014155b15610c4b57610c486064610b84600c54600e5411610c3e57600854610b7d565b600a548790610d27565b91505b6001600160a01b038116600090815260036020526040902054610c769087908790879060ff16610de8565b50949350505050565b600080610c8c83856113cf565b905083811015610cde5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161036d565b9392505050565b6000610cde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ada565b600082610d36575060006102b3565b6000610d4283856112fe565b905082610d4f85836113e7565b14610cde5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161036d565b6000610cde83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e85565b610df3848284610eb3565b3060009081526001602052604090205460105460ff16158015610e2357506004546001600160a01b038581169116145b8015610e37575060105462010000900460ff165b8015610e465750600d54600e54115b15610e7e57600f54811115610e7257610e72610e6d84610e6884600f54610f01565b610f01565b610f16565b47610e7c47611087565b505b5050505050565b60008183610ea65760405162461bcd60e51b815260040161036d91906110c5565b506000610b0b84866113e7565b60008215610ec2575032610ed0565b506006546001600160a01b03165b6001600160a01b03938416600090815260026020908152604080832093909616825291909152929092209190915550565b6000818311610f105782610cde565b50919050565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f5857610f58611409565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd59190611352565b81600181518110610fe857610fe8611409565b6001600160a01b03928316602091820292909201015260055461100e913091168461073c565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061104790859060009086903090429060040161141f565b600060405180830381600087803b15801561106157600080fd5b505af1158015611075573d6000803e3d6000fd5b50506010805460ff1916905550505050565b6006546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110c1573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156110f2578581018301518582016040015282016110d6565b81811115611104576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461112f57600080fd5b50565b6000806040838503121561114557600080fd5b82356111508161111a565b946020939093013593505050565b60008060006060848603121561117357600080fd5b833561117e8161111a565b9250602084013561118e8161111a565b929592945050506040919091013590565b6000602082840312156111b157600080fd5b8135610cde8161111a565b600080604083850312156111cf57600080fd5b82356111da8161111a565b915060208301356111ea8161111a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561124657816000190482111561122c5761122c6111f5565b8085161561123957918102915b93841c9390800290611210565b509250929050565b60008261125d575060016102b3565b8161126a575060006102b3565b8160018114611280576002811461128a576112a6565b60019150506102b3565b60ff84111561129b5761129b6111f5565b50506001821b6102b3565b5060208310610133831016604e8410600b84101617156112c9575081810a6102b3565b6112d3838361120b565b80600019048211156112e7576112e76111f5565b029392505050565b6000610cde60ff84168361124e565b6000816000190483118215151615611318576113186111f5565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561136457600080fd5b8151610cde8161111a565b60008060006060848603121561138457600080fd5b8351925060208401519150604084015190509250925092565b6000828210156113af576113af6111f5565b500390565b60006000198214156113c8576113c86111f5565b5060010190565b600082198211156113e2576113e26111f5565b500190565b60008261140457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561146f5784516001600160a01b03168352938301939183019160010161144a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204324c434c22bf0073e0b864dac54e12f3a59270ad918cc8c88982003f206e05864736f6c634300080a0033
0x6080604052600680546001600160a01b03191673b3603f3723be57b36fc8c7c5ab2aaaa0647728f51781556003600781905560085560006009818155600a828155600b849055600c849055600d93909355600e91909155606491620000659190620002ec565b6200007590633b9aca0062000304565b62000081919062000326565b600f556010805462ffffff191690553480156200009d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160036000620000f86000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006549091168352912080549092161790556200015d6009600a620002ec565b6200016d90633b9aca0062000304565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001b06009600a620002ec565b620001c090633b9aca0062000304565b60405190815260200160405180910390a362000349565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200022e578160001904821115620002125762000212620001d7565b808516156200022057918102915b93841c9390800290620001f2565b509250929050565b6000826200024757506001620002e6565b816200025657506000620002e6565b81600181146200026f57600281146200027a576200029a565b6001915050620002e6565b60ff8411156200028e576200028e620001d7565b50506001821b620002e6565b5060208310610133831016604e8410600b8410161715620002bf575081810a620002e6565b620002cb8383620001ed565b8060001904821115620002e257620002e2620001d7565b0290505b92915050565b6000620002fd60ff84168362000236565b9392505050565b6000816000190483118215151615620003215762000321620001d7565b500290565b6000826200034457634e487b7160e01b600052601260045260246000fd5b500490565b6114ee80620003596000396000f3fe6080604052600436106100c65760003560e01c8063715018a61161007f5780639e78fb4f116100595780639e78fb4f14610212578063a9059cbb14610227578063c9567bf914610247578063dd62ed3e1461025c57600080fd5b8063715018a6146101d35780638da5cb5b146101ea57806395d89b41146100d257600080fd5b806306fdde03146100d2578063095ea7b31461010e57806318160ddd1461013e57806323b872dd14610161578063313ce5671461018157806370a082311461019d57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b5060408051808201825260048152630989298b60e31b6020820152905161010591906110c5565b60405180910390f35b34801561011a57600080fd5b5061012e610129366004611132565b6102a2565b6040519015158152602001610105565b34801561014a57600080fd5b506101536102b9565b604051908152602001610105565b34801561016d57600080fd5b5061012e61017c36600461115e565b6102da565b34801561018d57600080fd5b5060405160098152602001610105565b3480156101a957600080fd5b506101536101b836600461119f565b6001600160a01b031660009081526001602052604090205490565b3480156101df57600080fd5b506101e8610343565b005b3480156101f657600080fd5b506000546040516001600160a01b039091168152602001610105565b34801561021e57600080fd5b506101e86103c0565b34801561023357600080fd5b5061012e610242366004611132565b6105c3565b34801561025357600080fd5b506101e86105d0565b34801561026857600080fd5b506101536102773660046111bc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102af33848461073c565b5060015b92915050565b60006102c76009600a6112ef565b6102d590633b9aca006112fe565b905090565b60006102e7848484610860565b610339843361033485604051806060016040528060288152602001611491602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610ada565b61073c565b5060019392505050565b6000546001600160a01b031633146103765760405162461bcd60e51b815260040161036d9061131d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146103ea5760405162461bcd60e51b815260040161036d9061131d565b600580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556104339030906104256009600a6112ef565b61033490633b9aca006112fe565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104aa9190611352565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190611352565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a19190611352565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60006102af338484610860565b6000546001600160a01b031633146105fa5760405162461bcd60e51b815260040161036d9061131d565b601054610100900460ff16156106525760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161036d565b6005546001600160a01b031663f305d7194730610684816001600160a01b031660009081526001602052604090205490565b6000806106996000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610701573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610726919061136f565b50506010805462ffff0019166201010017905550565b6001600160a01b03831661079e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161036d565b6001600160a01b0382166107ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161036d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161036d565b6001600160a01b0382166109265760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161036d565b600081116109885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161036d565b6000610995848484610b14565b90508015610a1157306000908152600160205260409020546109b79082610c7f565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a089085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610a349083610ce5565b6001600160a01b038516600090815260016020526040902055610a79610a5a8383610ce5565b6001600160a01b03851660009081526001602052604090205490610c7f565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ac38585610ce5565b60405190815260200160405180910390a350505050565b60008184841115610afe5760405162461bcd60e51b815260040161036d91906110c5565b506000610b0b848661139d565b95945050505050565b60008032610b2a6000546001600160a01b031690565b6001600160a01b0316866001600160a01b031614158015610b5957506000546001600160a01b03868116911614155b15610c7657610b8a6064610b84600b54600e5411610b7957600754610b7d565b6009545b8790610d27565b90610da6565b6004549092506001600160a01b038781169116148015610bb857506005546001600160a01b03868116911614155b8015610bdd57506001600160a01b03851660009081526003602052604090205460ff16155b15610bf857600e8054906000610bf2836113b4565b91905055505b6004546001600160a01b038681169116148015610c1e57506001600160a01b0386163014155b15610c4b57610c486064610b84600c54600e5411610c3e57600854610b7d565b600a548790610d27565b91505b6001600160a01b038116600090815260036020526040902054610c769087908790879060ff16610de8565b50949350505050565b600080610c8c83856113cf565b905083811015610cde5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161036d565b9392505050565b6000610cde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ada565b600082610d36575060006102b3565b6000610d4283856112fe565b905082610d4f85836113e7565b14610cde5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161036d565b6000610cde83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e85565b610df3848284610eb3565b3060009081526001602052604090205460105460ff16158015610e2357506004546001600160a01b038581169116145b8015610e37575060105462010000900460ff165b8015610e465750600d54600e54115b15610e7e57600f54811115610e7257610e72610e6d84610e6884600f54610f01565b610f01565b610f16565b47610e7c47611087565b505b5050505050565b60008183610ea65760405162461bcd60e51b815260040161036d91906110c5565b506000610b0b84866113e7565b60008215610ec2575032610ed0565b506006546001600160a01b03165b6001600160a01b03938416600090815260026020908152604080832093909616825291909152929092209190915550565b6000818311610f105782610cde565b50919050565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f5857610f58611409565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd59190611352565b81600181518110610fe857610fe8611409565b6001600160a01b03928316602091820292909201015260055461100e913091168461073c565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061104790859060009086903090429060040161141f565b600060405180830381600087803b15801561106157600080fd5b505af1158015611075573d6000803e3d6000fd5b50506010805460ff1916905550505050565b6006546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110c1573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156110f2578581018301518582016040015282016110d6565b81811115611104576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461112f57600080fd5b50565b6000806040838503121561114557600080fd5b82356111508161111a565b946020939093013593505050565b60008060006060848603121561117357600080fd5b833561117e8161111a565b9250602084013561118e8161111a565b929592945050506040919091013590565b6000602082840312156111b157600080fd5b8135610cde8161111a565b600080604083850312156111cf57600080fd5b82356111da8161111a565b915060208301356111ea8161111a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561124657816000190482111561122c5761122c6111f5565b8085161561123957918102915b93841c9390800290611210565b509250929050565b60008261125d575060016102b3565b8161126a575060006102b3565b8160018114611280576002811461128a576112a6565b60019150506102b3565b60ff84111561129b5761129b6111f5565b50506001821b6102b3565b5060208310610133831016604e8410600b84101617156112c9575081810a6102b3565b6112d3838361120b565b80600019048211156112e7576112e76111f5565b029392505050565b6000610cde60ff84168361124e565b6000816000190483118215151615611318576113186111f5565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561136457600080fd5b8151610cde8161111a565b60008060006060848603121561138457600080fd5b8351925060208401519150604084015190509250925092565b6000828210156113af576113af6111f5565b500390565b60006000198214156113c8576113c86111f5565b5060010190565b600082198211156113e2576113e26111f5565b500190565b60008261140457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561146f5784516001600160a01b03168352938301939183019160010161144a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204324c434c22bf0073e0b864dac54e12f3a59270ad918cc8c88982003f206e05864736f6c634300080a0033