0 txs
286 calls
constructor
constructor()
functions
_pool
viewfunction _pool() view returns (address)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
duration
viewfunction duration() view returns (uint32)
emissionsToken
viewfunction emissionsToken() view returns (address)
exitRatio
viewfunction exitRatio() view returns (uint256)
getBalanceResiding
viewfunction getBalanceResiding() view returns (uint256)
isWhitelisted
viewfunction isWhitelisted(address) view returns (bool)
MAXTIME
viewfunction MAXTIME() view returns (uint256)
maxVest
viewfunction maxVest() view returns (uint256)
minVest
viewfunction minVest() view returns (uint256)
multisig
viewfunction multisig() view returns (address)
name
viewfunction name() view returns (string)
optionEnabled
viewfunction optionEnabled() view returns (bool)
outToken
viewfunction outToken() view returns (address)
paused
viewfunction paused() view returns (bool)
PRECISION
viewfunction PRECISION() view returns (uint256)
protocolWhitelist
viewfunction protocolWhitelist() view returns (address)
quotePayment
viewfunction quotePayment(uint256 amount) view returns (uint256 payAmount)
quotePrice
viewfunction quotePrice(uint256 amountIn) view returns (uint256 amountOut)
symbol
viewfunction symbol() view returns (string)
timelock
viewfunction timelock() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
usersTotalVests
viewfunction usersTotalVests(address _user) view returns (uint256)
usingLegacyPair
viewfunction usingLegacyPair() view returns (bool)
veExitRatio
viewfunction veExitRatio() view returns (uint256)
veMaxVest
viewfunction veMaxVest() view returns (uint256)
vestInfo
viewfunction vestInfo(address user, uint256) view returns (uint256 amount, uint256 start, uint256 maxEnd, uint256 vestID)
voter
viewfunction voter() view returns (address)
votingEscrow
viewfunction votingEscrow() view returns (address)
whitelistOperator
viewfunction whitelistOperator() view returns (address)
addWhitelist
nonpayablefunction addWhitelist(address _whitelistee)
adjustWhitelist
nonpayablefunction adjustWhitelist(address[] _candidates, bool[] _status)
alterExitRatios
nonpayablefunction alterExitRatios(uint256 _newExitRatio, uint256 _newVeExitRatio)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
changeMaximumVestingLength
nonpayablefunction changeMaximumVestingLength(uint256 _maxVest)
changeMinimumVestingLength
nonpayablefunction changeMinimumVestingLength(uint256 _minVest)
changeVeMaximumVestingLength
nonpayablefunction changeVeMaximumVestingLength(uint256 _veMax)
changeWhitelistOperator
nonpayablefunction changeWhitelistOperator(address _newOperator)
convertEmissionsToken
nonpayablefunction convertEmissionsToken(uint256 _amount)
createVest
nonpayablefunction createVest(uint256 _amount)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
exitVest
nonpayablefunction exitVest(uint256 _vestID, bool _ve) returns (bool)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _emissionsToken, address _votingEscrow, address _voter, address _timelock, address _multisig, address _whitelistOperator, address _protocolWhitelist)
instantExit
nonpayablefunction instantExit(uint256 _amount, uint256 maxPayAmount)
migrateMultisig
nonpayablefunction migrateMultisig(address _multisig)
migrateProtocolWhitelist
nonpayablefunction migrateProtocolWhitelist(address _protocolWhitelist)
migrateTimelock
nonpayablefunction migrateTimelock(address _timelock)
multisigRedeem
nonpayablefunction multisigRedeem(uint256 _amount)
recoverEmissionsToken
nonpayablefunction recoverEmissionsToken()
recoverEmissionsTokenAgain
nonpayablefunction recoverEmissionsTokenAgain()
reinitializeVestingParameters
nonpayablefunction reinitializeVestingParameters(uint256 _min, uint256 _max, uint256 _veMax)
removeWhitelist
nonpayablefunction removeWhitelist(address _whitelistee)
rescueTrappedTokens
nonpayablefunction rescueTrappedTokens(address[] _tokens, uint256[] _amounts)
setOptionsEnabled
nonpayablefunction setOptionsEnabled(bool isEnabled)
setPaused
nonpayablefunction setPaused(bool _paused)
setPool
nonpayablefunction setPool(address newPool)
setSecondsAgo
nonpayablefunction setSecondsAgo(uint32 _duration)
syncAndCheckIsWhitelisted
nonpayablefunction syncAndCheckIsWhitelisted(address _address) returns (bool)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
useLegacyPair
nonpayablefunction useLegacyPair(bool legacy)
xTokenConvertToNft
nonpayablefunction xTokenConvertToNft(uint256 _amount) returns (uint256 veTokenId)
xTokenIncreaseNft
nonpayablefunction xTokenIncreaseNft(uint256 _amount, uint256 _tokenID)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CancelVesting
event CancelVesting(address indexed user, uint256 indexed vestId, uint256 amount)
Converted
event Converted(address indexed user, uint256)
ExitVesting
event ExitVesting(address indexed user, uint256 indexed vestId, uint256 amount)
Initialized
event Initialized(uint8 version)
InstantExit
event InstantExit(address indexed user, uint256)
NewExitRatios
event NewExitRatios(uint256 exitRatio, uint256 veExitRatio)
NewVest
event NewVest(address indexed user, uint256 indexed vestId, uint256 indexed amount)
NewVestingTimes
event NewVestingTimes(uint256 min, uint256 max, uint256 veMaxVest)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
WhitelistStatus
event WhitelistStatus(address indexed candidate, bool status)
XTokensRedeemed
event XTokensRedeemed(address indexed user, uint256)
errors
No errors.
creation bytecode
0x60808060405234620000c6576000549060ff8260081c1662000074575060ff8082160362000038575b6040516144529081620000cc8239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a13862000028565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816306fdde03146124c25750806308b4bd63146123a3578063095ea7b31461237c5780630fb5a6b41461235857806311147bd6146122e457806312e82674146121f557806316c38b3c1461217a57806318160ddd1461215c5780631ad7b12714612112578063210ca05d146120e957806323b872dd1461202e57806326997e9e1461200a5780632937c8a314611fc35780632cf53bd814611f8b5780632db0c52414611cce578063313ce56714611cb257806333db82fd14611c8b57806335876476146115d457806339509351146115825780633af32abf14611545578063415bceba146115275780634437152a1461140057806344c43782146113d957806345420ff7146113b357806346c96aac1461138c5780634783c35b146113655780634f2bfe5b1461133e578063536d0e11146112c857806355a595ab1461124e5780635c975abb1461122857806361b51a0e14611119578063636fc28b146110f25780636743c100146110ab57806370a082311461107357806378c8cda714610ffc5780637eb80ff314610fb45780637faa440b14610f8d57806386c2608c14610ede5780638d60cd6214610e6a57806390a5701214610e0c57806395d89b4114610d275780639bd1fbdc14610cdf578063a2add5f514610cc1578063a457c2d714610c03578063a4bf5b3e14610b54578063a74e16ed14610b2d578063a9059cbb14610afb578063aaf5eb6814610adf578063b906bbc314610a98578063bacbf61b14610a05578063beb7dc3414610933578063c23d03c4146108b2578063c6c6c8991461086b578063cd3e888d146107f4578063d33219b4146107cd578063dbf16087146107a7578063dd62ed3e14610757578063e252a4dc146106d2578063e9dcc054146106b4578063eb8738f51461048c578063ee00ef3a1461046d578063ef8f95951461044f578063f398052714610431578063f80f5dd5146103f6578063f93b47741461037a5763ffb64483146102f757600080fd5b34610377578060031936011261037757610103815460ff8160081c16158061036a575b61032390612b97565b61ffff1916178155610333613b4e565b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160038152a180f35b50600360ff82161061031a565b80fd5b503461037757602036600319011261037757610394612638565b6103aa6001600160a01b03606a54163314612c09565b7fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff76ff0000000000000000000000000000000000000000000060745492151560b01b1691161760745580f35b50346103775760203660031901126103775761042e6104136125da565b6104296001600160a01b03606a54163314612c09565b614166565b80f35b50346103775780600319360112610377576020607154604051908152f35b50346103775780600319360112610377576020607254604051908152f35b50346103775780600319360112610377576020604051630784ce008152f35b50346103775761049b36612647565b6104ad60ff60745460a81c16156127ea565b6104b882151561277b565b60646104c683606e54612b57565b046104d18333613c22565b60745460a01c60ff16156106885750606e54606403606481116106745760646104fd6105039285612b57565b0461313b565b90811161062f57606c546069546040516323b872dd60e01b81523360048201526001600160a01b0391821660248201526044810193909352602091839160649183918891165af1801561060557610610575b506001600160a01b036020610594835b60655460405163a9059cbb60e01b81523360048201526024810192909252909384928391889183906044820190565b0393861c165af18015610605576105d6575b506040519081527fa8a63b0531e55ae709827fb089d01034e24a200ad14dc710dfa9e962005f629a60203392a280f35b6105f79060203d6020116105fe575b6105ef8183612759565b810190612866565b50386105a6565b503d6105e5565b6040513d85823e3d90fd5b6106289060203d6020116105fe576105ef8183612759565b5038610555565b60405162461bcd60e51b815260206004820152600860248201527f534c4950504147450000000000000000000000000000000000000000000000006044820152606490fd5b634e487b7160e01b84526011600452602484fd5b6001600160a01b039150610594816106af6106a560209487612b8a565b8560695416613e41565b610565565b50346103775780600319360112610377576020607054604051908152f35b5034610377576060366003190112610377577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c8600435602435906107516044356107286001600160a01b03606854163314612abf565b806071558360725582607055604051938493846040919493926060820195825260208201520152565b0390a180f35b5034610377576040366003190112610377576107716125da565b604061077b6125f0565b926001600160a01b03809316815260346020522091166000526020526020604060002054604051908152f35b5034610377578060031936011261037757602060ff60745460b01c166040519015158152f35b503461037757806003193601126103775760206001600160a01b0360685416604051908152f35b5034610377576020366003190112610377577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c86004356108406001600160a01b03606854163314612abf565b8060715560705461075160725492604051938493846040919493926060820195825260208201520152565b5034610377576020366003190112610377576108856125da565b6001600160a01b0319606854916001600160a01b03906108a88285163314612abf565b1691161760685580f35b5034610377578060031936011261037757610102815460ff8160081c161580610926575b6108df90612b97565b61ffff19161781556108ef613b4e565b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160028152a180f35b50600260ff8216106108d6565b5034610377576109423661268e565b9290916001600160a01b039161095d83606854163314612abf565b855b82811061096a578680f35b8361097e610979838686612c9a565b612caa565b16908460695416610990828989612c9a565b60405163a9059cbb60e01b81526001600160a01b03929092166004830152356024820152916020908190849060449082908d905af19283156109fa576001936109dc575b50500161095f565b816109f292903d106105fe576105ef8183612759565b5038806109d4565b6040513d8b823e3d90fd5b5034610377578060031936011261037757606554906001600160a01b03602080936024604051809481936370a0823160e01b8352306004840152851c165afa918215610a8c5791610a5a575b50604051908152f35b90508181813d8311610a85575b610a718183612759565b81010312610a80575138610a51565b600080fd5b503d610a67565b604051903d90823e3d90fd5b503461037757602036600319011261037757610ab26125da565b6001600160a01b0390610aca82606a54163314612c09565b166001600160a01b0319607454161760745580f35b5034610377578060031936011261037757602060405160648152f35b503461037757604036600319011261037757610b22610b186125da565b6024359033613f50565b602060405160018152f35b5034610377576020366003190112610377576020610b4c60043561313b565b604051908152f35b503461037757602036600319011261037757806020610bca6004356001600160a01b03610b868160695416331461281a565b610b908233613c22565b606554841c169060405194858094819363a9059cbb60e01b83523360048401602090939291936001600160a01b0360408201951681520152565b03925af18015610bf857610bdc575080f35b610bf49060203d6020116105fe576105ef8183612759565b5080f35b6040513d84823e3d90fd5b503461037757604036600319011261037757610c1d6125da565b6040602435923381526034602052206001600160a01b03821660005260205260406000205491808310610c5657610b2292039033613d3f565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608490fd5b50346103775780600319360112610377576020606e54604051908152f35b5034610377576040366003190112610377576024358015158103610a8057610d1d602091610d1560ff60745460a81c16156127ea565b600435612cbe565b6040519015158152f35b5034610377578060031936011261037757604051908060375490610d4a826126d9565b80855291602091600191828116908115610ddf5750600114610d87575b610d8386610d7781880382612759565b60405191829182612591565b0390f35b9350603784527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b838510610dcc57505050508101602001610d7782610d8338610d67565b8054868601840152938201938101610daf565b9050869550610d8396935060209250610d7794915060ff191682840152151560051b820101929338610d67565b5034610377577f5ae868cca8699cff09a2a4e0f91d871766444d92d260cc061e9f5cf8ef7a36656040610e3e36612647565b610e546001600160a01b03606854163314612abf565b81606e5580606f5582519182526020820152a180f35b5034610377576020366003190112610377577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c8600435610eb66001600160a01b03606854163314612abf565b6070819055607254607154604080519384526020840192909252908201528060608101610751565b503461037757610eed3661268e565b6001600160a01b039392610f0685606a54163314612c09565b855b818110610f13578680f35b610f21610979828488612c9a565b90610f2d818587612c9a565b35801515809103610f89577fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef388600194169182600052602090606d8252604060002060ff1981541660ff8316179055604051908152a201610f08565b8880fd5b503461037757806003193601126103775760206001600160a01b0360745416604051908152f35b503461037757602036600319011261037757606e546064039060648211610fe8576020610b4c60646104fd85600435612b57565b634e487b7160e01b81526011600452602490fd5b5034610377576020366003190112610377576110166125da565b6001600160a01b039061102e82606a54163314612c09565b1680600052606d602052604060002060ff1981541690557fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160008152a280f35b50346103775760203660031901126103775760406020916001600160a01b0361109a6125da565b168152603383522054604051908152f35b5034610377576020366003190112610377576110c56125da565b6001600160a01b03906110dd82606854163314612abf565b166001600160a01b0319606a541617606a5580f35b503461037757806003193601126103775760206001600160a01b03606b5416604051908152f35b503461037757602090816003193601126103775760043561114260ff60745460a81c16156127ea565b61114d81151561277b565b6111578133613c22565b8183606461116784606f54612b57565b0460646001600160a01b0361118a81606954166111848589612b8a565b90613e41565b6066541691604051948593849263ec32e6df60e01b84526004840152630784ce0060248401523360448401525af1928315610a8c57926111f9575b506040519081527fc1af970349bc805b72c8d6b943b259baa88e58e11438cd81833301aa4b58455d833392a2604051908152f35b9091508281813d8311611221575b6112118183612759565b81010312610a80575190386111c5565b503d611207565b5034610377578060031936011261037757602060ff60745460a81c166040519015158152f35b503461037757602036600319011261037757611268612638565b61127e6001600160a01b0360695416331461287e565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000060745492151560a01b1691161760745580f35b5034610377576020366003190112610377577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c86004356113146001600160a01b03606854163314612abf565b80607255607054610751607154604051938493846040919493926060820195825260208201520152565b503461037757806003193601126103775760206001600160a01b0360665416604051908152f35b503461037757806003193601126103775760206001600160a01b0360695416604051908152f35b503461037757806003193601126103775760206001600160a01b0360675416604051908152f35b5034610377578060031936011261037757602060ff60745460a01c166040519015158152f35b503461037757806003193601126103775760206001600160a01b03606a5416604051908152f35b5034610377576020806003193601126115235761141b6125da565b6001600160a01b03809161143482606a54163314612c09565b1691606b5492846001600160a01b0319948286821617606b551617604051630dfe168160e01b81528281600481855afa9081156115185786916114fb575b5083606554841c16848216146000146114f35750816004916040519283809263d21220a760e01b82525afa9182156114e85785926114bb575b50505b1690606c541617606c5580f35b6114da9250803d106114e1575b6114d28183612759565b810190612c7b565b38806114ab565b503d6114c8565b6040513d87823e3d90fd5b9150506114ae565b6115129150833d85116114e1576114d28183612759565b38611472565b6040513d88823e3d90fd5b5080fd5b50346103775780600319360112610377576020606f54604051908152f35b50346103775760203660031901126103775760ff60406020926001600160a01b0361156e6125da565b168152606d84522054166040519015158152f35b503461037757604036600319011261037757610b229060406115a26125da565b913381526034602052206001600160a01b0382166000526020526115cd6024356040600020546127c7565b9033613d3f565b50346103775760e0366003190112610377576115ee6125da565b906115f76125f0565b6044356001600160a01b0381168103610a8057606435906001600160a01b0382168203610a8057608435926001600160a01b0384168403610a805760a435926001600160a01b0384168403610a805760c4356001600160a01b0381168103610a805786549560ff8760081c161596878098611c7e575b8015611c67575b61167d90612b97565b60ff198116600117895587611c56575b506040519861169b8a61273d565b600d8a527f457363726f776564204e5552490000000000000000000000000000000000000060208b0152604051996116d28b61273d565b60058b527f784e55524900000000000000000000000000000000000000000000000000000060208c015261171560ff8b5460081c16611710816141b5565b6141b5565b80519067ffffffffffffffff8211611c425781906117346036546126d9565b601f8111611b99575b50602090601f8311600114611b11578c92611b06575b50508160011b916000199060031b1c1916176036555b895167ffffffffffffffff8111611af2576117856037546126d9565b9a601f8c11611a55575b8a809c5098999a50602090601f83116001146119a857946001600160a01b03809b8180978160449c9860209f9e9c988f9c839982918f9261199d575b50508160011b916000199060031b1c1916176037555b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006065549260201b169116179889606555169e8f97816066549d8e9a6001600160a01b0319809c16176066551689606754161760675516876068541617606855168560695416176069551683606a541617606a55169060745416176074556032606e556064606f556212750060705562278d00607155629e3400607255604051978896879563095ea7b360e01b8752161760048501526000196024850152861c165af180156106055761197e575b5060008052606d6020526040600020600160ff1982541617905560007fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160018152a261191830614166565b61192c6001600160a01b0360675416614166565b6119406001600160a01b0360695416614166565b6119475780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b6119969060203d6020116105fe576105ef8183612759565b50386118c8565b0151905038806117cb565b9060378a9b969798999b527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae918a5b601f1985168110611a3a57508a9994966001600160a01b03809d9993978160209e9a60018960449f9a99849d859b99869a601f19811610611a21575b505050811b016037556117e1565b015160001960f88460031b161c19169055388080611a13565b8183015184558e9b50600190930192602092830192016119d7565b60378b52601f820160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae0160208310611acb575b601f8d0160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae018110611ac0575061178f565b8b8155600101611a8b565b507f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae611a8b565b634e487b7160e01b8a52604160045260248afd5b015190503880611753565b925060368c527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8908c935b601f1984168510611b7e576001945083601f19811610611b65575b505050811b01603655611769565b015160001960f88460031b161c19169055388080611b57565b81810151835560209485019460019093019290910190611b3c565b90915060368c52601f830160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b80160208410611c1b575b908392915b8d601f830160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8018210611c0e57505061173d565b8155849350600101611bd7565b507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8611bd2565b634e487b7160e01b8b52604160045260248bfd5b61ffff19166101011788553861168d565b50303b158015611674575060ff8116600114611674565b50600160ff82161061166d565b503461037757806003193601126103775760206001600160a01b03606c5416604051908152f35b5034610377578060031936011261037757602060405160128152f35b503461037757611cdd36612647565b611cef60ff60745460a81c16156127ea565b611cfa82151561277b565b611d048233613c22565b60665460405163430c208160e01b808252336004830152602482018490526020936001600160a01b03939092908416918582604481865afa918215611f38578692611d56918a91611f74575b50612b0b565b6040519081523060048201526024810184905291829060449082905afa801561151857611d89918791611f575750612b0b565b6064611d9785606f54612b57565b0491611dab81606954166111848588612b8a565b630784ce00804201804211611f435762093a80809104818102918183041490151715611f435790829188959493606654169060405190635a2d1e0760e11b8252856004830152604082602481865afa918215611f38578892611efe575b5011611e97575b50506066541691823b15611e93576044849283604051958694859363b2383e5560e01b8552600485015260248401525af18015610bf857611e7b575b50507fc1af970349bc805b72c8d6b943b259baa88e58e11438cd81833301aa4b58455d906040519283523392a280f35b611e8490612713565b611e8f578238611e4b565b8280fd5b8380fd5b8095929394953b15611e8f57604483926040519485938492639d507b8b60e01b845289600485015260248401525af18015611ef357611edc575b908187949392611e0f565b611eea909691939296612713565b94909138611ed1565b6040513d89823e3d90fd5b9091506040813d604011611f30575b81611f1a60409383612759565b81010312611f2c578801519038611e08565b8780fd5b3d9150611f0d565b6040513d8a823e3d90fd5b634e487b7160e01b88526011600452602488fd5b611f6e9150853d87116105fe576105ef8183612759565b38611d50565b611f6e9150843d86116105fe576105ef8183612759565b50346103775760203660031901126103775760406020916001600160a01b03611fb26125da565b168152607383522054604051908152f35b503461037757602036600319011261037757611fdd6125da565b6001600160a01b0390611ff582606854163314612abf565b166001600160a01b0319606954161760695580f35b5034610377576020366003190112610377576020610d1d6120296125da565b6129ce565b5034610377576060366003190112610377576120486125da565b906120516125f0565b6040604435926001600160a01b038516815260346020528181203382526020522054926000198403612088575b610b229350613f50565b8284106120a45761209f83610b2295033383613d3f565b61207e565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b503461037757806003193601126103775760206065546001600160a01b0360405191831c168152f35b50346103775760203660031901126103775760043563ffffffff81168091036115235761214b6001600160a01b0360695416331461287e565b63ffffffff19606554161760655580f35b50346103775780600319360112610377576020603554604051908152f35b503461037757602036600319011261037757612194612638565b6121aa6001600160a01b0360695416331461287e565b7fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff75ff00000000000000000000000000000000000000000060745492151560a81b1691161760745580f35b503461037757602080600319360112611523576004359061221e60ff60745460a81c16156127ea565b61222f61222a336129ce565b61281a565b61223a82151561277b565b6065546040516323b872dd60e01b81523360048201523060248201526044810184905291908190839060649082908890851c6001600160a01b03165af19182156122d9577fa428517b481b65176e7c35a57b564d5cf943c8462468b8a0f025fa689173f901926122bc575b506122b08333613e41565b6040519283523392a280f35b6122d290823d84116105fe576105ef8183612759565b50386122a5565b6040513d86823e3d90fd5b5034610377576040366003190112610377576122fe6125da565b6001600160a01b031681526073602052604081208054602435929083101561037757608061232c8484612606565b508054906001810154906003600282015491015491604051938452602084015260408301526060820152f35b5034610377578060031936011261037757602063ffffffff60655416604051908152f35b503461037757604036600319011261037757610b226123996125da565b6024359033613d3f565b5034610377576020366003190112610377576004356123c381151561277b565b6123cd8133613c22565b3382526073602052604082208054906123e8607254426127c7565b90604051916080830183811067ffffffffffffffff8211176124ae57604052848352602083014281526040840191825260608401928584526801000000000000000086101561249a578561244191600182018155612606565b9490946124865751845551600184015551600283015551600390910155337f7d9230ebb47980ddc758fe4e69ea83a89dafbceb45bd45934798477baa5776688480a480f35b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b8234610377578060031936011261037757603654816124e0826126d9565b80855291602091600191828116908115612564575060011461250c57610d8386610d7781880382612759565b9350603684527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b85b83851061255157505050508101602001610d7782610d8385610d67565b8054868601840152938201938101612534565b9050869550610d8396935060209250610d7794915060ff191682840152151560051b820101929385610d67565b6020808252825181830181905290939260005b8281106125c657505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016125a4565b600435906001600160a01b0382168203610a8057565b602435906001600160a01b0382168203610a8057565b80548210156126225760005260206000209060021b0190600090565b634e487b7160e01b600052603260045260246000fd5b600435908115158203610a8057565b6040906003190112610a80576004359060243590565b9181601f84011215610a805782359167ffffffffffffffff8311610a80576020808501948460051b010111610a8057565b6040600319820112610a805767ffffffffffffffff91600435838111610a8057826126bb9160040161265d565b93909392602435918211610a80576126d59160040161265d565b9091565b90600182811c92168015612709575b60208310146126f357565b634e487b7160e01b600052602260045260246000fd5b91607f16916126e8565b67ffffffffffffffff811161272757604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761272757604052565b90601f8019910116810190811067ffffffffffffffff82111761272757604052565b1561278257565b60405162461bcd60e51b815260206004820152600d60248201527f78546f6b656e3a2021203e2030000000000000000000000000000000000000006044820152606490fd5b919082018092116127d457565b634e487b7160e01b600052601160045260246000fd5b156127f157565b60405162461bcd60e51b81526020600482015260016024820152600560fc1b6044820152606490fd5b1561282157565b60405162461bcd60e51b815260206004820152600d60248201527f78546f6b656e3a202141555448000000000000000000000000000000000000006044820152606490fd5b90816020910312610a8057518015158103610a805790565b1561288557565b60405162461bcd60e51b815260206004820152600560248201527f214d5349470000000000000000000000000000000000000000000000000000006044820152606490fd5b6000808052606d60209081527fda90043ba5b4096ba14704bc227ab0d3167da15b887e62ab2e76e37daa7113565460ff166129c7576001600160a01b0360248282606754166040519283809263aa79979b60e01b82528860048301525afa9081156122d95784916129aa575b5061299f578183916074541660246040518094819363134cbf4f60e11b83528160048401525af1918215610605578392612982575b50506129745790565b5061297d61411e565b600190565b6129989250803d106105fe576105ef8183612759565b388061296b565b50505061297d61411e565b6129c19150833d85116105fe576105ef8183612759565b38612936565b5050600190565b6001600160a01b039081811691600092808452602091606d835260ff604086205416612ab55760248382606754166040519283809263aa79979b60e01b82528760048301525afa908115611518578691612a98575b50612a8b578491602484926074541691604051948593849263134cbf4f60e11b845260048401525af19182156122d9578492612a6e575b5050612a64575090565b61297d9150614166565b612a849250803d106105fe576105ef8183612759565b3880612a5a565b50505061297d9150614166565b612aaf9150843d86116105fe576105ef8183612759565b38612a23565b5050505050600190565b15612ac657565b60405162461bcd60e51b815260206004820152600d60248201527f78546f6b656e3a202141757468000000000000000000000000000000000000006044820152606490fd5b15612b1257565b60405162461bcd60e51b815260206004820152601760248201527f78546f6b656e3a207665206e6f7420617070726f7665640000000000000000006044820152606490fd5b818102929181159184041417156127d457565b8115612b74570490565b634e487b7160e01b600052601260045260246000fd5b919082039182116127d457565b15612b9e57565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608490fd5b15612c1057565b60405162461bcd60e51b815260206004820152603d60248201527f78546f6b656e3a204f6e6c79207468652077686974656c697374696e67206f7060448201527f657261746f722063616e2063616c6c20746869732066756e6374696f6e0000006064820152608490fd5b90816020910312610a8057516001600160a01b0381168103610a805790565b91908110156126225760051b0190565b356001600160a01b0381168103610a805790565b60009133835260206073815260408085205480151590816130dc575b50156130995733855260738252612cf384828720612606565b50948554938415158061308c575b15613048576001968781015491838255612d1d607054846127c7565b421061300d57612e7c57600201544210612dd05750606554825163a9059cbb60e01b815233600482015260248101869052919084908390821c6001600160a01b0316818481604481015b03925af1908115612dc55750907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb76939291612da8575b50519283523392a390565b612dbe90833d85116105fe576105ef8183612759565b5038612d9d565b8351903d90823e3d90fd5b606e54906064612de08388612b57565b04916064036064811161067457612e2984936064612e22612e198a96612e13612e0c612d67988f612b57565b9142612b8a565b90612b57565b60725490612b6a565b04906127c7565b6001600160a01b03612e438160695416611184848c612b8a565b606554841c1690865195868094819363a9059cbb60e01b83523360048401602090939291936001600160a01b0360408201951681520152565b5060715442612e8b82846127c7565b11612f3857505080836001600160a01b0360665416606485518094819363ec32e6df60e01b83528a6004840152630784ce0060248401523360448401525af18015612f2e57612f04575b5050907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb7691519283523392a390565b8390813d8311612f27575b612f198183612759565b810103126103775780612ed5565b503d612f0f565b83513d84823e3d90fd5b606f54916064612f488489612b57565b049260640360648111612ff957926064612e228894612f72612f7795612e13612e0c8b9a8f612b57565b612b6a565b60646001600160a01b03612f938160695416611184858c612b8a565b60665416918651948593849263ec32e6df60e01b84526004840152630784ce0060248401523360448401525af18015612f2e57612f04575050907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb7691519283523392a390565b634e487b7160e01b85526011600452602485fd5b50505050907fcda231b62bdbcfdebaec108470aea3eb3fcc5ebe00d79b6e252850d4bf5c60b59161303e8433613e41565b519283523392a390565b825162461bcd60e51b815260048101859052601460248201527f78546f6b656e3a205665737420216163746976650000000000000000000000006044820152606490fd5b5085600388015414612d01565b60649250519062461bcd60e51b82526004820152601360248201527f78546f6b656e3a205665737420216578697374000000000000000000000000006044820152fd5b6000198101915081116130f25784111538612cda565b634e487b7160e01b86526011600452602486fd5b67ffffffffffffffff81116127275760051b60200190565b8051156126225760200190565b8051600110156126225760400190565b60745460b01c60ff16156131d257606b546065546040516328bd9fc160e11b81526001600160a01b03602092831c81166004830152602482019490945292909183916044918391165afa9081156131c657600091613197575090565b90506020813d6020116131be575b816131b260209383612759565b81010312610a80575190565b3d91506131a5565b6040513d6000823e3d90fd5b604080519067ffffffffffffffff60608301818111848210176127275782526002835260209081840192803685376065549463ffffffff9081871690816132188261311e565b52600096876132268361312b565b526001600160a01b039586606b5416898751809263883bdbfd60e01b82526004958c60249889850190828a8701525180915260448501929186905b828210613b2a575050505082809103915afa918215613b20578a92613a11575b505061329661328f8261312b565b519161311e565b5160060b9060060b03667fffffffffffff1993667fffffffffffff8213858312176135135760030b9060060b81156139ff57600019948114828614166135135781810560020b918a821291826139f0575b50506139de575b60020b888112156139d857600160ff1b81146139c6578089035b620d89e881116139a057879695949392918a9160018116156139845770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b169760028216613946575b848216613908575b600882166138ca575b6010821661388c575b8b821661384e575b8116613811575b6080908181166137d4575b6101008116613797575b610200811661375a575b610400811661371d575b61080081166136e0575b61100081166136a3575b6120008116613666575b6140008116613629575b61800081166135ec575b6201000081166135af575b620200008116613573575b620400008116613525575b62080000166134da575b50136134ac575b50505090613428918116156000146134a35760ff865b1690851c6127c7565b166fffffffffffffffffffffffffffffffff8111613473578061344a91612b57565b9381606c5416921c1610905060001461346a579061346791614400565b90565b61346791614384565b8061347d91614227565b9381606c5416921c1610905060001461349a57906134679161433f565b613467916142b6565b60ff600161341f565b909192945083156134c95750509161342891849304913880613409565b634e487b7160e01b88526012905286fd5b915096506b048a170391f7dc42444e8fa29591929394959182810292818404149015171561351357879695949392918a911c9538613402565b634e487b7160e01b8a5260118352838afd5b9850915091929394956d2216e584f5fa1ea926041bedfe989081810291818304149015171561356157889790821c96959493928b9290916133f8565b634e487b7160e01b8b5260118452848bfd5b9850915091929394956e5d6af8dedb81196699c329225ee60490818102918183041490151715613561579181899897969594938c931c976133ed565b9850915091929394956f09aa508b5b7a84e1c677de54f3e99bc990818102918183041490151715613561579181899897969594938c931c976133e2565b9850915091929394956f31be135f97d08fd981231505542fcfa690818102918183041490151715613561579181899897969594938c931c976133d7565b9850915091929394956f70d869a156d2a1b890bb3df62baf32f790818102918183041490151715613561579181899897969594938c931c976133cd565b9850915091929394956fa9f746462d870fdf8a65dc1f90e061e590818102918183041490151715613561579181899897969594938c931c976133c3565b9850915091929394956fd097f3bdfd2022b8845ad8f792aa582590818102918183041490151715613561579181899897969594938c931c976133b9565b9850915091929394956fe7159475a2c29b7443b29c7fa6e889d990818102918183041490151715613561579181899897969594938c931c976133af565b9850915091929394956ff3392b0822b70005940c7a398e4b70f390818102918183041490151715613561579181899897969594938c931c976133a5565b9850915091929394956ff987a7253ac413176f2b074cf7815e5490818102918183041490151715613561579181899897969594938c931c9761339b565b9850915091929394956ffcbe86c7900a88aedcffc83b479aa3a490818102918183041490151715613561579181899897969594938c931c97613391565b9850915091929394956ffe5dee046a99a2a811c461f1969c305390818102918183041490151715613561579181899897969594938c931c97613387565b9750919293949590506fff2ea16466c96a3843ec78b326b528619081810291818304149015171561351357879695949392918a9160801c9661337c565b9850915091929394956fff973b41fa98c081472e6896dfb254c09081810291818304149015171561356157918a918998979695949360801c97613375565b9850915091929394956fffcb9843d60f6159c9db58835c9266449081810291818304149015171561356157918a918998979695949360801c9761336d565b9850915091929394956fffe5caca7e10e4e61c3624eaa0941cd09081810291818304149015171561356157918a918998979695949360801c97613364565b9850915091929394956ffff2e50f5f656932ef12357cf3c7fdcc9081810291818304149015171561356157918a918998979695949360801c9761335b565b9850915091929394956ffff97272373d413259a46990580e213a9081810291818304149015171561356157918a918998979695949360801c97613353565b70ffffffffffffffffffffffffffffffffff600160801b613348565b865162461bcd60e51b81528084018a9052600181860152601560fa1b6044820152606490fd5b50634e487b7160e01b88526011905286fd5b80613308565b627fffff1981146139c65783016132ee565b0760060b1515905038806132e7565b634e487b7160e01b8a5260128352838afd5b9091503d808b843e613a238184612759565b8201908783830312613afb578251818111613af75783019282601f85011215613af757835193613a5285613106565b94613a5f8b519687612759565b8086528c8087019160051b83010191858311613b1c578d01905b828210613aff575050508a810151918211613af7570181601f82011215613afb578051908a80613aa884613106565b613ab48c519182612759565b848152019260051b820101928311613af7578a01905b828210613adb575050503880613281565b81518a81168103613af3578152908a01908a01613aca565b8c80fd5b8b80fd5b8a80fd5b81518060060b8103613b18578152908d01908d01613a79565b8f80fd5b8e80fd5b87513d8c823e3d90fd5b919496509282955081908d600194511681520194019101908e94928694928f613261565b6065546069546040516370a0823160e01b8152306004820152602092831c6001600160a01b0390811692168382602481865afa9081156131c6578492600092613bef575b5060405163a9059cbb60e01b81526001600160a01b039091166004820152602481019190915291829081600081604481015b03925af180156131c657613bd6575050565b81613bec92903d106105fe576105ef8183612759565b50565b8381949293503d8311613c1b575b613c078183612759565b81010312610a805790518391613bc4613b92565b503d613bfd565b6001600160a01b03168015613cf057613c4360ff60745460a81c16156127ea565b80600052603360205260406000205491808310613ca0576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92600095858752603384520360408620558060355403603555604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b6001600160a01b03809116918215613df05716918215613da05760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260348252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6001600160a01b031690811580613f0b57613e6460ff60745460a81c16156127ea565b15613eb9575b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082613e9c6000946035546127c7565b6035558484526033825260408420818154019055604051908152a3565b613ec16128ca565b613e6a575b60405162461bcd60e51b815260206004820152600b60248201527f78546f6b656e3a2021574c0000000000000000000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b916001600160a01b038084169283156140b357169283158061406257613f7e60ff60745460a81c16156127ea565b1561404e575b5060008281526033602052604081205491808310613fe357604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260338652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608490fd5b614057906129ce565b15613ec65738613f84565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608490fd5b60008052606d6020526040600020600160ff1982541617905560007fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160018152a2565b6001600160a01b031680600052606d6020526040600020600160ff198254161790557fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160018152a2565b156141bc57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608490fd5b60001982820990828102928380841093039280840393146142ad57680100000000000000009183831115614268570990828211900360c01b910360401c1790565b60405162461bcd60e51b815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f7700000000000000000000006044820152606490fd5b50505060401c90565b600160801b91600019828409928260801b928380861095039480860395146143325784831115614268578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b5050906134679250612b6a565b600019828209908281029283808410930392808403931461437b57600160801b9183831115614268570990828211900360801b910360801c1790565b50505060801c90565b600160c01b91600019828409928260c01b928380861095039480860395146143325784831115614268578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b600019828209908281029283808410930392808403931461443c57600160c01b9183831115614268570990828211900360401b910360c01c1790565b50505060c01c9056fea164736f6c6343000817000a