0 txs
0 calls
constructor
constructor(address _pool, address _owner, string name, string symbol)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
baseLower
viewfunction baseLower() view returns (int24)
baseUpper
viewfunction baseUpper() view returns (int24)
currentTick
viewfunction currentTick() view returns (int24 tick)
decimals
viewfunction decimals() view returns (uint8)
deposit0Max
viewfunction deposit0Max() view returns (uint256)
deposit1Max
viewfunction deposit1Max() view returns (uint256)
directDeposit
viewfunction directDeposit() view returns (bool)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
fee
viewfunction fee() view returns (uint8)
feeRecipient
viewfunction feeRecipient() view returns (address)
getBasePosition
viewfunction getBasePosition() view returns (uint128 liquidity, uint256 amount0, uint256 amount1)
getLimitPosition
viewfunction getLimitPosition() view returns (uint128 liquidity, uint256 amount0, uint256 amount1)
getTotalAmounts
viewfunction getTotalAmounts() view returns (uint256 total0, uint256 total1)
limitLower
viewfunction limitLower() view returns (int24)
limitUpper
viewfunction limitUpper() view returns (int24)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
owner
viewfunction owner() view returns (address)
pool
viewfunction pool() view returns (address)
PRECISION
viewfunction PRECISION() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
tickSpacing
viewfunction tickSpacing() view returns (int24)
token0
viewfunction token0() view returns (address)
token1
viewfunction token1() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
whitelistedAddress
viewfunction whitelistedAddress() view returns (address)
addLiquidity
nonpayablefunction addLiquidity(int24 tickLower, int24 tickUpper, uint256 amount0, uint256 amount1, uint256[2] inMin)
algebraMintCallback
nonpayablefunction algebraMintCallback(uint256 amount0, uint256 amount1, bytes data)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
compound
nonpayablefunction compound(uint256[4] inMin) returns (uint128 baseToken0Owed, uint128 baseToken1Owed, uint128 limitToken0Owed, uint128 limitToken1Owed)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 deposit0, uint256 deposit1, address to, address from, uint256[4] inMin) returns (uint256 shares)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
pullLiquidity
nonpayablefunction pullLiquidity(int24 tickLower, int24 tickUpper, uint128 shares, uint256[2] amountMin) returns (uint256 amount0, uint256 amount1)
rebalance
nonpayablefunction rebalance(int24 _baseLower, int24 _baseUpper, int24 _limitLower, int24 _limitUpper, address _feeRecipient, uint256[4] inMin, uint256[4] outMin)
removeWhitelisted
nonpayablefunction removeWhitelisted()
setFee
nonpayablefunction setFee(uint8 newFee)
setWhitelist
nonpayablefunction setWhitelist(address _address)
toggleDirectDeposit
nonpayablefunction toggleDirectDeposit()
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 shares, address to, address from, uint256[4] minAmounts) returns (uint256 amount0, uint256 amount1)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
Rebalance
event Rebalance(int24 tick, uint256 totalAmount0, uint256 totalAmount1, uint256 feeAmount0, uint256 feeAmount1, uint256 totalSupply)
SetFee
event SetFee(uint8 newFee)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdraw
event Withdraw(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
ZeroBurn
event ZeroBurn(uint8 fee, uint256 fees0, uint256 fees1)
errors
No errors.
creation bytecode
0x6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961012052600a805460ff60a01b1916600760a01b1790553480156200004a57600080fd5b5060405162004c5b38038062004c5b833981810160405260808110156200007057600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200009c57600080fd5b908301906020820185811115620000b257600080fd5b8251640100000000811182820188101715620000cd57600080fd5b82525081516020918201929091019080838360005b83811015620000fc578181015183820152602001620000e2565b50505050905090810190601f1680156200012a5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200014e57600080fd5b9083019060208201858111156200016457600080fd5b82516401000000008111828201881017156200017f57600080fd5b82525081516020918201929091019080838360005b83811015620001ae57818101518382015260200162000194565b50505050905090810190601f168015620001dc5780820380516001836020036101000a031916815260200191505b506040525050508180604051806040016040528060018152602001603160f81b815250848481600390805190602001906200021992919062000575565b5080516200022f90600490602084019062000575565b50506005805460ff1916601217905550815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620002886200050d565b60a0526200029881848462000511565b60805261010052505060016007555050506001600160a01b038416620002bd57600080fd5b6001600160a01b038316620002d157600080fd5b600880546001600160a01b0319166001600160a01b03868116919091179182905560408051630dfe168160e01b815290519290911691630dfe168191600480820192602092909190829003018186803b1580156200032e57600080fd5b505afa15801562000343573d6000803e3d6000fd5b505050506040513d60208110156200035a57600080fd5b5051600980546001600160a01b0319166001600160a01b039283161790556008546040805163d21220a760e01b81529051919092169163d21220a7916004808301926020929190829003018186803b158015620003b657600080fd5b505afa158015620003cb573d6000803e3d6000fd5b505050506040513d6020811015620003e257600080fd5b5051600a80546001600160a01b0319166001600160a01b03928316179055600954166200040e57600080fd5b600a546001600160a01b03166200042457600080fd5b600860009054906101000a90046001600160a01b03166001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047357600080fd5b505afa15801562000488573d6000803e3d6000fd5b505050506040513d60208110156200049f57600080fd5b5051600a805460029290920b62ffffff16600160a81b0262ffffff60a81b199092169190911790555050600b80546001600160a01b03909216660100000000000002600160301b600160d01b0319909216919091179055506000600e55600019600c819055600d5562000621565b4690565b6000838383620005206200050d565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620005ad5760008555620005f8565b82601f10620005c857805160ff1916838001178555620005f8565b82800160010185558215620005f8579182015b82811115620005f8578251825591602001919060010190620005db565b50620006069291506200060a565b5090565b5b808211156200060657600081556001016200060b565b60805160a05160c05160e05161010051610120516145f06200066b600039806124665250806129cd525080612a0f5250806129ee5250806129745250806129a452506145f06000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c806385919c5d11610167578063b1a3d533116100ce578063d2eabcfc11610087578063d2eabcfc14610961578063d505accf14610969578063dd62ed3e146109ba578063ddca3f43146109e8578063f2fde38b146109f0578063fa08274314610a1657610295565b8063b1a3d53314610919578063c4a7761e14610921578063c5241e2914610929578063cb122a0914610931578063d0c93a7c14610951578063d21220a71461095957610295565b806395d89b411161012057806395d89b4114610816578063a049de6b1461081e578063a457c2d71461084e578063a85598721461087a578063a9059cbb146108e5578063aaf5eb681461091157610295565b806385919c5d1461065a57806386a2908114610707578063888a91341461070f5780638da5cb5b146107175780638e3c92e41461071f578063952356561461079057610295565b8063395093511161020b57806363e96836116101c457806363e9683614610570578063648cab85146105d85780636d90a39c146105e057806370a08231146105e85780637ecebe001461060e578063854cff2f1461063457610295565b806339509351146104285780633dd657c51461045457806346904840146104d25780634d461fbb146104da578063513ea884146104e257806351e87af71461056857610295565b806316f0115b1161025d57806316f0115b146103a257806318160ddd146103aa57806323b872dd146103c45780632ab4d052146103fa578063313ce567146104025780633644e5151461042057610295565b8063065e53601461029a57806306fdde03146102b9578063095ea7b3146103365780630dfe1681146103765780630f35bcac1461039a575b600080fd5b6102a2610a1e565b6040805160029290920b8252519081900360200190f35b6102c1610a97565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102fb5781810151838201526020016102e3565b50505050905090810190601f1680156103285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103626004803603604081101561034c57600080fd5b506001600160a01b038135169060200135610b2e565b604080519115158252519081900360200190f35b61037e610b4c565b604080516001600160a01b039092168252519081900360200190f35b6102a2610b5b565b61037e610b6b565b6103b2610b7a565b60408051918252519081900360200190f35b610362600480360360608110156103da57600080fd5b506001600160a01b03813581169160208101359091169060400135610b80565b6103b2610c08565b61040a610c0e565b6040805160ff9092168252519081900360200190f35b6103b2610c17565b6103626004803603604081101561043e57600080fd5b506001600160a01b038135169060200135610c26565b6104d06004803603606081101561046a57600080fd5b81359160208101359181019060608101604082013564010000000081111561049157600080fd5b8201836020820111156104a357600080fd5b803590602001918460018302840111640100000000831117156104c557600080fd5b509092509050610c74565b005b61037e610cf3565b6103b2610d02565b610534600480360360808110156104f857600080fd5b8101908080608001906004806020026040519081016040528092919082600460200280828437600092019190915250919450610d089350505050565b604080516001600160801b039586168152938516602085015291841683830152909216606082015290519081900360800190f35b6102a2610f5f565b6104d0600480360360c081101561058657600080fd5b6040805180820182528335600290810b946020810135820b9484820135946060830135949183019360c0840192916080850191908390839080828437600092019190915250919450610f689350505050565b6103b2610ff5565b610362610ffb565b6103b2600480360360208110156105fe57600080fd5b50356001600160a01b031661100b565b6103b26004803603602081101561062457600080fd5b50356001600160a01b031661102a565b6104d06004803603602081101561064a57600080fd5b50356001600160a01b031661104b565b6104d060048036036101a081101561067157600080fd5b60408051608081810183528435600290810b956020810135820b9594810135820b94606082013590920b936001600160a01b03848301351693928201926101208301919060a0840190600490839083908082843760009201919091525050604080516080818101909252929594938181019392509060049083908390808284376000920191909152509194506110c09350505050565b61037e6116d8565b6102a26116e7565b61037e6116f7565b6103b2600480360361010081101561073657600080fd5b60408051608081810183528435946020810135946001600160a01b039482013585169460608301351693908201926101008301919080840190600490839083908082843760009201919091525091945061170d9350505050565b6107fd600480360360a08110156107a657600080fd5b6040805180820182528335600290810b946020810135820b946001600160801b0385830135169490820193919260a0840192916060850191908390839080828437600092019190915250919450611b4b9350505050565b6040805192835260208301919091528051918290030190f35b6102c1611be3565b610826611c44565b604080516001600160801b039094168452602084019290925282820152519081900360600190f35b6103626004803603604081101561086457600080fd5b506001600160a01b038135169060200135611cca565b6107fd600480360360e081101561089057600080fd5b60408051608081810183528435946001600160a01b036020820135811695948201351693810192909160e08301919060608401906004908390839080828437600092019190915250919450611d329350505050565b610362600480360360408110156108fb57600080fd5b506001600160a01b0381351690602001356120bd565b6103b26120d1565b6104d06120e4565b6107fd612158565b6104d0612268565b6104d06004803603602081101561094757600080fd5b503560ff166122cd565b6102a261237c565b61037e61238c565b61082661239b565b6104d0600480360360e081101561097f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356123f7565b6103b2600480360360408110156109d057600080fd5b506001600160a01b03813581169160200135166125ae565b61040a6125d9565b6104d060048036036020811015610a0657600080fd5b50356001600160a01b03166125e9565b6102a261267e565b600854604080516339db007960e21b815290516000926001600160a01b03169163e76c01e49160048083019260e0929190829003018186803b158015610a6357600080fd5b505afa158015610a77573d6000803e3d6000fd5b505050506040513d60e0811015610a8d57600080fd5b5060200151919050565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b235780601f10610af857610100808354040283529160200191610b23565b820191906000526020600020905b815481529060010190602001808311610b0657829003601f168201915b505050505090505b90565b6000610b42610b3b61268e565b8484612692565b5060015b92915050565b6009546001600160a01b031681565b600b546301000000900460020b81565b6008546001600160a01b031681565b60025490565b6000610b8d84848461277e565b610bfd84610b9961268e565b610bf885604051806060016040528060288152602001614503602891396001600160a01b038a16600090815260016020526040812090610bd761268e565b6001600160a01b0316815260208101919091526040016000205491906128d9565b612692565b5060015b9392505050565b600e5481565b60055460ff1690565b6000610c21612970565b905090565b6000610b42610c3361268e565b84610bf88560016000610c4461268e565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612a3a565b6008546001600160a01b03163314610c8b57600080fd5b601054600160a81b900460ff161515600114610ca657600080fd5b6010805460ff60a81b191690558315610cd057600954610cd0906001600160a01b03163386612a94565b8215610ced57600a54610ced906001600160a01b03163385612a94565b50505050565b6010546001600160a01b031681565b600d5481565b600080600080600b60069054906101000a90046001600160a01b03166001600160a01b0316336001600160a01b031614610d76576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b610d7e612aeb565b5050600a54600954604080516370a0823160e01b81523060048201529051600093610e9493600160c01b8204600290810b94600160d81b909304900b926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610dec57600080fd5b505afa158015610e00573d6000803e3d6000fd5b505050506040513d6020811015610e1657600080fd5b5051600a54604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e6357600080fd5b505afa158015610e77573d6000803e3d6000fd5b505050506040513d6020811015610e8d57600080fd5b5051612b36565b600a548751919250610ec991600160c01b8204600290810b92600160d81b9004900b90849030908b60015b6020020151612bdc565b600b54600954604080516370a0823160e01b81523060048201529051610f2c93600281810b946301000000909204900b926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b158015610dec57600080fd5b600b546040880151919250610f5791600282810b9263010000009004900b90849030908b6003610ebf565b509193509193565b600b5460020b81565b600b54600160301b90046001600160a01b03163314610fbb576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b610fc58585612dc0565b506000610fd486868686612b36565b9050610fed868683308660006020020151876001610ebf565b505050505050565b600c5481565b601054600160a01b900460ff1681565b6001600160a01b0381166000908152602081905260409020545b919050565b6001600160a01b0381166000908152600660205260408120610b4690613124565b600b54600160301b90046001600160a01b0316331461109e576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60026007541415611118576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600755600b54600160301b90046001600160a01b03163314611170576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b8560020b8760020b1280156111a25750600a54600160a81b9004600290810b810b9088900b8161119c57fe5b0760020b155b80156111cb5750600a54600160a81b9004600290810b810b9087900b816111c557fe5b0760020b155b6111d457600080fd5b8360020b8560020b1280156112065750600a54600160a81b9004600290810b810b9086900b8161120057fe5b0760020b155b801561122f5750600a54600160a81b9004600290810b810b9085900b8161122957fe5b0760020b155b61123857600080fd5b8560020b8460020b14158061125357508660020b8560020b14155b61125c57600080fd5b6001600160a01b03831661126f57600080fd5b601080546001600160a01b0319166001600160a01b038516179055611292612aeb565b5050600a54600090819081906112bd90600160c01b8104600290810b91600160d81b9004900b613128565b600b549295506001600160801b039182169450169150600090819081906112f290600281810b9163010000009004900b613128565b600a549295506001600160801b03918216945016915061133c90600160c01b8104600290810b91600160d81b9004900b883060018c600060200201518d60015b60200201516131fa565b5050600b5461136c90600281810b9163010000009004810b90869030906001908d905b60200201518d6003611332565b50507fbc4c20ad04f161d631d9ce94d27659391196415aa3c42f6a71c62e905ece782d611397610a1e565b600954604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156113e257600080fd5b505afa1580156113f6573d6000803e3d6000fd5b505050506040513d602081101561140c57600080fd5b5051600a54604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561145957600080fd5b505afa15801561146d573d6000803e3d6000fd5b505050506040513d602081101561148357600080fd5b505161148f868a612a3a565b611499868a612a3a565b6114a1610b7a565b6040805160029790970b87526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190a18c600a60186101000a81548162ffffff021916908360020b62ffffff1602179055508b600a601b6101000a81548162ffffff021916908360020b62ffffff1602179055506115a1600a60189054906101000a900460020b600a601b9054906101000a900460020b600960009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610dec57600080fd5b600a5489519197506115d091600160c01b8204600290810b92600160d81b9004900b90899030908d6001610ebf565b8a600b60006101000a81548162ffffff021916908360020b62ffffff16021790555089600b60036101000a81548162ffffff021916908360020b62ffffff160217905550611699600b60009054906101000a900460020b600b60039054906101000a900460020b600960009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610dec57600080fd5b600b5460408a01519194506116c491600282810b9263010000009004900b90869030908d6003610ebf565b505060016007555050505050505050505050565b600f546001600160a01b031681565b600a54600160d81b900460020b81565b600b54600160301b90046001600160a01b031681565b600060026007541415611767576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026007558515158061177a5750600085115b61178357600080fd5b600c5486111580156117975750600d548511155b6117a057600080fd5b6001600160a01b038416158015906117c157506001600160a01b0384163014155b6117f7576040805162461bcd60e51b8152602060048201526002602482015261746f60f01b604482015290519081900360640190fd5b600f546001600160a01b0316331461183c576040805162461bcd60e51b815260206004820152600360248201526257484560e81b604482015290519081900360640190fd5b611844612aeb565b50506000611858611853610a1e565b61343d565b9050600061188c6118726001600160a01b03841680613762565b6ec097ce7bc90715b34b9f1000000000600160c01b6137bb565b9050600080611899612158565b90925090506118cb6118c46ec097ce7bc90715b34b9f10000000006118be8d87613762565b9061386a565b8a90612a3a565b945089156118eb576009546118eb906001600160a01b031688308d6138d1565b881561190957600a54611909906001600160a01b031688308c6138d1565b6000611913610b7a565b90508015611a9557600061193a6ec097ce7bc90715b34b9f10000000006118be8688613762565b90506119536119498285612a3a565b6118be8985613762565b601054909750600160a01b900460ff1615611a9357600a54600954604080516370a0823160e01b815230600482015290516000936119d493600160c01b8204600290810b94600160d81b909304900b926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610dec57600080fd5b600a548a51919250611a0391600160c01b8204600290810b92600160d81b9004900b90849030908e6001610ebf565b600b54600954604080516370a0823160e01b81523060048201529051611a6693600281810b946301000000909204900b926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b158015610dec57600080fd5b600b5460408b0151919250611a9191600282810b9263010000009004900b90849030908e6003610ebf565b505b505b611a9f898761392b565b60408051878152602081018d90528082018c905290516001600160a01b03808c1692908b16917f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f69181900360600190a3600e541580611b005750600e548111155b611b37576040805162461bcd60e51b81526020600482015260036024820152620dac2f60eb1b604482015290519081900360640190fd5b505060016007555091979650505050505050565b600b546000908190600160301b90046001600160a01b03163314611ba3576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b611bad8686612dc0565b50611bd68686611bc78989896001600160801b0316613a1b565b86513090600090896001611332565b9097909650945050505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b235780601f10610af857610100808354040283529160200191610b23565b600b5460009081908190819081908190611c6c90600281810b9163010000009004900b613128565b600b549295509093509150611c9090600281810b9163010000009004900b85613a5b565b9095509350611ca8856001600160801b038416612a3a565b9450611cbd846001600160801b038316612a3a565b9350829550505050909192565b6000610b42611cd761268e565b84610bf8856040518060600160405280602581526020016145bf6025913960016000611d0161268e565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906128d9565b60008060026007541415611d8d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260075585611dcd576040805162461bcd60e51b815260206004820152600660248201526573686172657360d01b604482015290519081900360640190fd5b6001600160a01b038516611e0d576040805162461bcd60e51b8152602060048201526002602482015261746f60f01b604482015290519081900360640190fd5b611e15612aeb565b5050600a546000908190611e5390600160c01b8104600290810b91600160d81b9004900b611e4482828d613a1b565b88518b906000908b6001611332565b600b5491935091506000908190611e8990600281810b9163010000009004900b611e7e82828f613a1b565b8c60008c600261135f565b915091506000611f32611e9a610b7a565b6118be8d600960009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f0057600080fd5b505afa158015611f14573d6000803e3d6000fd5b505050506040513d6020811015611f2a57600080fd5b505190613762565b90506000611fa7611f41610b7a565b6118be8e600a60009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f0057600080fd5b90508115611fc657600954611fc6906001600160a01b03168c84612a94565b8015611fe357600a54611fe3906001600160a01b03168c83612a94565b611ff782611ff18887612a3a565b90612a3a565b975061200781611ff18786612a3a565b96506001600160a01b038a16331461204c576040805162461bcd60e51b815260206004820152600360248201526237bbb760e91b604482015290519081900360640190fd5b6120568a8d613b05565b604080518d8152602081018a905280820189905290516001600160a01b03808e1692908d16917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9181900360600190a3505050505050600160078190555094509492505050565b6000610b426120ca61268e565b848461277e565b6ec097ce7bc90715b34b9f100000000081565b600b54600160301b90046001600160a01b03163314612137576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6010805460ff60a01b198116600160a01b9182900460ff1615909102179055565b60008060008061216661239b565b9250925050600080612176611c44565b600954604080516370a0823160e01b8152306004820152905193965091945061220493508592611ff19289926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156121d257600080fd5b505afa1580156121e6573d6000803e3d6000fd5b505050506040513d60208110156121fc57600080fd5b505190612a3a565b600a54604080516370a0823160e01b8152306004820152905192985061225e928492611ff19288926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156121d257600080fd5b9450505050509091565b600b54600160301b90046001600160a01b031633146122bb576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b600f80546001600160a01b0319169055565b600b54600160301b90046001600160a01b03163314612320576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b600a805460ff808416600160a01b90810260ff60a01b199093169290921792839055604080519290930416815290517f91f2ade82ab0e77bb6823899e6daddc07e3da0e3ad998577e7c09c2f38943c439181900360200190a150565b600a54600160a81b900460020b81565b600a546001600160a01b031681565b6000806000806000806123cc600a60189054906101000a900460020b600a601b9054906101000a900460020b613128565b600a549295509093509150611c9090600160c01b8104600290810b91600160d81b9004900b85613a5b565b8342111561244c576040805162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b6001600160a01b03871660009081526006602052604081207f00000000000000000000000000000000000000000000000000000000000000009089908990899061249590613124565b8960405160200180878152602001866001600160a01b03168152602001856001600160a01b03168152602001848152602001838152602001828152602001965050505050505060405160208183030381529060405280519060200120905060006124fe82613c01565b9050600061250e82878787613c4d565b9050896001600160a01b0316816001600160a01b031614612576576040805162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6001600160a01b038a16600090815260066020526040902061259790613dc2565b6125a28a8a8a612692565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a54600160a01b900460ff1681565b600b54600160301b90046001600160a01b0316331461263c576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6001600160a01b03811661264f57600080fd5b600b80546001600160a01b03909216600160301b026601000000000000600160d01b0319909216919091179055565b600a54600160c01b900460020b81565b3390565b6001600160a01b0383166126d75760405162461bcd60e51b81526004018080602001828103825260248152602001806145716024913960400191505060405180910390fd5b6001600160a01b03821661271c5760405162461bcd60e51b81526004018080602001828103825260228152602001806144306022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166127c35760405162461bcd60e51b815260040180806020018281038252602581526020018061454c6025913960400191505060405180910390fd5b6001600160a01b0382166128085760405162461bcd60e51b81526004018080602001828103825260238152602001806143eb6023913960400191505060405180910390fd5b612813838383612ae6565b61285081604051806060016040528060268152602001614452602691396001600160a01b03861660009081526020819052604090205491906128d9565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461287f9082612a3a565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156129685760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561292d578181015183820152602001612915565b50505050905090810190601f16801561295a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60007f000000000000000000000000000000000000000000000000000000000000000061299b613dcb565b14156129c857507f0000000000000000000000000000000000000000000000000000000000000000610b2b565b612a337f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613dcf565b9050610b2b565b600082820183811015610c01576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612ae6908490613e31565b505050565b600a546000908190612b1290600160c01b8104600290810b91600160d81b9004900b612dc0565b600b54909250612b3090600281810b9163010000009004900b612dc0565b90509091565b600080600860009054906101000a90046001600160a01b03166001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e06040518083038186803b158015612b8757600080fd5b505afa158015612b9b573d6000803e3d6000fd5b505050506040513d60e0811015612bb157600080fd5b50519050612bd281612bc28861343d565b612bcb8861343d565b8787613ee2565b9695505050505050565b6001600160801b03841615610fed576001601060156101000a81548160ff021916908315150217905550600080600860009054906101000a90046001600160a01b03166001600160a01b031663aafe29c030308b8b8b8b60405160200180826001600160a01b031681526020019150506040516020818303038152906040526040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b031681526020018560020b81526020018460020b8152602001836001600160801b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ce6578181015183820152602001612cce565b50505050905090810190601f168015612d135780820380516001836020036101000a031916815260200191505b50975050505050505050606060405180830381600087803b158015612d3757600080fd5b505af1158015612d4b573d6000803e3d6000fd5b505050506040513d6060811015612d6157600080fd5b5080516020909101519092509050838210801590612d7f5750828110155b612db6576040805162461bcd60e51b815260206004820152600360248201526250534360e81b604482015290519081900360640190fd5b5050505050505050565b6000612dcc8383613128565b50909150506001600160801b03811615610b46576008546040805163a34123a760e01b8152600286810b600483015285900b602482015260006044820181905282516001600160a01b039094169363a34123a7936064808501949193918390030190829087803b158015612e3f57600080fd5b505af1158015612e53573d6000803e3d6000fd5b505050506040513d6040811015612e6957600080fd5b5050600854604080516309e3d67b60e31b8152306004820152600286810b602483015285900b60448201526001600160801b03606482018190526084820152815160009384936001600160a01b0390911692634f1eb3d89260a4808301939282900301818787803b158015612edd57600080fd5b505af1158015612ef1573d6000803e3d6000fd5b505050506040513d6040811015612f0757600080fd5b508051602091820151600a5460408051600160a01b90920460ff168252938101839052808401829052925191945092507f4606b8a47eb284e8e80929101ece6ab5fe8d4f8735acc56bd0c92ca872f2cfe7916060908290030190a1600a54600090612f7d908490600160a01b900460ff1661386a565b118015612ffe5750600954604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015612fd057600080fd5b505afa158015612fe4573d6000803e3d6000fd5b505050506040513d6020811015612ffa57600080fd5b5051115b1561303f57601054600a5461303f916001600160a01b03169061302c908590600160a01b900460ff1661386a565b6009546001600160a01b03169190612a94565b600a5460009061305a908390600160a01b900460ff1661386a565b1180156130db5750600a54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156130ad57600080fd5b505afa1580156130c1573d6000803e3d6000fd5b505050506040513d60208110156130d757600080fd5b5051115b1561311c57601054600a5461311c916001600160a01b031690613109908490600160a01b900460ff1661386a565b600a546001600160a01b03169190612a94565b505092915050565b5490565b600080600080600030905062ffffff861662ffffff88168260181b1760181b1791506000600860009054906101000a90046001600160a01b03166001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b1580156131a557600080fd5b505afa1580156131b9573d6000803e3d6000fd5b505050506040513d60a08110156131cf57600080fd5b508051606082015160809092015191965090945090506131ee81613f9a565b95505050509250925092565b6000806001600160801b03871615613431576008546040805163a34123a760e01b815260028c810b60048301528b900b60248201526001600160801b038a166044820152815160009384936001600160a01b039091169263a34123a7926064808301939282900301818787803b15801561327357600080fd5b505af1158015613287573d6000803e3d6000fd5b505050506040513d604081101561329d57600080fd5b50805160209091015190925090508582108015906132bb5750848110155b6132f2576040805162461bcd60e51b815260206004820152600360248201526250534360e81b604482015290519081900360640190fd5b6000876133075761330283613f9a565b613310565b6001600160801b035b90506000886133275761332283613f9a565b613330565b6001600160801b035b90506000826001600160801b0316118061335357506000816001600160801b0316115b1561342c57600860009054906101000a90046001600160a01b03166001600160a01b0316634f1eb3d88b8f8f86866040518663ffffffff1660e01b815260040180866001600160a01b031681526020018560020b81526020018460020b8152602001836001600160801b03168152602001826001600160801b03168152602001955050505050506040805180830381600087803b1580156133f357600080fd5b505af1158015613407573d6000803e3d6000fd5b505050506040513d604081101561341d57600080fd5b50805160209091015190965094505b505050505b97509795505050505050565b6000600282810b60171d90818418829003900b620d89e881111561348c576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b6000600182166134a057600160801b6134b2565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156134e6576ffff97272373d413259a46990580e213a0260801c5b6004821615613505576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613524576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615613543576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615613562576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615613581576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156135a0576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156135c0576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156135e0576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613600576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615613620576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615613640576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615613660576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615613680576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156136a0576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156136c1576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156136e1576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615613700576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561371d576b048a170391f7dc42444e8fa20260801c5b60008560020b131561373857806000198161373457fe5b0490505b64010000000081061561374c57600161374f565b60005b60ff16602082901c019350505050919050565b60008261377157506000610b46565b8282028284828161377e57fe5b0414610c015760405162461bcd60e51b81526004018080602001828103825260218152602001806144e26021913960400191505060405180910390fd5b60008080600019858709868602925082811090839003039050806137f157600084116137e657600080fd5b508290049050610c01565b8084116137fd57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60008082116138c0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816138c957fe5b049392505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ced908590613e31565b6001600160a01b038216613986576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61399260008383612ae6565b60025461399f9082612a3a565b6002556001600160a01b0382166000908152602081905260409020546139c59082612a3a565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600080613a288585613128565b50509050613a52613a4d613a3a610b7a565b6118be6001600160801b03851687613762565b613f9a565b95945050505050565b6000806000600860009054906101000a90046001600160a01b03166001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e06040518083038186803b158015613aae57600080fd5b505afa158015613ac2573d6000803e3d6000fd5b505050506040513d60e0811015613ad857600080fd5b50519050613af881613ae98861343d565b613af28861343d565b87613fb1565b9250925050935093915050565b6001600160a01b038216613b4a5760405162461bcd60e51b815260040180806020018281038252602181526020018061452b6021913960400191505060405180910390fd5b613b5682600083612ae6565b613b938160405180606001604052806022815260200161440e602291396001600160a01b03851660009081526020819052604090205491906128d9565b6001600160a01b038316600090815260208190526040902055600254613bb9908261404d565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000613c0b612970565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115613cae5760405162461bcd60e51b81526004018080602001828103825260228152602001806144786022913960400191505060405180910390fd5b8360ff16601b1480613cc357508360ff16601c145b613cfe5760405162461bcd60e51b81526004018080602001828103825260228152602001806144c06022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613d5a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613a52576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b80546001019055565b4690565b6000838383613ddc613dcb565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b6000613e86826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166140aa9092919063ffffffff16565b805190915015612ae657808060200190516020811015613ea557600080fd5b5051612ae65760405162461bcd60e51b815260040180806020018281038252602a815260200180614595602a913960400191505060405180910390fd5b6000836001600160a01b0316856001600160a01b03161115613f02579293925b846001600160a01b0316866001600160a01b031611613f2d57613f268585856140c1565b9050613a52565b836001600160a01b0316866001600160a01b03161015613f8f576000613f548786866140c1565b90506000613f63878986614124565b9050806001600160801b0316826001600160801b031610613f845780613f86565b815b92505050613a52565b612bd2858584614124565b60006001600160801b03821115613fad57fe5b5090565b600080836001600160a01b0316856001600160a01b03161115613fd2579293925b846001600160a01b0316866001600160a01b031611613ffd57613ff6858585614161565b9150614044565b836001600160a01b0316866001600160a01b0316101561403657614022868585614161565b915061402f8587856141ca565b9050614044565b6140418585856141ca565b90505b94509492505050565b6000828211156140a4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60606140b9848460008561420d565b949350505050565b6000826001600160a01b0316846001600160a01b031611156140e1579192915b6000614104856001600160a01b0316856001600160a01b0316600160601b6137bb565b9050613a5261411f84838888036001600160a01b03166137bb565b614368565b6000826001600160a01b0316846001600160a01b03161115614144579192915b6140b961411f83600160601b8787036001600160a01b03166137bb565b6000826001600160a01b0316846001600160a01b03161115614181579192915b836001600160a01b03166141ba606060ff16846001600160801b0316901b8686036001600160a01b0316866001600160a01b03166137bb565b816141c157fe5b04949350505050565b6000826001600160a01b0316846001600160a01b031611156141ea579192915b6140b9826001600160801b03168585036001600160a01b0316600160601b6137bb565b60608247101561424e5760405162461bcd60e51b815260040180806020018281038252602681526020018061449a6026913960400191505060405180910390fd5b6142578561437e565b6142a8576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106142e65780518252601f1990920191602091820191016142c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614348576040519150601f19603f3d011682016040523d82523d6000602084013e61434d565b606091505b509150915061435d828286614384565b979650505050505050565b806001600160801b038116811461102557600080fd5b3b151590565b60608315614393575081610c01565b8251156143a35782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561292d57818101518382015260200161291556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c45434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c6343000706000a000000000000000000000000b7dd20f3fbf4db42fd85c839ac0241d09f72955f000000000000000000000000ade38bd2e8d5a52e60047affe6e595bb5e61923a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000a61574554482d5553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a61574554482d5553444300000000000000000000000000000000000000000000