0 txs
0 calls
constructor
constructor(address _MASTER_CHEF, address _CAKE, uint256 _MASTER_PID, address _burnAdmin)
functions
ACC_CAKE_PRECISION
viewfunction ACC_CAKE_PRECISION() view returns (uint256)
BOOST_PRECISION
viewfunction BOOST_PRECISION() view returns (uint256)
boostContract
viewfunction boostContract() view returns (address)
burnAdmin
viewfunction burnAdmin() view returns (address)
CAKE_RATE_TOTAL_PRECISION
viewfunction CAKE_RATE_TOTAL_PRECISION() view returns (uint256)
CAKE
viewfunction CAKE() view returns (address)
cakePerBlock
viewfunction cakePerBlock(bool _isRegular) view returns (uint256 amount)
cakePerBlockToBurn
viewfunction cakePerBlockToBurn() view returns (uint256 amount)
cakeRateToBurn
viewfunction cakeRateToBurn() view returns (uint256)
cakeRateToRegularFarm
viewfunction cakeRateToRegularFarm() view returns (uint256)
cakeRateToSpecialFarm
viewfunction cakeRateToSpecialFarm() view returns (uint256)
getBoostMultiplier
viewfunction getBoostMultiplier(address _user, uint256 _pid) view returns (uint256)
lastBurnedBlock
viewfunction lastBurnedBlock() view returns (uint256)
lpToken
viewfunction lpToken(uint256) view returns (address)
MASTER_CHEF
viewfunction MASTER_CHEF() view returns (address)
MASTER_PID
viewfunction MASTER_PID() view returns (uint256)
MASTERCHEF_CAKE_PER_BLOCK
viewfunction MASTERCHEF_CAKE_PER_BLOCK() view returns (uint256)
MAX_BOOST_PRECISION
viewfunction MAX_BOOST_PRECISION() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingCake
viewfunction pendingCake(uint256 _pid, address _user) view returns (uint256)
poolInfo
viewfunction poolInfo(uint256) view returns (uint256 accCakePerShare, uint256 lastRewardBlock, uint256 allocPoint, uint256 totalBoostedShare, bool isRegular)
poolLength
viewfunction poolLength() view returns (uint256 pools)
totalRegularAllocPoint
viewfunction totalRegularAllocPoint() view returns (uint256)
totalSpecialAllocPoint
viewfunction totalSpecialAllocPoint() view returns (uint256)
userInfo
viewfunction userInfo(uint256, address) view returns (uint256 amount, uint256 rewardDebt, uint256 boostMultiplier)
whiteList
viewfunction whiteList(address) view returns (bool)
add
nonpayablefunction add(uint256 _allocPoint, address _lpToken, bool _isRegular, bool _withUpdate)
burnCake
nonpayablefunction burnCake(bool _withUpdate)
deposit
nonpayablefunction deposit(uint256 _pid, uint256 _amount)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 _pid)
harvestFromMasterChef
nonpayablefunction harvestFromMasterChef()
init
nonpayablefunction init(address dummyToken)
massUpdatePools
nonpayablefunction massUpdatePools()
renounceOwnership
nonpayablefunction renounceOwnership()
set
nonpayablefunction set(uint256 _pid, uint256 _allocPoint, bool _withUpdate)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateBoostContract
nonpayablefunction updateBoostContract(address _newBoostContract)
updateBoostMultiplier
nonpayablefunction updateBoostMultiplier(address _user, uint256 _pid, uint256 _newMultiplier)
updateBurnAdmin
nonpayablefunction updateBurnAdmin(address _newAdmin)
updateCakeRate
nonpayablefunction updateCakeRate(uint256 _burnRate, uint256 _regularFarmRate, uint256 _specialFarmRate, bool _withUpdate)
updatePool
nonpayablefunction updatePool(uint256 _pid) returns (tuple pool)
updateWhiteList
nonpayablefunction updateWhiteList(address _user, bool _isValid)
withdraw
nonpayablefunction withdraw(uint256 _pid, uint256 _amount)
events
AddPool
event AddPool(uint256 indexed pid, uint256 allocPoint, address indexed lpToken, bool isRegular)
Deposit
event Deposit(address indexed user, uint256 indexed pid, uint256 amount)
EmergencyWithdraw
event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount)
Init
event Init()
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetPool
event SetPool(uint256 indexed pid, uint256 allocPoint)
UpdateBoostContract
event UpdateBoostContract(address indexed boostContract)
UpdateBoostMultiplier
event UpdateBoostMultiplier(address indexed user, uint256 pid, uint256 oldMultiplier, uint256 newMultiplier)
UpdateBurnAdmin
event UpdateBurnAdmin(address indexed oldAdmin, address indexed newAdmin)
UpdateCakeRate
event UpdateCakeRate(uint256 burnRate, uint256 regularFarmRate, uint256 specialFarmRate)
UpdatePool
event UpdatePool(uint256 indexed pid, uint256 lastRewardBlock, uint256 lpSupply, uint256 accCakePerShare)
UpdateWhiteList
event UpdateWhiteList(address indexed user, bool isValid)
Withdraw
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount)
errors
No errors.
creation bytecode
0x60e06040526495e27d7580600a55640ea1fc81ce600b556444502b18b2600c553480156200002c57600080fd5b5060405162003e6538038062003e658339810160408190526200004f91620000f3565b60006200005b620000ef565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055606093841b6001600160601b03199081166080529290931b90911660a05260c052600280546001600160a01b0319166001600160a01b0390921691909117905562000167565b3390565b6000806000806080858703121562000109578384fd5b845162000116816200014e565b602086015190945062000129816200014e565b60408601516060870151919450925062000143816200014e565b939692955090935050565b6001600160a01b03811681146200016457600080fd5b50565b60805160601c60a05160601c60c051613c9e620001c760003980610f7c528061133552806116925250806112a95280611f7e5280612c0a5280612cdd5280612d8a525080610e955280610f4f5280611308528061278d5250613c9e6000f3fe608060405234801561001057600080fd5b50600436106102e95760003560e01c80637398b7ea11610191578063ac1d0609116100e3578063dfcedeee11610097578063e39e132311610071578063e39e13231461052b578063edd8b17014610569578063f2fde38b14610571576102e9565b8063dfcedeee14610546578063e0f91f6c1461054e578063e2bbb15814610556576102e9565b8063c507aeaa116100c8578063c507aeaa14610518578063cc6db2da1461052b578063dc6363df14610533576102e9565b8063ac1d0609146104fd578063c40d337b14610510576102e9565b80638da5cb5b116101455780639dcc1b5f1161011f5780639dcc1b5f146104da5780639dd2fcc3146104e2578063aa47bc8e146104f5576102e9565b80638da5cb5b146104a857806393f1a40b146104b057806399d7e84a146104d2576102e9565b806378db4c341161017657806378db4c341461048557806378ed5d1f1461048d57806381bdf98c146104a0576102e9565b80637398b7ea1461046a578063777a97f814610472576102e9565b806339aae5ba1161024a5780635312ea8e116101fe57806364482f79116101d857806364482f791461044757806369b021281461045a578063715018a614610462576102e9565b80635312ea8e1461042457806361621aaa14610437578063630b5ba11461043f576102e9565b80634ca6ef281161022f5780634ca6ef28146103e75780634f70b15a146103fc57806351eb05a614610404576102e9565b806339aae5ba146103cc578063441a3e70146103d4576102e9565b80631526fe27116102a15780631ce06d57116102865780631ce06d57146103915780631e9b828b14610399578063372c12b1146103ac576102e9565b80631526fe271461035a57806319ab453c1461037e576102e9565b8063081e3eda116102d2578063081e3eda1461032c5780630bb844bc146103345780631175a1dd14610347576102e9565b8063033186e8146102ee578063041a84c914610317575b600080fd5b6103016102fc366004613081565b610584565b60405161030e9190613ba7565b60405180910390f35b61032a6103253660046130ac565b6105da565b005b610301610952565b61032a61034236600461302d565b610958565b610301610355366004613148565b610ae4565b61036d610368366004613118565b610c97565b60405161030e959493929190613be4565b61032a61038c36600461302d565b610cd8565b610301611009565b6103016103a73660046130e0565b61100f565b6103bf6103ba36600461302d565b611074565b60405161030e91906132e0565b610301611089565b61032a6103e23660046131be565b611096565b6103ef6112a7565b60405161030e9190613268565b61032a6112cb565b610417610412366004613118565b611394565b60405161030e9190613b6b565b61032a610432366004613118565b611562565b610301611690565b61032a6116b4565b61032a6104553660046131df565b611748565b6103016118d6565b61032a6118e0565b6103016119c2565b61032a6104803660046130e0565b6119ce565b610301611aab565b6103ef61049b366004613118565b611ab1565b6103ef611ae5565b6103ef611b01565b6104c36104be366004613148565b611b1d565b60405161030e93929190613bce565b610301611b49565b610301611b4f565b61032a6104f036600461302d565b611b7d565b610301611cd5565b61032a61050b366004613049565b611cdb565b610301611e26565b61032a61052636600461316c565b611e2c565b61030161221c565b61032a610541366004613217565b612225565b6103ef61239e565b6103016123ba565b61032a6105643660046131be565b6123c0565b6103ef61278b565b61032a61057f36600461302d565b6127af565b600081815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281206002015464e8d4a5100081116105ce5764e8d4a510006105d0565b805b9150505b92915050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061384c565b60405180910390fd5b60026001541415610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613a54565b600260015573ffffffffffffffffffffffffffffffffffffffff83166106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906135b2565b600482815481106106d057fe5b600091825260209091206004600590920201015460ff1661071d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613906565b64e8d4a51000811015801561073857506501d1a94a20008111155b61076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613399565b610776612fdb565b61077f83611394565b600084815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8916845290915281209192506107bb8686610584565b90506107c88686836128fc565b610808670de0b6b3a76400006107fc856000015161080264e8d4a510006107fc8a89600001546129d990919063ffffffff16565b90612a2d565b906129d9565b60018301558154610854906108289064e8d4a51000906107fc90886129d9565b835461084e906108439064e8d4a51000906107fc90876129d9565b606087015190612a79565b90612abb565b6060840152600480548491908790811061086a57fe5b6000918252602080832084516005939093020191825583810151600183015560408085015160028085019190915560608601516003850155608090950151600490930180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016931515939093179092558883526006815281832073ffffffffffffffffffffffffffffffffffffffff8b1680855291529181902090920186905590517f01abd62439b64f6c5dab6f94d56099495bd0c094f9c21f98f4d3562a21edb4ba9061093e90889085908990613bce565b60405180910390a250506001805550505050565b60045490565b610960612afa565b73ffffffffffffffffffffffffffffffffffffffff1661097e611b01565b73ffffffffffffffffffffffffffffffffffffffff16146109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b73ffffffffffffffffffffffffffffffffffffffff8116610a18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061360f565b60025473ffffffffffffffffffffffffffffffffffffffff82811691161415610a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613a8b565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907fd146fe330fdddf682413850a35b28edfccd4c4b53cfee802fd24950de5be1dbe90600090a35050565b6000610aee612fdb565b60048481548110610afb57fe5b60009182526020918290206040805160a0810182526005909302909101805483526001810154938301939093526002830154908201526003820154606082015260049091015460ff16151560808201529050610b5561300c565b50600084815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845282529182902082516060808201855282548252600183015482850152600290920154938101939093528351908401519184015190919043118015610bc357508015155b15610c43576000610be1856020015143612a7990919063ffffffff16565b90506000610c1c8660800151610bf957600954610bfd565b6008545b6107fc8860400151610802610c158b6080015161100f565b87906129d9565b9050610c3e610c37846107fc84670de0b6b3a76400006129d9565b8590612abb565b935050505b6000610c6364e8d4a510006107fc610c5b8a8c610584565b8751906129d9565b6020850151909150610c8b90610c85670de0b6b3a76400006107fc85886129d9565b90612a79565b98975050505050505050565b60048181548110610ca457fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294509092909160ff1685565b610ce0612afa565b73ffffffffffffffffffffffffffffffffffffffff16610cfe611b01565b73ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190610da0903390600401613268565b60206040518083038186803b158015610db857600080fd5b505afa158015610dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df09190613130565b905080610e29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061333c565b610e4b73ffffffffffffffffffffffffffffffffffffffff8316333084612afe565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063095ea7b390610ebf907f00000000000000000000000000000000000000000000000000000000000000009085906004016132ba565b602060405180830381600087803b158015610ed957600080fd5b505af1158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1191906130fc565b506040517fe2bbb15800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e2bbb15890610fa6907f0000000000000000000000000000000000000000000000000000000000000000908590600401613bc0565b600060405180830381600087803b158015610fc057600080fd5b505af1158015610fd4573d6000803e3d6000fd5b505043600d5550506040517f57a86f7d14ccde89e22870afe839e3011216827daa9b24e18629f0a1e9d6cc1490600090a15050565b600c5481565b600081156110455761103e64e8d4a510006107fc600b5468022b1c8c1227a000006129d990919063ffffffff16565b905061106f565b61106c64e8d4a510006107fc600c5468022b1c8c1227a000006129d990919063ffffffff16565b90505b919050565b60076020526000908152604090205460ff1681565b68022b1c8c1227a0000081565b600260015414156110d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613a54565b60026001556110e0612fdb565b6110e983611394565b60008481526006602090815260408083203384529091529020805491925090831115611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906137a9565b600061114d3386610584565b905061115a3386836128fc565b83156111af57815461116c9085612a79565b82600001819055506111af33856005888154811061118657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169190612ba1565b6111e3670de0b6b3a76400006107fc856000015161080264e8d4a510006107fc8789600001546129d990919063ffffffff16565b600183015561122b6111fe64e8d4a510006107fc87856129d9565b6004878154811061120b57fe5b906000526020600020906005020160030154612a7990919063ffffffff16565b6004868154811061123857fe5b906000526020600020906005020160030181905550843373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568866040516112949190613ba7565b60405180910390a3505060018055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040517fe2bbb15800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e2bbb15890611360907f000000000000000000000000000000000000000000000000000000000000000090600090600401613bc0565b600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b50505050565b61139c612fdb565b600482815481106113a957fe5b60009182526020918290206040805160a0810182526005909302909101805483526001810154938301849052600281015491830191909152600381015460608301526004015460ff1615156080820152915043111561106f576060810151608082015160009061141b5760095461141f565b6008545b90506000821180156114315750600081115b1561149757600061144f846020015143612a7990919063ffffffff16565b9050600061146f836107fc8760400151610802610c158a6080015161100f565b905061149261148a856107fc84670de0b6b3a76400006129d9565b865190612abb565b855250505b43602084015260048054849190869081106114ae57fe5b6000918252602091829020835160059290920201908155828201516001820155604080840151600283015560608401516003830155608090930151600490910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558401518451915186927f3be3541fc42237d611b30329040bfa4569541d156560acdbbae57640d20b8f46926115539290918791613bce565b60405180910390a25050919050565b6002600154141561159f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613a54565b60026001819055506000600482815481106115b657fe5b60009182526020808320858452600682526040808520338087529352842080548582556001820186905560059094029091019450929061160c9064e8d4a51000906107fc906116059089610584565b85906129d9565b90508084600301541161162057600061162f565b600384015461162f9082612a79565b846003018190555061164933836005888154811061118657fe5b843373ffffffffffffffffffffffffffffffffffffffff167fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595846040516112949190613ba7565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045460005b81811015611744576116ca612fdb565b600482815481106116d757fe5b60009182526020918290206040805160a08101825260059093029091018054835260018101549383019390935260028301549082018190526003830154606083015260049092015460ff161515608082015291501561173b5761173982611394565b505b506001016116ba565b5050565b611750612afa565b73ffffffffffffffffffffffffffffffffffffffff1661176e611b01565b73ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b6117c483611394565b5080156117d3576117d36116b4565b600483815481106117e057fe5b600091825260209091206004600590920201015460ff161561183b576118338261084e6004868154811061181057fe5b906000526020600020906005020160020154600854612a7990919063ffffffff16565b600855611876565b6118728261084e6004868154811061184f57fe5b906000526020600020906005020160020154600954612a7990919063ffffffff16565b6009555b816004848154811061188457fe5b906000526020600020906005020160020181905550827fc0cfd54d2de2b55f1e6e108d3ec53ff0a1abe6055401d32c61e9433b747ef9f8836040516118c99190613ba7565b60405180910390a2505050565b6501d1a94a200081565b6118e8612afa565b73ffffffffffffffffffffffffffffffffffffffff16611906611b01565b73ffffffffffffffffffffffffffffffffffffffff1614611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b670de0b6b3a764000081565b6119d6612afa565b73ffffffffffffffffffffffffffffffffffffffff166119f4611b01565b73ffffffffffffffffffffffffffffffffffffffff1614611a41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b8015611a4f57611a4f6116b4565b6000611a66600d5443612a7990919063ffffffff16565b90506000611a7c611a75611b4f565b83906129d9565b600254909150611aa29073ffffffffffffffffffffffffffffffffffffffff1682612bc5565b505043600d5550565b600d5481565b60058181548110611abe57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600660209081526000928352604080842090915290825290208054600182015460029092015490919083565b60095481565b6000611b7864e8d4a510006107fc600a5468022b1c8c1227a000006129d990919063ffffffff16565b905090565b611b85612afa565b73ffffffffffffffffffffffffffffffffffffffff16611ba3611b01565b73ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b73ffffffffffffffffffffffffffffffffffffffff811615801590611c30575060035473ffffffffffffffffffffffffffffffffffffffff828116911614155b611c66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613b0e565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f4c0c07d0b548b824a1b998eb4d11fccf1cfbc1e47edcdb309970ba88315eb30390600090a250565b600b5481565b611ce3612afa565b73ffffffffffffffffffffffffffffffffffffffff16611d01611b01565b73ffffffffffffffffffffffffffffffffffffffff1614611d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b73ffffffffffffffffffffffffffffffffffffffff8216611d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613963565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600760205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517fc551bbb22d0406dbfb8b6b7740cc521bcf44e1106029cf899c19b6a8e4c99d5190611e1a9084906132e0565b60405180910390a25050565b60085481565b611e34612afa565b73ffffffffffffffffffffffffffffffffffffffff16611e52611b01565b73ffffffffffffffffffffffffffffffffffffffff1614611e9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190611ef4903090600401613268565b60206040518083038186803b158015611f0c57600080fd5b505afa158015611f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f449190613130565b1015611f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906137e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612002576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906138a9565b8015612010576120106116b4565b811561202b576008546120239085612abb565b60085561203c565b6009546120389085612abb565b6009555b60058054600180820183557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87169081179091556040805160a081018252600080825243602083019081529282018a8152606083018281528915156080850190815260048054808a018255945293517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9389029384015593517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c830155517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d82015591517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e830155517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19f90910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905591546121dd91612a79565b7f18caa0724a26384928efe604ae6ddc99c242548876259770fc88fcb7e719d8fa868560405161220e929190613bb0565b60405180910390a350505050565b64e8d4a5100081565b61222d612afa565b73ffffffffffffffffffffffffffffffffffffffff1661224b611b01565b73ffffffffffffffffffffffffffffffffffffffff1614612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b6000841180156122a85750600083115b80156122b45750600082115b6122ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061366c565b64e8d4a510006122fe8361084e8787612abb565b14612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906139f7565b8015612343576123436116b4565b61234d60006119ce565b600a849055600b839055600c8290556040517fae2d2e7d1ae84564fc72227253ce0f36a007209f7fd5ec414dea80e5af2fb5b09061239090869086908690613bce565b60405180910390a150505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600260015414156123fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613a54565b600260015561240a612fdb565b61241383611394565b600084815260066020908152604080832033845290915290206080820151919250908061244f57503360009081526007602052604090205460ff165b612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906136c9565b60006124913386610584565b8254909150156124a6576124a63386836128fc565b83156126a2576000600586815481106124bb57fe5b6000918252602090912001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061251a903090600401613268565b60206040518083038186803b15801561253257600080fd5b505afa158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256a9190613130565b90506125a933308760058a8154811061257f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16929190612afe565b61266981600588815481106125ba57fe5b6000918252602090912001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190612619903090600401613268565b60206040518083038186803b15801561263157600080fd5b505afa158015612645573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c859190613130565b83549095506126789086612abb565b835561269b61269064e8d4a510006107fc88866129d9565b606086015190612abb565b6060850152505b6126d6670de0b6b3a76400006107fc856000015161080264e8d4a510006107fc8789600001546129d990919063ffffffff16565b826001018190555082600486815481106126ec57fe5b6000918252602091829020835160059290920201908155908201516001820155604080830151600283015560608301516003830155608090920151600490910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905551859033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590611294908890613ba7565b7f000000000000000000000000000000000000000000000000000000000000000081565b6127b7612afa565b73ffffffffffffffffffffffffffffffffffffffff166127d5611b01565b73ffffffffffffffffffffffffffffffffffffffff1614612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613817565b73ffffffffffffffffffffffffffffffffffffffff811661286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90613453565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61290461300c565b50600082815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320815160608101835281548082526001830154948201949094526002909101549181019190915291906129719064e8d4a51000906107fc90866129d9565b905060006129a9670de0b6b3a76400006107fc6004888154811061299157fe5b600091825260209091206005909102015485906129d9565b905060006129c4846020015183612a7990919063ffffffff16565b90506129d08782612bc5565b50505050505050565b6000826129e8575060006105d4565b828202828482816129f557fe5b04146105ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061374c565b6000808211612a68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061357b565b818381612a7157fe5b049392505050565b600082821115612ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906134e7565b50900390565b6000828201838110156105ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906134b0565b3390565b61138e846323b872dd60e01b858585604051602401612b1f93929190613289565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612db1565b612bc08363a9059cbb60e01b8484604051602401612b1f9291906132ba565b505050565b8015611744576040517f70a08231000000000000000000000000000000000000000000000000000000008152819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612c3f903090600401613268565b60206040518083038186803b158015612c5757600080fd5b505afa158015612c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8f9190613130565b1015612c9d57612c9d6112cb565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612d12903090600401613268565b60206040518083038186803b158015612d2a57600080fd5b505afa158015612d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d629190613130565b905081811015612d70578091505b612bc073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168484612ba1565b6060612e13826040518060400160405280602081526020017f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e679092919063ffffffff16565b805190915015612bc05780806020019051810190612e3191906130fc565b612bc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906133f6565b6060612e768484600085612e80565b90505b9392505050565b606082471015612ebc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b9061351e565b612ec585612f82565b612efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b906139c0565b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051612f25919061324c565b60006040518083038185875af1925050503d8060008114612f62576040519150601f19603f3d011682016040523d82523d6000602084013e612f67565b606091505b5091509150612f77828286612f88565b979650505050505050565b3b151590565b60608315612f97575081612e79565b825115612fa75782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b91906132eb565b6040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b60405180606001604052806000815260200160008152602001600081525090565b60006020828403121561303e578081fd5b81356105ce81613c35565b6000806040838503121561305b578081fd5b823561306681613c35565b9150602083013561307681613c5a565b809150509250929050565b60008060408385031215613093578182fd5b823561309e81613c35565b946020939093013593505050565b6000806000606084860312156130c0578081fd5b83356130cb81613c35565b95602085013595506040909401359392505050565b6000602082840312156130f1578081fd5b81356105ce81613c5a565b60006020828403121561310d578081fd5b81516105ce81613c5a565b600060208284031215613129578081fd5b5035919050565b600060208284031215613141578081fd5b5051919050565b6000806040838503121561315a578182fd5b82359150602083013561307681613c35565b60008060008060808587031215613181578081fd5b84359350602085013561319381613c35565b925060408501356131a381613c5a565b915060608501356131b381613c5a565b939692955090935050565b600080604083850312156131d0578182fd5b50508035926020909101359150565b6000806000606084860312156131f3578283fd5b8335925060208401359150604084013561320c81613c5a565b809150509250925092565b6000806000806080858703121561322c578384fd5b84359350602085013592506040850135915060608501356131b381613c5a565b6000825161325e818460208701613c09565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b901515815260200190565b600060208252825180602084015261330a816040850160208701613c09565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526023908201527f4d61737465724368656656323a2042616c616e6365206d75737420657863656560408201527f6420300000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602a908201527f4d61737465724368656656323a20496e76616c6964206e657720626f6f73742060408201527f6d756c7469706c69657200000000000000000000000000000000000000000000606082015260800190565b6020808252602a908201527f5361666542455032303a204245503230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b6020808252602c908201527f4d61737465724368656656323a2054686520757365722061646472657373206d60408201527f7573742062652076616c69640000000000000000000000000000000000000000606082015260800190565b6020808252602e908201527f4d61737465724368656656323a204275726e2061646d696e206164647265737360408201527f206d7573742062652076616c6964000000000000000000000000000000000000606082015260800190565b6020808252602e908201527f4d61737465724368656656323a2043616b652072617465206d7573742062652060408201527f67726561746572207468616e2030000000000000000000000000000000000000606082015260800190565b60208082526042908201527f4d61737465724368656656323a205468652061646472657373206973206e6f7460408201527f20617661696c61626c6520746f206465706f73697420696e207468697320706f60608201527f6f6c000000000000000000000000000000000000000000000000000000000000608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526016908201527f77697468647261773a20496e73756666696369656e7400000000000000000000604082015260600190565b60208082526011908201527f4e6f6e6520424550323020746f6b656e73000000000000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520626f6f737460408201527f20636f6e74726163740000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f43414b4520746f6b656e2063616e277420626520616464656420746f2066617260408201527f6d20706f6f6c7300000000000000000000000000000000000000000000000000606082015260800190565b60208082526030908201527f4d61737465724368656656323a204f6e6c7920726567756c6172206661726d2060408201527f636f756c6420626520626f6f7374656400000000000000000000000000000000606082015260800190565b60208082526032908201527f4d61737465724368656656323a20546865207768697465206c6973742061646460408201527f72657373206d7573742062652076616c69640000000000000000000000000000606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526025908201527f4d61737465724368656656323a20546f74616c2072617465206d75737420626560408201527f2031653132000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526041908201527f4d61737465724368656656323a204275726e2061646d696e206164647265737360408201527f206973207468652073616d6520776974682063757272656e742061646472657360608201527f7300000000000000000000000000000000000000000000000000000000000000608082015260a00190565b60208082526036908201527f4d61737465724368656656323a204e657720626f6f737420636f6e747261637460408201527f2061646472657373206d7573742062652076616c696400000000000000000000606082015260800190565b600060a0820190508251825260208301516020830152604083015160408301526060830151606083015260808301511515608083015292915050565b90815260200190565b9182521515602082015260400190565b918252602082015260400190565b9283526020830191909152604082015260600190565b9485526020850193909352604084019190915260608301521515608082015260a00190565b60005b83811015613c24578181015183820152602001613c0c565b8381111561138e5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613c5757600080fd5b50565b8015158114613c5757600080fdfea264697066735822122099fba1e104789617e269088e8d1b7f535837652dd6a4375093c6b5b86cf8378c64736f6c634300060c0033000000000000000000000000561480fe2090f3a381a0c2ff155cf11f4565d175000000000000000000000000df11c9bbd8a0956ad881f50d0901987fa157c5c60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df11c9bbd8a0956ad881f50d0901987fa157c5c6