0 txs
16 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address, address) view returns (uint256)
balanceOf
viewfunction balanceOf(address) view returns (uint256)
claimableReward
viewfunction claimableReward(address _user, address _reward_token) view returns (uint256)
claimData
viewfunction claimData(address, address) view returns (uint256)
claimedReward
viewfunction claimedReward(address _addr, address _token) view returns (uint256)
controller
viewfunction controller() view returns (address)
decimals
viewfunction decimals() view returns (uint256)
factory
viewfunction factory() view returns (address)
futureEpochTime
viewfunction futureEpochTime() view returns (uint256)
inflationRate
viewfunction inflationRate() view returns (uint256)
integrateCheckpoint
viewfunction integrateCheckpoint() view returns (uint256)
integrateCheckpointOf
viewfunction integrateCheckpointOf(address) view returns (uint256)
integrateFraction
viewfunction integrateFraction(address) view returns (uint256)
integrateInvSupplyOf
viewfunction integrateInvSupplyOf(address) view returns (uint256)
isKilled
viewfunction isKilled() view returns (bool)
lpBalanceOf
viewfunction lpBalanceOf(address addr) view returns (uint256)
lpToken
viewfunction lpToken() view returns (address)
lpTotalSupply
viewfunction lpTotalSupply() view returns (uint256)
ltToken
viewfunction ltToken() view returns (address)
minter
viewfunction minter() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
period
viewfunction period() view returns (uint256)
periodTimestamp
viewfunction periodTimestamp(uint256) view returns (uint256)
permit2Address
viewfunction permit2Address() view returns (address)
rewardCount
viewfunction rewardCount() view returns (uint256)
rewardData
viewfunction rewardData(address) view returns (address token, address distributor, uint256 periodFinish, uint256 rate, uint256 lastUpdate, uint256 integral)
rewardIntegralFor
viewfunction rewardIntegralFor(address, address) view returns (uint256)
rewardsReceiver
viewfunction rewardsReceiver(address) view returns (address)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
votingEscrow
viewfunction votingEscrow() view returns (address)
workingBalances
viewfunction workingBalances(address) view returns (uint256)
workingSupply
viewfunction workingSupply() view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
addReward
nonpayablefunction addReward(address _rewardToken, address _distributor)
approve
nonpayablefunction approve(address _spender, uint256 _value) returns (bool)
claimableTokens
nonpayablefunction claimableTokens(address _addr) returns (uint256)
claimRewards
nonpayablefunction claimRewards()
claimRewards
nonpayablefunction claimRewards(address _addr, address _receiver)
claimRewards
nonpayablefunction claimRewards(address _addr)
decreaseAllowance
nonpayablefunction decreaseAllowance(address _spender, uint256 _subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 _value, uint256 _nonce, uint256 _deadline, bytes _signature, address _addr, bool _claimRewards_)
deposit
nonpayablefunction deposit(uint256 _value, uint256 _nonce, uint256 _deadline, bytes _signature, address _addr)
deposit
nonpayablefunction deposit(uint256 _value, uint256 _nonce, uint256 _deadline, bytes _signature)
depositRewardToken
payablefunction depositRewardToken(address _rewardToken, uint256 _amount) payable
increaseAllowance
nonpayablefunction increaseAllowance(address _spender, uint256 _addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _lpAddr, address _minter, address _permit2Address, address _owner)
kick
nonpayablefunction kick(address _addr)
renounceOwnership
nonpayablefunction renounceOwnership()
setKilled
nonpayablefunction setKilled(bool _isKilled)
setPermit2Address
nonpayablefunction setPermit2Address(address newAddress)
setRewardDistributor
nonpayablefunction setRewardDistributor(address _rewardToken, address _distributor)
setRewardsReceiver
nonpayablefunction setRewardsReceiver(address _receiver)
transfer
nonpayablefunction transfer(address _to, uint256 _value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address _from, address _to, uint256 _value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
userCheckpoint
nonpayablefunction userCheckpoint(address _addr) returns (bool)
withdraw
nonpayablefunction withdraw(uint256 _value, bool _claimRewards_)
withdraw
nonpayablefunction withdraw(uint256 _value)
events
AddReward
event AddReward(address indexed sender, address indexed rewardToken, address indexed distributorAddress)
Approval
event Approval(address indexed _owner, address indexed _spender, uint256 _value)
ChangeRewardDistributor
event ChangeRewardDistributor(address sender, address indexed rewardToken, address indexed newDistributorAddress, address oldDistributorAddress)
Deposit
event Deposit(address indexed provider, uint256 value)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
SetPermit2Address
event SetPermit2Address(address oldAddress, address newAddress)
Transfer
event Transfer(address indexed _from, address indexed _to, uint256 _value)
UpdateLiquidityLimit
event UpdateLiquidityLimit(address user, uint256 originalBalance, uint256 originalSupply, uint256 workingBalance, uint256 workingSupply, uint256 votingBalance, uint256 votingTotal)
Withdraw
event Withdraw(address indexed provider, uint256 value)
errors
No errors.
creation bytecode
0x608080604052346100705761dead60018060a01b031980600154166001556000543382821617600055339060018060a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36001601255602754161760275561485e90816100768239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063025185c314612abd57806306fdde0314612a1757806307546172146129ee57806309599504146129a9578063095ea7b31461298357806318160ddd14611a8757806323b872dd146128f157806326195826146128aa57806327cc37b01461285f5780632b1b9a21146124ea5780632e1a7d4d14612429578063313ce5671461240b57806331e202cc146123df57806331f9e35b146123c157806334380a6114612367578063372500ab1461234257806338d074361461223b57806339509351146121ea57806340b47e1a146120ca57806348e5d9f8146120555780634f2bfe5b1461202c578063505362c41461200057806353cc9e5414611ead5780635fcbd28514611e8457806363f5777714611e3357806364e6ec0314611aa557806366be232214611a8757806368bbad9814611a4c57806370a0823114611489578063715018a6146119e75780637699b4cd146119ad578063790854251461198f57806379ba50971461190a5780637bb7bed1146118d457806384d24226146118115780638da5cb5b146117e85780638fe8a101146117c2578063958da8de1461178857806395d89b41146116b457806396c55175146114c35780639c46665c146114895780639e48d35e1461146b578063a154f1bb146113d1578063a457c2d714611350578063a5870d6b14611327578063a9059cbb146112e9578063b07b709b14611248578063b1bd60861461120e578063c45a0155146111e5578063c5224983146111bc578063c8562f721461119e578063caa0b9ed14611164578063d26abffa1461101a578063dd62ed3e14610fc9578063e30c397814610fa0578063e50912ae14610f4f578063ef5cfb8c14610f22578063ef78d4fd14610f04578063f1e42ccd14610af9578063f2fde38b14610a8e578063f77c479114610a655763f8c8765e146102c657600080fd5b3461078b57608036600319011261078b576102df612c0c565b6102e7612c22565b6001600160a01b039190604435838116919082900361078b576064358481169081810361078b5760275492868416610a38576001600160a01b0319938416331760275561035190879061033d88831615156134f1565b169261034a8415156134f1565b15156134f1565b6011549060ff82166109dc5760016103709260ff191617601155612d12565b8484168260025416176002558082600354161760035560405190637e062a3560e11b8252602082600481845afa90811561079857866020926004946000916109bf575b5016848454161783556040519283809263f77c479160e01b82525afa801561079857856020916004936000916109a2575b50168084600554161760055560405192838092634f2bfe5b60e01b82525afa8015610798578591600091610973575b501681600654161760065560008052600b602052426040600020558360045416604051631627391760e11b8152602081600481855afa90811561079857600091610940575b5060009160209160105560046040518094819363277dbafb60e01b83525af19081156107985760009161090e575b5060075560165416176016556040516395d89b4160e01b81526000816004818686165afa90811561079857600091610895575b508051906001600160401b0382116106cd576104d6601454612c38565b601f8111610828575b50602090601f83116001146107af576020939291600091836107a4575b50508160011b916000199060031b1c1916176014555b60046040518094819363313ce56760e01b8352165afa801561079857600090610756575b60ff91501660155560405180600060145461055081612c38565b906001811690811561073257506001146106e3575b5061058891816520476175676560d01b6006935203601919810184520182612b73565b80516001600160401b0381116106cd576105a3601354612c38565b601f8111610668575b50602091601f82116001146105ea579181926000926105df575b5050600019600383901b1c191660019190911b17601355005b0151905038806105c6565b601f1982169260136000527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909160005b85811061065057508360019510610637575b505050811b01601355005b015160001960f88460031b161c1916905538808061062c565b9192602060018192868501518155019401920161061a565b60136000527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090601f830160051c810191602084106106c3575b601f0160051c01905b8181106106b757506105ac565b600081556001016106aa565b90915081906106a1565b634e487b7160e01b600052604160045260246000fd5b9150506014600052816000805160206148098339815191526000905b8382106107185750909182016020019050610588610565565b6020919250806001915483858801015201910183916106ff565b60ff1916602085810191909152821515909202840190910191506105889050610565565b506020813d602011610790575b8161077060209383612b73565b8101031261078b575160ff8116810361078b5760ff90610536565b600080fd5b3d9150610763565b6040513d6000823e3d90fd5b0151905038806104fc565b9060146000526000805160206148098339815191529160005b601f1985168110610810575091839160019360209695601f198116106107f7575b505050811b01601455610512565b015160001960f88460031b161c191690553880806107e9565b919260206001819286850151815501940192016107c8565b6014600052601f830160051c60008051602061480983398151915201906020841061087f575b601f0160051c60008051602061480983398151915201905b81811061087357506104df565b60008155600101610866565b600080516020614809833981519152915061084e565b90503d806000833e6108a78183612b73565b81019060208183031261078b578051906001600160401b03821161078b570181601f8201121561078b5780516108dc81612b94565b926108ea6040519485612b73565b8184526020828401011161078b576109089160208085019101612c72565b386104b9565b90506020813d602011610938575b8161092960209383612b73565b8101031261078b575138610486565b3d915061091c565b90506020813d60201161096b575b8161095b60209383612b73565b8101031261078b57516000610458565b3d915061094e565b610995915060203d60201161099b575b61098d8183612b73565b810190613525565b38610413565b503d610983565b6109b99150833d851161099b5761098d8183612b73565b386103e4565b6109d69150843d861161099b5761098d8183612b73565b386103b3565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b60405162461bcd60e51b815260206004820152600560248201526423a818181960d91b6044820152606490fd5b3461078b57600036600319011261078b576005546040516001600160a01b039091168152602090f35b3461078b57602036600319011261078b57610aa7612c0c565b610aaf612cba565b60018060a01b0380911690816001600160601b0360a01b6001541617600155600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461078b57604036600319011261078b57610b12612c0c565b610b1a612c22565b610b22613544565b6001600160a01b03169081610ec7575b6018549160405190610b4382612b58565b600060408301526000606083015260006080830152600060a0830152600060c08301526000825280602083015260018060a01b038316610e63575b50601b54604082015260005b60088110610b9a575b6001601255005b60408201518114610e5e57601c8101546001600160a01b0390811660608401818152600091825260246020818152604080852060050154608089015292519094168352909252206002015442811115610e555750610c20425b60a0840181905260608401516001600160a01b031660009081526024602052604090206004015490612d96565b8060c0840152610d87575b610c42906001600160a01b038416610c4757612fad565b610b8a565b60608301516001600160a01b0390811660009081526025602081815260408084209489168452939052918120546080860151808210610d2c575b5050905060018060a01b038516600052601a80602052604060002060018060a01b03606087015116600052602052610cc2604060002054928360801c612da3565b9081610cd1575b505050612fad565b610ce7826001600160801b03610d239516612da3565b6001600160a01b0388811660009081526020938452604080822060608b018051851684529086529120929092559051918701518116911661460f565b50858080610cc9565b610d7e9250670de0b6b3a76400009360018060a01b03606089015116600052602052604060002060018060a01b038916600052602052604060002055610d788651916080880151612d96565b90612d63565b04808780610c81565b60a082015160608301516001600160a01b03166000908152602460205260409020600401558315610c2b5760c082015160608301516001600160a01b031660009081526040902060030154610ddb91612d63565b90670de0b6b3a7640000918083810204831481151715610e3f57610e0786610c4294610e119302612d76565b6080850151612da3565b6080840181905260608401516001600160a01b03166000908152602460205260409020600501559050610c2b565b634e487b7160e01b600052601160045260246000fd5b610c2090610bf3565b610b93565b6001600160a01b038316600090815260176020526040902054825215610e8a575b83610b7e565b60018060a01b038216600052602660205260018060a01b0360406000205416806020830152610e84576001600160a01b0382166020820152610e84565b6001600160a01b0381163314610b325760405162461bcd60e51b8152602060048201526005602482015264475030313160d81b6044820152606490fd5b3461078b57600036600319011261078b576020600a54604051908152f35b3461078b57602036600319011261078b57610b93610f3e612c0c565b610f46613544565b601854906142e6565b3461078b57604036600319011261078b57610f68612c0c565b610f70612c22565b9060018060a01b03809116600052601a602052604060002091166000526020526020604060002054604051908152f35b3461078b57600036600319011261078b576001546040516001600160a01b039091168152602090f35b3461078b57604036600319011261078b57610fe2612c0c565b610fea612c22565b9060018060a01b038091166000526019602052604060002091166000526020526020604060002054604051908152f35b3461078b57604036600319011261078b57611033612c0c565b6001600160a01b0380611044612c22565b16918260005260209260248452600560406000200154601854806110ce575b506110a4670de0b6b3a7640000916110c69584600052602588526040600020951694856000528752610d786040600020546017895260406000205492612d96565b0491600052601a8452604060002090600052835260406000205460801c612da3565b604051908152f35b9360026040600020015480421060001461115857506111116110fa425b60046040600020015490612d96565b846000526024885260036040600020015490612d63565b90670de0b6b3a764000091828102928184041490151715610e3f5761114f670de0b6b3a7640000936111496110c6986110a495612d76565b90612da3565b92509450611063565b6110fa611111916110eb565b3461078b57602036600319011261078b576001600160a01b03611185612c0c565b16600052600f6020526020604060002054604051908152f35b3461078b57600036600319011261078b576020600954604051908152f35b3461078b57600036600319011261078b576016546040516001600160a01b039091168152602090f35b3461078b57600036600319011261078b576027546040516001600160a01b039091168152602090f35b3461078b57602036600319011261078b576001600160a01b0361122f612c0c565b16600052600d6020526020604060002054604051908152f35b3461078b57602036600319011261078b57611261612c0c565b6001600160a01b0381811691903383149081156112db575b50156112ae576112a39161128c82612fbc565b600052601760205260406000205460185491612db0565b602060405160018152f35b60405162461bcd60e51b8152602060048201526005602482015264047503030360dc1b6044820152606490fd5b905060035416331483611279565b3461078b57604036600319011261078b57611317611305612c0c565b61130d613544565b602435903361389d565b6001601255602060405160018152f35b3461078b57600036600319011261078b576004546040516001600160a01b039091168152602090f35b3461078b57604036600319011261078b57611369612c0c565b60243590336000526019602052604060002060018060a01b038216600052602052604060002054918083106113a4576112a39203903361397c565b60405162461bcd60e51b8152602060048201526005602482015264475030303360d81b6044820152606490fd5b3461078b57602036600319011261078b577f35f7c25f313d8b378045946ab43056cd8fbf3cb403496ebaa0beef117936ec3261140b612c0c565b611413612cba565b6001600160a01b0390808216906114669061142f8315156134f1565b601680546001600160a01b0319811694909417905560408051949093166001600160a01b0390811685521660208401528291820190565b0390a1005b3461078b57600036600319011261078b576020600754604051908152f35b3461078b57602036600319011261078b576001600160a01b036114aa612c0c565b1660005260176020526020604060002054604051908152f35b3461078b5760208060031936011261078b576114dd612c0c565b60018060a01b03918282169081600052600e815260406000205493600654166040516381fc83bb60e01b81528360048201528281602481855afa8015610798578390600090611685575b60405163eac6a66760e01b81526001600160a01b0388166004820152602481019190915291508180604481015b0381855afa90811561079857600091611658575b50600084815260178452604090819020549051633037408d60e01b81526001600160a01b0387166004820152426024820152909690928490849060449082905afa801561079857600090611629575b6115cc93501591821561161f575b50506134bd565b816000526008815260406000205491602885029480860460281490151715610e3f57611601601793606461161d9704106134bd565b61160a84612fbc565b6000525260406000205460185491612db0565b005b11905086806115c5565b508383813d8311611651575b61163f8183612b73565b8101031261078b576115cc92516115b7565b503d611635565b90508281813d831161167e575b61166f8183612b73565b8101031261078b575186611568565b503d611665565b5081813d83116116ad575b61169a8183612b73565b8101031261078b57826115549151611527565b503d611690565b3461078b57600036600319011261078b5760405160006014546116d681612c38565b808452906001908181169081156117615750600114611718575b6117148461170081860382612b73565b604051918291602083526020830190612c95565b0390f35b6014600090815292506000805160206148098339815191525b828410611749575050508101602001611700826116f0565b80546020858701810191909152909301928101611731565b60ff191660208087019190915292151560051b8501909201925061170091508390506116f0565b3461078b57602036600319011261078b576001600160a01b036117a9612c0c565b1660005260086020526020604060002054604051908152f35b3461078b57600036600319011261078b57602060ff60015460a01c166040519015158152f35b3461078b57600036600319011261078b576000546040516001600160a01b039091168152602090f35b3461078b5760208060031936011261078b5761188661182e612c0c565b61183781612fbc565b6001600160a01b039081166000818152600f85526040908190205460035491516308b752bb60e41b81526004810193909352306024840152919391928592859290911690829081906044820190565b03915afa908115610798576000916118a3575b6110c69250612d96565b90508282813d83116118cd575b6118ba8183612b73565b8101031261078b576110c6915190611899565b503d6118b0565b3461078b57602036600319011261078b57600435600881101561078b57601c01546040516001600160a01b039091168152602090f35b3461078b57600036600319011261078b57600154336001600160a01b03909116036119385761161d33612d12565b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461078b57600036600319011261078b576020601b54604051908152f35b3461078b57602036600319011261078b576001600160a01b036119ce612c0c565b16600052600e6020526020604060002054604051908152f35b3461078b57600036600319011261078b57611a00612cba565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461078b57602036600319011261078b5760206001600160a01b0380611a70612c0c565b166000526026825260406000205416604051908152f35b3461078b57600036600319011261078b576020601854604051908152f35b3461078b5760c036600319011261078b576044356064356001600160401b03811161078b57611ad8903690600401612baf565b611ae0612bf6565b60a43591821515830361078b57611af5613544565b611afe82612fbc565b600092600435611b62575b505060018060a01b031690817fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60206040516004358152a26000805160206147e983398151915260206040516004358152a36001601255005b601b54601854611bbf92611b7f92611e22575b5060043590612da3565b6001600160a01b038416600081815260176020526040902054611ba59060043590612da3565b906000526017602052806040600020558160185584612db0565b60165460025460405195916001600160a01b039081169116611be087612b0f565b8652600435602087015260405195611bf787612b2a565b8652602435602087015281604087015260405192611c1484612b0f565b308452600435602085015260018060a01b038751511691604051936370a0823160e01b8552306004860152602085602481875afa94851561079857600095611dee575b50602435159081611de5575b5015611d235750506024939495611c8c60209260018060a01b038651168487015191339061476c565b51516040516370a0823160e01b815230600482015294859182906001600160a01b03165afa928315611d18578593611ce2575b50611ccf602091611cd994612d96565b91015110156145f2565b81908380611b09565b92506020833d602011611d10575b81611cfd60209383612b73565b8101031261078b57915191611ccf611cbf565b3d9150611cf0565b6040513d87823e3d90fd5b809192503b1561078b576040805163187945bd60e11b8152885180516001600160a01b031660048301526020015160248201529260009284929091839185918391611daf91908e602081810151604487015291015160648501528b516001600160a01b031660848501528b015160a48401525b3360c484015261010060e4840152610104830190612c95565b03925af1801561079857611dcb575b5060206024939495611c8c565b6024939450611dd990612b45565b60206000949350611dbe565b90501589611c63565b9094506020813d602011611e1a575b81611e0a60209383612b73565b8101031261078b57519389611c57565b3d9150611dfd565b611e2d908287613d16565b87611b75565b3461078b57604036600319011261078b57611e4c612c0c565b611e54612c22565b9060018060a01b038091166000526025602052604060002091166000526020526020604060002054604051908152f35b3461078b57600036600319011261078b576002546040516001600160a01b039091168152602090f35b3461078b57604036600319011261078b57611ec6612c0c565b611ece612c22565b6001600160a01b0391821660008181526024602052604090206001015483169290913384148015611ff3575b15611fc6578315611f995716918215611f6c5760008281526024602090815260409182902060010180546001600160a01b0319168617905581513381526001600160a01b0393909316908301527fe6cb3c7e977387c5f9834127432863aad15bcbd9e62dd5346ba880c9814e20e191a3005b60405162461bcd60e51b815260206004820152600560248201526408ea06060760db1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526005602482015264475030303760d81b6044820152606490fd5b60405162461bcd60e51b815260206004820152600560248201526423a818181b60d91b6044820152606490fd5b5081600054163314611efa565b3461078b57600036600319011261078b57600a54600052600b6020526020604060002054604051908152f35b3461078b57600036600319011261078b576006546040516001600160a01b039091168152602090f35b3461078b57602036600319011261078b5760c06001600160a01b0380612079612c0c565b166000526024602052604060002081815416916001820154169060028101546003820154906005600484015493015493604051958652602086015260408501526060840152608083015260a0820152f35b3461078b57604036600319011261078b576120e3612c0c565b6120eb612c22565b906120f4612cba565b601b5460088110156121bd576001600160a01b0391821660008181526024602052604090206001015490929081166121905782600052602460205260016040600020019316926001600160601b0360a01b9084828254161790558282601c019182541617905560018101809111610e3f57601b55337fe6a4612e8d49569ada8de8e73b771e53d34bfa248dd60dd08b4c2ba1e942fddb600080a4005b60405162461bcd60e51b8152602060048201526005602482015264475030303560d81b6044820152606490fd5b60405162461bcd60e51b815260206004820152600560248201526411d40c0c0d60da1b6044820152606490fd5b3461078b57604036600319011261078b576112a3612206612c0c565b336000526019602052604060002060018060a01b038216600052602052612234602435604060002054612da3565b903361397c565b3461078b57604036600319011261078b57602435600435811515820361078b5780600092612267613544565b61227033612fbc565b816122c5575b50506040518181527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436460203392a26040519081526000805160206147e983398151915260203392a36001601255005b612310916122e291601b5415159060185491612331575b50612d96565b33845260176020526122f8836040862054612d96565b33855260176020528060408620558160185533612db0565b60025461232990829033906001600160a01b031661460f565b508083612276565b61233c908233613d16565b866122dc565b3461078b57600036600319011261078b5761235b613544565b610b93601854336142e6565b3461078b57604036600319011261078b57612380612c0c565b612388612c22565b9060018060a01b03809116600052601a6020526040600020911660005260205260206001600160801b0360406000205416604051908152f35b3461078b57600036600319011261078b576020601054604051908152f35b3461078b57602036600319011261078b57600435600052600b6020526020604060002054604051908152f35b3461078b57600036600319011261078b576020601554604051908152f35b3461078b57602036600319011261078b576000600435612447613544565b61245033612fbc565b806124a3575b6040518181527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436460203392a26040519081526000805160206147e983398151915260203392a36001601255005b6124bc6122e282601b541515601854906124db57612d96565b6002546124d590829033906001600160a01b031661460f565b50612456565b6124e581336139e8565b612d96565b604036600319011261078b576124fe612c0c565b602480359161250b613544565b60018060a01b0380911692836000526020918383528060016040600020015416330361283357601854906040519061254282612b58565b604082019160608101916000835260808201926000845260a08301926000845260008960c08301928284528281520152601b54865260005b60088110612712575b5050505050505050604051906370a0823160e01b9182815230600482015283818681895afa908115610798576000916126e5575b506125c48230338961476c565b60405192835230600484015283838681895afa928315610798576000936126b4575b506125f86126019162093a8094612d96565b918211156145f2565b60008581528484526040902060020154428111612676575084600052838352046003604060002001555b826000528181524260046040600020015562093a8042019283421161266157600052526002604060002001556001601255600080f35b82634e487b7160e01b60005260116004526000fd5b9061114961268861269e934290612d96565b8760005286865260036040600020015490612d63565b048360005282825260036040600020015561262b565b92508383813d83116126de575b6126cb8183612b73565b8101031261078b579151916125f86125e6565b503d6126c1565b90508381813d831161270b575b6126fc8183612b73565b8101031261078b5751866125b7565b503d6126f2565b8651811461282e578381601c0154168084526000528a8a52600580604060002001548752848451166000528b8b526002604060002001548042106000146128255750612775425b808852868651166000528d8d5260046040600020015490612d96565b80845261278c575b5061278790612fad565b61257a565b8551858551166000528c8c52600460406000200155881561277d576127c283518686511660005260036040600020015490612d63565b670de0b6b3a76400009081810291818304149015171561281057906127f56127ee8b6127879594612d76565b8951612da3565b90818952868651166000528d8d52604060002001559061277d565b8c634e487b7160e01b60005260116004526000fd5b61277590612759565b612583565b60405162461bcd60e51b81526004810184905260058186015264475030303960d81b6044820152606490fd5b3461078b57608036600319011261078b576064356001600160401b03811161078b57612892610b93913690600401612baf565b61289a613544565b339060443560243560043561359a565b3461078b57602036600319011261078b576128c3612c0c565b33600090815260266020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b3461078b57606036600319011261078b5761131761290d612c0c565b612915612c22565b60443591612921613544565b6001600160a01b03811660008181526019602090815260408083203384529091529020548460018201612957575b50505061389d565b61296091612d96565b90600052601960205260406000203360005260205260406000205584808461294f565b3461078b57604036600319011261078b576112a361299f612c0c565b602435903361397c565b3461078b57602036600319011261078b5760043580151580910361078b576129cf612cba565b6001805460ff60a01b191660a09290921b60ff60a01b16919091179055005b3461078b57600036600319011261078b576003546040516001600160a01b039091168152602090f35b3461078b57600036600319011261078b576040516000601354612a3981612c38565b808452906001908181169081156117615750600114612a62576117148461170081860382612b73565b6013600090815292507f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0905b828410612aa5575050508101602001611700826116f0565b80546020858701810191909152909301928101612a8d565b3461078b5760a036600319011261078b576064356001600160401b03811161078b57612af0610b93913690600401612baf565b612af8612bf6565b90612b01613544565b60443560243560043561359a565b604081019081106001600160401b038211176106cd57604052565b606081019081106001600160401b038211176106cd57604052565b6001600160401b0381116106cd57604052565b60e081019081106001600160401b038211176106cd57604052565b90601f801991011681019081106001600160401b038211176106cd57604052565b6001600160401b0381116106cd57601f01601f191660200190565b81601f8201121561078b57803590612bc682612b94565b92612bd46040519485612b73565b8284526020838301011161078b57816000926020809301838601378301015290565b608435906001600160a01b038216820361078b57565b600435906001600160a01b038216820361078b57565b602435906001600160a01b038216820361078b57565b90600182811c92168015612c68575b6020831014612c5257565b634e487b7160e01b600052602260045260246000fd5b91607f1691612c47565b60005b838110612c855750506000910152565b8181015183820152602001612c75565b90602091612cae81518092818552858086019101612c72565b601f01601f1916010190565b6000546001600160a01b03163303612cce57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160601b0360a01b90816001541660015560005460018060a01b038092168093821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b81810292918115918404141715610e3f57565b8115612d80570490565b634e487b7160e01b600052601260045260246000fd5b91908203918211610e3f57565b91908201809211610e3f57565b60065460408051633037408d60e01b81526001600160a01b0384811660048301524260248301529283169695929493909260209283856044818c5afa948515612f7157600095612f7c575b508360249697989982519788809263d2dcd93360e01b82524260048301525afa958615612f7157600096612f3f575b506028870287810460281488151715610e3f576064900486612ed0575b7f47211fe8b1eecabef1c013b28eb9caa892fd6bf2d3f1f5111d08cc115de841659860e0989796959493929180891015612eca575087935b16968760005260088552612ea382600020548584600020556124e586600954612da3565b948560095582519889528801528601526060850152608084015260a083015260c0820152a1565b93612e7f565b96959493929190612ee18583612d63565b98603c8a0299808b04603c1490151715610e3f57612f2f60e0996064612f288a7f47211fe8b1eecabef1c013b28eb9caa892fd6bf2d3f1f5111d08cc115de841659e612d76565b0490612da3565b9192939495969798509850612e47565b90958482813d8311612f6a575b612f568183612b73565b81010312612f675750519438612e2a565b80fd5b503d612f4c565b50513d6000823e3d90fd5b9894848a813d8311612fa6575b612f938183612b73565b81010312612f6757509751939783612dfb565b503d612f89565b6000198114610e3f5760010190565b60405160009160c082016001600160401b038111838210176134a9576040528260208301528260408301528260608301528260808301528260a0830152600a548083528352600b6020526040832054602083015281518352600c6020526040832054604083015260105480606084015260808301526007548060a0840152602083015111156133cc575b6005546001600160a01b0316803b156133c857838091602460405180948193638aca6a2360e01b83523060048401525af180156133bd5761338e575b5060ff60015460a01c16613383575b6020820151804211613154575b50815160018101809111613140579081604092845280600a558452600b60205242828520558183015183518552600c6020528285205560018060a01b0316918284526008602052670de0b6b3a764000061310b83862054610d7885850151600d6020528689205490612d96565b04838552600f602052613122838620918254612da3565b90550151908252600d6020526040822055600e602052604042912055565b634e487b7160e01b84526011600452602484fd5b60095462093a808201808311610e3f5762093a80900462093a8081029080820462093a801490151715610e3f574281101561337c575b6005546001600160a01b031692869291905b6101f484106131af575b5050505061309e565b6131b98183612d96565b9062093a808104918262093a8081020462093a801483151715610e3f57604051630cb8c08d60e31b815230600482015262093a809390930260248401526020836044818a5afa928315613371579189918694938c94613336575b5084613267575b5050505050428114613261578062093a8081018111610e3f574262093a80820110156132575762093a8061325091015b93612fad565b929061319c565b506132504261324a565b806131a6565b60a08301518683821015918261332c575b50501561330357506132db836132c58460406132bd896132b86132b898610d786132ad6132e99d6132f39f9d60600151612d63565b9160a0880151612d96565b612d76565b910151612da3565b60408d015260808c015160608d01819052612d63565b610d7860a08c015187612d96565b6040880151612da3565b60408701525b813887818061321a565b6132b8915061331d6132e994606061332297950151612d63565b612d63565b60408701526132f9565b1090508638613278565b9250925092506020813d602011613369575b8161335560209383612b73565b8101031261078b5784928991519238613213565b3d9150613348565b6040513d8c823e3d90fd5b504261318a565b826060830152613091565b6001600160401b0381949294116133a9576040529138613082565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8380fd5b6004805460405163277dbafb60e01b81526001600160a01b0392909160209183918290899087165af1908115611d18578591613472575b5060049160209160075582541660405192838092631627391760e11b82525afa9081156133bd578491613440575b50806080840152601055613046565b90506020813d60201161346a575b8161345b60209383612b73565b810103126133c8575138613431565b3d915061344e565b90506020813d6020116134a1575b8161348d60209383612b73565b8101031261349d57516004613403565b8480fd5b3d9150613480565b634e487b7160e01b84526041600452602484fd5b156134c457565b60405162461bcd60e51b8152602060048201526005602482015264475030303160d81b6044820152606490fd5b156134f857565b60405162461bcd60e51b8152602060048201526005602482015264043453030360dc1b6044820152606490fd5b9081602091031261078b57516001600160a01b038116810361078b5790565b600260125414613555576002601255565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b939092916000936135aa83612fbc565b85613602575b50506000805160206147e9833981519152915060209060018060a01b031693847fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c83604051848152a2604051908152a3565b61361886601b5415156018549061388e57612da3565b9060018060a01b039182851692838852613658602092601784526040956136428c888d2054612da3565b908b526017855280878c20558160185588612db0565b80601654169681600254169085519161367083612b0f565b82528a8483015285519161368383612b2a565b825284848301528686830152855161369a81612b0f565b308152848101998c8b528484515116928851996370a0823160e01b98898c523060048d0152888c602481895afa9b8c15613882578f9c61384f575b50908897969594939291159081613846575b501561379757505090836137019251168b5191339061476c565b51511692602485518095819382523060048301525afa92831561378e57508692613758575b50506000805160206147e9833981519152936137486020949361375193612d96565b905110156145f2565b90386135b0565b908094939250813d8311613787575b6137718183612b73565b8101031261078b57915190919083613748613726565b503d613767565b513d88823e3d90fd5b925080939495503b1561384257875163187945bd60e11b8152845180516001600160a01b03166004830152602001516024820152928c92849283918591839161380b91611d96908f8e8d015160448701528c0151606486015280516001600160a01b031660848601526020015160a4850152565b03925af1801561383857613823575b50908291613701565b986138308493929a612b45565b98909161381a565b86513d8c823e3d90fd5b8b80fd5b905015386136e7565b909b508881813d831161387b575b6138678183612b73565b8101031261387757519a886136d5565b8e80fd5b503d61385d565b8f8c51903d90823e3d90fd5b61389881876139e8565b612da3565b919060206000805160206147e9833981519152916138ba85612fbc565b6138c381612fbc565b836138e0575b6040519384526001600160a01b03908116941692a3565b613959601854601b5415158061396d575b60018060a01b038089169161392b8460009480865260178a526139188c6040882054612d96565b90865260178a528060408720558c612db0565b61395e575b84168082526017865260406139488982852054612da3565b928392815260178852205583612db0565b6138c9565b6139688386614101565b613930565b6139778289614101565b6138f1565b6001600160a01b03908116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020916139b88515156134f1565b16936139c58515156134f1565b8360005260198252604060002085600052825280604060002055604051908152a3565b604051906139f582612b58565b600060408301526000606083015260006080830152600060a0830152600060c0830152600082526000602083015260018060a01b038116613cf6575b601b54604083015260005b60088110613a4b575b50505050565b60408301518114613cf157601c8101546001600160a01b039081166060850181815260009182526024602081815260408085206005015460808a015292519094168352909252206002015442811115613ce85750613ad1425b60a0850181905260608501516001600160a01b031660009081526024602052604090206004015490612d96565b8060c0850152613c30575b613af3906001600160a01b038316613af857612fad565b613a3c565b60608401516001600160a01b0390811660009081526025602081815260408084209488168452939052918120546080870151808210613bdb575b5050905060018060a01b038416600052601a9081602052604060002060018060a01b03606088015116600052602052604060002054613b74828260801c612da3565b9182613b84575b50505050612fad565b613b8f575b80613b7b565b6001600160801b03613ba59260801b9116612da3565b9060018060a01b038516600052602052604060002060018060a01b03606087015116600052602052604060002055388080613b89565b613c279250670de0b6b3a76400009360018060a01b0360608a015116600052602052604060002060018060a01b038816600052602052604060002055610d788751916080890151612d96565b04803880613b32565b60a083015160608401516001600160a01b03166000908152602460205260409020600401558315613adc5760c083015160608401516001600160a01b031660009081526040902060030154613c8491612d63565b90670de0b6b3a7640000918083810204831481151715610e3f57613cb086613af394613cba9302612d76565b6080860151612da3565b6080850181905260608501516001600160a01b03166000908152602460205260409020600501559050613adc565b613ad190613aa4565b613a45565b6001600160a01b0381166000908152601760205260409020548252613a31565b6040519192613d2483612b58565b600060408401526000606084015260006080840152600060a0840152600060c0840152600083526000602084015260018060a01b038216614095575b601b54604084015260005b60088110613d7b575b5050505050565b6040840151811461409057601c8101546001600160a01b039081166060860181815260009182526024602081815260408085206005015460808b01529251909416835290925220600201544281111561408b5750425b8060a086015260018060a01b036060860151166000526024602052613e00600491826040600020015490612d96565b8060c0870152613fbf575b50613e23906001600160a01b038416613e2857612fad565b613d6b565b60608501516001600160a01b0390811660009081526025602081815260408084209489168452939052918120546080880151808210613f6a575b5050905060018060a01b038516600052601a9081602052604060002060018060a01b0360608901511660005260205260406000205490613ea5818360801c612da3565b9182613eb45750505050612fad565b6001600160801b0316908615613f1a575091613ed382613f0f94612da3565b6001600160a01b0388811660009081526020938452604080822060608d018051851684529086529120929092559051918901518116911661460f565b505b38808080613b7b565b613f27575b505050613f11565b613f349160801b90612da3565b9060018060a01b038616600052602052604060002060018060a01b03606088015116600052602052604060002055388080613f1f565b613fb69250670de0b6b3a76400009360018060a01b0360608b015116600052602052604060002060018060a01b038916600052602052604060002055610d7888519160808a0151612d96565b04803880613e62565b60a085015160608601516001600160a01b031660009081526024602052604090208201558515613e0b5760c085015160608601516001600160a01b03166000908152604090206003015461401291612d63565b670de0b6b3a7640000918183810204831482151715614076575061403f87613e2394936140499302612d76565b6080870151612da3565b6080860181905260608601516001600160a01b031660009081526024602052604090206005015590613e0b565b601190634e487b7160e01b6000525260246000fd5b613dd1565b613d74565b6001600160a01b038216600090815260176020526040902054835280806140f9575b15613d605760018060a01b038216600052602660205260018060a01b0360406000205416806020850152613d60576001600160a01b0382166020840152613d60565b5060016140b7565b6040519061410e82612b58565b600060408301526000606083015260006080830152600060a0830152600060c0830152600082526000602083015260018060a01b0381166142c6575b601b54604083015260005b600881106141635750505050565b60408301518114613cf157601c8101546001600160a01b039081166060850181815260009182526024602081815260408085206005015460808a0152925190941683529092522060020154428111156142bd57506141e84260a0850181905260608501516001600160a01b031660009081526024602052604090206004015490612d96565b8060c085015261420f575b61420a906001600160a01b038316613af857612fad565b614155565b60a083015160608401516001600160a01b031660009081526024602052604090206004015583156141f35760c083015160608401516001600160a01b03166000908152604090206003015461426391612d63565b90670de0b6b3a7640000918083810204831481151715610e3f57613cb08661420a9461428f9302612d76565b6080850181905260608501516001600160a01b031660009081526024602052604090206005015590506141f3565b6141e890613aa4565b6001600160a01b038116600090815260176020526040902054825261414a565b6040516142f281612b58565b600060408201526000606082015260006080820152600060a0820152600060c0820152600081526000602082015260018060a01b0382166145a7575b601b54604082015260005b600881106143475750505050565b60408201518114613cf157601c8101546001600160a01b039081166060840181815260009182526024602081815260408085206005015460808901529251909416835290925220600201544281111561459e57506143cc4260a0840181905260608401516001600160a01b031660009081526024602052604090206004015490612d96565b8060c08401526144f0575b6143ee906001600160a01b0384166143f357612fad565b614339565b60608301516001600160a01b039081166000908152602560208181526040808420948916845293905291812054608086015180821061449b575b5050905060018060a01b038516600052601a80602052604060002060018060a01b0360608701511660005260205261446e604060002054928360801c612da3565b908161447c57505050612fad565b610ce7826001600160801b036144929516612da3565b50388080610cc9565b6144e79250670de0b6b3a76400009360018060a01b03606089015116600052602052604060002060018060a01b038916600052602052604060002055610d788651916080880151612d96565b0480388061442d565b60a082015160608301516001600160a01b031660009081526024602052604090206004015583156143d75760c082015160608301516001600160a01b03166000908152604090206003015461454491612d63565b90670de0b6b3a7640000918083810204831481151715610e3f57610e07866143ee946145709302612d76565b6080840181905260608401516001600160a01b031660009081526024602052604090206005015590506143d7565b6143cc90610bf3565b6001600160a01b038281166000818152601760209081526040808320548652928252602681529190205490911690820181905261432e576001600160a01b038216602082015261432e565b156145f957565b634e487b7160e01b600052600160045260246000fd5b604080516370a0823160e01b8082526001600160a01b038086166004840181905292959394169260209291908387602481885afa96871561476157600097614731575b5060006044859288519063a9059cbb60e01b825260048201528a602482015282885af13d15601f3d11600160005114161716156146fb57906024839286519586938492835260048301525afa9283156146f157506000926146c0575b50506146bd916125f891612d96565b90565b81819392933d83116146ea575b6146d78183612b73565b81010312612f67575051816125f86146ae565b503d6146cd565b513d6000823e3d90fd5b845162461bcd60e51b815260048101849052600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b90968482813d831161475a575b6147488183612b73565b81010312612f67575051956000614652565b503d61473e565b86513d6000823e3d90fd5b9060006064926020958295604051946323b872dd60e01b86526004860152602485015260448401525af13d15601f3d11600160005114161716156147ac57565b60405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4eca264697066735822122082fe47c5b6499059e5ff44ada08c2a73fa60da857acea83cab9d5a9d73b0076464736f6c63430008110033