0x6080604052600436106100865760003560e01c8063a23cd47d11610059578063a23cd47d1461017a578063d176ece6146101b5578063e2cadc0b146101db578063e6b9e8971461020e578063eaf128581461024157610086565b806330c24fb4146100885780637f802d9b146100cf57806385e6fb401461011457806399d95dd914610147575b005b34801561009457600080fd5b506100bb600480360360208110156100ab57600080fd5b50356001600160a01b0316610274565b604080519115158252519081900360200190f35b3480156100db57600080fd5b50610102600480360360208110156100f257600080fd5b50356001600160a01b0316610289565b60408051918252519081900360200190f35b34801561012057600080fd5b506101026004803603602081101561013757600080fd5b50356001600160a01b031661029b565b34801561015357600080fd5b506100866004803603602081101561016a57600080fd5b50356001600160a01b03166102ad565b34801561018657600080fd5b506101026004803603604081101561019d57600080fd5b506001600160a01b0381358116916020013516610574565b610086600480360360208110156101cb57600080fd5b50356001600160a01b031661058e565b3480156101e757600080fd5b50610086600480360360208110156101fe57600080fd5b50356001600160a01b0316610677565b34801561021a57600080fd5b506100866004803603602081101561023157600080fd5b50356001600160a01b0316610930565b34801561024d57600080fd5b506100866004803603602081101561026457600080fd5b50356001600160a01b0316610a85565b60016020526000908152604090205460ff1681565b60036020526000908152604090205481565b60026020526000908152604090205481565b6000816001600160a01b0316634faf28386040518163ffffffff1660e01b815260040160206040518083038186803b1580156102e857600080fd5b505afa1580156102fc573d6000803e3d6000fd5b505050506040513d602081101561031257600080fd5b505190508015610570576000826001600160a01b031663f372872d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561035757600080fd5b505afa15801561036b573d6000803e3d6000fd5b505050506040513d602081101561038157600080fd5b5051604080516304c078ed60e51b815290519192506000916001600160a01b0384169163980f1da0916004808301926020929190829003018186803b1580156103c957600080fd5b505afa1580156103dd573d6000803e3d6000fd5b505050506040513d60208110156103f357600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561044157600080fd5b505afa158015610455573d6000803e3d6000fd5b505050506040513d602081101561046b57600080fd5b5051604080516317b9aa5f60e21b815290519192506001600160a01b03871691635ee6a97c9160048082019260009290919082900301818387803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b5050604080516370a0823160e01b81523060048201529051600093506001600160a01b03861692506370a0823191602480820192602092909190829003018186803b15801561051457600080fd5b505afa158015610528573d6000803e3d6000fd5b505050506040513d602081101561053e57600080fd5b50519050610552818363ffffffff610b0c16565b6001600160a01b038716600090815260036020526040902055505050505b5050565b600060208181529281526040808220909352908152205481565b6001600160a01b0381166000908152602081815260408083203384529091529020546105c0903463ffffffff610b5716565b6001600160a01b038216600081815260208181526040808320338452825280832094909455918152600290915220546105ff903463ffffffff610b5716565b6001600160a01b03821660008181526002602052604080822093909355825163034ea41160e01b81529251919263034ea41192349260048084019391929182900301818588803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b5050505050610674816102ad565b50565b6000816001600160a01b031663f372872d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d60208110156106dc57600080fd5b5051604080516304c078ed60e51b815290519192506000916001600160a01b0384169163980f1da0916004808301926020929190829003018186803b15801561072457600080fd5b505afa158015610738573d6000803e3d6000fd5b505050506040513d602081101561074e57600080fd5b50516001600160a01b0384166000908152602081815260408083203384529091529020549091506107b05760405162461bcd60e51b8152600401808060200182810382526043815260200180610f166043913960600191505060405180910390fd5b6001600160a01b0383166000908152600360205260409020546108045760405162461bcd60e51b815260040180806020018281038252604f815260200180610ec7604f913960600191505060405180910390fd5b6001600160a01b038316600090815260026020908152604080832054838352818420338552909252822054610858919061084c90670de0b6b3a764000063ffffffff610bb116565b9063ffffffff610c0a16565b6001600160a01b03851660008181526020818152604080832033845282528083208390559282526003905290812054919250906108aa90670de0b6b3a76400009061084c90859063ffffffff610bb116565b6040805163a9059cbb60e01b81523360048201526024810183905290519192506001600160a01b0385169163a9059cbb916044808201926020929091908290030181600087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b505050506040513d602081101561092757600080fd5b50505050505050565b6000816001600160a01b031663f372872d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561096b57600080fd5b505afa15801561097f573d6000803e3d6000fd5b505050506040513d602081101561099557600080fd5b5051604080516304c078ed60e51b815290519192506000916001600160a01b0384169163980f1da0916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6020811015610a0757600080fd5b50516001600160a01b038085166000818152600160208190526040808320805460ff1916909217909155805163e6b9e89760e01b81526004810193909352519394509184169263e6b9e8979260248084019391929182900301818387803b158015610a7157600080fd5b505af1158015610927573d6000803e3d6000fd5b6001600160a01b03811660009081526001602052604090205460ff16610adc5760405162461bcd60e51b8152600401808060200182810382526039815260200180610e336039913960400191505060405180910390fd5b6001600160a01b038116600090815260208181526040808320338085529252822080549290556105709082610c4c565b6000610b4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d36565b90505b92915050565b600082820183811015610b4e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610bc057506000610b51565b82820282848281610bcd57fe5b0414610b4e5760405162461bcd60e51b8152600401808060200182810382526021815260200180610ea66021913960400191505060405180910390fd5b6000610b4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dcd565b80471015610ca1576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610cec576040519150601f19603f3d011682016040523d82523d6000602084013e610cf1565b606091505b5050905080610d315760405162461bcd60e51b815260040180806020018281038252603a815260200180610e6c603a913960400191505060405180910390fd5b505050565b60008184841115610dc55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d8a578181015183820152602001610d72565b50505050905090810190601f168015610db75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610e1c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d8a578181015183820152602001610d72565b506000838581610e2857fe5b049594505050505056fe5b636f6c6c656374457468657250726f63656564735d20657468206e6f7420796574207265747269657665642066726f6d2073686f7467756e416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775b636f6c6c656374536861726450726f63656564735d204e6f207375636365737366756c20636f756e746572636c61696d20666f7220746869732073686f7467756e206861732068617070656e65645b636f6c6c656374536861726450726f63656564735d204163636f756e7420686173206e6f742070617274696369706174656420696e20636f756e746572636c61696da265627a7a72315820e05510f23f2b348bf60505da4ec6a7e24c3cac108c6af180f0d0de2792afc71264736f6c634300050f0032
0x608060405234801561001057600080fd5b50610f8d806100206000396000f3fe6080604052600436106100865760003560e01c8063a23cd47d11610059578063a23cd47d1461017a578063d176ece6146101b5578063e2cadc0b146101db578063e6b9e8971461020e578063eaf128581461024157610086565b806330c24fb4146100885780637f802d9b146100cf57806385e6fb401461011457806399d95dd914610147575b005b34801561009457600080fd5b506100bb600480360360208110156100ab57600080fd5b50356001600160a01b0316610274565b604080519115158252519081900360200190f35b3480156100db57600080fd5b50610102600480360360208110156100f257600080fd5b50356001600160a01b0316610289565b60408051918252519081900360200190f35b34801561012057600080fd5b506101026004803603602081101561013757600080fd5b50356001600160a01b031661029b565b34801561015357600080fd5b506100866004803603602081101561016a57600080fd5b50356001600160a01b03166102ad565b34801561018657600080fd5b506101026004803603604081101561019d57600080fd5b506001600160a01b0381358116916020013516610574565b610086600480360360208110156101cb57600080fd5b50356001600160a01b031661058e565b3480156101e757600080fd5b50610086600480360360208110156101fe57600080fd5b50356001600160a01b0316610677565b34801561021a57600080fd5b506100866004803603602081101561023157600080fd5b50356001600160a01b0316610930565b34801561024d57600080fd5b506100866004803603602081101561026457600080fd5b50356001600160a01b0316610a85565b60016020526000908152604090205460ff1681565b60036020526000908152604090205481565b60026020526000908152604090205481565b6000816001600160a01b0316634faf28386040518163ffffffff1660e01b815260040160206040518083038186803b1580156102e857600080fd5b505afa1580156102fc573d6000803e3d6000fd5b505050506040513d602081101561031257600080fd5b505190508015610570576000826001600160a01b031663f372872d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561035757600080fd5b505afa15801561036b573d6000803e3d6000fd5b505050506040513d602081101561038157600080fd5b5051604080516304c078ed60e51b815290519192506000916001600160a01b0384169163980f1da0916004808301926020929190829003018186803b1580156103c957600080fd5b505afa1580156103dd573d6000803e3d6000fd5b505050506040513d60208110156103f357600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561044157600080fd5b505afa158015610455573d6000803e3d6000fd5b505050506040513d602081101561046b57600080fd5b5051604080516317b9aa5f60e21b815290519192506001600160a01b03871691635ee6a97c9160048082019260009290919082900301818387803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b5050604080516370a0823160e01b81523060048201529051600093506001600160a01b03861692506370a0823191602480820192602092909190829003018186803b15801561051457600080fd5b505afa158015610528573d6000803e3d6000fd5b505050506040513d602081101561053e57600080fd5b50519050610552818363ffffffff610b0c16565b6001600160a01b038716600090815260036020526040902055505050505b5050565b600060208181529281526040808220909352908152205481565b6001600160a01b0381166000908152602081815260408083203384529091529020546105c0903463ffffffff610b5716565b6001600160a01b038216600081815260208181526040808320338452825280832094909455918152600290915220546105ff903463ffffffff610b5716565b6001600160a01b03821660008181526002602052604080822093909355825163034ea41160e01b81529251919263034ea41192349260048084019391929182900301818588803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b5050505050610674816102ad565b50565b6000816001600160a01b031663f372872d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d60208110156106dc57600080fd5b5051604080516304c078ed60e51b815290519192506000916001600160a01b0384169163980f1da0916004808301926020929190829003018186803b15801561072457600080fd5b505afa158015610738573d6000803e3d6000fd5b505050506040513d602081101561074e57600080fd5b50516001600160a01b0384166000908152602081815260408083203384529091529020549091506107b05760405162461bcd60e51b8152600401808060200182810382526043815260200180610f166043913960600191505060405180910390fd5b6001600160a01b0383166000908152600360205260409020546108045760405162461bcd60e51b815260040180806020018281038252604f815260200180610ec7604f913960600191505060405180910390fd5b6001600160a01b038316600090815260026020908152604080832054838352818420338552909252822054610858919061084c90670de0b6b3a764000063ffffffff610bb116565b9063ffffffff610c0a16565b6001600160a01b03851660008181526020818152604080832033845282528083208390559282526003905290812054919250906108aa90670de0b6b3a76400009061084c90859063ffffffff610bb116565b6040805163a9059cbb60e01b81523360048201526024810183905290519192506001600160a01b0385169163a9059cbb916044808201926020929091908290030181600087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b505050506040513d602081101561092757600080fd5b50505050505050565b6000816001600160a01b031663f372872d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561096b57600080fd5b505afa15801561097f573d6000803e3d6000fd5b505050506040513d602081101561099557600080fd5b5051604080516304c078ed60e51b815290519192506000916001600160a01b0384169163980f1da0916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6020811015610a0757600080fd5b50516001600160a01b038085166000818152600160208190526040808320805460ff1916909217909155805163e6b9e89760e01b81526004810193909352519394509184169263e6b9e8979260248084019391929182900301818387803b158015610a7157600080fd5b505af1158015610927573d6000803e3d6000fd5b6001600160a01b03811660009081526001602052604090205460ff16610adc5760405162461bcd60e51b8152600401808060200182810382526039815260200180610e336039913960400191505060405180910390fd5b6001600160a01b038116600090815260208181526040808320338085529252822080549290556105709082610c4c565b6000610b4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d36565b90505b92915050565b600082820183811015610b4e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610bc057506000610b51565b82820282848281610bcd57fe5b0414610b4e5760405162461bcd60e51b8152600401808060200182810382526021815260200180610ea66021913960400191505060405180910390fd5b6000610b4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dcd565b80471015610ca1576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610cec576040519150601f19603f3d011682016040523d82523d6000602084013e610cf1565b606091505b5050905080610d315760405162461bcd60e51b815260040180806020018281038252603a815260200180610e6c603a913960400191505060405180910390fd5b505050565b60008184841115610dc55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d8a578181015183820152602001610d72565b50505050905090810190601f168015610db75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610e1c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d8a578181015183820152602001610d72565b506000838581610e2857fe5b049594505050505056fe5b636f6c6c656374457468657250726f63656564735d20657468206e6f7420796574207265747269657665642066726f6d2073686f7467756e416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775b636f6c6c656374536861726450726f63656564735d204e6f207375636365737366756c20636f756e746572636c61696d20666f7220746869732073686f7467756e206861732068617070656e65645b636f6c6c656374536861726450726f63656564735d204163636f756e7420686173206e6f742070617274696369706174656420696e20636f756e746572636c61696da265627a7a72315820e05510f23f2b348bf60505da4ec6a7e24c3cac108c6af180f0d0de2792afc71264736f6c634300050f0032