0x60806040526004361061014f5760003560e01c80638d1cf174116100b6578063aa4bde281161006f578063aa4bde28146103cd578063cc1776d3146103e3578063cf6e0ef3146103f9578063d10a08911461040e578063dd62ed3e1461042e578063f2fde38b1461047457600080fd5b80638d1cf174146103175780638da5cb5b1461032c578063902cda771461034a57806395d89b411461036a57806398fd9b6e14610398578063a9059cbb146103ad57600080fd5b8063313ce56711610108578063313ce5671461024d57806347e993dd1461026957806349bd5a5e1461027e5780634f7041a5146102b657806370a08231146102cc578063715018a61461030257600080fd5b806306fdde031461015b578063095ea7b3146101a35780630e178166146101d357806318160ddd146101ea57806323b872dd1461020d57806328b4094a1461022d57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c447265616d766572736520414960981b60208201525b60405161019a91906113ef565b60405180910390f35b3480156101af57600080fd5b506101c36101be366004611452565b610494565b604051901515815260200161019a565b3480156101df57600080fd5b506101e86104ab565b005b3480156101f657600080fd5b506101ff6104ea565b60405190815260200161019a565b34801561021957600080fd5b506101c361022836600461147e565b61050b565b34801561023957600080fd5b506101e86102483660046114bf565b6105a5565b34801561025957600080fd5b506040516012815260200161019a565b34801561027557600080fd5b506101e86105da565b34801561028a57600080fd5b5060095461029e906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b3480156102c257600080fd5b506101ff60065481565b3480156102d857600080fd5b506101ff6102e73660046114e1565b6001600160a01b031660009081526001602052604090205490565b34801561030e57600080fd5b506101e8610972565b34801561032357600080fd5b506101e86109e6565b34801561033857600080fd5b506000546001600160a01b031661029e565b34801561035657600080fd5b50600a5461029e906001600160a01b031681565b34801561037657600080fd5b50604080518082019091526005815264445245414d60d81b602082015261018d565b3480156103a457600080fd5b506101e8610a70565b3480156103b957600080fd5b506101c36103c8366004611452565b610b16565b3480156103d957600080fd5b506101ff60045481565b3480156103ef57600080fd5b506101ff60075481565b34801561040557600080fd5b506101e8610b23565b34801561041a57600080fd5b506101e8610429366004611505565b610b6c565b34801561043a57600080fd5b506101ff61044936600461151e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561048057600080fd5b506101e861048f3660046114e1565b610b9b565b60006104a1338484610c66565b5060015b92915050565b6000546001600160a01b031633146104de5760405162461bcd60e51b81526004016104d590611557565b60405180910390fd5b60006006556005600755565b60006104f86012600a611688565b610506906305f5e100611697565b905090565b6000610518848484610d2a565b61059b8433610596856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006105753390565b6001600160a01b0316815260208101919091526040016000205491906111b3565b610c66565b5060019392505050565b6000546001600160a01b031633146105cf5760405162461bcd60e51b81526004016104d590611557565b600691909155600755565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016104d590611557565b600d5460ff16156106515760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104d5565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561069a90309061068c6012600a611688565b610596906305f5e100611697565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906116ae565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079791906116ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906116ae565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d7194730610850816001600160a01b031660009081526001602052604090205490565b6000806108656000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108f291906116cb565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561094b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096f91906116f9565b50565b6000546001600160a01b0316331461099c5760405162461bcd60e51b81526004016104d590611557565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a105760405162461bcd60e51b81526004016104d590611557565b600d5460ff1615610a5d5760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104d5565b600d805460ff1916600117905543600b55565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b81526004016104d590611557565b60004711610aea5760405162461bcd60e51b815260206004820152601a60248201527f4e6f204574682042616c616e636520746f20776974686472617700000000000060448201526064016104d5565b60405133904780156108fc02916000818181858888f1935050505015801561096f573d6000803e3d6000fd5b60006104a1338484610d2a565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016104d590611557565b610b596012600a611688565b610b67906305f5e100611697565b600455565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016104d590611557565b600c55565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526004016104d590611557565b6001600160a01b038116610c1b5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104d5565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610c8657506001600160a01b03821615155b610cc95760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016104d5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d5565b6001600160a01b038216610df05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d5565b60008111610e525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d5565b6001600160a01b03831660009081526003602052604090205460ff1680610e9157506001600160a01b03821660009081526003602052604090205460ff165b15610ea0576000600555611096565b600d5460ff16610ee55760405162461bcd60e51b815260206004820152601060248201526f0aec2d2e840e8d2d8d840d8c2eadcc6d60831b60448201526064016104d5565b600c54600b54610ef5919061171b565b431015610f06576031600555611096565b6009546001600160a01b0390811690841603610fa25760045481610f3f846001600160a01b031660009081526001602052604090205490565b610f49919061171b565b1115610f975760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016104d5565b600654600555611096565b6009546001600160a01b039081169083160361109057306000908152600160205260409020546107d0610fd76012600a611688565b610fe490620f4240611697565b610fee919061172e565b811180156110045750600d54610100900460ff16155b1561104e576110156012600a611688565b61102290620f4240611697565b811115611045576110356012600a611688565b61104290620f4240611697565b90505b61104e816111ed565b6007546005556107d06110636012600a611688565b61107090620f4240611697565b61107a919061172e565b82111561108a5761108a47611361565b50611096565b60006005555b60006064600554836110a89190611697565b6110b2919061172e565b905060006110c08284611750565b90506110cb8561139f565b156110d557600092505b6001600160a01b0385166000908152600160205260409020546110f9908490611750565b6001600160a01b03808716600090815260016020526040808220939093559086168152205461112990829061171b565b6001600160a01b03851660009081526001602052604080822092909255308152205461115690839061171b565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156111d75760405162461bcd60e51b81526004016104d591906113ef565b5060006111e48486611750565b95945050505050565b600d805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061123157611231611763565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae91906116ae565b816001815181106112c1576112c1611763565b6001600160a01b0392831660209182029290920101526008546112e79130911684610c66565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790611320908590600090869030904290600401611779565b600060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b5050600d805461ff001916905550505050565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561139b573d6000803e3d6000fd5b5050565b6001600160a01b03811660009081526003602052604081205460ff1680156113d557506000546001600160a01b03838116911614155b80156104a557506001600160a01b03821630141592915050565b600060208083528351808285015260005b8181101561141c57858101830151858201604001528201611400565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461096f57600080fd5b6000806040838503121561146557600080fd5b82356114708161143d565b946020939093013593505050565b60008060006060848603121561149357600080fd5b833561149e8161143d565b925060208401356114ae8161143d565b929592945050506040919091013590565b600080604083850312156114d257600080fd5b50508035926020909101359150565b6000602082840312156114f357600080fd5b81356114fe8161143d565b9392505050565b60006020828403121561151757600080fd5b5035919050565b6000806040838503121561153157600080fd5b823561153c8161143d565b9150602083013561154c8161143d565b809150509250929050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115df5781600019048211156115c5576115c561158e565b808516156115d257918102915b93841c93908002906115a9565b509250929050565b6000826115f6575060016104a5565b81611603575060006104a5565b816001811461161957600281146116235761163f565b60019150506104a5565b60ff8411156116345761163461158e565b50506001821b6104a5565b5060208310610133831016604e8410600b8410161715611662575081810a6104a5565b61166c83836115a4565b80600019048211156116805761168061158e565b029392505050565b60006114fe60ff8416836115e7565b80820281158282048414176104a5576104a561158e565b6000602082840312156116c057600080fd5b81516114fe8161143d565b6000806000606084860312156116e057600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561170b57600080fd5b815180151581146114fe57600080fd5b808201808211156104a5576104a561158e565b60008261174b57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a5576104a561158e565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117c95784516001600160a01b0316835293830193918301916001016117a4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220efb1eb575196309405fc3b387417493921abf8c016fbf9c86abf2767614d7e0664736f6c63430008130033
0x6080604052620000126012600a6200028d565b6200002190620f4240620002a5565b6200002e906002620002a5565b600455600060065560056007556001600c55600d805460ff191690553480156200005757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b03191673cc0d6d78b7eae61349b799704706d62cf22e224817815533600090815260036020526040808220805460ff1990811660019081179092553084529190922080549091169091179055620000fe906012906200028d565b6200010e906305f5e100620002a5565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001516012600a6200028d565b62000161906305f5e100620002a5565b60405190815260200160405180910390a3620002bf565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001cf578160001904821115620001b357620001b362000178565b80851615620001c157918102915b93841c939080029062000193565b509250929050565b600082620001e85750600162000287565b81620001f75750600062000287565b81600181146200021057600281146200021b576200023b565b600191505062000287565b60ff8411156200022f576200022f62000178565b50506001821b62000287565b5060208310610133831016604e8410600b841016171562000260575081810a62000287565b6200026c83836200018e565b806000190482111562000283576200028362000178565b0290505b92915050565b60006200029e60ff841683620001d7565b9392505050565b808202811582820484141762000287576200028762000178565b61182080620002cf6000396000f3fe60806040526004361061014f5760003560e01c80638d1cf174116100b6578063aa4bde281161006f578063aa4bde28146103cd578063cc1776d3146103e3578063cf6e0ef3146103f9578063d10a08911461040e578063dd62ed3e1461042e578063f2fde38b1461047457600080fd5b80638d1cf174146103175780638da5cb5b1461032c578063902cda771461034a57806395d89b411461036a57806398fd9b6e14610398578063a9059cbb146103ad57600080fd5b8063313ce56711610108578063313ce5671461024d57806347e993dd1461026957806349bd5a5e1461027e5780634f7041a5146102b657806370a08231146102cc578063715018a61461030257600080fd5b806306fdde031461015b578063095ea7b3146101a35780630e178166146101d357806318160ddd146101ea57806323b872dd1461020d57806328b4094a1461022d57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c447265616d766572736520414960981b60208201525b60405161019a91906113ef565b60405180910390f35b3480156101af57600080fd5b506101c36101be366004611452565b610494565b604051901515815260200161019a565b3480156101df57600080fd5b506101e86104ab565b005b3480156101f657600080fd5b506101ff6104ea565b60405190815260200161019a565b34801561021957600080fd5b506101c361022836600461147e565b61050b565b34801561023957600080fd5b506101e86102483660046114bf565b6105a5565b34801561025957600080fd5b506040516012815260200161019a565b34801561027557600080fd5b506101e86105da565b34801561028a57600080fd5b5060095461029e906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b3480156102c257600080fd5b506101ff60065481565b3480156102d857600080fd5b506101ff6102e73660046114e1565b6001600160a01b031660009081526001602052604090205490565b34801561030e57600080fd5b506101e8610972565b34801561032357600080fd5b506101e86109e6565b34801561033857600080fd5b506000546001600160a01b031661029e565b34801561035657600080fd5b50600a5461029e906001600160a01b031681565b34801561037657600080fd5b50604080518082019091526005815264445245414d60d81b602082015261018d565b3480156103a457600080fd5b506101e8610a70565b3480156103b957600080fd5b506101c36103c8366004611452565b610b16565b3480156103d957600080fd5b506101ff60045481565b3480156103ef57600080fd5b506101ff60075481565b34801561040557600080fd5b506101e8610b23565b34801561041a57600080fd5b506101e8610429366004611505565b610b6c565b34801561043a57600080fd5b506101ff61044936600461151e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561048057600080fd5b506101e861048f3660046114e1565b610b9b565b60006104a1338484610c66565b5060015b92915050565b6000546001600160a01b031633146104de5760405162461bcd60e51b81526004016104d590611557565b60405180910390fd5b60006006556005600755565b60006104f86012600a611688565b610506906305f5e100611697565b905090565b6000610518848484610d2a565b61059b8433610596856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006105753390565b6001600160a01b0316815260208101919091526040016000205491906111b3565b610c66565b5060019392505050565b6000546001600160a01b031633146105cf5760405162461bcd60e51b81526004016104d590611557565b600691909155600755565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016104d590611557565b600d5460ff16156106515760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104d5565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561069a90309061068c6012600a611688565b610596906305f5e100611697565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906116ae565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079791906116ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906116ae565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d7194730610850816001600160a01b031660009081526001602052604090205490565b6000806108656000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108f291906116cb565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561094b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096f91906116f9565b50565b6000546001600160a01b0316331461099c5760405162461bcd60e51b81526004016104d590611557565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a105760405162461bcd60e51b81526004016104d590611557565b600d5460ff1615610a5d5760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104d5565b600d805460ff1916600117905543600b55565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b81526004016104d590611557565b60004711610aea5760405162461bcd60e51b815260206004820152601a60248201527f4e6f204574682042616c616e636520746f20776974686472617700000000000060448201526064016104d5565b60405133904780156108fc02916000818181858888f1935050505015801561096f573d6000803e3d6000fd5b60006104a1338484610d2a565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016104d590611557565b610b596012600a611688565b610b67906305f5e100611697565b600455565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016104d590611557565b600c55565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526004016104d590611557565b6001600160a01b038116610c1b5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104d5565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610c8657506001600160a01b03821615155b610cc95760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016104d5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d5565b6001600160a01b038216610df05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d5565b60008111610e525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d5565b6001600160a01b03831660009081526003602052604090205460ff1680610e9157506001600160a01b03821660009081526003602052604090205460ff165b15610ea0576000600555611096565b600d5460ff16610ee55760405162461bcd60e51b815260206004820152601060248201526f0aec2d2e840e8d2d8d840d8c2eadcc6d60831b60448201526064016104d5565b600c54600b54610ef5919061171b565b431015610f06576031600555611096565b6009546001600160a01b0390811690841603610fa25760045481610f3f846001600160a01b031660009081526001602052604090205490565b610f49919061171b565b1115610f975760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016104d5565b600654600555611096565b6009546001600160a01b039081169083160361109057306000908152600160205260409020546107d0610fd76012600a611688565b610fe490620f4240611697565b610fee919061172e565b811180156110045750600d54610100900460ff16155b1561104e576110156012600a611688565b61102290620f4240611697565b811115611045576110356012600a611688565b61104290620f4240611697565b90505b61104e816111ed565b6007546005556107d06110636012600a611688565b61107090620f4240611697565b61107a919061172e565b82111561108a5761108a47611361565b50611096565b60006005555b60006064600554836110a89190611697565b6110b2919061172e565b905060006110c08284611750565b90506110cb8561139f565b156110d557600092505b6001600160a01b0385166000908152600160205260409020546110f9908490611750565b6001600160a01b03808716600090815260016020526040808220939093559086168152205461112990829061171b565b6001600160a01b03851660009081526001602052604080822092909255308152205461115690839061171b565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156111d75760405162461bcd60e51b81526004016104d591906113ef565b5060006111e48486611750565b95945050505050565b600d805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061123157611231611763565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae91906116ae565b816001815181106112c1576112c1611763565b6001600160a01b0392831660209182029290920101526008546112e79130911684610c66565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790611320908590600090869030904290600401611779565b600060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b5050600d805461ff001916905550505050565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561139b573d6000803e3d6000fd5b5050565b6001600160a01b03811660009081526003602052604081205460ff1680156113d557506000546001600160a01b03838116911614155b80156104a557506001600160a01b03821630141592915050565b600060208083528351808285015260005b8181101561141c57858101830151858201604001528201611400565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461096f57600080fd5b6000806040838503121561146557600080fd5b82356114708161143d565b946020939093013593505050565b60008060006060848603121561149357600080fd5b833561149e8161143d565b925060208401356114ae8161143d565b929592945050506040919091013590565b600080604083850312156114d257600080fd5b50508035926020909101359150565b6000602082840312156114f357600080fd5b81356114fe8161143d565b9392505050565b60006020828403121561151757600080fd5b5035919050565b6000806040838503121561153157600080fd5b823561153c8161143d565b9150602083013561154c8161143d565b809150509250929050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115df5781600019048211156115c5576115c561158e565b808516156115d257918102915b93841c93908002906115a9565b509250929050565b6000826115f6575060016104a5565b81611603575060006104a5565b816001811461161957600281146116235761163f565b60019150506104a5565b60ff8411156116345761163461158e565b50506001821b6104a5565b5060208310610133831016604e8410600b8410161715611662575081810a6104a5565b61166c83836115a4565b80600019048211156116805761168061158e565b029392505050565b60006114fe60ff8416836115e7565b80820281158282048414176104a5576104a561158e565b6000602082840312156116c057600080fd5b81516114fe8161143d565b6000806000606084860312156116e057600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561170b57600080fd5b815180151581146114fe57600080fd5b808201808211156104a5576104a561158e565b60008261174b57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a5576104a561158e565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117c95784516001600160a01b0316835293830193918301916001016117a4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220efb1eb575196309405fc3b387417493921abf8c016fbf9c86abf2767614d7e0664736f6c63430008130033