0 txs
0 calls
constructor
constructor(uint32 _emissionStartTs, address _tokenomicsParams, address _vrsw, bool _enableVeVrsw)
functions
ALLOCATION_POINTS_FACTOR
viewfunction ALLOCATION_POINTS_FACTOR() view returns (uint256)
allocationPoints
viewfunction allocationPoints(address) view returns (uint256)
calculateTokensForPool
viewfunction calculateTokensForPool(address pool, address rewardToken) view returns (uint256)
currentEpochBalance
viewfunction currentEpochBalance() view returns (uint256)
emissionStartTs
viewfunction emissionStartTs() view returns (uint256)
epochDuration
viewfunction epochDuration() view returns (uint32)
epochPreparationTime
viewfunction epochPreparationTime() view returns (uint32)
getRewardTokens
viewfunction getRewardTokens(address pool) view returns (address[] rewardTokens)
nextEpochBalance
viewfunction nextEpochBalance() view returns (uint256)
nextEpochDuration
viewfunction nextEpochDuration() view returns (uint32)
nextEpochPreparationTime
viewfunction nextEpochPreparationTime() view returns (uint32)
owner
viewfunction owner() view returns (address)
partnerTokens
viewfunction partnerTokens(address, uint256) view returns (address)
partnerTokensInfo
viewfunction partnerTokensInfo(address, address) view returns (uint128 from, uint128 duration, uint128 amount, uint128 distributedAmount)
staker
viewfunction staker() view returns (address)
stakers
viewfunction stakers(address) view returns (uint128 totalAllocated, uint128 lastAvailable)
startEpochSupply
viewfunction startEpochSupply() view returns (uint256)
startEpochTime
viewfunction startEpochTime() view returns (uint32)
tokenomicsParams
viewfunction tokenomicsParams() view returns (address)
totalAllocationPoints
viewfunction totalAllocationPoints() view returns (uint256)
veVrsw
viewfunction veVrsw() view returns (address)
vrsw
viewfunction vrsw() view returns (address)
burnVeVrsw
nonpayablefunction burnVeVrsw(address from, uint256 amount)
distributePartnerToken
nonpayablefunction distributePartnerToken(address partnerToken, uint128 amount, address pool, uint128 from, uint128 duration)
mintVeVrsw
nonpayablefunction mintVeVrsw(address to, uint256 amount)
prepareForNextEpoch
nonpayablefunction prepareForNextEpoch(uint256 nextBalance)
renounceOwnership
nonpayablefunction renounceOwnership()
setAllocationPoints
nonpayablefunction setAllocationPoints(address[] _pools, uint256[] _allocationPoints)
setEpochParams
nonpayablefunction setEpochParams(uint32 _epochDuration, uint32 _epochPreparationTime)
setStaker
nonpayablefunction setStaker(address _newStaker)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRewards
nonpayablefunction transferRewards(address to, address pool, address[] rewardTokens, uint256[] amounts)
triggerEpochTransition
nonpayablefunction triggerEpochTransition()
events
AllocationPointsChanged
event AllocationPointsChanged(address[] _pools, uint256[] _allocationPoints)
NewStaker
event NewStaker(address stakerAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TransferRewards
event TransferRewards(address indexed to, address indexed pool, address indexed rewardToken, uint256 amount)
errors
No errors.
creation bytecode
0x610100346200028957601f6200386b38819003918201601f1916830192916001600160401b0391828511848610176200028e578160809285926040978852833981010312620002895781519063ffffffff9182811680910362000289576200006a60208501620002a4565b9360606200007a878301620002a4565b910151918215158303620002895760008054336001600160a01b031982168117835589516001600160a01b0399939893929091908a167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08a80a388821615620002475750878416156200020f5760a05281608052600354916224e9ff1901908111620001fb576001600160401b0363ffffffff60801b011990911660809190911b63ffffffff60801b161766093a800024ea001760035560c05215620001f25783519061080780830191821183831017620001de57602091839162003064833930815203019082f0908115620001d35750165b60e05251612daa9081620002ba8239608051818181610f1a01526117e6015260a05181611a92015260c051818181610b0601528181610b7e01528181610c2501528181611f80015261297d015260e0518181816109a0015281816116210152611c1c0152f35b8351903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b5090506200016d565b634e487b7160e01b86526011600452602486fd5b885162461bcd60e51b815260206004820152601160248201527076727377207a65726f206164647265737360781b6044820152606490fd5b62461bcd60e51b815260206004820152601d60248201527f746f6b656e6f6d696373506172616d73207a65726f20616464726573730000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620002895756fe6080604052600436101561001257600080fd5b6000803560e01c806201b0b614611eb45780631814a5b114611e6f5780631893290714611ce9578063198e278714611c405780632393b03c14611bd1578063318a678c14611b7e5780634ff0876a14611b3c5780634ffcd51414611ab657806358d6b9e214611a475780635ebaf1db146119f55780635f063639146119b9578063657bab8814611974578063657e317214611765578063715018a6146116c957806388386c6e146115b457806389bb0541146115575780638da5cb5b146115065780639168ae7214611489578063924f4cfd14610f3d578063925c3e4714610ee457806392954ad814610ea8578063933e0a5214610e45578063a29a43bb14610cca578063bbfae54614610c85578063cf690f3314610c49578063d356d82914610bda578063da50377714610a56578063db6c5c5514610932578063dd5fbc9a146108f6578063e027dcd314610340578063e3da68c1146102fc578063e7f3fbde146102c05763f2fde38b1461018757600080fd5b346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576101be612119565b6101c66121d7565b73ffffffffffffffffffffffffffffffffffffffff80911690811561023957600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b80fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600554604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060035463ffffffff60405191831c168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5767ffffffffffffffff6004358181116108f2576103919036906004016121a6565b90916024359081116108ee576103ab9036906004016121a6565b6103b69391936121d7565b808303610890576003546103d763ffffffff91828082169160801c16612256565b16421015610883575b6103e8612d31565b6005549073ffffffffffffffffffffffffffffffffffffffff600a541687602060405161041481612387565b828152015287915b86831061055d57505050620f424081116104ff57600555604051928060408501604086525260608401929086905b8082106104c25750505082820360208401528082527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116104be577f22f9223024615598c644235754c19669c1fc9de0143cc88bae338aca16affd5e93602092849260051b80928583013701030190a180f35b8480fd5b90919384359073ffffffffffffffffffffffffffffffffffffffff82168092036104fa5760208160019382935201950192019061044a565b600080fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f73756d206d757374206265206c657373207468616e20313030303030300000006044820152fd5b90919273ffffffffffffffffffffffffffffffffffffffff610588610583868a8a6127d2565b6127e2565b161580156107db575b1561077d5773ffffffffffffffffffffffffffffffffffffffff6105b9610583868a8a6127d2565b16895260066020526106a760408a20604051906105d582612387565b546fffffffffffffffffffffffffffffffff8116825260801c602082015273ffffffffffffffffffffffffffffffffffffffff610616610583888c8c6127d2565b168b52600760205261062d8460408d205483612ce0565b73ffffffffffffffffffffffffffffffffffffffff610650610583888c8c6127d2565b168b526006602090815260408c208251929091015160801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b6106ec6106b585878b6127d2565b3573ffffffffffffffffffffffffffffffffffffffff6106d9610583888c8c6127d2565b168b52600760205260408b20549061230f565b9089828201928312911290801582169115161761075057610749909361071381878b6127d2565b3573ffffffffffffffffffffffffffffffffffffffff610737610583848c8c6127d2565b168b52600760205260408b20556127a5565b919061041c565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6f6e65206f66206c7020746f6b656e73206973206e6f742076616c69640000006044820152fd5b506107ea6105838589896127d2565b73ffffffffffffffffffffffffffffffffffffffff604051917ff6c57861000000000000000000000000000000000000000000000000000000008352166004820152602081602481875afa908115610878578a91610849575b50610591565b61086b915060203d602011610871575b61086381836123a3565b8101906124c9565b38610843565b503d610859565b6040513d8c823e3d90fd5b61088b612b61565b6103e0565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6c656e67746873206469666665720000000000000000000000000000000000006044820152fd5b8380fd5b8280fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600454604051908152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd578061096b612119565b6024359061097a82151561288c565b73ffffffffffffffffffffffffffffffffffffffff61099e81600a54163314612803565b7f00000000000000000000000000000000000000000000000000000000000000001691826109cb57505050f35b823b15610a51576040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201529082908290604490829084905af18015610a4657610a365750f35b610a3f90612328565b6102bd5780f35b6040513d84823e3d90fd5b505050fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57600435610a916121d7565b610acf60035463ffffffff90610ac082610ab2818416828560801c16612256565b1692839260201c164261229d565b10159081610bd0575b506122aa565b610adb6002548261230f565b90600255818113600014610b2e57610b2b90303373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661244d565b80f35b818112610b39575080f35b7f80000000000000000000000000000000000000000000000000000000000000008114610ba357610b2b9082033373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166123e4565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9050421038610ac9565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600154604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460601c16604051908152f35b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57610d02612119565b610d0a6121d7565b73ffffffffffffffffffffffffffffffffffffffff809116908115610de757600a54908116610d8957817ffef374abf45e2e3ec7bf325aef6e240bfbc166fd230c511d058f061af7106aea927fffffffffffffffffffffffff00000000000000000000000000000000000000006020931617600a55604051908152a180f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b65722063616e20626520736574206f6e6365000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57604060209173ffffffffffffffffffffffffffffffffffffffff610e97612119565b168152600783522054604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600254604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102bd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57610f75612119565b906024918235926fffffffffffffffffffffffffffffffff841684036104fa5773ffffffffffffffffffffffffffffffffffffffff9060443582811681036104fa576064356fffffffffffffffffffffffffffffffff811681036104fa576084356fffffffffffffffffffffffffffffffff811681036104fa57610ff76121d7565b6fffffffffffffffffffffffffffffffff88161561142b576fffffffffffffffffffffffffffffffff8116156113cd57848316158015611353575b156112f5578483168752600960205260408720858716600052602052604060002060405161105f8161236b565b60018254926fffffffffffffffffffffffffffffffff84168352602083019360801c84520154916fffffffffffffffffffffffffffffffff83166040830152606082018360801c815282936fffffffffffffffffffffffffffffffff811615806112ea575b1561129e5750505050506fffffffffffffffffffffffffffffffff9081604051936110ee8561236b565b1683521660208201526fffffffffffffffffffffffffffffffff871660408201528560608201529183821686526008602052604086208054916801000000000000000083101561127357509284610b2b979893611165846fffffffffffffffffffffffffffffffff9760016112679701815561215f565b81549060031b9084808c16831b921b19161790555b168852600960205260408820858716600052602052836060604060002092600183825116947fffffffffffffffffffffffffffffffff0000000000000000000000000000000095868254161781556112148560208501511682906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b019383604083015116908554161784550151166fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b1691309133911661244d565b877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6fffffffffffffffffffffffffffffffff98508994958961126798610b2b9e9f9a969594826112d486828098169060801c612868565b169052168452169052604087871691015261117a565b508060801c156110c4565b606484600c604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152fd5b5083602086600a5416604051928380927ff6c578610000000000000000000000000000000000000000000000000000000082528a891660048301525afa9081156113c25788916113a4575b50611032565b6113bc915060203d81116108715761086381836123a3565b3861139e565b6040513d8a823e3d90fd5b6064846019604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f6475726174696f6e206d75737420626520706f736974697665000000000000006044820152fd5b6064846017604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f616d6f756e74206d75737420626520706f7369746976650000000000000000006044820152fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576040809173ffffffffffffffffffffffffffffffffffffffff6114da612119565b168152600660205220548151906fffffffffffffffffffffffffffffffff8116825260801c6020820152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576115ac6003546115a363ffffffff91828082169160801c16612256565b164210156122aa565b610b2b612b61565b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576115ec612119565b816024356115fb81151561288c565b73ffffffffffffffffffffffffffffffffffffffff61161f81600a54163314612803565b7f0000000000000000000000000000000000000000000000000000000000000000168061164a578280f35b803b156108f2576040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff94909416600485015260248401919091528290604490829084905af18015610a46576116ba575b8181808280f35b6116c390612328565b386116b3565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576117006121d7565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102bd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5761179d612119565b6117a561213c565b67ffffffffffffffff916044358381116104be576117c79036906004016121a6565b9093606435908111611970576117e19036906004016121a6565b9190917f000000000000000000000000000000000000000000000000000000000000000042106119125773ffffffffffffffffffffffffffffffffffffffff9061183082600a54163314612803565b60035461184a63ffffffff91828082169160801c16612256565b16421015611905575b875b838110611860578880f35b808084868b61187361188296888c6127d2565b35611887575b505050506127a5565b611855565b6118ac9361189892610583926127d2565b16886118a584878b6127d2565b35916123e4565b6118ba61058382878c6127d2565b846118c683868a6127d2565b35916040519283521690858a16907fca452eb39a809ba852514ba2158d35d26a6c977f44cddecee9986f781e7ce4d56020888c1692a48084868b611879565b61190d612b61565b611853565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f746f6f206561726c7900000000000000000000000000000000000000000000006044820152fd5b8580fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460401c16604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020604051620f42408152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57611aee612119565b6024359173ffffffffffffffffffffffffffffffffffffffff80921681526008602052604081209081548410156102bd5750602092611b2c9161215f565b9190546040519260031b1c168152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035416604051908152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020611bc9611bbb612119565b611bc361213c565b90612962565b604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576040608091611c7d612119565b611c8561213c565b9073ffffffffffffffffffffffffffffffffffffffff80911683526009602052838320911682526020522060018154910154604051916fffffffffffffffffffffffffffffffff908181168452841c602084015281166040830152821c6060820152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5760043563ffffffff8082168083036108ee576024359182168083036104be57611d406121d7565b80151580611e66575b15611e08571015611daa577fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6bffffffff00000000000000006fffffffff0000000000000000000000006003549360601b169360401b169116171760035580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f7072657061726174696f6e54696d65203e3d2065706f63684475726174696f6e6044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6d7573742062652067726561746572207468616e207a65726f000000000000006044820152fd5b50811515611d49565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460801c16604051908152f35b50346102bd576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126121155773ffffffffffffffffffffffffffffffffffffffff9081611f04612119565b1690818452600890818152604085205494600195868101938482116120e857611f45611f2f866128f1565b95611f3d60405197886123a3565b8087526128f1565b957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085870197013688378551156120bb5787989698959493957f0000000000000000000000000000000000000000000000000000000000000000168952865b83811115611feb5750505050604051948186019282875251809352604086019693905b838210611fd45786880387f35b845181168852968201969382019390850190611fc7565b81879596979a989a52828652604085207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019082821161208e57906120309161215f565b90549088518310156120615760031b1c8916600582901b8801870152612055906127a5565b98969895949395611fa4565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b5080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104fa57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036104fa57565b80548210156121775760005260206000200190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9181601f840112156104fa5782359167ffffffffffffffff83116104fa576020808501948460051b0101116104fa57565b73ffffffffffffffffffffffffffffffffffffffff6000541633036121f857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b91909163ffffffff8080941691160191821161226e57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9190820180921161226e57565b156122b157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f546f6f206561726c7900000000000000000000000000000000000000000000006044820152fd5b8181039291600013801582851316918412161761226e57565b67ffffffffffffffff811161233c57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761233c57604052565b6040810190811067ffffffffffffffff82111761233c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761233c57604052565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff92909216602483015260448083019390935291815261244b916124466064836123a3565b6124e1565b565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff84111761233c5761244b926040526124e1565b908160209103126104fa575180151581036104fa5790565b73ffffffffffffffffffffffffffffffffffffffff90929192169160405161250881612387565b6020918282527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564838301526000808285829451910182895af13d15612677573d9567ffffffffffffffff871161264a576125a194959660405190612593887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836123a3565b81528093873d92013e612683565b805190816125ae57505050565b82806125be9383010191016124c9565b156125c65750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6125a193949591506060915b919290156126fe5750815115612697575090565b3b156126a05790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156127115750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b84811061278e575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b81810183015186820160440152859350820161274d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461226e5760010190565b91908110156121775760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036104fa5790565b1561280a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152fd5b9190916fffffffffffffffffffffffffffffffff8080941691160191821161226e57565b1561289357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7a65726f20616d6f756e740000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff811161233c5760051b60200190565b9190820391821161226e57565b8181029291811591840414171561226e57565b8115612933570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9073ffffffffffffffffffffffffffffffffffffffff9081167f000000000000000000000000000000000000000000000000000000000000000082168103612aa8575060035463ffffffff90818160801c1690828116836129c38285612256565b164210612a9657612a2593612a1f9260401c81168015612a8c57612a0190925b6129fc6129f56004546001549061229d565b9642612909565b612909565b91169081811015612a8257612a1a905b60025490612916565b612929565b9061229d565b915b1690816000526006602052612a7d60406000209160405192612a4884612387565b54936fffffffffffffffffffffffffffffffff94858116855260801c6020850152600052600760205260406000205483612ce0565b511690565b50612a1a81612a11565b50612a01826129e3565b50505050612aa2612d31565b91612a27565b91612b299260609260009216825260096020526040822090825260205260408120604051612ad58161236b565b8154906fffffffffffffffffffffffffffffffff918281169081835260801c90600160208401958387520154928484169384604083015260801c9788910152804210600014612b2c5750505050509061229d565b90565b90612a1f95612b3f612b50949342612909565b905080821015612b59575090612916565b91511690612929565b905090612916565b6003805473ffffffff000000000000000000000000000000009063ffffffff9180612b93848416858560801c16612256565b60801b16927fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff92848482161790818755600190612bd3825460045461229d565b9687600455846002549485855560401c169182612cb2575b5050508654838160601c16612c78575b506000600255865495838760801c1693871692612c18848661229d565b421015612c61575b505090815b612c37575b505060801b169116179055565b9091612c43828261229d565b4210612c5b5781612c539161229d565b919081612c25565b91612c2a565b612c6a9161229d565b600455600081553880612c20565b7fffffffffffffffffffffffffffffffff00000000ffffffff00000000ffffffff67ffffffff000000008260401c16911617875538612bfb565b7fffffffffffffffffffffffff00000000ffffffff00000000ffffffff000000001617178755388080612beb565b91620f42409192612d1e612d2960208301956fffffffffffffffffffffffffffffffff958693849283612d16818c51168a612909565b911690612916565b041682845116612868565b169052169052565b612b29600454612a1f60035463ffffffff612d51818360801c1642612909565b91169081811015612d6a57612a1a905b60015490612916565b50612a1a81612d6156fea2646970667358221220fad83f5659b4107c05ef3b5f3505efc88cd5e2eb568cfac2e03496f8bd9537bf64736f6c6343000812003360a03461007757601f61080738819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b0381168103610077576080526040516107749081610093823960805181818160d2015281816103d2015261059f0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816306fdde03146105c357508063075461721461055457806318160ddd14610517578063313ce567146104dd57806340c10f191461037957806370a082311461031857806395d89b411461026257639dc29fac1461007c57600080fd5b3461025e57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576100b26106b1565b6024359073ffffffffffffffffffffffffffffffffffffffff906100f9827f00000000000000000000000000000000000000000000000000000000000000001633146106d9565b169182156101db5782845283602052848420549082821061015857508184957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936020938688528785520381872055816001540360015551908152a380f35b60849060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602360248201527f7665565253573a206275726e20616d6f756e7420657863656564732062616c6160448201527f6e636500000000000000000000000000000000000000000000000000000000006064820152fd5b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602260248201527f7665565253573a206275726e2066726f6d20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b5080fd5b50913461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e578051918183019083821067ffffffffffffffff8311176102ec57506102e893508152600682527f76655652535700000000000000000000000000000000000000000000000000006020830152519182918261064b565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b82843461025e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e578060209273ffffffffffffffffffffffffffffffffffffffff61036a6106b1565b16815280845220549051908152f35b5082346104d957807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d9576103b16106b1565b906024359173ffffffffffffffffffffffffffffffffffffffff906103f9827f00000000000000000000000000000000000000000000000000000000000000001633146106d9565b1692831561047d5760015490838201809211610451575084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260015585855284835280852082815401905551908152a380f35b8560116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602060248201527f7665565253573a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b8280fd5b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020905160128152f35b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020906001549051908152f35b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905083833461064857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610648578183019083821067ffffffffffffffff8311176102ec57506102e893508152601282527f566f74652d657363726f776564205652535700000000000000000000000000006020830152519182918261064b565b80fd5b60208082528251818301819052939260005b85811061069d575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b81810183015184820160400152820161065d565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036106d457565b600080fd5b156106e057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f7665565253573a206f6e6c79206d696e746572000000000000000000000000006044820152fdfea2646970667358221220519fa7d1837a4cb88782cc8e3a8a5c243576e24389ad9e57464719f2051cc12064736f6c634300081200330000000000000000000000000000000000000000000000000000000064a7b0e800000000000000000000000081ee625f257d67e29d109d7f4fe18547ae2dce74000000000000000000000000a70de8592cd98edc01988d68b5b5bb3cc593fe880000000000000000000000000000000000000000000000000000000000000001