0 txs
12 calls
constructor
constructor(address _globalFactory)
functions
CLAIMER_ROLE
viewfunction CLAIMER_ROLE() view returns (bytes32)
CREATE_ROLE
viewfunction CREATE_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
GAUGE_FACTORY_MANAGER_ROLE
viewfunction GAUGE_FACTORY_MANAGER_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
globalFactory
viewfunction globalFactory() view returns (address)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
activateEmergencyMode
nonpayablefunction activateEmergencyMode(address[] _gauges)
addRewardToken
nonpayablefunction addRewardToken(address _gauge, address _token)
addRewardToken
nonpayablefunction addRewardToken(address[] _gauges, address _token)
claimFees
nonpayablefunction claimFees(address[] _gauges)
createEternalGauge
nonpayablefunction createEternalGauge(address _pool, address _distribution, address _feeVault, address _votingIncentives, address _incentiveMaker) returns (address)
createGauge
nonpayablefunction createGauge(address[] _rewardtokens, address _token, address _distribution, address _feeVault, address _votingIncetives, address _claimer, bool isWeighted) returns (address)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pauseGauge
nonpayablefunction pauseGauge(address[] _gauges)
removeRewardToken
nonpayablefunction removeRewardToken(address gauge, address _token)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setClaimer
nonpayablefunction setClaimer(address claimer, address[] _gauges)
setDistribution
nonpayablefunction setDistribution(address[] _gauges, address distro)
setFeeVault
nonpayablefunction setFeeVault(address[] _gauges, address[] feevault)
setGlobalFactory
nonpayablefunction setGlobalFactory(address _gf)
setIncentiveMaker
nonpayablefunction setIncentiveMaker(address[] _gauges, address _incentiveMaker)
setVotingIncentives
nonpayablefunction setVotingIncentives(address _gauges, address _vi)
setVotingIncentives
nonpayablefunction setVotingIncentives(address[] _gauges, address[] _vi)
stopEmergencyMode
nonpayablefunction stopEmergencyMode(address[] _gauges)
unpauseGauge
nonpayablefunction unpauseGauge(address[] _gauges)
events
CreateGauge
event CreateGauge(address indexed strategy, address indexed gauge)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SetGlobalFactory
event SetGlobalFactory(address indexed globalfactory)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620061b7380380620061b7833981016040819052620000349162000191565b6001600160a01b03811615620000a657600180546001600160a01b0319166001600160a01b0383169081179091556200007e906000805160206200619783398151915290620000f0565b600154620000a69060008051602062006177833981519152906001600160a01b0316620000f0565b620000b3600033620000f0565b620000ce6000805160206200617783398151915233620000f0565b620000e96000805160206200619783398151915233620000f0565b50620001c3565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200018d576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200014c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600060208284031215620001a457600080fd5b81516001600160a01b0381168114620001bc57600080fd5b9392505050565b615fa480620001d36000396000f3fe60806040523480156200001157600080fd5b5060043610620001e85760003560e01c80635e93d0e4116200010d57806391d1485411620000a3578063d0a273cb116200007a578063d0a273cb1462000486578063d547741f146200049d578063f0ec7e3014620004b4578063fc5f18d314620004cb57600080fd5b806391d14854146200042f578063a0ea1ccc1462000469578063a217fddf146200047d57600080fd5b8063725acc6b11620000e4578063725acc6b14620003d357806379251d8814620003ea57806384e1a4f8146200040157806385379bc0146200041857600080fd5b80635e93d0e4146200038e5780636153304014620003a55780636cbbf82214620003bc57600080fd5b80632ef2115b116200018357806336568abe116200015a57806336568abe14620003325780634ac0374e1462000349578063536e198c14620003605780635e135a89146200037757600080fd5b80632ef2115b14620002ed5780632f2ff15d146200030457806330c6f602146200031b57600080fd5b8063072dc20d11620001c4578063072dc20d146200026757806323cb23901462000280578063248a9ca314620002975780632c4c00be14620002bd57600080fd5b80626f53c914620001ed57806301ffc9a71462000228578063033b6d1f1462000250575b600080fd5b620002157f2ad5dda4abad2eba9015076cc6a1db468a91b444067d58b590c8c73985521a0481565b6040519081526020015b60405180910390f35b6200023f62000239366004620016a7565b620004f3565b60405190151581526020016200021f565b6200021560008051602062005f4f83398151915281565b6200027e620002783660046200173f565b6200052b565b005b6200027e6200029136600462001799565b620005f1565b62000215620002a8366004620017d1565b60009081526020819052604090206001015490565b620002d4620002ce36600462001812565b6200066f565b6040516001600160a01b0390911681526020016200021f565b6200027e620002fe36600462001956565b62000733565b6200027e6200031536600462001974565b6200085c565b6200027e6200032c3660046200173f565b6200088a565b6200027e6200034336600462001974565b62000949565b6200027e6200035a3660046200199a565b620009d9565b6200027e620003713660046200199a565b62000a93565b6200027e6200038836600462001799565b62000b51565b6200027e6200039f3660046200173f565b62000b9b565b6200027e620003b6366004620019e0565b62000c5a565b620002d4620003cd36600462001a39565b62000d19565b6200027e620003e43660046200199a565b62000df6565b6200027e620003fb36600462001799565b62000eca565b6200027e620004123660046200199a565b62000f14565b6200027e6200042936600462001aa9565b62000fd2565b6200023f6200044036600462001974565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600154620002d4906001600160a01b031681565b62000215600081565b6200027e6200049736600462001aa9565b620010dc565b6200027e620004ae36600462001974565b62001222565b6200027e620004c53660046200199a565b6200124b565b620002157f11a8cb5a02bd6c42679835e867ef2118ba78f088f8300511420c6603c21d9c7881565b60006001600160e01b03198216637965db0b60e01b14806200052557506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008051602062005f4f8339815191526200054681620012ff565b60005b83811015620005ea5784848281811062000567576200056762001b1c565b90506020020160208101906200057e919062001956565b604051631de7e83160e21b81526001600160a01b038581166004830152919091169063779fa0c490602401600060405180830381600087803b158015620005c457600080fd5b505af1158015620005d9573d6000803e3d6000fd5b505060019092019150620005499050565b5050505050565b60008051602062005f4f8339815191526200060c81620012ff565b604051630700f9b360e21b81526001600160a01b038381166004830152841690631c03e6cc906024015b600060405180830381600087803b1580156200065157600080fd5b505af115801562000666573d6000803e3d6000fd5b50505050505050565b60007f2ad5dda4abad2eba9015076cc6a1db468a91b444067d58b590c8c73985521a046200069d81620012ff565b600089898989898989604051620006b4906200168b565b620006c6979695949392919062001b32565b604051809103906000f080158015620006e3573d6000803e3d6000fd5b509050806001600160a01b0316896001600160a01b03167f46843f5a58231053242305fde621fa67db852076f219ff604176b817bd97a56960405160405180910390a39998505050505050505050565b60008051602062005f4f8339815191526200074e81620012ff565b6001600160a01b038216620007aa5760405162461bcd60e51b815260206004820152600f60248201527f47463a205a65726f41646472657373000000000000000000000000000000000060448201526064015b60405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416179055620008097f2ad5dda4abad2eba9015076cc6a1db468a91b444067d58b590c8c73985521a04836200130e565b6200082460008051602062005f4f833981519152836200130e565b6040516001600160a01b038316907fa8058d034a214bf4981222270790224959db0d5b82f22dae82a70e7b397912b390600090a25050565b6000828152602081905260409020600101546200087981620012ff565b6200088583836200130e565b505050565b60008051602062005f4f833981519152620008a581620012ff565b60005b83811015620005ea57848482818110620008c657620008c662001b1c565b9050602002016020810190620008dd919062001956565b604051637f69901560e01b81526001600160a01b0385811660048301529190911690637f69901590602401600060405180830381600087803b1580156200092357600080fd5b505af115801562000938573d6000803e3d6000fd5b505060019092019150620008a89050565b6001600160a01b0381163314620009c95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401620007a1565b620009d58282620013ae565b5050565b60008051602062005f4f833981519152620009f481620012ff565b60005b8281101562000a8d5783838281811062000a155762000a1562001b1c565b905060200201602081019062000a2c919062001956565b6001600160a01b031663d00960106040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000a6757600080fd5b505af115801562000a7c573d6000803e3d6000fd5b505060019092019150620009f79050565b50505050565b60008051602062005f4f83398151915262000aae81620012ff565b60005b8281101562000a8d5783838281811062000acf5762000acf62001b1c565b905060200201602081019062000ae6919062001956565b6040516302329a2960e01b8152600060048201526001600160a01b0391909116906302329a2990602401600060405180830381600087803b15801562000b2b57600080fd5b505af115801562000b40573d6000803e3d6000fd5b50506001909201915062000ab19050565b60008051602062005f4f83398151915262000b6c81620012ff565b604051630d779edb60e31b81526001600160a01b038381166004830152841690636bbcf6d89060240162000636565b60008051602062005f4f83398151915262000bb681620012ff565b60005b83811015620005ea5784848281811062000bd75762000bd762001b1c565b905060200201602081019062000bee919062001956565b604051630700f9b360e21b81526001600160a01b0385811660048301529190911690631c03e6cc90602401600060405180830381600087803b15801562000c3457600080fd5b505af115801562000c49573d6000803e3d6000fd5b50506001909201915062000bb99050565b60008051602062005f4f83398151915262000c7581620012ff565b60005b82811015620005ea5783838281811062000c965762000c9662001b1c565b905060200201602081019062000cad919062001956565b6040516366fdac1960e11b81526001600160a01b038781166004830152919091169063cdfb583290602401600060405180830381600087803b15801562000cf357600080fd5b505af115801562000d08573d6000803e3d6000fd5b50506001909201915062000c789050565b60007f2ad5dda4abad2eba9015076cc6a1db468a91b444067d58b590c8c73985521a0462000d4781620012ff565b6000878787878760405162000d5c9062001699565b6001600160a01b0395861681529385166020850152918416604084015283166060830152909116608082015260a001604051809103906000f08015801562000da8573d6000803e3d6000fd5b509050806001600160a01b0316886001600160a01b03167f46843f5a58231053242305fde621fa67db852076f219ff604176b817bd97a56960405160405180910390a3979650505050505050565b7f11a8cb5a02bd6c42679835e867ef2118ba78f088f8300511420c6603c21d9c7862000e2281620012ff565b60005b8281101562000a8d5783838281811062000e435762000e4362001b1c565b905060200201602081019062000e5a919062001956565b6001600160a01b031663d294f0936040518163ffffffff1660e01b815260040160408051808303816000875af115801562000e99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ebf919062001bdc565b505060010162000e25565b60008051602062005f4f83398151915262000ee581620012ff565b604051633d509c9760e01b81526001600160a01b038381166004830152841690633d509c979060240162000636565b60008051602062005f4f83398151915262000f2f81620012ff565b60005b8281101562000a8d5783838281811062000f505762000f5062001b1c565b905060200201602081019062000f67919062001956565b6040516302329a2960e01b8152600160048201526001600160a01b0391909116906302329a2990602401600060405180830381600087803b15801562000fac57600080fd5b505af115801562000fc1573d6000803e3d6000fd5b50506001909201915062000f329050565b60008051602062005f4f83398151915262000fed81620012ff565b83821462000ffa57600080fd5b60005b84811015620010d4578585828181106200101b576200101b62001b1c565b905060200201602081019062001032919062001956565b6001600160a01b0316636bbcf6d885858481811062001055576200105562001b1c565b90506020020160208101906200106c919062001956565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620010ae57600080fd5b505af1158015620010c3573d6000803e3d6000fd5b50506001909201915062000ffd9050565b505050505050565b60008051602062005f4f833981519152620010f781620012ff565b838214620011485760405162461bcd60e51b815260206004820152600f60248201527f4c656e677468206d69736d6174636800000000000000000000000000000000006044820152606401620007a1565b60005b84811015620010d45785858281811062001169576200116962001b1c565b905060200201602081019062001180919062001956565b6001600160a01b031663a591f97f858584818110620011a357620011a362001b1c565b9050602002016020810190620011ba919062001956565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620011fc57600080fd5b505af115801562001211573d6000803e3d6000fd5b5050600190920191506200114b9050565b6000828152602081905260409020600101546200123f81620012ff565b620008858383620013ae565b60008051602062005f4f8339815191526200126681620012ff565b60005b8281101562000a8d5783838281811062001287576200128762001b1c565b90506020020160208101906200129e919062001956565b6001600160a01b031663b1534ecd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620012d957600080fd5b505af1158015620012ee573d6000803e3d6000fd5b505060019092019150620012699050565b6200130b81336200142e565b50565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620009d5576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200136a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615620009d5576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620009d5576200146281620014aa565b6200146f836020620014bd565b6040516020016200148292919062001c27565b60408051601f198184030181529082905262461bcd60e51b8252620007a19160040162001cac565b6060620005256001600160a01b03831660145b60606000620014ce83600262001cf7565b620014db90600262001d11565b67ffffffffffffffff811115620014f657620014f6620017eb565b6040519080825280601f01601f19166020018201604052801562001521576020820181803683370190505b509050600360fc1b816000815181106200153f576200153f62001b1c565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062001571576200157162001b1c565b60200101906001600160f81b031916908160001a90535060006200159784600262001cf7565b620015a490600162001d11565b90505b600181111562001633577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110620015e957620015e962001b1c565b1a60f81b82828151811062001602576200160262001b1c565b60200101906001600160f81b031916908160001a90535060049490941c936200162b8162001d27565b9050620015a7565b508315620016845760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620007a1565b9392505050565b6130e98062001d4283390190565b6111248062004e2b83390190565b600060208284031215620016ba57600080fd5b81356001600160e01b0319811681146200168457600080fd5b60008083601f840112620016e657600080fd5b50813567ffffffffffffffff811115620016ff57600080fd5b6020830191508360208260051b85010111156200171b57600080fd5b9250929050565b80356001600160a01b03811681146200173a57600080fd5b919050565b6000806000604084860312156200175557600080fd5b833567ffffffffffffffff8111156200176d57600080fd5b6200177b86828701620016d3565b90945092506200179090506020850162001722565b90509250925092565b60008060408385031215620017ad57600080fd5b620017b88362001722565b9150620017c86020840162001722565b90509250929050565b600060208284031215620017e457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b803580151581146200173a57600080fd5b600080600080600080600060e0888a0312156200182e57600080fd5b873567ffffffffffffffff808211156200184757600080fd5b818a0191508a601f8301126200185c57600080fd5b8135602082821115620018735762001873620017eb565b8160051b604051601f19603f830116810181811086821117156200189b576200189b620017eb565b60405292835281830193508481018201928e841115620018ba57600080fd5b948201945b83861015620018e357620018d38662001722565b85529482019493820193620018bf565b9b50620018f490508c820162001722565b995050505050620019086040890162001722565b9450620019186060890162001722565b9350620019286080890162001722565b92506200193860a0890162001722565b91506200194860c0890162001801565b905092959891949750929550565b6000602082840312156200196957600080fd5b620016848262001722565b600080604083850312156200198857600080fd5b82359150620017c86020840162001722565b60008060208385031215620019ae57600080fd5b823567ffffffffffffffff811115620019c657600080fd5b620019d485828601620016d3565b90969095509350505050565b600080600060408486031215620019f657600080fd5b62001a018462001722565b9250602084013567ffffffffffffffff81111562001a1e57600080fd5b62001a2c86828701620016d3565b9497909650939450505050565b600080600080600060a0868803121562001a5257600080fd5b62001a5d8662001722565b945062001a6d6020870162001722565b935062001a7d6040870162001722565b925062001a8d6060870162001722565b915062001a9d6080870162001722565b90509295509295909350565b6000806000806040858703121562001ac057600080fd5b843567ffffffffffffffff8082111562001ad957600080fd5b62001ae788838901620016d3565b9096509450602087013591508082111562001b0157600080fd5b5062001b1087828801620016d3565b95989497509550505050565b634e487b7160e01b600052603260045260246000fd5b60e08082528851908201819052600090602090610100840190828c01845b8281101562001b775781516001600160a01b03168452928401929084019060010162001b50565b5050506001600160a01b038a8116602086015289166040850152915062001b9b9050565b6001600160a01b03861660608301526001600160a01b03851660808301526001600160a01b03841660a083015282151560c083015298975050505050505050565b6000806040838503121562001bf057600080fd5b505080516020909101519092909150565b60005b8381101562001c1e57818101518382015260200162001c04565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162001c6181601785016020880162001c01565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835162001ca081602884016020880162001c01565b01602801949350505050565b602081526000825180602084015262001ccd81604085016020870162001c01565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000525576200052562001ce1565b8082018082111562000525576200052562001ce1565b60008162001d395762001d3962001ce1565b50600019019056fe60c06040523480156200001157600080fd5b50604051620030e9380380620030e9833981016040819052620000349162000369565b60016000556200004433620002d3565b6001805460ff60a01b191690556001600160a01b038616620000955760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064015b60405180910390fd5b6001600160a01b038516620000d55760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064016200008c565b6001600160a01b038416620001155760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064016200008c565b6001600160a01b038216620001555760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b60448201526064016200008c565b60005b87518110156200024f5760006001600160a01b0316888281518110620001825762000182620004ac565b60200260200101516001600160a01b03161462000246576001600b60008a8481518110620001b457620001b4620004ac565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555060068882815181106200020a576200020a620004ac565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b039092169190911790555b60010162000158565b8115156080526001600160a01b0387811660a052600380546001600160a01b03199081168984161790915560058054821688841617905560048054909116858316179055841615620002b757600f80546001600160a01b0319166001600160a01b0386161790555b50506001805460ff60a81b1916905550620004c2945050505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200035357600080fd5b919050565b805180151581146200035357600080fd5b600080600080600080600060e0888a0312156200038557600080fd5b87516001600160401b03808211156200039d57600080fd5b818a0191508a601f830112620003b257600080fd5b8151602082821115620003c957620003c962000325565b8160051b604051601f19603f83011681018181108682111715620003f157620003f162000325565b60405292835281830193508481018201928e8411156200041057600080fd5b948201945b83861015620004395762000429866200033b565b8552948201949382019362000415565b9b506200044a90508c82016200033b565b9950505050506200045e604089016200033b565b94506200046e606089016200033b565b93506200047e608089016200033b565b92506200048e60a089016200033b565b91506200049e60c0890162000358565b905092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b60805160a051612bde6200050b600039600081816104b801528181610f66015281816111c80152818161125801528181611be20152612120015260006110dc0152612bde6000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c8063853828b611610191578063c6c8f6b6116100e3578063d379be2311610097578063de5f626811610071578063de5f626814610648578063f122977714610650578063f2fde38b1461066357600080fd5b8063d379be2314610604578063da09d19d14610617578063db2e21bc1461064057600080fd5b8063cdfb5832116100c8578063cdfb5832146105cc578063d0096010146105df578063d294f093146105e757600080fd5b8063c6c8f6b6146105a5578063caa6fea4146105b857600080fd5b8063b5fd73f811610145578063b6f7097f1161011f578063b6f7097f14610577578063bf199e621461058a578063c00007b01461059257600080fd5b8063b5fd73f81461052e578063b66503cf14610551578063b6b55f251461056457600080fd5b80639e88ec10116101765780639e88ec10146104f3578063a591f97f14610513578063b1534ecd1461052657600080fd5b8063853828b6146104da5780638da5cb5b146104e257600080fd5b8063478222c21161024a578063715018a6116101fe5780637c91e4eb116101d85780637c91e4eb1461048d5780637f699015146104a057806382bfefc8146104b357600080fd5b8063715018a61461045f57806376a0adf2146104675780637bb7bed11461047a57600080fd5b80636bbcf6d81161022f5780636bbcf6d81461041b5780636e9852f21461042e57806370a082311461043657600080fd5b8063478222c2146103d25780635c975abb146103fd57600080fd5b80631c3317c7116102ac5780632e1a7d4d116102865780632e1a7d4d146103a45780633d18b912146103b75780633d509c97146103bf57600080fd5b80631c3317c714610355578063211dc32d14610368578063221ca18c1461037b57600080fd5b806318160ddd116102dd57806318160ddd146103215780631be05289146103385780631c03e6cc1461034257600080fd5b806302329a29146102f9578063055de2751461030e575b600080fd5b61030c610307366004612838565b610676565b005b61030c61031c36600461286a565b610696565b6002545b6040519081526020015b60405180910390f35b61032562093a8081565b61030c61035036600461286a565b6106e6565b61030c610363366004612887565b610817565b6103256103763660046128b3565b610894565b61032561038936600461286a565b6001600160a01b031660009081526008602052604090205490565b61030c6103b23660046128ec565b6108a9565b61030c6108ba565b61030c6103cd36600461286a565b6108df565b6005546103e5906001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b600154600160a01b900460ff165b604051901515815260200161032f565b61030c61042936600461286a565b6109d6565b61030c610a66565b61032561044436600461286a565b6001600160a01b03166000908152600e602052604090205490565b61030c610a90565b61032561047536600461286a565b610aa2565b6103e56104883660046128ec565b610ac9565b6003546103e5906001600160a01b031681565b61030c6104ae36600461286a565b610af3565b6103e57f000000000000000000000000000000000000000000000000000000000000000081565b61030c610b83565b6001546001600160a01b03166103e5565b61050661050136600461286a565b610ba4565b60405161032f9190612905565b61030c61052136600461286a565b610c60565b61030c610cf0565b61040b61053c36600461286a565b600b6020526000908152604090205460ff1681565b61030c61055f366004612887565b610d4a565b61030c6105723660046128ec565b610db9565b600f546103e5906001600160a01b031681565b600654610325565b61030c6105a036600461286a565b610dcb565b61030c6105b33660046128ec565b610ea0565b60015461040b90600160a81b900460ff1681565b61030c6105da36600461286a565b610fcc565b61030c61105c565b6105ef6110b8565b6040805192835260208301919091520161032f565b6004546103e5906001600160a01b031681565b61032561062536600461286a565b6001600160a01b031660009081526007602052604090205490565b61030c611127565b61030c611237565b61032561065e36600461286a565b6112d1565b61030c61067136600461286a565b6112dc565b61067e611369565b8061068e5761068b6113c3565b50565b61068b611418565b61069e61145b565b6106a66114b4565b6004546001600160a01b0316331480156106ca57506004546001600160a01b031615155b6106d357600080fd5b6106dc8161150e565b61068b6001600055565b6106ee611369565b6001600160a01b0381166000908152600b602052604090205460ff161561074d5760405162461bcd60e51b815260206004820152600e60248201526d10b4b9a932bbb0b9322a37b5b2b760911b60448201526064015b60405180910390fd5b6001600160a01b03811661078b5760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b6001600160a01b0381166000818152600b6020526040808220805460ff1916600190811790915560068054918201815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191684179055517f851bbb4304bf0768ed98b97e429b5bd1dcc1f194b36cd1650f40293e951ae3939190a250565b61081f61145b565b600154600160a81b900460ff161561083657600080fd5b6003546001600160a01b0316331461087a5760405162461bcd60e51b81526020600482015260076024820152662164697374726f60c81b6044820152606401610744565b61088682826001611608565b6108906001600055565b5050565b60006108a083836118b5565b90505b92915050565b6108b16114b4565b61068b81611964565b6108c261145b565b6108ca6114b4565b6108d33361150e565b6108dd6001600055565b565b6108e7611369565b6001600160a01b0381166000908152600b602052604090205460ff16156109415760405162461bcd60e51b815260206004820152600e60248201526d10b4b9a932bbb0b9322a37b5b2b760911b6044820152606401610744565b60065460005b818110156109d157826001600160a01b03166006828154811061096c5761096c612949565b6000918252602090912001546001600160a01b0316036109c9576109908382611a09565b6040516001600160a01b038416907f36bd04094fa067bb9471a8fbdb0a6e8a43424a2566ad3a740c88973fa40a311890600090a2505050565b600101610947565b505050565b6109de611369565b6001600160a01b038116610a1c5760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f71119a4a2850109bdeaff1aedbd330e4bc80607f423b1562fddbdc7ff4628b6490600090a250565b610a6e6114b4565b336000908152600e6020526040902054610a8790611964565b6108dd3361150e565b610a98611369565b6108dd6000611adc565b6001600160a01b0381166000908152600860205260408120546108a39062093a8090612975565b60068181548110610ad957600080fd5b6000918252602090912001546001600160a01b0316905081565b610afb611369565b6001600160a01b038116610b395760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600380546001600160a01b0319166001600160a01b0383169081179091556040517ff085c57737528946971c505b4c9d6f7ca7ab5925b0cee78d8cb75797f36f362890600090a250565b610b8b6114b4565b336000908152600e60205260409020546108dd90611964565b600654606090600090818167ffffffffffffffff811115610bc757610bc761298c565b604051908082528060200260200182016040528015610bf0578160200160208202803683370190505b5093505b81831015610c585760068381548110610c0f57610c0f612949565b6000918252602090912001546001600160a01b03169050610c3085826118b5565b848481518110610c4257610c42612949565b6020908102919091010152600190920191610bf4565b505050919050565b610c68611369565b6001600160a01b038116610ca65760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600580546001600160a01b0319166001600160a01b0383169081179091556040517fe68507d3387f586d218f2d30c6bd698977c73cfe98ae490919957b344476f19790600090a250565b610cf8611369565b60018054600160a81b900460ff16151514610d1257600080fd5b6001805460ff60a81b191690556040517f2b8c5008aae34863b256c67a6c2757d0ac8f800e6b4f3bb98bddf13e47b028ef90600090a1565b610d5261145b565b600154600160a81b900460ff1615610d6957600080fd5b6003546001600160a01b03163314610dad5760405162461bcd60e51b81526020600482015260076024820152662164697374726f60c81b6044820152606401610744565b61088682826000611608565b610dc16114b4565b61068b8133611b2e565b610dd361145b565b610ddb6114b4565b33610de68183611c57565b6001600160a01b038082166000908152600d60209081526040808320938616835292905220548015610e94576001600160a01b038083166000908152600d6020908152604080832093871680845293909152812055610e46908383611cf9565b826001600160a01b0316826001600160a01b03167fa0306f61d3fafe13787b78e276cb6b644382854a66cb46daae14227d3ec2679783604051610e8b91815260200190565b60405180910390a35b505061068b6001600055565b610ea861145b565b600154600160a81b900460ff16610ebe57600080fd5b336000908152600e6020526040902054811115610f1d5760405162461bcd60e51b815260206004820152600660248201527f6e6f2062616c00000000000000000000000000000000000000000000000000006044820152606401610744565b8060026000828254610f2f91906129a2565b9091555050336000908152600e602052604081208054839290610f539084906129a2565b90915550610f8d90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611cf9565b60405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a261068b6001600055565b610fd4611369565b6001600160a01b0381166110125760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610744565b600480546001600160a01b0319166001600160a01b0383169081179091556040517fdfe91dcad2adcb1ecd18d2e830b469081211d6743c1e2dfa893836431fb7879490600090a250565b611064611369565b600154600160a81b900460ff161561107b57600080fd5b6001805460ff60a81b1916600160a81b1790556040517e2027e346bbcb4e71801ce26885a270290fb7d1d463cb49adf82dba74bd151d90600090a1565b6000806110c361145b565b6001546001600160a01b031633146110da57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000001561111157611108611d89565b91509150611119565b611108612106565b6111236001600055565b9091565b61112f61145b565b600154600160a81b900460ff1661114557600080fd5b336000908152600e602052604090205461118a5760405162461bcd60e51b815260040161074490602080825260049082015263062616c360e41b604082015260600190565b336000908152600e602052604081205460028054919283926111ad9084906129a2565b9091555050336000818152600e60205260408120556111f7907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169083611cf9565b60405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2506108dd6001600055565b61123f6114b4565b6040516370a0823160e01b81523360048201526108dd907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb91906129b5565b33611b2e565b60006108a3826123bc565b6112e4611369565b6001600160a01b0381166113605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610744565b61068b81611adc565b6001546001600160a01b031633146108dd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610744565b6113cb612456565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6114206114b4565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113fb3390565b6002600054036114ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610744565b6002600055565b600154600160a01b900460ff16156108dd5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610744565b611517816124af565b600654600090815b81831015611602576006838154811061153a5761153a612949565b60009182526020808320909101546001600160a01b038781168452600d835260408085209190921680855292529091205490915080156115f6576001600160a01b038086166000908152600d60209081526040808320938616808452939091528120556115a8908683611cf9565b816001600160a01b0316856001600160a01b03167fa0306f61d3fafe13787b78e276cb6b644382854a66cb46daae14227d3ec26797836040516115ed91815260200190565b60405180910390a35b5060019092019161151f565b50505050565b611613600084611c57565b6001600160a01b0383166000908152600b602052604090205460ff1661167b5760405162461bcd60e51b815260206004820152600660248201527f21746f6b656e00000000000000000000000000000000000000000000000000006044820152606401610744565b6001600160a01b0383166000908152600760205260409020544281116116c6576116a862093a80846129ce565b6001600160a01b03851660009081526008602052604090205561172b565b6001600160a01b03841660009081526008602052604081205490816116eb42856129a2565b6116f59190612975565b905062093a8061170582876129f0565b61170f91906129ce565b6001600160a01b03871660009081526008602052604090205550505b6001600160a01b038416600090815260096020526040902042908190556117569062093a80906129f0565b6001600160a01b038516600090815260076020526040902055811561178a5761178a6001600160a01b0385163330866124fe565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa1580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906129b5565b905061180462093a80826129ce565b6001600160a01b038616600090815260086020526040902054111561186b5760405162461bcd60e51b815260206004820152600560248201527f21726174650000000000000000000000000000000000000000000000000000006044820152606401610744565b846001600160a01b03167fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29856040516118a691815260200190565b60405180910390a25050505050565b6001600160a01b038083166000908152600c602090815260408083209385168352929052908120548190670de0b6b3a7640000906118f2856123bc565b6118fc91906129a2565b6001600160a01b0386166000908152600e602052604090205461191f9190612975565b61192991906129ce565b6001600160a01b038086166000908152600d602090815260408083209388168352929052205490915061195c90826129f0565b949350505050565b61196c61145b565b600154600160a81b900460ff161561198357600080fd5b600081116119bb5760405162461bcd60e51b81526020600482015260056024820152640616d6e74360dc1b6044820152606401610744565b336000908152600e6020526040902054611a005760405162461bcd60e51b815260040161074490602080825260049082015263062616c360e41b604082015260600190565b610f1d336124af565b60068054611a19906001906129a2565b81548110611a2957611a29612949565b600091825260209091200154600680546001600160a01b039092169183908110611a5557611a55612949565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506006805480611a9457611a94612a03565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03939093168152600b9092525060409020805460ff19169055565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611b3661145b565b600154600160a81b900460ff1615611b4d57600080fd5b60008211611b855760405162461bcd60e51b81526020600482015260056024820152640616d6e74360dc1b6044820152606401610744565b611b8e816124af565b6001600160a01b0381166000908152600e602052604081208054849290611bb69084906129f0565b925050819055508160026000828254611bcf91906129f0565b90915550611c0a90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168230856124fe565b806001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c83604051611c4591815260200190565b60405180910390a26108906001600055565b6000611c62826123bc565b6001600160a01b0383166000908152600a602052604090208190559050611c8882612536565b6001600160a01b038084166000908152600960205260409020919091558316156109d157611cb683836118b5565b6001600160a01b039384166000818152600d602090815260408083209690971680835295815286822093909355908152600c825284812093815292905291902055565b6040516001600160a01b0383166024820152604481018290526109d190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261255a565b600554604051637aaac16d60e11b815230600482015260009182916001600160a01b03909116908290829063f55582da90602401600060405180830381865afa158015611dda573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e029190810190612a19565b60055460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663d294f09360e01b17905290519293506000926001600160a01b0390921691611e609190612afb565b6000604051808303816000865af19150503d8060008114611e9d576040519150601f19603f3d011682016040523d82523d6000602084013e611ea2565b606091505b5050905080611ef35760405162461bcd60e51b815260206004820152601760248201527f636c61696d4665657328292063616c6c206661696c65640000000000000000006044820152606401610744565b6000836001600160a01b0316637e1c0c096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5791906129b5565b905060005b818110156120f7576040516327b2595f60e11b8152600481018290526000906001600160a01b03871690634f64b2be90602401602060405180830381865afa158015611fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd09190612b17565b90506000858381518110611fe657611fe6612949565b6020026020010151905060008111801561206757506040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801561203f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206391906129b5565b8111155b156120ed57600f54612086906001600160a01b0384811691168361263f565b600f5460405163b66503cf60e01b81526001600160a01b038481166004830152602482018490529091169063b66503cf90604401600060405180830381600087803b1580156120d457600080fd5b505af11580156120e8573d6000803e3d6000fd5b505050505b5050600101611f5c565b50600096879650945050505050565b6005546040805163d294f09360e01b8152815160009384937f0000000000000000000000000000000000000000000000000000000000000000936001600160a01b039092169263d294f093926004808201939291829003018188875af1158015612174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121989190612b34565b80935081945050506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190612b17565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226a9190612b17565b905084156122f357600f5461228c906001600160a01b0384811691168761263f565b600f5460405163b66503cf60e01b81526001600160a01b038481166004830152602482018890529091169063b66503cf90604401600060405180830381600087803b1580156122da57600080fd5b505af11580156122ee573d6000803e3d6000fd5b505050505b831561237a57600f54612313906001600160a01b0383811691168661263f565b600f5460405163b66503cf60e01b81526001600160a01b038381166004830152602482018790529091169063b66503cf90604401600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b505050505b604080518681526020810186905233917fbc567d6cbad26368064baa0ab5a757be46aae4d70f707f9203d9d9b6c8ccbfa3910160405180910390a25050509091565b6001600160a01b0381166000908152600a602052604081205460025482036123e45792915050565b6002546001600160a01b03841660009081526008602090815260408083205460099092529091205461241586612536565b61241f91906129a2565b6124299190612975565b61243b90670de0b6b3a7640000612975565b61244591906129ce565b61244f90826129f0565b9392505050565b600154600160a01b900460ff166108dd5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610744565b600654600090815b8183101561160257600683815481106124d2576124d2612949565b6000918252602090912001546001600160a01b031690506124f38482611c57565b6001909201916124b7565b6040516001600160a01b03808516602483015283166044820152606481018290526116029085906323b872dd60e01b90608401611d25565b6001600160a01b0381166000908152600760205260408120546108a39042906126f1565b60006125af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127079092919063ffffffff16565b8051909150156109d157808060200190518101906125cd9190612b58565b6109d15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610744565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b491906129b5565b6126be91906129f0565b6040516001600160a01b03851660248201526044810182905290915061160290859063095ea7b360e01b90606401611d25565b600081831061270057816108a0565b5090919050565b606061195c848460008585600080866001600160a01b0316858760405161272e9190612afb565b60006040518083038185875af1925050503d806000811461276b576040519150601f19603f3d011682016040523d82523d6000602084013e612770565b606091505b50915091506127818783838761278c565b979650505050505050565b606083156127fb5782516000036127f4576001600160a01b0385163b6127f45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610744565b508161195c565b61195c83838151156128105781518083602001fd5b8060405162461bcd60e51b81526004016107449190612b75565b801515811461068b57600080fd5b60006020828403121561284a57600080fd5b813561244f8161282a565b6001600160a01b038116811461068b57600080fd5b60006020828403121561287c57600080fd5b813561244f81612855565b6000806040838503121561289a57600080fd5b82356128a581612855565b946020939093013593505050565b600080604083850312156128c657600080fd5b82356128d181612855565b915060208301356128e181612855565b809150509250929050565b6000602082840312156128fe57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561293d57835183529284019291840191600101612921565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a3576108a361295f565b634e487b7160e01b600052604160045260246000fd5b818103818111156108a3576108a361295f565b6000602082840312156129c757600080fd5b5051919050565b6000826129eb57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108a3576108a361295f565b634e487b7160e01b600052603160045260246000fd5b60006020808385031215612a2c57600080fd5b825167ffffffffffffffff80821115612a4457600080fd5b818501915085601f830112612a5857600080fd5b815181811115612a6a57612a6a61298c565b8060051b604051601f19603f83011681018181108582111715612a8f57612a8f61298c565b604052918252848201925083810185019188831115612aad57600080fd5b938501935b82851015612acb57845184529385019392850192612ab2565b98975050505050505050565b60005b83811015612af2578181015183820152602001612ada565b50506000910152565b60008251612b0d818460208701612ad7565b9190910192915050565b600060208284031215612b2957600080fd5b815161244f81612855565b60008060408385031215612b4757600080fd5b505080516020909101519092909150565b600060208284031215612b6a57600080fd5b815161244f8161282a565b6020815260008251806020840152612b94816040850160208701612ad7565b601f01601f1916919091016040019291505056fea2646970667358221220968acee6884731963027fa889e3295cd8c3aa22bce021a96877a2f5e40630db764736f6c6343000816003360a06040523480156200001157600080fd5b506040516200112438038062001124833981016040819052620000349162000123565b60016000556200004433620000b4565b600280546001600160a01b038087166001600160a01b03199283161790925560038054868416908316179055600480548484169216919091179055858116608052821615620000a957600580546001600160a01b0319166001600160a01b0384161790555b505050505062000193565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200011e57600080fd5b919050565b600080600080600060a086880312156200013c57600080fd5b620001478662000106565b9450620001576020870162000106565b9350620001676040870162000106565b9250620001776060870162000106565b9150620001876080870162000106565b90509295509295909350565b608051610f60620001c46000396000818161017a0152818161054e0152818161089001526109160152610f606000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b6f7097f11610066578063b6f7097f146101d3578063d294f093146101e6578063f2fde38b14610203578063f9d5111c1461021657600080fd5b80638da5cb5b1461019c578063a591f97f146101ad578063b66503cf146101c057600080fd5b8063779fa0c4116100c8578063779fa0c41461013c5780637c91e4eb1461014f5780637f6990151461016257806382bfefc81461017557600080fd5b8063478222c2146100ef5780636bbcf6d81461011f578063715018a614610134575b600080fd5b600354610102906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61013261012d366004610dc4565b610229565b005b61013261033f565b61013261014a366004610dc4565b610353565b600254610102906001600160a01b031681565b610132610170366004610dc4565b6103bb565b6101027f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b0316610102565b6101326101bb366004610dc4565b610423565b6101326101ce366004610de8565b6104b7565b600554610102906001600160a01b031681565b6101ee6105c9565b60408051928352602083019190915201610116565b610132610211366004610dc4565b610605565b600454610102906001600160a01b031681565b610231610695565b6001600160a01b03811661028c5760405162461bcd60e51b815260206004820152600960248201527f7a65726f2061646472000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6005546001600160a01b03908116908216036102ea5760405162461bcd60e51b815260206004820152600960248201527f73616d65206164647200000000000000000000000000000000000000000000006044820152606401610283565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f71119a4a2850109bdeaff1aedbd330e4bc80607f423b1562fddbdc7ff4628b64906020015b60405180910390a150565b610347610695565b61035160006106ef565b565b61035b610695565b6001600160a01b0381166103995760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610283565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6103c3610695565b6001600160a01b0381166104015760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610283565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61042b610695565b6001600160a01b0381166104695760405162461bcd60e51b8152602060048201526005602482015264041646472360dc1b6044820152606401610283565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527fe68507d3387f586d218f2d30c6bd698977c73cfe98ae490919957b344476f19790602001610334565b6104bf610741565b6002546001600160a01b031633146105195760405162461bcd60e51b815260206004820152600c60248201527f216469737472696275746f7200000000000000000000000000000000000000006044820152606401610283565b600454610533906001600160a01b0384811691168361079a565b60048054604051630cfecd0760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811693820193909352602481018490529116906367f6683890604401600060405180830381600087803b1580156105a357600080fd5b505af11580156105b7573d6000803e3d6000fd5b505050506105c56001600055565b5050565b6000806105d4610741565b6001546001600160a01b031633146105eb57600080fd5b6105f3610889565b915091506106016001600055565b9091565b61060d610695565b6001600160a01b0381166106895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610283565b610692816106ef565b50565b6001546001600160a01b031633146103515760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610283565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600054036107935760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610283565b6002600055565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156107eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080f9190610e14565b6108199190610e2d565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b179052909150610883908590610b1e565b50505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109109190610e54565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109969190610e54565b6003546040805163d294f09360e01b815281519394506001600160a01b039092169263d294f09392600480820193929182900301816000875af11580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a059190610e71565b90945092508315610a9157600554610a2a906001600160a01b0384811691168661079a565b60055460405163b66503cf60e01b81526001600160a01b038481166004830152602482018790529091169063b66503cf90604401600060405180830381600087803b158015610a7857600080fd5b505af1158015610a8c573d6000803e3d6000fd5b505050505b8215610b1857600554610ab1906001600160a01b0383811691168561079a565b60055460405163b66503cf60e01b81526001600160a01b038381166004830152602482018690529091169063b66503cf90604401600060405180830381600087803b158015610aff57600080fd5b505af1158015610b13573d6000803e3d6000fd5b505050505b50509091565b6000610b73826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c089092919063ffffffff16565b805190915015610c035780806020019051810190610b919190610e95565b610c035760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610283565b505050565b6060610c178484600085610c1f565b949350505050565b606082471015610c975760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610283565b600080866001600160a01b03168587604051610cb39190610edb565b60006040518083038185875af1925050503d8060008114610cf0576040519150601f19603f3d011682016040523d82523d6000602084013e610cf5565b606091505b5091509150610d0687838387610d11565b979650505050505050565b60608315610d80578251600003610d79576001600160a01b0385163b610d795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610283565b5081610c17565b610c178383815115610d955781518083602001fd5b8060405162461bcd60e51b81526004016102839190610ef7565b6001600160a01b038116811461069257600080fd5b600060208284031215610dd657600080fd5b8135610de181610daf565b9392505050565b60008060408385031215610dfb57600080fd5b8235610e0681610daf565b946020939093013593505050565b600060208284031215610e2657600080fd5b5051919050565b80820180821115610e4e57634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215610e6657600080fd5b8151610de181610daf565b60008060408385031215610e8457600080fd5b505080516020909101519092909150565b600060208284031215610ea757600080fd5b81518015158114610de157600080fd5b60005b83811015610ed2578181015183820152602001610eba565b50506000910152565b60008251610eed818460208701610eb7565b9190910192915050565b6020815260008251806020840152610f16816040850160208701610eb7565b601f01601f1916919091016040019291505056fea2646970667358221220efa485db65c0c8be863ddf731614c2cc7b3aa81a13e6ff96d2ad1ce8eb0c9a1764736f6c6343000816003324768a6ab335e2a1830f89d00694f4c8c79419c278b5acd7dc0b93166bf651b1a2646970667358221220414c43d060dae1da264fbc3d037bf6fcb0ce0a5319c4490ab5497f17db1e37f164736f6c6343000816003324768a6ab335e2a1830f89d00694f4c8c79419c278b5acd7dc0b93166bf651b12ad5dda4abad2eba9015076cc6a1db468a91b444067d58b590c8c73985521a04000000000000000000000000247009c6f39bc08d5d39ac38c9d5a0d316947d9c