0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b610fc98061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635da926ca116100715780635da926ca146102c6578063715018a6146103695780638da5cb5b14610371578063937529ef146103955780639ce19365146103bb578063f2fde38b146103e1576100b4565b8063178b6de6146100b957806327db6e641461017857806328220dea146101d05780633136aef71461020c57806343d7cce61461023b5780634c1a7e751461028c575b600080fd5b6100df600480360360208110156100cf57600080fd5b50356001600160a01b0316610407565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561012357818101518382015260200161010b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561016257818101518382015260200161014a565b5050505090500194505050505060405180910390f35b610180610589565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101bc5781810151838201526020016101a4565b505050509050019250505060405180910390f35b61020a600480360360608110156101e657600080fd5b5080356001600160a01b03908116916020810135909116906040013560ff16610628565b005b6101806004803603604081101561022257600080fd5b5080356001600160a01b0316906020013560ff16610795565b6102676004803603604081101561025157600080fd5b506001600160a01b038135169060200135610946565b604080516001600160a01b03909316835260ff90911660208301528051918290030190f35b6102b2600480360360208110156102a257600080fd5b50356001600160a01b03166109ef565b604080519115158252519081900360200190f35b61020a600480360360208110156102dc57600080fd5b8101906020810181356401000000008111156102f757600080fd5b82018360208201111561030957600080fd5b8035906020019184602083028401116401000000008311171561032b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a0d945050505050565b61020a610aa3565b610379610b4f565b604080516001600160a01b039092168252519081900360200190f35b61020a600480360360208110156103ab57600080fd5b50356001600160a01b0316610b5e565b61020a600480360360208110156103d157600080fd5b50356001600160a01b0316610bcb565b61020a600480360360208110156103f757600080fd5b50356001600160a01b0316610c38565b6001600160a01b0381166000908152600360205260408120546060918291908167ffffffffffffffff8111801561043d57600080fd5b50604051908082528060200260200182016040528015610467578160200160208202803683370190505b50905060008267ffffffffffffffff8111801561048357600080fd5b506040519080825280602002602001820160405280156104ad578160200160208202803683370190505b50905060005b8381101561057d576001600160a01b03871660009081526003602052604090208054829081106104df57fe5b9060005260206000200160000160019054906101000a90046001600160a01b031683828151811061050c57fe5b6001600160a01b03928316602091820292909201810191909152908816600090815260039091526040902080548290811061054357fe5b600091825260209091200154825160ff9091169083908390811061056357fe5b60ff909216602092830291909101909101526001016104b3565b50909350915050915091565b606060006105976001610d3a565b905060008167ffffffffffffffff811180156105b257600080fd5b506040519080825280602002602001820160405280156105dc578160200160208202803683370190505b50905060005b82811015610621576105f5600182610d45565b82828151811061060157fe5b6001600160a01b03909216602092830291909101909101526001016105e2565b5091505090565b610633600133610d58565b610684576040805162461bcd60e51b815260206004820152601960248201527f4e6f7420612077686974656c697374656420666163746f727900000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526004602090815260408083209386168352929052205460ff16156106f6576040805162461bcd60e51b8152602060048201526014602482015273546f6b656e20616c72656164792065786973747360601b604482015290519081900360640190fd5b6001600160a01b0392831660008181526003602090815260408083208151808301835260ff96871681529688168784018181528254600181810185559387528587209951990180549151909a1661010002610100600160a81b03199990981660ff199182161798909816969096179097559282526004815282822093825292835281812080548516861790556005909252902080549091169091179055565b60606000805b6001600160a01b038516600090815260036020526040902054811015610809576001600160a01b0385166000908152600360205260409020805460ff86169190839081106107e557fe5b60009182526020909120015460ff161415610801576001909101905b60010161079b565b5060008167ffffffffffffffff8111801561082357600080fd5b5060405190808252806020026020018201604052801561084d578160200160208202803683370190505b5090508161085e5791506109409050565b6000805b6001600160a01b038716600090815260036020526040902054811015610939576001600160a01b0387166000908152600360205260409020805460ff88169190839081106108ac57fe5b60009182526020909120015460ff161415610931576001600160a01b03871660009081526003602052604090208054829081106108e557fe5b9060005260206000200160000160019054906101000a90046001600160a01b031683838151811061091257fe5b6001600160a01b03909216602092830291909101909101526001909101905b600101610862565b5090925050505b92915050565b6001600160a01b0382166000908152600360205260408120548190831115610973575060009050806109e8565b6001600160a01b038416600090815260036020526040902080548490811061099757fe5b60009182526020808320909101546001600160a01b0387811684526003909252604090922080546101009093049190911691859081106109d357fe5b60009182526020909120015490925060ff1690505b9250929050565b6001600160a01b031660009081526005602052604090205460ff1690565b610a15610d6d565b6001600160a01b0316610a26610b4f565b6001600160a01b031614610a6f576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b60005b8151811015610a9f57610a97828281518110610a8a57fe5b6020026020010151610bcb565b600101610a72565b5050565b610aab610d6d565b6001600160a01b0316610abc610b4f565b6001600160a01b031614610b05576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b610b66610d6d565b6001600160a01b0316610b77610b4f565b6001600160a01b031614610bc0576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b610a9f600182610d71565b610bd3610d6d565b6001600160a01b0316610be4610b4f565b6001600160a01b031614610c2d576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b610a9f600182610d86565b610c40610d6d565b6001600160a01b0316610c51610b4f565b6001600160a01b031614610c9a576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b6001600160a01b038116610cdf5760405162461bcd60e51b8152600401808060200182810382526026815260200180610f4e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061094082610d9b565b6000610d518383610d9f565b9392505050565b6000610d51836001600160a01b038416610e03565b3390565b6000610d51836001600160a01b038416610e1b565b6000610d51836001600160a01b038416610ee1565b5490565b81546000908210610de15760405162461bcd60e51b8152600401808060200182810382526022815260200180610f2c6022913960400191505060405180910390fd5b826000018281548110610df057fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b60008181526001830160205260408120548015610ed75783546000198083019190810190600090879083908110610e4e57fe5b9060005260206000200154905080876000018481548110610e6b57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610e9b57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610940565b6000915050610940565b6000610eed8383610e03565b610f2357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610940565b50600061094056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212205064a86e088807269f08ef4d2073559afefa684cff374e9398649dcbd5d2bf1f64736f6c63430007060033
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80635da926ca116100715780635da926ca146102c6578063715018a6146103695780638da5cb5b14610371578063937529ef146103955780639ce19365146103bb578063f2fde38b146103e1576100b4565b8063178b6de6146100b957806327db6e641461017857806328220dea146101d05780633136aef71461020c57806343d7cce61461023b5780634c1a7e751461028c575b600080fd5b6100df600480360360208110156100cf57600080fd5b50356001600160a01b0316610407565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561012357818101518382015260200161010b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561016257818101518382015260200161014a565b5050505090500194505050505060405180910390f35b610180610589565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101bc5781810151838201526020016101a4565b505050509050019250505060405180910390f35b61020a600480360360608110156101e657600080fd5b5080356001600160a01b03908116916020810135909116906040013560ff16610628565b005b6101806004803603604081101561022257600080fd5b5080356001600160a01b0316906020013560ff16610795565b6102676004803603604081101561025157600080fd5b506001600160a01b038135169060200135610946565b604080516001600160a01b03909316835260ff90911660208301528051918290030190f35b6102b2600480360360208110156102a257600080fd5b50356001600160a01b03166109ef565b604080519115158252519081900360200190f35b61020a600480360360208110156102dc57600080fd5b8101906020810181356401000000008111156102f757600080fd5b82018360208201111561030957600080fd5b8035906020019184602083028401116401000000008311171561032b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a0d945050505050565b61020a610aa3565b610379610b4f565b604080516001600160a01b039092168252519081900360200190f35b61020a600480360360208110156103ab57600080fd5b50356001600160a01b0316610b5e565b61020a600480360360208110156103d157600080fd5b50356001600160a01b0316610bcb565b61020a600480360360208110156103f757600080fd5b50356001600160a01b0316610c38565b6001600160a01b0381166000908152600360205260408120546060918291908167ffffffffffffffff8111801561043d57600080fd5b50604051908082528060200260200182016040528015610467578160200160208202803683370190505b50905060008267ffffffffffffffff8111801561048357600080fd5b506040519080825280602002602001820160405280156104ad578160200160208202803683370190505b50905060005b8381101561057d576001600160a01b03871660009081526003602052604090208054829081106104df57fe5b9060005260206000200160000160019054906101000a90046001600160a01b031683828151811061050c57fe5b6001600160a01b03928316602091820292909201810191909152908816600090815260039091526040902080548290811061054357fe5b600091825260209091200154825160ff9091169083908390811061056357fe5b60ff909216602092830291909101909101526001016104b3565b50909350915050915091565b606060006105976001610d3a565b905060008167ffffffffffffffff811180156105b257600080fd5b506040519080825280602002602001820160405280156105dc578160200160208202803683370190505b50905060005b82811015610621576105f5600182610d45565b82828151811061060157fe5b6001600160a01b03909216602092830291909101909101526001016105e2565b5091505090565b610633600133610d58565b610684576040805162461bcd60e51b815260206004820152601960248201527f4e6f7420612077686974656c697374656420666163746f727900000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526004602090815260408083209386168352929052205460ff16156106f6576040805162461bcd60e51b8152602060048201526014602482015273546f6b656e20616c72656164792065786973747360601b604482015290519081900360640190fd5b6001600160a01b0392831660008181526003602090815260408083208151808301835260ff96871681529688168784018181528254600181810185559387528587209951990180549151909a1661010002610100600160a81b03199990981660ff199182161798909816969096179097559282526004815282822093825292835281812080548516861790556005909252902080549091169091179055565b60606000805b6001600160a01b038516600090815260036020526040902054811015610809576001600160a01b0385166000908152600360205260409020805460ff86169190839081106107e557fe5b60009182526020909120015460ff161415610801576001909101905b60010161079b565b5060008167ffffffffffffffff8111801561082357600080fd5b5060405190808252806020026020018201604052801561084d578160200160208202803683370190505b5090508161085e5791506109409050565b6000805b6001600160a01b038716600090815260036020526040902054811015610939576001600160a01b0387166000908152600360205260409020805460ff88169190839081106108ac57fe5b60009182526020909120015460ff161415610931576001600160a01b03871660009081526003602052604090208054829081106108e557fe5b9060005260206000200160000160019054906101000a90046001600160a01b031683838151811061091257fe5b6001600160a01b03909216602092830291909101909101526001909101905b600101610862565b5090925050505b92915050565b6001600160a01b0382166000908152600360205260408120548190831115610973575060009050806109e8565b6001600160a01b038416600090815260036020526040902080548490811061099757fe5b60009182526020808320909101546001600160a01b0387811684526003909252604090922080546101009093049190911691859081106109d357fe5b60009182526020909120015490925060ff1690505b9250929050565b6001600160a01b031660009081526005602052604090205460ff1690565b610a15610d6d565b6001600160a01b0316610a26610b4f565b6001600160a01b031614610a6f576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b60005b8151811015610a9f57610a97828281518110610a8a57fe5b6020026020010151610bcb565b600101610a72565b5050565b610aab610d6d565b6001600160a01b0316610abc610b4f565b6001600160a01b031614610b05576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b610b66610d6d565b6001600160a01b0316610b77610b4f565b6001600160a01b031614610bc0576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b610a9f600182610d71565b610bd3610d6d565b6001600160a01b0316610be4610b4f565b6001600160a01b031614610c2d576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b610a9f600182610d86565b610c40610d6d565b6001600160a01b0316610c51610b4f565b6001600160a01b031614610c9a576040805162461bcd60e51b81526020600482018190526024820152600080516020610f74833981519152604482015290519081900360640190fd5b6001600160a01b038116610cdf5760405162461bcd60e51b8152600401808060200182810382526026815260200180610f4e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061094082610d9b565b6000610d518383610d9f565b9392505050565b6000610d51836001600160a01b038416610e03565b3390565b6000610d51836001600160a01b038416610e1b565b6000610d51836001600160a01b038416610ee1565b5490565b81546000908210610de15760405162461bcd60e51b8152600401808060200182810382526022815260200180610f2c6022913960400191505060405180910390fd5b826000018281548110610df057fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b60008181526001830160205260408120548015610ed75783546000198083019190810190600090879083908110610e4e57fe5b9060005260206000200154905080876000018481548110610e6b57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610e9b57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610940565b6000915050610940565b6000610eed8383610e03565b610f2357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610940565b50600061094056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212205064a86e088807269f08ef4d2073559afefa684cff374e9398649dcbd5d2bf1f64736f6c63430007060033