3.8k txs
8.8k calls
constructor
constructor(address _votingEscrow)
functions
ADMIN_VOTE_PERIOD
viewfunction ADMIN_VOTE_PERIOD() view returns (uint256)
adminAllocation
viewfunction adminAllocation() view returns (uint256)
adminSlopes
viewfunction adminSlopes(uint256) view returns (uint256)
gaugeAddressTov4PoolInfo
viewfunction gaugeAddressTov4PoolInfo(address, uint256) view returns (bytes32 poolId, address poolManager)
gaugeChangesWeight
viewfunction gaugeChangesWeight(bytes32, uint256) view returns (uint256)
gaugeCount
viewfunction gaugeCount() view returns (uint256)
gaugeIndex_
viewfunction gaugeIndex_(bytes32) view returns (uint256)
gaugeIsKilled_
viewfunction gaugeIsKilled_(bytes32) view returns (bool)
gaugeLastScheduled
viewfunction gaugeLastScheduled(bytes32) view returns (uint256)
gaugePointsTotal
viewfunction gaugePointsTotal(uint256) view returns (uint256)
gaugePointsWeight
viewfunction gaugePointsWeight(bytes32, uint256) view returns (uint256 bias, uint256 slope)
gaugeRelativeWeight
viewfunction gaugeRelativeWeight(address gauge_addr, uint256 time, uint256 _chainId) view returns (uint256)
gauges
viewfunction gauges(uint256) view returns (uint256 pid, address masterChef, uint256 chainId, address pairAddress, uint256 boostMultiplier, uint256 maxVoteCap)
gaugeTypeChangesSum
viewfunction gaugeTypeChangesSum(uint256, uint256) view returns (uint256)
gaugeTypeLastScheduled
viewfunction gaugeTypeLastScheduled(uint256) view returns (uint256)
gaugeTypeNames
viewfunction gaugeTypeNames(uint256) view returns (string)
gaugeTypePointsSum
viewfunction gaugeTypePointsSum(uint256, uint256) view returns (uint256 bias, uint256 slope)
gaugeTypePointsWeight
viewfunction gaugeTypePointsWeight(uint256, uint256) view returns (uint256)
gaugeTypes_
viewfunction gaugeTypes_(bytes32) view returns (uint256)
gaugeTypes
viewfunction gaugeTypes() view returns (uint256)
gaugeTypeSumLastScheduled
viewfunction gaugeTypeSumLastScheduled(uint256) view returns (uint256)
getGaugeV4Address
viewfunction getGaugeV4Address(bytes32 _poolId, uint256 _chainId) view returns (address)
getGaugeWeight
viewfunction getGaugeWeight(address gauge_addr, uint256 _chainId, bool inCap) view returns (uint256)
getTotalWeight
viewfunction getTotalWeight(bool inCap) view returns (uint256)
getTypeAndChainIdWeightCapped
viewfunction getTypeAndChainIdWeightCapped(uint256 _typeId, uint256 _chainId) view returns (uint256)
getWeightsSumPerType
viewfunction getWeightsSumPerType(uint256 _typeId) view returns (uint256)
lastUserVote
viewfunction lastUserVote(address, bytes32) view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
totalLastScheduled
viewfunction totalLastScheduled() view returns (uint256)
voteUserPower
viewfunction voteUserPower(address) view returns (uint256)
voteUserSlopes
viewfunction voteUserSlopes(address, bytes32) view returns (uint256 slope, uint256 power, uint256 end)
votingEscrow
viewfunction votingEscrow() view returns (address)
WEIGHT_VOTE_DELAY
viewfunction WEIGHT_VOTE_DELAY() view returns (uint256)
addGauge
nonpayablefunction addGauge(address gauge_addr, uint256 gauge_type, uint256 _weight, uint256 _pid, address _masterChef, uint256 _chainId, uint256 _boostMultiplier, uint256 _maxVoteCap)
addGaugeV4
nonpayablefunction addGaugeV4(bytes32 gauge_poolId, address gauge_poolManager, uint256 gauge_type, uint256 _weight, uint256 _chainId, uint256 _boostMultiplier, uint256 _maxVoteCap)
addType
nonpayablefunction addType(string _name, uint256 _weight)
changeAdminAllocation
nonpayablefunction changeAdminAllocation(uint256 _numerator)
changeGaugeWeight
nonpayablefunction changeGaugeWeight(address gauge_addr, uint256 weight, uint256 _chainId)
changeTypeWeight
nonpayablefunction changeTypeWeight(uint256 type_id, uint256 weight)
changeWeightVoteDelay
nonpayablefunction changeWeightVoteDelay(uint256 _delay)
checkpoint
nonpayablefunction checkpoint()
checkpointGauge
nonpayablefunction checkpointGauge(address gauge_addr, uint256 _chainId)
gaugeRelativeWeight_write
nonpayablefunction gaugeRelativeWeight_write(address gauge_addr, uint256 time, uint256 _chainId) returns (uint256)
killGauge
nonpayablefunction killGauge(address _gauge_addr, uint256 _chainId)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unkillGauge
nonpayablefunction unkillGauge(address _gauge_addr, uint256 _chainId)
updateAdminOnlyPeriod
nonpayablefunction updateAdminOnlyPeriod(uint256 _newAdminOnlyPeriod)
updateGaugeInfo
nonpayablefunction updateGaugeInfo(address gauge_addr, uint256 _pid, address _masterChef, uint256 _chainId, uint256 _boostMultiplier, uint256 _maxVoteCap)
voteForGaugeWeights
nonpayablefunction voteForGaugeWeights(address _gauge_addr, uint256 _user_weight, uint256 _chainId, bool _skipNative, bool _skipProxy)
voteForGaugeWeightsBulk
nonpayablefunction voteForGaugeWeightsBulk(address[] _gauge_addrs, uint256[] _user_weights, uint256[] _chainIds, bool _skipNative, bool _skipProxy)
voteFromAdmin
nonpayablefunction voteFromAdmin(address _gauge_addr, uint256 _admin_weight, uint256 _end, uint256 _chainId)
voteFromAdminBulk
nonpayablefunction voteFromAdminBulk(address[] _gauge_addrs, uint256[] _admin_weights, uint256[] _ends, uint256[] _chainIds)
events
AddType
event AddType(string name, uint256 type_id)
AdminAllocationChanged
event AdminAllocationChanged(address indexed sender, uint256 allocation)
AdminOnlyPeriodUpdated
event AdminOnlyPeriodUpdated(address indexed sender, uint256 period)
GaugeKilled
event GaugeKilled(address indexed sender, address indexed gauage_addr, uint256 chainId, bytes32 hash)
GaugeUnKilled
event GaugeUnKilled(address indexed sender, address indexed gauage_addr, uint256 chainId, bytes32 hash)
NewGauge
event NewGauge(bytes32 hash, uint256 gauge_type, uint256 weight, uint256 pid, address masterChef, uint256 chainId, uint256 boostMultiplier, uint256 maxVoteCap)
NewGaugeWeight
event NewGaugeWeight(bytes32 hash, uint256 time, uint256 weight, uint256 total_weight)
NewTypeWeight
event NewTypeWeight(uint256 type_id, uint256 time, uint256 weight, uint256 total_weight)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
UpdateGaugeInfo
event UpdateGaugeInfo(bytes32 hash, uint256 pid, address masterChef, uint256 chainId, uint256 boostMultiplier, uint256 maxVoteCap)
VoteForGauge
event VoteForGauge(uint256 time, address user, bytes32 hash, uint256 weight)
VoteForGaugeFromAdmin
event VoteForGaugeFromAdmin(uint256 time, address user, bytes32 hash, uint256 weight)
WeightVoteDelayChanged
event WeightVoteDelayChanged(address indexed sender, uint256 delay)
errors
No errors.
creation bytecode
0x60a0346200015d57601f6200467838819003918201601f19168301916001600160401b0383118484101762000162578084926020946040528339810103126200015d57516001600160a01b0380821691908282036200015d57600092835460405192339082167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08780a36001600160a81b0319163360ff60a01b1916178455156200011b575060805262093a80908142048281029281840414901517156200010757506401a13b8615556014640165a0bc0e55620d2f00600155620151806002556040516144ff9081620001798239608051818181612139015281816129410152613be70152f35b634e487b7160e01b81526011600452602490fd5b62461bcd60e51b815260206004820152601d60248201527f496e76616c696420766f74696e6720657363726f7720616464726573730000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116ec336146124b05750806314da4c06146123a85780631af65813146123785780631cb17643146123565780631f0a48291461232b578063226a045d146122f4578063282d54551461221b5780632fe7c00b146121e6578063471cc927146121985780634bc8ac04146121685780634f2bfe5b146121235780634f6ffd07146121055780635c975abb146120df5780635dfec022146120c15780635e7d0924146120a3578063609c6b87146120405780636b012bfe14611fef5780636c69d2e214611faf578063703ef2af14611f78578063715018a614611f1b578063742df0fc14611eeb5780637460601014611e4857806374d6732414611df75780637f3c91ee14611a1457806385556a95146119c8578063870e3733146117a05780638d2724b01461176d5780638da5cb5b146117445780639272339b1461170d578063992681c8146114e15780639d583b25146114a15780639f355b3f14611397578063a2083014146110d0578063a6440082146110b2578063a6be78c014611078578063ac0bb80214611056578063ad625ab214610fc7578063ae43279414610caf578063b020eefa146109b5578063b053918714610940578063b3bb8bc814610927578063b684d9ac146108e5578063b71d4e7f146108b2578063c2c4c5c114610899578063c3fbcfb4146107dc578063c487da46146106f9578063cbd5dbf0146104f2578063d6b7949d146104c4578063d7619fb114610432578063e9c1f21414610402578063ec622ef5146103d2578063ec73d90614610394578063f2fde38b146102cd5763f962dc9f1461027157600080fd5b346102c85760403660031901126102c85760406001600160a01b0380610295612613565b16600052640165a0bc09602052816000206024356000526020528160002090600182549201541682519182526020820152f35b600080fd5b346102c85760203660031901126102c8576102e6612613565b600054906001600160a01b0380831691610301338414612671565b16918215610340576001600160a01b031916821760009081557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b346102c85760203660031901126102c8576001600160a01b036103b5612613565b16600052640165a0bc0b6020526020604060002054604051908152f35b346102c85760203660031901126102c8576004356000526401a13b86146020526020604060002054604051908152f35b346102c85760203660031901126102c85760043580151581036102c85761042a602091612d5d565b604051908152f35b346102c85760403660031901126102c85761044b612613565b600054602435916001600160a01b03916104689083163314612671565b6104728382614443565b80600052640165a0bc086020526040600020600160ff19825416179055604051938452602084015216907f1cdfe3e0d091e965f4d2505ccc55362d276b6a347f449249a710199f0ac645f560403392a3005b346102c8576104f06104d53661250d565b906104eb60018060a01b03600054163314612671565b6130d9565b005b346102c85761052061050336612629565b90929161051b60018060a01b03600054163314612671565b614443565b9081600052602091640165a0bc0783526040600020549160001990818401948486116106e35783600052640165a0bc06815260406000205492610564841515612715565b83019283116106e357633b9aca0092838110156106cd5760060260060161058a90612d0b565b92610594856132a3565b9061059e886131c2565b976105a8816133fd565b916105b161356f565b936105ba6130b5565b9760800180516105ca9089612760565b606490048a600052640165a0bc0f885260406000208a600052885260406000205589600052640165a0bc11875288604060002055516106099088612760565b6064900461061790856126bc565b9061062191612753565b9180600052640165a0bc12865260406000208860005286528260406000205510156106cd578861068e61069a946106887f59cc8a78ccafacc9c21344f3ab363a1f6ace0b46575ba196257a9d52325652b89c610694958b640165a0bc1360809f0155612760565b906126bc565b92612760565b90612753565b92806000526401a13b86148252836040600020556401a13b861555604051938452429084015260408301526060820152a1005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b346102c85760a03660031901126102c85767ffffffffffffffff6004358181116102c85761072b9036906004016124dc565b906024358381116102c8576107449036906004016124dc565b9290936044359081116102c85761075f9036906004016124dc565b94610768612653565b91610771612662565b9361077d8782146127d3565b6107888882146127d3565b60005b81811061079457005b806107d28787878d6107cb868f8f996107c3916107bd6107b8838f6107d79f612823565b612833565b96612823565b35928b612823565b35916128aa565b612814565b61078b565b346102c85760203660031901126102c85760043561080560018060a01b03600054163314612671565b8015158061088e575b156108495780640165a0bc0e556040519081527f387d42e9c79f3596b9eea3aec81964a8d7c92f99bd65b9020a63f181a9d90aee60203392a2005b60405162461bcd60e51b815260206004820152601e60248201527f6469766973696f6e2073686f756c64206e6f74206578636565642031303000006044820152606490fd5b50606481111561080e565b346102c85760003660031901126102c8576104f061356f565b346102c85760203660031901126102c857600435633b9aca008110156102c8576020906401a13b86170154604051908152f35b346102c85760803660031901126102c8576104f0610901612613565b61091660018060a01b03600054163314612671565b606435906044359060243590613ba7565b346102c857602061042a61093a36612629565b916136ee565b346102c85760203660031901126102c857600435633b9aca008110156102c857600660c0910280600601549060018060a01b0390816007820154169160088201549060098301541690600b600a84015493015493604051958652602086015260408501526060840152608083015260a0820152f35b346102c85760c03660031901126102c8576109ce612613565b604435906001600160a01b03821682036102c8576109f760018060a01b03600054163314612671565b610a0b6001600160a01b03831615156126c9565b6101f4608435116102c85761271060a435116102c857610a2d60643582614443565b80600052640165a0bc0660205260406000205492610a4c841515612715565b610a546130b5565b9282600052640165a0bc0f6020526040600020846000526020526040600020549383600052640165a0bc0760205260406000205494856000198101116106e35780610b82575b50633b9aca009485600019820110156106cd57640165a0bc1301805415610b7a575b505060405193610acb8561255d565b6024358086526001600160a01b03848116602088015260643560408801529092166060860152608435608086015260a43560a086015260001986019586116106e3578510156106cd57610b4760c09460067f3a14cca64572d116f9f83ba3a51da7d2fbd6113f37b9747fdb976aa341e21bed9702600601612773565b604051928352602083015260018060a01b031660408201526064356060820152608435608082015260a43560a0820152a1005b558580610abc565b610b8f60001987016131c2565b610b9b60643585614443565b80600052640165a0bc06602052604060002054610bb9811515612715565b806000198101116106e357633b9aca00600019820110156106cd576006610be7916000190102600601612d0b565b50600052640165a0bc0f6020526040600020640165a0bc11602052604060002054600052602052604060002054610c2160001989016133fd565b90610c3d81610c3886610c3261356f565b956126bc565b612753565b6000198a01600052640165a0bc12602052604060002086600052602052604060002055633b9aca006000198a0110156106cd5761068e61069492610688610c8e9688640165a0bc138e015586612760565b816000526401a13b8614602052604060002055806401a13b86155586610a9a565b346102c857610100806003193601126102c857610cca612613565b6001600160a01b03919060843583811691908290036102c857610cf284600054163314612671565b60035491602494610d068635948510613074565b610d118215156126c9565b60c435916101f483116102c85760e4359361271085116102c85760a43592610d398483614443565b9687600052640165a0bc07602090808252604060002054610f8d576004546001810190818111610f78578160045560405195610d748761255d565b6064359788885289868901528a60408901521660608701528960808701528a60a0870152633b9aca009586821015610f4e576006610db59202600601612773565b8a600052640165a0bc0683526040600020556001830190818411610f63578a6000528252604060002055610de76130b5565b6044359384610e87575b831015610e72577fb597fc370497a7b4e73d003df2b20d27ffd0e13995184badf1403f913e93284e9b508083640165a0bc1401805415610e6a575b505089600052640165a0bc11825260406000205560405198895288015260408701526060860152608085015260a084015260c083015260e0820152a1005b55808d610e2c565b8b634e487b7160e01b60005260326004526000fd5b610e90846131c2565b89610eb7610e9d876133fd565b6064610eb1610eaa61356f565b948b612760565b046126bc565b86600052640165a0bc128652604060002085600052865260406000205582861015610f4e576064610efe8c610ef98a610f0596898c640165a0bc140155612760565b612760565b04906126bc565b826000526401a13b86148452604060002055816401a13b8615556064610f2b8a87612760565b048b600052640165a0bc0f84526040600020836000528452604060002055610df1565b8e634e487b7160e01b60005260326004526000fd5b8c634e487b7160e01b60005260116004526000fd5b8d634e487b7160e01b60005260116004526000fd5b60405162461bcd60e51b8152600481018390526013818e01527211d85d59d948185b1c9958591e481859191959606a1b6044820152606490fd5b346102c85760403660031901126102c857610fe0612613565b600054602435916001600160a01b0391610ffd9083163314612671565b6110078382614443565b80600052640165a0bc08602052604060002060ff198154169055604051938452602084015216907fd27eba1653e8258512f696285474de4f60fd1834f30f5b7966b98c0d4cc8247860403392a3005b346102c85760003660031901126102c85760206401a13b861554604051908152f35b346102c85760a03660031901126102c8576104f0611094612613565b61109c612653565b6110a4612662565b9160443590602435906128aa565b346102c85760003660031901126102c8576020600454604051908152f35b346102c8576110de3661250d565b6000916000600454905b8181106110fa57602085604051908152f35b633b9aca008110156106cd5761111560068202600601612d0b565b6060810180516040909201805191929091611138916001600160a01b0316614443565b600052640165a0bc0760205260406000205491600019928381019081116106e35786148061138d575b611177575b50505061117290612814565b6110e8565b51905192969261118f916001600160a01b0316614443565b9081600052640165a0bc06602052604060002054906111af821515612715565b81019081116106e357633b9aca008110156106cd5760066111d39102600601612d0b565b90600052640165a0bc0f6020526040600020640165a0bc1160205260406000205460005260205260406000205490606460a0820151101580611384575b61122c575b5061122390611172926126bc565b94908680611166565b6401a13b8615549150600090815b858110611285575060648061127a61122395611261611172989660a0612710970151612760565b906000526401a13b861460205260406000205490612760565b040404915091611215565b91633b9aca008310156106cd576112a160068402600601612d0b565b606081015160408201516112bd916001600160a01b0316614443565b600052640165a0bc0f6020526040600020640165a0bc1160205260406000205460005260205260406000205460648102818104606414821517156106e35780620f424083020461271014901517156106e35761133360a091876000526401a13b8614602052620f42406040600020549102612847565b910151801580158061137b575b61135f575b50506113549061135a926126bc565b92612814565b61123a565b9091506064820291820460641417156106e35781611354611345565b50818311611340565b50811515611210565b5086825114611161565b346102c85760203660031901126102c8576004356113c060018060a01b03600054163314612671565b62093a8081111561145c57630788c27f81101561140957806001556040519081527f5060b5423f5ca721a518ac3ebdbba2c334606708eac89f4dfc6af34bce33ee0360203392a2005b60405162461bcd60e51b815260206004820152602560248201527f64656c61792073686f756c64206e6f7420657863656564204d41585f4c4f434b6044820152645f54494d4560d81b6064820152608490fd5b60405162461bcd60e51b815260206004820152601860248201527f64656c61792073686f756c6420657863656564205745454b00000000000000006044820152606490fd5b346102c8576114af3661250d565b90600052640165a0bc126020526040600020906000526020526040806000206001815491015482519182526020820152f35b346102c85760603660031901126102c8576114fa612613565b6044359081151582036102c8576115149060243590614443565b9081600052640165a0bc06602052604060002054611533811515612715565b60001981019081116106e357633b9aca008110156106cd57600661155a9102600601612d0b565b91600052640165a0bc0f6020526040600020640165a0bc1160205260406000205460005260205260406000205490611598575b602090604051908152f35b606460a0830151101580611704575b1561158d5750600090600090600454916401a13b861554925b80821061160357505060646115fb612710936115e360209660a085960151612760565b906000526401a13b8614865260406000205490612760565b04040461158d565b9093633b9aca008510156106cd5761162060068602600601612d0b565b6060810151604082015161163c916001600160a01b0316614443565b600052640165a0bc0f6020526040600020640165a0bc1160205260406000205460005260205260406000205460648102818104606414821517156106e35780620f424083020461271014901517156106e3576116b260a091876000526401a13b8614602052620f42406040600020549102612847565b91015180158015806116fb575b6116df575b50506116d3906116d9926126bc565b94612814565b906115c0565b9091506064820291820460641417156106e357816116d36116c4565b508183116116bf565b508015156115a7565b346102c85761171b3661250d565b90600052640165a0bc136020526040600020906000526020526020604060002054604051908152f35b346102c85760003660031901126102c8576000546040516001600160a01b039091168152602090f35b346102c85760203660031901126102c857600435633b9aca008110156102c857602090640165a0bc140154604051908152f35b346102c85760403660031901126102c85760043567ffffffffffffffff8082116102c857366023830112156102c85781600401358181116119b25760405190602090601f19946117f78387601f85011601856125b1565b81845236602483830101116102c85781600092602485930183870137840101526024359361183060018060a01b03600054163314612671565b60035493846000526005835260406000209184519182116119b25781906118578454612523565b601f8111611961575b508490601f83116001146118ff57506000916118f4575b508160011b916000199060031b1c19161790555b60018301928381116106e3577f9b3cf755e0156d3384e50449add1b3067cac8b2e929cdf888724b7b6cc10db98946118db94600355806118e4575b506040519384936040855260408501906125d3565b918301520390a1005b6118ee90826130d9565b856118c6565b905084015187611877565b9091169083600052846000209160005b8682821061194b5750509083600194939210611932575b5050811b01905561188b565b86015160001960f88460031b161c191690558780611926565b600184958293958b01518155019401920161190f565b9091508360005284600020601f840160051c8101918685106119a8575b90601f859493920160051c01905b8181106119995750611860565b6000815584935060010161198c565b909150819061197e565b634e487b7160e01b600052604160045260246000fd5b346102c85760403660031901126102c8576001600160a01b036119e9612613565b16600052640165a0bc0c60205260406000206024356000526020526020604060002054604051908152f35b346102c85760e03660031901126102c857602460043581356001600160a01b03818116918290036102c857611a4e81600054163314612671565b60843590611a5c8285613047565b93818516918215611db357604051604081019080821067ffffffffffffffff831117611d9e57600191604052602096878201948252845284600052640165a0bc0987526040600020866000528752604060002090518155019151166bffffffffffffffffffffffff60a01b825416179055600354611ade604435918210613074565b60a435936101f485116102c85760c4359561271087116102c85784611b0291614443565b9687600052640165a0bc07808352604060002054611d6457600454946001860190818711611d4f578160045560405190611b3b8261255d565b6000825260018683015288604083015260608201528860808201528960a0820152633b9aca009687811015611d3a57906006611b7a9202600601612773565b89600052640165a0bc0684526040600020556001840190818511611d2557896000528352604060002055611bac6130b5565b906064359485611c59575b841015611c45577fb597fc370497a7b4e73d003df2b20d27ffd0e13995184badf1403f913e93284e6101008a8a8a8a8a8a8a8a8083640165a0bc1401805415611c3d575b505087600052640165a0bc1182526040600020556040519687528601526040850152600060608501526001608085015260a084015260c083015260e0820152a1005b55808b611bfb565b634e487b7160e01b60009081526032600452fd5b611c62856131c2565b611c6b866133fd565b90611c84611c7761356f565b926064610eb18d8c612760565b87600052640165a0bc128752604060002086600052875260406000205582871015611d1057906064610efe8b610ef98b611cc7968a8d640165a0bc140155612760565b836000526401a13b86148552604060002055826401a13b8615556064611ced8988612760565b048a600052640165a0bc0f85526040600020846000528552604060002055611bb7565b83634e487b7160e01b60005260326004526000fd5b82634e487b7160e01b60005260116004526000fd5b84634e487b7160e01b60005260326004526000fd5b83634e487b7160e01b60005260116004526000fd5b60405162461bcd60e51b8152600481018490526013818401527211d85d59d948185b1c9958591e481859191959606a1b6044820152606490fd5b88634e487b7160e01b60005260416004526000fd5b60405162461bcd60e51b8152602060048201526017818901527f496e76616c696420676175676520706172616d657465720000000000000000006044820152606490fd5b346102c85760203660031901126102c85760043580600052640165a0bc12602052604060002090633b9aca008110156106cd57640165a0bc1401546000526020526020604060002054604051908152f35b346102c85760203660031901126102c857600435611e7160018060a01b03600054163314612671565b62093a80811015611eae57806002556040519081527f0f3fdc31725712424041e8ad7e10a5c1e40d3d71ffedabd9bb2823a5c238871d60203392a2005b60405162461bcd60e51b815260206004820152601560248201527461646d696e20706572696f6420746f6f206c6f6e6760581b6044820152606490fd5b346102c85760203660031901126102c857600435600052640165a0bc0d6020526020604060002054604051908152f35b346102c85760003660031901126102c857600080546001600160a01b03811690611f46338314612671565b6001600160a01b03191682557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102c857611f863661250d565b906000526401a13b86166020526040600020906000526020526020604060002054604051908152f35b346102c857611fbd3661250d565b90600052640165a0bc0f6020526040600020906000526020526040806000206001815491015482519182526020820152f35b346102c857602061042a61200236612629565b916120316120108483614443565b80600052640165a0bc06875261202c6040600020541515612715565b6132a3565b5061203a61356f565b506136ee565b346102c85760403660031901126102c8576001600160a01b03612061612613565b16600052640165a0bc0a602052604060002060243560005260205260606040600020805490600260018201549101549060405192835260208301526040820152f35b346102c85760003660031901126102c8576020600354604051908152f35b346102c85760003660031901126102c8576020600254604051908152f35b346102c85760003660031901126102c857602060ff60005460a01c166040519015158152f35b346102c85760003660031901126102c8576020600154604051908152f35b346102c85760003660031901126102c8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102c85760203660031901126102c857600435600052640165a0bc066020526020604060002054604051908152f35b346102c85760403660031901126102c8576121dd6121c06121b7612613565b60243590614443565b80600052640165a0bc0660205261202c6040600020541515612715565b506104f061356f565b346102c85760203660031901126102c857600435600052640165a0bc08602052602060ff604060002054166040519015158152f35b346102c8576020806003193601126102c8576004356000526005815260406000209060405191826000825461224f81612523565b938484526001918683821691826000146122d2575050600114612293575b505061227b925003836125b1565b61228f6040519282849384528301906125d3565b0390f35b85925060005281600020906000915b8583106122ba57505061227b9350820101858061226d565b805483890185015287945086939092019181016122a2565b925093505061227b94915060ff191682840152151560051b820101858061226d565b346102c8576123023661250d565b90600052640165a0bc106020526040600020906000526020526020604060002054604051908152f35b346102c857602061234461233e3661250d565b90613047565b6040516001600160a01b039091168152f35b346102c85760003660031901126102c8576020640165a0bc0e54604051908152f35b346102c85760203660031901126102c857600435600052640165a0bc076020526020604060002054604051908152f35b346102c85760803660031901126102c85767ffffffffffffffff6004358181116102c8576123da9036906004016124dc565b91906024358281116102c8576123f49036906004016124dc565b916044358481116102c85761240d9036906004016124dc565b946064359081116102c8576124269036906004016124dc565b95909261243e60018060a01b03600054163314612671565b6124498689146127d3565b6124548289146127d3565b61245f8789146127d3565b60005b88811061246b57005b806107d26124806107b86124ab948d87612823565b8a61248c848c8c612823565b356124a48561249c818b8d612823565b35938c612823565b3592613ba7565b612462565b346102c85760203660031901126102c857602090600435600052640165a0bc1182526040600020548152f35b9181601f840112156102c85782359167ffffffffffffffff83116102c8576020808501948460051b0101116102c857565b60409060031901126102c8576004359060243590565b90600182811c92168015612553575b602083101461253d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612532565b60c0810190811067ffffffffffffffff8211176119b257604052565b6040810190811067ffffffffffffffff8211176119b257604052565b6060810190811067ffffffffffffffff8211176119b257604052565b90601f8019910116810190811067ffffffffffffffff8211176119b257604052565b919082519283825260005b8481106125ff575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016125de565b600435906001600160a01b03821682036102c857565b60609060031901126102c8576004356001600160a01b03811681036102c857906024359060443590565b6064359081151582036102c857565b6084359081151582036102c857565b1561267857565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b919082018092116106e357565b156126d057565b60405162461bcd60e51b815260206004820152601b60248201527f6d617374657243686566206164647265737320697320656d70747900000000006044820152606490fd5b1561271c57565b60405162461bcd60e51b815260206004820152600f60248201526e11d85d59d9481b9bdd081859191959608a1b6044820152606490fd5b919082039182116106e357565b818102929181159184041417156106e357565b8151815560208201516001820180546001600160a01b039283166001600160a01b0319918216179091556040840151600284015560608401516003840180549190931691161790556080820151600482015560a090910151600590910155565b156127da57565b60405162461bcd60e51b81526020600482015260126024820152716c656e677468206973206e6f742073616d6560701b6044820152606490fd5b60001981146106e35760010190565b91908110156106cd5760051b0190565b356001600160a01b03811681036102c85790565b8115612851570490565b634e487b7160e01b600052601260045260246000fd5b91908260409103126102c857815180600f0b81036102c85760209092015190565b519065ffffffffffff821682036102c857565b519061ffff821682036102c857565b90939291621275008042018042116106e3578190048181029181830414901517156106e3576002546128db91612753565b421015612cc6576128eb91614443565b92600092338452602092640165a0bc0b8452604080862054878752640165a0bc08865260ff82882054169081612cb9575b50612cb1575b60ff8187205416158015612ca9575b15612c77576127108411612c34577f0000000000000000000000000000000000000000000000000000000000000000956129696130b5565b9215612b5f575b8151630cacd00160e11b81523360048201526001600160a01b0397881696909460c0866024818b5afa958615612b55578396612ac0575b501580612ab5575b6129bf575b505050505050505050565b826024988151998a8092635de9a13760e01b825289169a8b60048301525afa978815612aab5782908399612a70575b50612a00630788c27f91600f0b61447a565b04968715159485612a66575b5084612a38575b50505050612a25575b808080806129b4565b612a2e946137c6565b3880808080612a1c565b612a5a94508252640165a0bc0c815282822090898352522054600154906126bc565b42101538808080612a13565b8911945038612a0c565b612a009950630788c27f9150612a9b90853d8711612aa4575b612a9381836125b1565b810190612867565b999091506129ee565b503d612a89565b83513d84823e3d90fd5b5087851615156129af565b90955060c0813d8211612b4d575b81612adb60c093836125b1565b81010312612b49578051908982168203612b4557828101516fffffffffffffffffffffffffffffffff811603612b455760a081612b1c87612b3d9401612888565b50612b2960608201612888565b50612b366080820161289b565b500161289b565b5094386129a7565b8380fd5b8280fd5b3d9150612ace565b84513d85823e3d90fd5b8151635de9a13760e01b815233600482015282816024816001600160a01b038c165afa908115612aab5782908392612c09575b50612ba4630788c27f91600f0b61447a565b049081151580612c00575b80612bd4575b612bc1575b5050612970565b612bcd9187338c6137c6565b3880612bba565b50338352640165a0bc0c88528383208a84528852612bf884842054600154906126bc565b421015612bb5565b50848111612baf565b612ba49250630788c27f9150612c2b90853d8711612aa457612a9381836125b1565b92909150612b92565b5162461bcd60e51b815260048101859052601e60248201527f596f75207573656420616c6c20796f757220766f74696e6720706f77657200006044820152606490fd5b5162461bcd60e51b815260048101859052600c60248201526b19d85d59d9481ada5b1b195960a21b6044820152606490fd5b508315612931565b859350612922565b612710915010153861291c565b60405162461bcd60e51b815260206004820152601e60248201527f43757272656e746c7920696e2061646d696e206f6e6c7920706572696f6400006044820152606490fd5b90604051612d188161255d565b8254815260018301546001600160a01b0390811660208301526002840154604083015260038401541660608201526004830154608082015260059092015460a0830152565b612d7d576401a13b8615546000526401a13b861460205260406000205490565b60008060048054905b818310612d935750505090565b909192633b9aca0084101561303257612dce612db460068602600601612d0b565b6060810151604090910151906001600160a01b0316614443565b80600052640165a0bc06602052604060002054612dec811515612715565b600019810190811161301d57633b9aca00811015613008576006612e139102600601612d0b565b90600052640165a0bc0f6020526040600020640165a0bc1160205260406000205460005260205260406000205490606460a0820151101580612fff575b612e70575b50612e6390612e69926126bc565b93612814565b9190612d86565b6401a13b8615549150600090815b868110612eb05750606480612ea5612e6395611261612e69989660a0612710970151612760565b040404915091612e55565b91633b9aca00831015612fea57612ecc60068402600601612d0b565b60608101516040820151612ee8916001600160a01b0316614443565b600052640165a0bc0f6020526040600020640165a0bc116020526040600020546000526020526040600020546064810281810460641482151715612fd55780620f42408302046127101490151715612fc057612f5e60a091876000526401a13b8614602052620f42406040600020549102612847565b9101518015801580612fb7575b612f84575b505061135490612f7f926126bc565b612e7e565b9080925060648102046064141715612fa25760640281611354612f70565b601187634e487b7160e01b6000525260246000fd5b50818311612f6b565b601188634e487b7160e01b6000525260246000fd5b601189634e487b7160e01b6000525260246000fd5b603286634e487b7160e01b6000525260246000fd5b50811515612e50565b603284634e487b7160e01b6000525260246000fd5b601184634e487b7160e01b6000525260246000fd5b603282634e487b7160e01b6000525260246000fd5b604051916020830191825260408301526040825261306482612595565b905190206001600160a01b031690565b1561307b57565b60405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206761756765207479706560701b6044820152606490fd5b62093a808042018042116106e3578190048181029181830414901517156106e35790565b906130e76003548310613074565b6130f0826131c2565b9061311f6130fd846133fd565b61069461310861356f565b9461068e6131146130b5565b966106888786612760565b9160008181526401a13b86146020528360408220558481526401a13b861660205260408120828252602052826040822055816401a13b861555633b9aca008510156131ae5750918391836080947f6203ee96bc508c05f9ccb8b5d93bb7fc6f0ef232071ba3a299aadd6f9724abf3966401a13b86170155604051938452602084015260408301526060820152a1565b634e487b7160e01b81526032600452602490fd5b633b9aca0081101590816106cd576401a13b861781018054909190801561329a576000928284526401a13b861694602086815260409081872085885281528187205497875b6101f4811061321d575b50505050505050505090565b4287116132955762093a8087018097116132815786888a52828452848a20818b5284528a858b20558542821161325e575b505061325990612814565b613207565b61326d5786556132598561324e565b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b89526011600452602489fd5b613211565b50505050600090565b6000818152640165a0bc116020818152604080842054929391929182156133f457640165a0bc0f948585528282208483528552828220948351976132e689612579565b8654895260018097015496828a01978852845b6101f48110613311575b505050505050505050505190565b4288116133ef5762093a80978881018091116133db5780988a518181029181830414901517156133c757908c826133a694938251116000146133bb576133579151612753565b8d52848852640165a0bc108652888820818952865261337a898920548c51612753565b8b525b8488528b865288882081895286528888208d518155848c519101554281116133ab575b50612814565b6132f9565b84885286865288882055386133a0565b50889052878b5261337d565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b613303565b94505050505090565b633b9aca0081101590816106cd57640165a0bc1481018054909190801561329a57600092828452640165a0bc129460209580875260409081872085885288528187209180519861344c8a612579565b83548a5260018094015492818b01938452895b6101f48110613478575b50505050505050505050505190565b42891161356a5762093a8098898101809111613556578099865181810291818304149015171561354257808e91825111600014613536576134b99151612753565b8d528a8c52640165a0bc138452848c20818d5284526134dc858d20548751612753565b86525b8a8c52828452848c20818d528452848c208d51815587875191015587428211613513575b505061350e90612814565b61345f565b61352257885561350e87613503565b634e487b7160e01b8c52603260045260248cfd5b508c90528b86526134df565b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8c52601160045260248cfd5b613469565b6401a13b8615805490600354904283116136d9575b60009291928281526401a13b8614906020928284526040958683205496835b60648110613696575b50835b6101f485106135c4575b505050505050505090565b9091929394959697428911613690575062093a80880180981161367c5787948198825b60648110613623575b50908161360e928452888a528a8585205542811161361b5750612814565b93929190969594966135af565b8655386133a0565b99858b146136765761366b613671916106888d6401a13b86168e828a52640165a0bc1281528a8a20888b5281528a8a2054928a52528d89892090878a52528888205490612760565b9a612814565b6135e7565b996135f0565b634e487b7160e01b81526011600452602490fd5b976135b9565b8281989697989592939495146136cb57806136b36136bd926133fd565b506133a0816131c2565b9695949693929190936135a3565b9695949693929190936135ac565b9162093a7f1981019081116106e35791613584565b919062093a808091048181029181830414901517156106e3576000918183526020916401a13b8614835260409182852054958615156000146137bc579061373491614443565b92838552640165a0bc0781528285205460001981019081116137a85785526401a13b86168152828520828652815282852054938552640165a0bc0f81528285209185525282205491670de0b6b3a7640000918083029283040361367c57506137a592916137a091612760565b612847565b90565b634e487b7160e01b86526011600452602486fd5b5050505050905090565b92939091936137d36130b5565b60018060a01b038416600052640165a0bc0a60205260406000208560005260205260406000209261383760026040519561380c87612595565b8054875260018101546020880152015480604087015283600091818111613b96575b50508551612760565b9086600052640165a0bc0660205260406000205490613857821515612715565b60001982019182116106e357633b9aca008210156106cd57836138b4916127106138938c61388d60066138bb9802600601612d0b565b99612760565b049a6040519b6138a28d612595565b8c5260208c01528060408c0152612753565b8851612760565b9160018060a01b038616600052612710640165a0bc0b806020526138f76138ec60406000205460208d0151906126bc565b602089015190612753565b9060018060a01b0389166000526020528060406000205511613b5b5760408501511115613b355761394960808401606461393f81613936845187612760565b04925186612760565b049089878a6140da565b60408401514210613a8f575b5050505081600052640165a0bc076020526040600020549260001984019384116106e3576020817f0e2da017ca94051dcfb8151175e7a98e964b2cd83626aebec9a7f62a8575a83a95613a8a935186600052640165a0bc1084526040600020604084015160005284526139ce60406000209182546126bc565b9055815190600052640165a0bc1383526040600020604083015160005283526139fd60406000209182546126bc565b9055613a0761356f565b506001600160a01b03939093166000818152640165a0bc0a835260408082208783528452808220865181558685018051600183015596820151600290910155828252640165a0bc0c845280822087835290935282902042908190559351825194855260208501919091529083019390935260608201929092529081906080820190565b0390a1565b613aa26080613aaa940191825190612760565b505190612760565b5082600052640165a0bc076020526040600020549060001982019182116106e357805184600052640165a0bc1060205260406000206040830151600052602052613afa6040600020918254612753565b9055805191600052640165a0bc13602052604080600020910151600052602052613b2a6040600020918254612753565b905538808080613955565b613b56608084016064613b4d81613936845187612760565b049089896142f2565b613949565b60405162461bcd60e51b81526020600482015260136024820152722ab9b2b2103a37b79036bab1b4103837bbb2b960691b6044820152606490fd5b613ba09250612753565b833861382e565b939293613bb26130b5565b9081841180156140d2575b1561408157612710831161403c5760405163d2dcd93360e01b8152600481018390526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561403057600091613ff9575b5095613c5c91613c4296976064630788c27f988992640165a0bc0e5490612760565b040484600052640165a0bc0d602052604060002055614443565b9283600052640165a0bc0760205260406000205491826000198101116106e35760008581527fa66045a14ceb1f53f28d054f77ae697975e7eeb2f7a6000bb6bd492d0c0735f260205260409081902090519290613cea90600290613cbf86612595565b8054865260018101546020870152015480604086015283600091818111613fe8575b50508451612760565b9086600052640165a0bc06602052604060002054613d09811515612715565b60001981019081116106e357633b9aca008110156106cd576006613d309102600601612d0b565b978115613fd7575b5062093a80908181018091116106e3578190049081818102048114821517156106e35783613da691613dad9382600052640165a0bc0d602052612710613d838b604060002054612760565b04996040519a613d928c612595565b8b5260208b01520260408901819052612753565b8651612760565b91604084015111600014613fb157613ddd608088016064613dd381613936845187612760565b049087868a6140da565b60408301514210613eef575b5050507fa45c9b0ee3ff4269ec85105be7ad4d296e1df509dbb70c4169f6cd92af789567935090602091815184600052640165a0bc108452604060002060408401516000528452613e4060406000209182546126bc565b905581519060001901600052640165a0bc138352604060002060408301516000528352613e7360406000209182546126bc565b9055613e7d61356f565b506000808052640165a0bc0a835260408082208583528452808220835181558385018051600183015593820151600290910155818052640165a0bc0c84528082208583529093528290204290819055905182519182523360208301529181019290925260608201528060808101613a8a565b613aa26080613f05949695980191825190612760565b5082600052640165a0bc076020526040600020549360001985019485116106e3577fa45c9b0ee3ff4269ec85105be7ad4d296e1df509dbb70c4169f6cd92af78956794836020945186600052640165a0bc108652604060002060408301516000528652613f786040600020918254612753565b9055805191600052640165a0bc1385526040806000209101516000528452613fa66040600020918254612753565b905590913880613de9565b613fd2608088016064613fc981613936845187612760565b049087896142f2565b613ddd565b905042018042116106e35738613d38565b613ff29250612753565b8338613ce1565b906020823d602011614028575b81614013602093836125b1565b81010312614025575051613c5c613c20565b80fd5b3d9150614006565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152601860248201527f61646d696e20776569676874206973206f766572666c6f7700000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602360248201527f596f757220656e642074696d657374616d70206578706972657320746f6f207360448201526237b7b760e91b6064820152608490fd5b508315613bbd565b919293906140e66130b5565b9383600052640165a0bc07602052604060002054956000199487868101116106e35780600052640165a0bc06602052604060002054614126811515612715565b8681019081116106e357633b9aca008110156106cd576142ab95614152600661425c9302600601612d0b565b5061420e61415f846132a3565b9484600052640165a0bc0f60205260406000208b6000526020528b600160406000200154938b6141908184016133fd565b9201600052640165a0bc1260205260406000208d600052602052808360016040600020015499816141c184836126bc565b11156142e6576141d492610c38916126bc565b87600052640165a0bc0f6020528d604060002090600052602052604060002055826141ff82846126bc565b11156142de57610c38916126bc565b888b01600052640165a0bc1260205260406000208a60005260205260406000205561423a8551826126bc565b9086518092116000146142d85761425491508551906126bc565b855190612753565b90600052640165a0bc0f6020526040600020876000526020526001604060002001556142898251826126bc565b9183518093116000146142d0576142a2925051906126bc565b905b5190612753565b9201600052640165a0bc12602052604060002090600052602052600160406000200155565b5050906142a4565b50614254565b505080612753565b506141d4915080612753565b9192906142fd6130b5565b90600092848452602091640165a0bc0783526040958686205497600019808a01998a116133c757828852640165a0bc068652888820549061433f821515612715565b81019081116133c757633b9aca0081101561442f57916143cd600198969492614373600661441f9c9a989602600601612d0b565b508b8582614389614383876132a3565b936133fd565b928161439584836126bc565b1115614423576143a892610c38916126bc565b95848a52640165a0bc0f968789528b8b208a8c5289528b8b2055826141ff82846126bc565b928a8752640165a0bc129384865288882087895286528888205582519187528452868620858752845261440688888820019182546126bc565b90555197845281528383209183525220019182546126bc565b9055565b506143a8915080612753565b634e487b7160e01b88526032600452602488fd5b906040519060208201926bffffffffffffffffffffffff199060601b16835260348201526034815261447481612595565b51902090565b600081126144855790565b606460405162461bcd60e51b815260206004820152602060248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152fdfea2646970667358221220bb99f553d81301375696adefe1c83018dceefbd410546a0d338cf990d45d4ac664736f6c634300081100330000000000000000000000005692db8177a81a6c6afc8084c2976c9933ec1bab