0 txs
31 calls
constructor
constructor(address _aeroFactory, address _aeroNftPositionManager, address _aeroQuoter, address _addyRegistry, address _coreRouterPool)
functions
ADDY_REGISTRY
viewfunction ADDY_REGISTRY() view returns (address)
AERO_SLIPSTREAM_FACTORY
viewfunction AERO_SLIPSTREAM_FACTORY() view returns (address)
AERO_SLIPSTREAM_NFT_MANAGER
viewfunction AERO_SLIPSTREAM_NFT_MANAGER() view returns (address)
AERO_SLIPSTREAM_QUOTER
viewfunction AERO_SLIPSTREAM_QUOTER() view returns (address)
canGovern
viewfunction canGovern(address _address) view returns (bool)
coreRouterPool
viewfunction coreRouterPool() view returns (address)
getAccessForLego
viewfunction getAccessForLego(address _user) view returns (address, string, uint256)
getAddLiqAmountsIn
viewfunction getAddLiqAmountsIn(address _pool, address _tokenA, address _tokenB, uint256 _availAmountA, uint256 _availAmountB) view returns (uint256, uint256, uint256)
getCoreRouterPool
viewfunction getCoreRouterPool() view returns (address)
getDeepestLiqPool
viewfunction getDeepestLiqPool(address _tokenA, address _tokenB) view returns (tuple)
getLpToken
viewfunction getLpToken(address _pool) view returns (address)
getPoolForLpToken
viewfunction getPoolForLpToken(address _lpToken) view returns (address)
getPriceUnsafe
viewfunction getPriceUnsafe(address _pool, address _targetToken, address _oracleRegistry) view returns (uint256)
getPriceUnsafe
viewfunction getPriceUnsafe(address _pool, address _targetToken) view returns (uint256)
getRegistries
viewfunction getRegistries() view returns (address[])
getRemoveLiqAmountsOut
viewfunction getRemoveLiqAmountsOut(address _pool, address _tokenA, address _tokenB, uint256 _lpAmount) view returns (uint256, uint256)
govChangeDelay
viewfunction govChangeDelay() view returns (uint256)
governance
viewfunction governance() view returns (address)
hasClaimableRewards
viewfunction hasClaimableRewards(address _user) view returns (bool)
hasPendingGovChange
viewfunction hasPendingGovChange() view returns (bool)
isActivated
viewfunction isActivated() view returns (bool)
legoId
viewfunction legoId() view returns (uint256)
MAX_GOV_CHANGE_DELAY
viewfunction MAX_GOV_CHANGE_DELAY() view returns (uint256)
MIN_GOV_CHANGE_DELAY
viewfunction MIN_GOV_CHANGE_DELAY() view returns (uint256)
onERC721Received
viewfunction onERC721Received(address _operator, address _owner, uint256 _tokenId, bytes _data) view returns (bytes4)
pendingGov
viewfunction pendingGov() view returns (tuple)
activate
nonpayablefunction activate(bool _shouldActivate)
addLiquidity
nonpayablefunction addLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, int24 _tickLower, int24 _tickUpper, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, int24 _tickLower, int24 _tickUpper, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, address _recipient) returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256)
cancelGovernanceChange
nonpayablefunction cancelGovernanceChange()
changeGovernance
nonpayablefunction changeGovernance(address _newGov)
claimRewards
nonpayablefunction claimRewards(address _user, address _market, address _rewardToken, uint256 _rewardAmount, bytes32 _proof)
confirmGovernanceChange
nonpayablefunction confirmGovernanceChange()
getBestSwapAmountIn
nonpayablefunction getBestSwapAmountIn(address _tokenIn, address _tokenOut, uint256 _amountOut) returns (address, uint256)
getBestSwapAmountOut
nonpayablefunction getBestSwapAmountOut(address _tokenIn, address _tokenOut, uint256 _amountIn) returns (address, uint256)
getSwapAmountIn
nonpayablefunction getSwapAmountIn(address _pool, address _tokenIn, address _tokenOut, uint256 _amountOut) returns (uint256)
getSwapAmountOut
nonpayablefunction getSwapAmountOut(address _pool, address _tokenIn, address _tokenOut, uint256 _amountIn) returns (uint256)
recoverFunds
nonpayablefunction recoverFunds(address _asset, address _recipient) returns (bool)
recoverNft
nonpayablefunction recoverNft(address _collection, uint256 _nftTokenId, address _recipient) returns (bool)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256, uint256, bool)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, address _recipient) returns (uint256, uint256, uint256, uint256, uint256, bool)
setCoreRouterPool
nonpayablefunction setCoreRouterPool(address _addr) returns (bool)
setGovernanceChangeDelay
nonpayablefunction setGovernanceChangeDelay(uint256 _numBlocks)
setLegoId
nonpayablefunction setLegoId(uint256 _legoId) returns (bool)
swapTokens
nonpayablefunction swapTokens(uint256 _amountIn, uint256 _minAmountOut, address[] _tokenPath, address[] _poolPath, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256)
swapTokens
nonpayablefunction swapTokens(uint256 _amountIn, uint256 _minAmountOut, address[] _tokenPath, address[] _poolPath, address _recipient) returns (uint256, uint256, uint256, uint256)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 _amount0Delta, int256 _amount1Delta, bytes _data)
events
AeroSlipStreamActivated
event AeroSlipStreamActivated(bool isActivated)
AeroSlipStreamCoreRouterPoolSet
event AeroSlipStreamCoreRouterPoolSet(address indexed pool)
AeroSlipStreamFundsRecovered
event AeroSlipStreamFundsRecovered(address indexed asset, address indexed recipient, uint256 amount)
AeroSlipStreamLegoIdSet
event AeroSlipStreamLegoIdSet(uint256 legoId)
AeroSlipStreamLiquidityAdded
event AeroSlipStreamLiquidityAdded(address indexed sender, address indexed tokenA, address indexed tokenB, uint256 amountA, uint256 amountB, uint256 liquidityAdded, uint256 nftTokenId, uint256 usdValue, address recipient)
AeroSlipStreamLiquidityRemoved
event AeroSlipStreamLiquidityRemoved(address sender, address indexed pool, uint256 nftTokenId, address indexed tokenA, address indexed tokenB, uint256 amountA, uint256 amountB, uint256 liquidityRemoved, uint256 usdValue, address recipient)
AeroSlipStreamNftRecovered
event AeroSlipStreamNftRecovered(address indexed collection, uint256 nftTokenId, address indexed recipient)
AeroSlipStreamSwap
event AeroSlipStreamSwap(address indexed sender, address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut, uint256 usdValue, uint256 numTokens, address recipient)
GovChangeCancelled
event GovChangeCancelled(address indexed cancelledGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeConfirmed
event GovChangeConfirmed(address indexed prevGov, address indexed newGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeDelaySet
event GovChangeDelaySet(uint256 delayBlocks)
GovChangeInitiated
event GovChangeInitiated(address indexed prevGov, address indexed newGov, uint256 confirmBlock)
errors
No errors.
creation bytecode
0x6140cc51503461020757602061426f5f395f518060a01c6102075761014052602061428f5f395f518060a01c610207576101605260206142af5f395f518060a01c610207576101805260206142cf5f395f518060a01c610207576101a05260206142ef5f395f518060a01c610207576101c05261014051156100b35761016051156100ad5761018051156100a7576101a051156100a1576101c05115156100b5565b5f6100b5565b5f6100b5565b5f6100b5565b5f5b15610207576101405161406c526101605161408c52610180516140ac526101a0516140cc526101c05160065560016008555f6040526101a0516060526040366080376100ff610111565b61402c61020b610000396140ec610000f35b60405115610120576001610126565b60605115155b156102075760405115610139576040515f555b60605115610148576060516005555b6040608060c05e60c05161015d576001610162565b60e051155b156101dc57606051156102075760605163ed860576610100526020610100600461011c845afa610194573d5f5f3e3d5ffd5b60203d106102075761010090505160c05260605163c55728b0610100526020610100600461011c845afa6101ca573d5f5f3e3d5ffd5b60203d106102075761010090505160e0525b60e05160c05110156102075760c05161402c5260e05161404c52606051156102055760c0516004555b565b5f80fd5f3560e01c60026030820660011b613fcc01601e395f51565b6353aa4307811861005657602436103417613fc8576004358060a01c613fc8576102605260206102605161016052610051610280613366565b610280f35b63bec9a12781186132925760a436103417613fc8576004358060a01c613fc857610380526024358060a01c613fc8576103a0526044358060a01c613fc8576103c05261038051630dfe1681610400526020610400600461041c845afa6100be573d5f5f3e3d5ffd5b3d602081183d6020100218806104000161042011613fc857610400518060a01c613fc85761044052506104409050516103e052604036610400376103805160405261010a610460613f05565b610460516fffffffffffffffffffffffffffffffff8111613fc8576002810a9050610440526103e0516103a0511861016757610440516104005278010000000000000000000000000000000000000000000000006104205261018e565b78010000000000000000000000000000000000000000000000006104005261044051610420525b6064356104605260643561040051808202811583838304141715613fc85790509050610420518015613fc857808204905090506104805260843561048051111561021e5760843561042051808202811583838304141715613fc85790509050610400518015613fc857808204905090506104a0526064356104a0511161021e576104a05161046052608435610480525b60406104606104a05e5f6104e05260606104a0f35b633f561eff81186132925734613fc857600354151560405260206040f35b6399572d6f811861329257602436103417613fc8576004358060a01c613fc857610160526102806101e0613296565b6101e0805160208160051b0180836101805e505050335f6101e0525f6101805160028111613fc85780156102d557905b8060051b6101a0015183186102ca5760016101e0526102d5565b6001018181186102b0575b50506101e051905015613fc8576101605160016101e0525f6101805160028111613fc857801561032557905b8060051b6101a00151831861031a575f6101e052610325565b600101818118610301575b50506101e051905015613fc857610160513b15613fc8576103476101e06133c5565b6101e0511561035a576101605115613fc8575b43600454808201828110613fc857905090506101e05261016051600155436002556101e051600355610160515f547fa8e5a115434955f3c91f53089861da9b575399fbfbc1fc8b345ae6a18b0f193e6101e051610200526020610200a3005b636e4fd9c881186132925734613fc85760015460405260025460605260035460805260405115613fc857608051156103f6576080514310156103f8565b5f5b15613fc8576040513318613fc8575f5460a0526040515f555f6001555f6002555f60035560405160a0517fb5dfe18540f75a87f8c7963e7f4942e9392be572b787d486d7868ac53a5bdf5b6040606060c05e604060c0a3005b63366836cc81186104da5734613fc8573361016052610471610260613366565b6102605115613fc85760015461026052600254610280526003546102a0526102a05115613fc8575f6001555f6002555f600355610260517f4301277e72c59c5071608882749a82a210817721ba94066744cea89211d3838060406102806102c05e60406102c0a2005b630f6da63c811861329257602436103417613fc8576004358060a01c613fc8576040525f60605260206060f35b63a908dc80811861059e57602436103417613fc857600354613fc8573361016052610533610260613366565b6102605115613fc857602061402c5f395f516004351015610554575f610563565b602061404c5f395f5160043511155b15613fc8576004356004557fb8d7f2c6802e04bfd3abb436c2b7b52bd4b37872b53bd1150146816d66ac7de2600435610260526020610260a1005b63f1879c2081186132925734613fc857602061408c60403960206040f35b635aa6e67581186132925734613fc8575f5460405260206040f35b632524081081186132925734613fc85760015460405260025460605260035460805260606040f35b63f40b1697811861061b5734613fc85760045460405260206040f35b6394b51d3781186132925734613fc85760206140cc60403960206040f35b63ed86057681186106575734613fc857602061402c60403960206040f35b632abd8a26811861329257602436103417613fc8576004358060a01c613fc8576040525f60605260206060f35b63c55728b081186132925734613fc857602061404c60403960206040f35b63150b7a02811861329257608436103417613fc8576004358060a01c613fc8576040526024358060a01c613fc85760605260643560040180356104008111613fc8575060208135018082608037505060106104e0527f556e64657273636f726545726337323100000000000000000000000000000000610500526104e080516020820120905060805160a02018613fc8577f150b7a02000000000000000000000000000000000000000000000000000000006104a05260206104a0f35b6335884e5a81186107db5734613fc857602080604052806040015f606061406c6101e03960036101c0525f6101c0518084528060051b5f82600a8111613fc85780156107c557905b8060051b6101e001518160051b6020890101526001018181186107a7575b5050820160200191505090509050810190506040f35b63e9c9c0ca81186132925761018436103417613fc8575f610aa05261114c565b632f7ab0da811861085c57602436103417613fc8576004358060a01c613fc85760405260605f60605280608052806060015f81528051806020830101601f825f03163682375050601f19601f825160200101169050810190505f60a0526060f35b63a2db886a811861329257602436103417613fc8576004358060a01c613fc857610260523361016052610890610280613366565b6102805115613fc85761026051600655610260517f584875e2d9ed4592f718a74b35b92732d61748c4fcc6966fe6d27cab547319035f610280a26001610280526020610280f35b63dd4260a381186108f65760a436103417613fc8575f61048052610939565b632e69938381186132925734613fc857602061406c60403960206040f35b6332f4bdc78118610ea25760c436103417613fc85760a4358060a01c613fc857610480525b6044356004016005813511613fc85780355f8160058111613fc857801561098257905b8060051b6020850101358060a01c613fc8578160051b610320015260010181811861095c575b5050806103005250506064356004016004813511613fc85780355f8160048111613fc85780156109d457905b8060051b6020850101358060a01c613fc8578160051b6103e001526001018181186109ae575b5050806103c05250506084358060a01c613fc8576104605260085415613fc857610300516104a0526103c0516104c05260026104a05110613fc8576104a05160018103818111613fc85790506104c05118613fc8576103005115613fc8575f60051b61032001516104e0526104a05160018103818111613fc857905061030051811015613fc85760051b6103200151610500526104e0516370a082316105405230610560526020610540602461055c845afa610a92573d5f5f3e3d5ffd5b60203d10613fc857610540905051610520526004356104e0516370a082316105605233610580526020610560602461057c845afa610ad2573d5f5f3e3d5ffd5b60203d10613fc85761056090505180828118828410021890509050610540526105405115613fc8576104e0516323b872dd610560523361058052306105a052610540516105c0526020610560606461057c5f855af1610b33573d5f5f3e3d5ffd5b3d610b4a57803b15613fc85760016105e052610b74565b3d602081183d6020100218806105600161058011613fc857610560518060011c613fc8576105e052505b6105e090505115613fc857610540516104e0516370a082316105605230610580526020610560602461057c845afa610bae573d5f5f3e3d5ffd5b60203d10613fc8576105609050518082811882841002189050905061054052602061406c6105603961054051610580525f6104a05160018103818111613fc857905060058111613fc8578015610cd457905b806105a0526105a05161030051811015613fc85760051b61032001516105c0526105a05160018101818110613fc857905061030051811015613fc85760051b61032001516105e0526105a0516103c051811015613fc85760051b6103e001516106005261046051610620526104a05160028103818111613fc85790506105a0511015610c8c5730610620525b610600516040526105c0516060526105e0516080526105805160a0526106205160c0526105605160e052610cc16106406133ce565b6106405161058052600101818118610c00575b5050610580516105a0526024356105a05110613fc8576104e0516370a082316105e052306106005260206105e060246105fc845afa610d15573d5f5f3e3d5ffd5b60203d10613fc8576105e09050516105c0525f6105e052610520516105c0511115610def576105c05161052051808203828111613fc857905090506105e0526104e05163a9059cbb6106005233610620526105e051610640526020610600604461061c5f855af1610d88573d5f5f3e3d5ffd5b3d610d9f57803b15613fc857600161066052610dc9565b3d602081183d6020100218806106000161062011613fc857610600518060011c613fc85761066052505b61066090505115613fc857610540516105e051808203828111613fc85790509050610540525b6104e05160405261054051606052610500516080526105a05160a052600160c0526104805160e052610e22610620613754565b6106205161060052610500516104e051337f2c1281efde94607d5859f54863ebacddf163aa3ce0ed2cc9eb95c45aca13ea9861054051610620526105a0516106405261060051610660526104a05161068052610460516106a05260a0610620a461054051610620526105a0516106405260406105e06106605e6080610620f35b6324ae6a27811861329257604436103417613fc8576004358060a01c613fc857610260526024358060a01c613fc857610280523361016052610ee56102a0613366565b6102a05115613fc857610260516370a082316102c052306102e05260206102c060246102dc845afa610f19573d5f5f3e3d5ffd5b60203d10613fc8576102c09050516102a05261028051610f3a576001610f40565b61026051155b610f4e576102a05115610f51565b60015b15610f65575f6102e05260206102e0611024565b6102605163a9059cbb6102c05260406102806102e05e60206102c060446102dc5f855af1610f95573d5f5f3e3d5ffd5b3d610fac57803b15613fc857600161032052610fd6565b3d602081183d6020100218806102c0016102e011613fc8576102c0518060011c613fc85761032052505b61032090505115613fc85761028051610260517f7664304b16d97d539342794557781b57fa5343241f72a6ea236ddd6a250bab876102a0516102c05260206102c0a360016102c05260206102c05bf35b63fa461e33811861110957606436103417613fc85760443560040180356101008111613fc8575060208135018082604037505060015c6101605260025c6101805260035c6101a052610160513318613fc8576101805163a9059cbb6101c052610160516101e0526101a0516102005260206101c060446101dc5f855af16110af573d5f5f3e3d5ffd5b3d6110c657803b15613fc8576001610220526110f0565b3d602081183d6020100218806101c0016101e011613fc8576101c0518060011c613fc85761022052505b61022090505115613fc8575f60015d5f60025d5f60035d005b63af90b6b381186132925734613fc85760065460405260206040f35b63cd3758fc8118611be5576101a436103417613fc857610184358060a01c613fc857610aa0525b6024358060a01c613fc8576109e0526044358060a01c613fc857610a00526064358060a01c613fc857610a20526084358060020b8118613fc857610a405260a4358060020b8118613fc857610a6052610164358060a01c613fc857610a805260085415613fc8576109e051630dfe1681610b00526020610b006004610b1c845afa6111d9573d5f5f3e3d5ffd5b3d602081183d602010021880610b0001610b2011613fc857610b00518060a01c613fc857610b405250610b40905051610ac0526109e05163d21220a7610b60526020610b606004610b7c845afa611232573d5f5f3e3d5ffd5b3d602081183d602010021880610b6001610b8011613fc857610b60518060a01c613fc857610ba05250610ba0905051610ae052610a00515f610b00525f6002905b8060051b610ac00151831861128d576001610b0052611298565b600101818118611273575b5050610b0051905015613fc857610a20515f610b00525f6002905b8060051b610ac0015183186112cd576001610b00526112d8565b6001018181186112b3575b5050610b0051905015613fc857610a2051610a005114613fc857610a00516370a08231610b205230610b40526020610b206024610b3c845afa61131d573d5f5f3e3d5ffd5b60203d10613fc857610b20905051610b0052610a20516370a08231610b405230610b60526020610b406024610b5c845afa61135a573d5f5f3e3d5ffd5b60203d10613fc857610b40905051610b205260c435610a00516370a08231610b605233610b80526020610b606024610b7c845afa61139a573d5f5f3e3d5ffd5b60203d10613fc857610b6090505180828118828410021890509050610b4052610b405115613fc857610a00516323b872dd610b605233610b805230610ba052610b4051610bc0526020610b606064610b7c5f855af16113fb573d5f5f3e3d5ffd5b3d61141257803b15613fc8576001610be05261143c565b3d602081183d602010021880610b6001610b8011613fc857610b60518060011c613fc857610be052505b610be090505115613fc857610b4051610a00516370a08231610b805230610ba0526020610b806024610b9c845afa611476573d5f5f3e3d5ffd5b60203d10613fc857610b8090505180828118828410021890509050610b605260e435610a20516370a08231610ba05233610bc0526020610ba06024610bbc845afa6114c3573d5f5f3e3d5ffd5b60203d10613fc857610ba090505180828118828410021890509050610b8052610b805115613fc857610a20516323b872dd610ba05233610bc05230610be052610b8051610c00526020610ba06064610bbc5f855af1611524573d5f5f3e3d5ffd5b3d61153b57803b15613fc8576001610c2052611565565b3d602081183d602010021880610ba001610bc011613fc857610ba0518060011c613fc857610c2052505b610c2090505115613fc857610b8051610a20516370a08231610bc05230610be0526020610bc06024610bdc845afa61159f573d5f5f3e3d5ffd5b60203d10613fc857610bc090505180828118828410021890509050610ba052602061408c610bc039610a005163095ea7b3610be052610bc051610c0052610b6051610c20526020610be06044610bfc5f855af16115fe573d5f5f3e3d5ffd5b3d61161557803b15613fc8576001610c405261163f565b3d602081183d602010021880610be001610c0011613fc857610be0518060011c613fc857610c4052505b610c4090505115613fc857610a205163095ea7b3610be052610bc051610c0052610ba051610c20526020610be06044610bfc5f855af1611681573d5f5f3e3d5ffd5b3d61169857803b15613fc8576001610c40526116c2565b3d602081183d602010021880610be001610c0011613fc857610be0518060011c613fc857610c4052505b610c4090505115613fc8576040610a00610be05e610b6051610c2052610ba051610c40526040610104610c6037610a0051610ac0511461172d57610a2051610be052610a0051610c0052610ba051610c2052610b6051610c405261012435610c605261010435610c80525b600435610ca052604036610cc0376004356117a857610bc05160e0526109e051610100526040610be06101205e6040610a406101605e6080610c206101a05e610a80516102205261177f610d00613947565b610d00608081610d805e50610d8051610ca052610da051610ce0526040610dc0610c205e6117f7565b610bc05161034052600435610360526080610c206103805e610a8051610400526117d3610d00613b22565b610d00606081610d605e50610d6051610ce052610d8051610c2052610da051610c40525b610ce051610cc052610cc05115613fc857610a005163095ea7b3610d0052610bc051610d20525f610d40526020610d006044610d1c5f855af161183c573d5f5f3e3d5ffd5b3d61185357803b15613fc8576001610d605261187d565b3d602081183d602010021880610d0001610d2011613fc857610d00518060011c613fc857610d6052505b610d6090505115613fc857610a205163095ea7b3610d0052610bc051610d20525f610d40526020610d006044610d1c5f855af16118bc573d5f5f3e3d5ffd5b3d6118d357803b15613fc8576001610d60526118fd565b3d602081183d602010021880610d0001610d2011613fc857610d00518060011c613fc857610d6052505b610d6090505115613fc857610a00516370a08231610d205230610d40526020610d206024610d3c845afa611933573d5f5f3e3d5ffd5b60203d10613fc857610d20905051610d00525f610d2052610b0051610d005111156119f357610d0051610b0051808203828111613fc85790509050610d2052610a005163a9059cbb610d405233610d6052610d2051610d80526020610d406044610d5c5f855af16119a6573d5f5f3e3d5ffd5b3d6119bd57803b15613fc8576001610da0526119e7565b3d602081183d602010021880610d4001610d6011613fc857610d40518060011c613fc857610da052505b610da090505115613fc8575b610a20516370a08231610d605230610d80526020610d606024610d7c845afa611a1e573d5f5f3e3d5ffd5b60203d10613fc857610d60905051610d40525f610d6052610b2051610d40511115611ade57610d4051610b2051808203828111613fc85790509050610d6052610a205163a9059cbb610d805233610da052610d6051610dc0526020610d806044610d9c5f855af1611a91573d5f5f3e3d5ffd5b3d611aa857803b15613fc8576001610de052611ad2565b3d602081183d602010021880610d8001610da011613fc857610d80518060011c613fc857610de052505b610de090505115613fc8575b610c2051610b6052610c4051610ba052610a0051610ac05114611b0c57610c4051610b6052610c2051610ba0525b610a0051604052610b6051606052610a2051608052610ba05160a0525f60c052610aa05160e052611b3e610da0613754565b610da051610d8052610a2051610a0051337fdb1eec235c79fe8372fc94936a178c794111fd461c21ad14990105658d9641a2610b6051610da052610ba051610dc052610cc051610de052610ca051610e0052610d8051610e2052610a8051610e405260c0610da0a4610cc051610da052610b6051610dc052610ba051610de052610d8051610e0052610d2051610e2052610d6051610e4052610ca051610e605260e0610da0f35b638aadf9ac81186132925760a436103417613fc8576004358060a01c613fc8576040526024358060a01c613fc8576060526044358060a01c613fc857608052005b63971f0c3181186132925761012436103417613fc8575f6103e052611c6d565b6304c388ae81186132925761014436103417613fc857610124358060a01c613fc8576103e0525b6024358060a01c613fc857610340526044358060a01c613fc857610360526064358060a01c613fc857610380526084358060a01c613fc8576103a052610104358060a01c613fc8576103c05260085415613fc857602061408c610400393061040051636352211e61042052600435610440526020610420602461043c845afa611cf8573d5f5f3e3d5ffd5b3d602081183d6020100218806104200161044011613fc857610420518060a01c613fc857610460525061046090505118613fc857610400516399fbab886105a0526004356105c0526101806105a060246105bc845afa611d5a573d5f5f3e3d5ffd5b3d61018081183d610180100218806105a00161072011613fc857806105a00161072011613fc8576105a0518060601c613fc857610740526105c0518060a01c613fc857610760526105e0518060a01c613fc85761078052610600518060a01c613fc8576107a052610620518060181c613fc8576107c052610640518060020b8118613fc8576107e052610660518060020b8118613fc85761080052610680518060801c613fc8576108205260406106a06108405e6106e0518060801c613fc85761088052610700518060801c613fc8576108a052506107409050610180816104205e50610500516105a05260406104606105c05e610360515f610600525f6002905b8060051b6105c001518318611e7657600161060052611e81565b600101818118611e5c575b505061060051905015613fc857610380515f610600525f6002905b8060051b6105c001518318611eb657600161060052611ec1565b600101818118611e9c575b505061060051905015613fc857610380516103605114613fc857604060c4610600376105c0516103605114611eff5760e4356106005260c435610620525b60a4356105005180828118828410021890509050610640526106405115613fc85760043561066052610640518060801c613fc8576106805260406106006106a05e426106e0526040366107003761040051630c49ccbe6107405260a06106606107605e604061074060a461075c5f855af1611f7c573d5f5f3e3d5ffd5b60403d10613fc85761074090506040816108005e5060406108006107005e6107005115611fae57610720511515611fb0565b5f5b15613fc85760406107006107405e6105c0516103605114611fdc57610720516107405261070051610760525b610400516399fbab88610780526004356107a052610180610780602461079c845afa61200a573d5f5f3e3d5ffd5b3d61018081183d610180100218806107800161090011613fc857806107800161090011613fc857610780518060601c613fc857610920526107a0518060a01c613fc857610940526107c0518060a01c613fc857610960526107e0518060a01c613fc85761098052610800518060181c613fc8576109a052610820518060020b8118613fc8576109c052610840518060020b8118613fc8576109e052610860518060801c613fc857610a00526040610880610a205e6108c0518060801c613fc857610a60526108e0518060801c613fc857610a805250610920905061018081610aa05e50610180610aa06104205e610400516040526004356060526103c05160805261018061042060a05e61211f610780613a82565b610780505f610780526105005161217057600161078052610400516342966c686107a0526004356107c052803b15613fc8575f6107a060246107bc5f855af161216a573d5f5f3e3d5ffd5b506121b3565b610400516342842e0e6107a052306107c0526103c0516107e05260043561080052803b15613fc8575f6107a060646107bc5f855af16121b1573d5f5f3e3d5ffd5b505b6103605160405261074051606052610380516080526107605160a0525f60c0526103e05160e0526121e56107c0613754565b6107c0516107a0526105a051610500518082038060801c613fc857905090506107c0526103805161036051610340517f153d89a6b94d3f864a0d2acaa25db05197482808ea61d30d5331fb53026d4d7b336107e0526004356108005260406107406108205e6107c051610860526107a051610880526103c0516108a05260e06107e0a460406107406107e05e60406107a06108205e5f61086052610780516108805260c06107e0f35b63b6ff4934811861329257602436103417613fc8576004358060a01c613fc8576040525f60605260206060f35b6370b422bf811861329257604436103417613fc8576004358060a01c613fc857610200526024358060a01c613fc8576102205260403661024037604061020060405e612308610280613da9565b6102806040816102c05e5060406102c06102405e610240516123355760a0366102803760a0610280612449565b610200516370a082316102a052610240516102c05260206102a060246102bc845afa612363573d5f5f3e3d5ffd5b60203d10613fc8576102a090505161028052610220516370a082316102c052610240516102e05260206102c060246102dc845afa6123a3573d5f5f3e3d5ffd5b60203d10613fc8576102c09050516102a05261024051610320526102405163ddca3f436102c05260206102c060046102dc845afa6123e3573d5f5f3e3d5ffd5b3d602081183d6020100218806102c0016102e011613fc8576102c0518060181c613fc857610300525061030090505160648104905061034052610280516102a051808201828110613fc85790509050610360526002610380526007546103a05260a06103205bf35b63a9f70155811861329257606436103417613fc8576004358060a01c613fc857610200526024358060a01c613fc8576102205260403661024037604061020060405e612498610280613da9565b6102806040816102c05e5060406102c06102405e610240516124c55760403661028037604061028061258a565b6080366102803760206140ac5f395f51639e7defe66103005260406102006103205e6044356103605261026051610380525f6103a052608061030060a461031c5f855af1612515573d5f5f3e3d5ffd5b3d608081183d6080100218806103000161038011613fc857610300516103c052610320518060a01c613fc8576103e052610340518060201c613fc857610400526103605161042052506103c090506080816104405e5060806104406102805e6102405161030052610280516103205260406103005bf35b6302bc29fa811861329257608436103417613fc8576004358060a01c613fc8576040526024358060a01c613fc8576060526044358060a01c613fc85760805260803660a03760206140ac5f395f51639e7defe661018052604060606101a05e6064356101e05260405163d0c93a7c610120526020610120600461013c845afa612617573d5f5f3e3d5ffd5b3d602081183d6020100218806101200161014011613fc857610120518060020b8118613fc8576101605250610160905051610200525f61022052608061018060a461019c5f855af161266b573d5f5f3e3d5ffd5b3d608081183d6080100218806101800161020011613fc85761018051610240526101a0518060a01c613fc857610260526101c0518060201c613fc857610280526101e0516102a0525061024090506080816102c05e5060806102c060a05e602060a0f35b636d15bcdd811861329257606436103417613fc8576004358060a01c613fc857610200526024358060a01c613fc85761022052604435612710576001612716565b60443519155b1561274f575f610240527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61026052604061024061285b565b60403661024037604061020060405e612769610280613da9565b6102806040816102c05e5060406102c06102405e610240516127965760403661028037604061028061285b565b6080366102803760206140ac5f395f5163fa6af9086103005260406102006103205e6044356103605261026051610380525f6103a052608061030060a461031c5f855af16127e6573d5f5f3e3d5ffd5b3d608081183d6080100218806103000161038011613fc857610300516103c052610320518060a01c613fc8576103e052610340518060201c613fc857610400526103605161042052506103c090506080816104405e5060806104406102805e6102405161030052610280516103205260406103005bf35b633d17dd7b81186129e757608436103417613fc8576004358060a01c613fc8576040526024358060a01c613fc8576060526044358060a01c613fc8576080526064356128aa5760016128b0565b60643519155b156128e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a052602060a06129e5565b60803660a03760206140ac5f395f5163fa6af90861018052604060606101a05e6064356101e05260405163d0c93a7c610120526020610120600461013c845afa61292e573d5f5f3e3d5ffd5b3d602081183d6020100218806101200161014011613fc857610120518060020b8118613fc8576101605250610160905051610200525f61022052608061018060a461019c5f855af1612982573d5f5f3e3d5ffd5b3d608081183d6080100218806101800161020011613fc85761018051610240526101a0518060a01c613fc857610260526101c0518060201c613fc857610280526101e0516102a0525061024090506080816102c05e5060806102c060a05e602060a05bf35b6311654a6b81186132925734613fc85760206140ac60403960206040f35b63d56e9c3e8118612b3f57608436103417613fc8576004358060a01c613fc857610380526024358060a01c613fc8576103a0526044358060a01c613fc8576103c05261038051630dfe1681610400526020610400600461041c845afa612a6d573d5f5f3e3d5ffd5b3d602081183d6020100218806104000161042011613fc857610400518060a01c613fc85761044052506104409050516103e05261038051604052612ab2610420613f05565b61042051610400526064358060601b818160601c18613fc8579050610400518015613fc857808204905090506104205260643561040051808202811583838304141715613fc857905090508060601c9050610440526103e0516103a05118612b275760406104206104605e6040610460612b3d565b6104405161046052610420516104805260406104605bf35b6381b5e05e811861329257606436103417613fc8576004358060a01c613fc857610260526044358060a01c613fc857610280523361016052612b826102a0613366565b6102a05115613fc8573061026051636352211e6102a0526024356102c05260206102a060246102bc845afa612bb9573d5f5f3e3d5ffd5b3d602081183d6020100218806102a0016102c011613fc8576102a0518060a01c613fc8576102e052506102e090505114612bfc575f610300526020610300612c80565b610260516342842e0e6102a052306102c052610280516102e05260243561030052803b15613fc8575f6102a060646102bc5f855af1612c3d573d5f5f3e3d5ffd5b5061028051610260517fd69acf1aee08333219f0f1d605eca40d19fd6425e60b0fd8a282f780b3cd17ad6024356102a05260206102a0a360016102a05260206102a05bf35b6359ad5d18811861329257604436103417613fc8575f6103c052612cc6565b6360572591811861329257606436103417613fc8576044358060a01c613fc8576103c0525b6004358060a01c613fc857610380526024358060a01c613fc8576103a05261038051630dfe1681610400526020610400600461041c845afa612d0a573d5f5f3e3d5ffd5b3d602081183d6020100218806104000161042011613fc857610400518060a01c613fc85761044052506104409050516103e0526103805163d21220a7610420526020610420600461043c845afa612d63573d5f5f3e3d5ffd5b3d602081183d6020100218806104200161044011613fc857610420518060a01c613fc8576104605250610460905051610400526103c051610420526103c051612e0b5760206140cc5f395f516347be091a610440526004610460526020610440602461045c845afa612dd7573d5f5f3e3d5ffd5b3d602081183d6020100218806104400161046011613fc857610440518060a01c613fc8576104805250610480905051610420525b5f610440526103e0516103a05118612e6757610420516376d697606104605261040051610480525f6104a0526020610460604461047c845afa612e50573d5f5f3e3d5ffd5b60203d10613fc85761046090505161044052612ead565b610420516376d69760610460526103e051610480525f6104a0526020610460604461047c845afa612e9a573d5f5f3e3d5ffd5b60203d10613fc857610460905051610440525b61044051612ec4575f6104605260206104606130f6565b61038051604052612ed6610480613f05565b6104805161046052610460516fffffffffffffffffffffffffffffffff8111613fc8576002810a9050670de0b6b3a7640000810281670de0b6b3a7640000820418613fc857905061048052610480518060c01c90506104a0526103e05163313ce5676104e05260206104e060046104fc845afa612f55573d5f5f3e3d5ffd5b3d602081183d6020100218806104e00161050011613fc8576104e0518060081c613fc85761052052506105209050516104c0526104005163313ce567610500526020610500600461051c845afa612fae573d5f5f3e3d5ffd5b3d602081183d6020100218806105000161052011613fc857610500518060081c613fc85761054052506105409050516104e0526104e0516104c05111613042576104c0516104e051111561308b576104e0516104c051808203828111613fc85790509050604d8111613fc85780600a0a9050610500526104a051610500518015613fc857808204905090506104a05261308b565b6104c0516104e051808203828111613fc85790509050604d8111613fc85780600a0a9050610500526104a05161050051808202811583838304141715613fc857905090506104a0525b6104a05161050052610400516103a051186130c3576104a0518015613fc857806ec097ce7bc90715b34b9f1000000000049050610500525b6104405161050051808202811583838304141715613fc85790509050670de0b6b3a7640000810490506105205260206105205bf35b63ab96e079811861329257602436103417613fc85760206140cc5f395f516347be091a6040526002606052602060406024605c845afa61313a573d5f5f3e3d5ffd5b3d602081183d602010021880604001606011613fc8576040518060a01c613fc8576080525060809050513318613fc85760075460405260405161317e576001613187565b60043560405118155b15613fc8576004356007557f084a2bd2bf2a0490f703c06c3a617289bdc3cb521138efa98165090e097e0c8760043560605260206060a1600160605260206060f35b63ce5e84a3811861329257602436103417613fc8576004358060011c613fc8576102605233610160526131fd610280613366565b6102805115613fc857610260516008557f250a8f19d0d5ddb7877e932ed6a010f828170d3458066dc8ea31759b1238879361026051610280526020610280a1005b6344d92a2281186132925734613fc85760065460405260206040f35b6359b76fe481186132765734613fc85760075460405260206040f35b634a8c1fb481186132925734613fc85760085460405260206040f35b5f5ffd5b5f6040525f5460a05260a051156132c65760405160018111613fc85760a0518160051b6060015260018101604052505b60055460c05260c051156133525760c051635aa6e675610100526020610100600461011c845afa6132f9573d5f5f3e3d5ffd5b3d602081183d6020100218806101000161012011613fc857610100518060a01c613fc857610140525061014090505160e05260e051156133525760405160018111613fc85760e0518160051b6060015260018101604052505b60405160208160051b01806040845e505050565b610160516133756101e0613296565b6101e05f610240525f815160028111613fc85780156133b657905b8060051b60208401015184186133ab576001610240526133b6565b600101818118613390575b50506102405190509050815250565b60055415815250565b604051630dfe1681610140526020610140600461015c845afa6133f3573d5f5f3e3d5ffd5b3d602081183d6020100218806101400161016011613fc857610140518060a01c613fc85761018052506101809050516101005260405163d21220a76101a05260206101a060046101bc845afa61344b573d5f5f3e3d5ffd5b3d602081183d6020100218806101a0016101c011613fc8576101a0518060a01c613fc8576101e052506101e0905051610120526060515f610140525f6002905b8060051b610100015183186134a5576001610140526134b0565b60010181811861348b575b505061014051905015613fc8576080515f610140525f6002905b8060051b610100015183186134e4576001610140526134ef565b6001018181186134ca575b505061014051905015613fc85760805160605114613fc85760405160e0516328af8d0b6101a052604060606101c05e60405163d0c93a7c610140526020610140600461015c845afa613543573d5f5f3e3d5ffd5b3d602081183d6020100218806101400161016011613fc857610140518060020b8118613fc85761018052506101809050516102005260206101a060646101bc845afa613591573d5f5f3e3d5ffd5b3d602081183d6020100218806101a0016101c011613fc8576101a0518060a01c613fc857610220525061022090505118613fc85760405160015d60605160025d60a05160035d61010051606051146101405273fffd8963efd1fc6a506488495d951d5263988d25610160526101405115613610576401000276a4610160525b6040366101803760405163128acb086101e05260a060c05161020052610140516102205260a0518060ff1c613fc85761024052610160516102605280610280525f6101c0526101c081610200015f81528051806020830101601f825f03163682375050601f19601f82516020010116905090508101505060406101e060c46101fc5f855af16136a1573d5f5f3e3d5ffd5b60403d10613fc8576101e090506040816102c05e5060406102c06101805e5f6101c0526101405161370957610180517f80000000000000000000000000000000000000000000000000000000000000008114613fc8575f035f8112613fc8576101c052613742565b6101a0517f80000000000000000000000000000000000000000000000000000000000000008114613fc8575f035f8112613fc8576101c0525b6101c05115613fc8576101c051815250565b60e0516101005260e0516137c75760206140cc5f395f516347be091a610120526004610140526020610120602461013c845afa613793573d5f5f3e3d5ffd5b3d602081183d6020100218806101200161014011613fc857610120518060a01c613fc8576101605250610160905051610100525b6101005163c660d11261014052604060406101605e6020610140604461015c845afa6137f5573d5f5f3e3d5ffd5b60203d10613fc857610140905051610120526101005163c660d11261016052604060806101805e6020610160604461017c845afa613835573d5f5f3e3d5ffd5b60203d10613fc8576101609050516101405260c05161386c576101205161014051808201828110613fc85790509050815250613885565b6101205161014051808281188284110218905090508152505b565b60605160a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000606051186138fc576040518015613fc857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276180590506040518082028060020b8118613fc8579050905060a0525b60805160c052627fffff60805118613937576040518015613fc85780620d89e80590506040518082028060020b8118613fc8579050905060c0525b60a051815260c051602082015250565b6101005163d0c93a7c610260526020610260600461027c845afa61396d573d5f5f3e3d5ffd5b3d602081183d6020100218806102600161028011613fc857610260518060020b8118613fc8576102a052506102a090505161024052604036610260376102405160405261016051606052610180516080526139c96102a0613887565b6102a08051610260526020810151610280525060406101206102a05e60606102406102e05e6101a0516103405260806101c06103605e426103e0525f6104005260e05163b5007d1f610420526101806102a06104405e608061042061018461043c5f855af1613a3a573d5f5f3e3d5ffd5b3d608081183d608010021880610420016104a011613fc857610420516105c052610440518060801c613fc8576105e05260406104606106005e506105c09050608081835e5050565b6101e051613a94576102005115613a96565b5f5b15613aaa575f81525f602082015250613b20565b604060606102205e6fffffffffffffffffffffffffffffffff610260526fffffffffffffffffffffffffffffffff6102805260405163fc6f78656102a05260806102206102c05e60406102a060846102bc5f855af1613b0b573d5f5f3e3d5ffd5b60403d10613fc8576102a09050604081835e50505b565b3061034051636352211e6104205261036051610440526020610420602461043c845afa613b51573d5f5f3e3d5ffd5b3d602081183d6020100218806104200161044011613fc857610420518060a01c613fc857610460525061046090505118613fc8576060366104203760a06103606104805e42610520526103405163219f5d176105405260c06104806105605e606061054060c461055c5f855af1613bca573d5f5f3e3d5ffd5b3d606081183d606010021880610540016105a011613fc857610540518060801c613fc8576106205260406105606106405e5061062090506060816106805e5060606106806104205e610340516399fbab886106c052610360516106e0526101806106c060246106dc845afa613c41573d5f5f3e3d5ffd5b3d61018081183d610180100218806106c00161084011613fc857806106c00161084011613fc8576106c0518060601c613fc857610860526106e0518060a01c613fc85761088052610700518060a01c613fc8576108a052610720518060a01c613fc8576108c052610740518060181c613fc8576108e052610760518060020b8118613fc85761090052610780518060020b8118613fc857610920526107a0518060801c613fc8576109405260406107c06109605e610800518060801c613fc8576109a052610820518060801c613fc8576109c052506108609050610180816105405e50604061034060405e6104005160805261018061054060a05e613d476106c0613a82565b6106c050610340516342842e0e6106c052306106e05261040051610700526103605161072052803b15613fc8575f6106c060646106dc5f855af1613d8d573d5f5f3e3d5ffd5b5061042051815261044051602082015261046051604082015250565b606036608037602061406c60e0395f6005905b806101005260016101405260326101605260646101805260c86101a0526107d06101c052610140610100516005811015613fc85760051b81019050516101205260e0516328af8d0b61016052604060406101805e610120516101c0526020610160606461017c845afa613e31573d5f5f3e3d5ffd5b3d602081183d6020100218806101600161018011613fc857610160518060a01c613fc8576101e052506101e0905051610140526101405115613ee95761014051631a686502610180526020610180600461019c845afa613e93573d5f5f3e3d5ffd5b3d602081183d602010021880610180016101a011613fc857610180518060801c613fc8576101c052506101c09050516101605260c051610160511315613ee957610140516080526101205160a0526101605160c0525b600101818118613dbc575050608051815260a051602082015250565b60c036606037604051633850c7bd6101205260c0610120600461013c845afa613f30573d5f5f3e3d5ffd5b3d60c081183d60c010021880610120016101e011613fc857610120518060a01c613fc85761020052610140518060020b8118613fc85761022052610160518060101c613fc85761024052610180518060101c613fc857610260526101a0518060101c613fc857610280526101c0518060011c613fc8576102a05250610200905060c0816102c05e5060c06102c060605e606051815250565b5f80fd05073292329208d7228e329232920914329230f8258c285d112532921c46025105d72ca106a231c9325a05bc329205ff03b9329207fb3292329226cf329222bb06841c26323e10263292244b063900182c823292075f3292045132922a050233855820b5b0e5d7d0fcb9983e3f335a47064879b0769b3905b791cf24c505a6b0e5501019402c81186018c0a16576797065728300040100380000000000000000000000005e7bb104d84c7cb9b682aac2f3d509f5f406809a000000000000000000000000827922686190790b37229fd06084350e74485b72000000000000000000000000254cf9e1e6e233aa1ac962cb9b05b2cfeaae15b00000000000000000000000007bcd6d471d1a068012a79347c7a944d1df01a1ae000000000000000000000000b2cc224c1c9fee385f8ad6a55b4d94e92359dc59