0 txs
1.3k calls
constructor
constructor(address _undyHq, address _ripeRegistry)
functions
assetOpportunities
viewfunction assetOpportunities(address arg0, uint256 arg1) view returns (address)
assets
viewfunction assets(uint256 arg0) view returns (address)
getAccessForLego
viewfunction getAccessForLego(address _user, uint256 _action) view returns (address, string, uint256)
getAddys
viewfunction getAddys() view returns (tuple)
getAssetOpportunities
viewfunction getAssetOpportunities(address _asset) view returns (address[])
getAssets
viewfunction getAssets() view returns (address[])
getNumLegoAssets
viewfunction getNumLegoAssets() view returns (uint256)
getPrice
viewfunction getPrice(address _asset, uint256 _decimals) view returns (uint256)
getPricePerShare
viewfunction getPricePerShare(address _asset, uint256 _decimals) view returns (uint256)
getRegistries
viewfunction getRegistries() view returns (address[])
getUnderlyingAmount
viewfunction getUnderlyingAmount(address _vaultToken, uint256 _vaultTokenAmount) view returns (uint256)
getUnderlyingAsset
viewfunction getUnderlyingAsset(address _vaultToken) view returns (address)
getUnderlyingData
viewfunction getUnderlyingData(address _vaultToken, uint256 _vaultTokenAmount, address _appraiser) view returns (address, uint256, uint256)
getUnderlyingData
viewfunction getUnderlyingData(address _vaultToken, uint256 _vaultTokenAmount) view returns (address, uint256, uint256)
getUndyHq
viewfunction getUndyHq() view returns (address)
getUsdValueOfVaultToken
viewfunction getUsdValueOfVaultToken(address _vaultToken, uint256 _vaultTokenAmount, address _appraiser) view returns (uint256)
getUsdValueOfVaultToken
viewfunction getUsdValueOfVaultToken(address _vaultToken, uint256 _vaultTokenAmount) view returns (uint256)
getVaultTokenAmount
viewfunction getVaultTokenAmount(address _asset, uint256 _assetAmount, address _vaultToken) view returns (uint256)
hasCapability
viewfunction hasCapability(uint256 _action) view returns (bool)
indexOfAsset
viewfunction indexOfAsset(address arg0) view returns (uint256)
indexOfAssetOpportunity
viewfunction indexOfAssetOpportunity(address arg0, address arg1) view returns (uint256)
isAssetOpportunity
viewfunction isAssetOpportunity(address _asset, address _vaultAddr) view returns (bool)
isDexLego
viewfunction isDexLego() view returns (bool)
isEligibleForYieldBonus
viewfunction isEligibleForYieldBonus(address _asset) view returns (bool)
isEligibleVaultForTrialFunds
viewfunction isEligibleVaultForTrialFunds(address _vaultToken, address _underlyingAsset) view returns (bool)
isLegoAsset
viewfunction isLegoAsset(address _asset) view returns (bool)
isPaused
viewfunction isPaused() view returns (bool)
isRebasing
viewfunction isRebasing() view returns (bool)
isVaultToken
viewfunction isVaultToken(address _vaultToken) view returns (bool)
isYieldLego
viewfunction isYieldLego() view returns (bool)
numAssetOpportunities
viewfunction numAssetOpportunities(address arg0) view returns (uint256)
numAssets
viewfunction numAssets() view returns (uint256)
RIPE_GREEN_TOKEN
viewfunction RIPE_GREEN_TOKEN() view returns (address)
RIPE_REGISTRY
viewfunction RIPE_REGISTRY() view returns (address)
RIPE_SAVINGS_GREEN
viewfunction RIPE_SAVINGS_GREEN() view returns (address)
RIPE_TOKEN
viewfunction RIPE_TOKEN() view returns (address)
totalAssets
viewfunction totalAssets(address _vaultToken) view returns (uint256)
totalBorrows
viewfunction totalBorrows(address _vaultToken) view returns (uint256)
vaultToAsset
viewfunction vaultToAsset(address arg0) view returns (address)
addAssetOpportunity
nonpayablefunction addAssetOpportunity(address _asset, address _vaultAddr)
addCollateral
nonpayablefunction addCollateral(address _asset, uint256 _amount, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256)
addCollateral
nonpayablefunction addCollateral(address _asset, uint256 _amount, bytes32 _extraData, address _recipient) returns (uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (address, uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, bytes32 _extraData, address _recipient) returns (address, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, int24 _tickLower, int24 _tickUpper, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, int24 _tickLower, int24 _tickUpper, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, address _recipient) returns (uint256, uint256, uint256, uint256, uint256)
borrow
nonpayablefunction borrow(address _borrowAsset, uint256 _amount, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256)
borrow
nonpayablefunction borrow(address _borrowAsset, uint256 _amount, bytes32 _extraData, address _recipient) returns (uint256, uint256)
claimRewards
nonpayablefunction claimRewards(address _user, address _rewardToken, uint256 _rewardAmount, bytes32 _extraData, tuple _miniAddys) returns (uint256, uint256)
claimRewards
nonpayablefunction claimRewards(address _user, address _rewardToken, uint256 _rewardAmount, bytes32 _extraData) returns (uint256, uint256)
confirmMintOrRedeemAsset
nonpayablefunction confirmMintOrRedeemAsset(address _tokenIn, address _tokenOut, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256)
confirmMintOrRedeemAsset
nonpayablefunction confirmMintOrRedeemAsset(address _tokenIn, address _tokenOut, bytes32 _extraData, address _recipient) returns (uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _asset, uint256 _amount, address _vaultAddr, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, address, uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _asset, uint256 _amount, address _vaultAddr, bytes32 _extraData, address _recipient) returns (uint256, address, uint256, uint256)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _tokenIn, address _tokenOut, uint256 _tokenInAmount, uint256 _minAmountOut, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256, bool, uint256)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _tokenIn, address _tokenOut, uint256 _tokenInAmount, uint256 _minAmountOut, bytes32 _extraData, address _recipient) returns (uint256, uint256, bool, uint256)
pause
nonpayablefunction pause(bool _shouldPause)
recoverFunds
nonpayablefunction recoverFunds(address _recipient, address _asset)
recoverFundsMany
nonpayablefunction recoverFundsMany(address _recipient, address[] _assets)
removeAssetOpportunity
nonpayablefunction removeAssetOpportunity(address _asset, address _vaultAddr)
removeCollateral
nonpayablefunction removeCollateral(address _asset, uint256 _amount, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256)
removeCollateral
nonpayablefunction removeCollateral(address _asset, uint256 _amount, bytes32 _extraData, address _recipient) returns (uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256, uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, address _recipient) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256, uint256, bool, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, address _recipient) returns (uint256, uint256, uint256, bool, uint256)
repayDebt
nonpayablefunction repayDebt(address _paymentAsset, uint256 _paymentAmount, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, uint256)
repayDebt
nonpayablefunction repayDebt(address _paymentAsset, uint256 _paymentAmount, bytes32 _extraData, address _recipient) returns (uint256, uint256)
swapTokens
nonpayablefunction swapTokens(uint256 _amountIn, uint256 _minAmountOut, address[] _tokenPath, address[] _poolPath, address _recipient, tuple _miniAddys) returns (uint256, uint256, uint256)
swapTokens
nonpayablefunction swapTokens(uint256 _amountIn, uint256 _minAmountOut, address[] _tokenPath, address[] _poolPath, address _recipient) returns (uint256, uint256, uint256)
withdrawFromYield
nonpayablefunction withdrawFromYield(address _vaultToken, uint256 _amount, bytes32 _extraData, address _recipient, tuple _miniAddys) returns (uint256, address, uint256, uint256)
withdrawFromYield
nonpayablefunction withdrawFromYield(address _vaultToken, uint256 _amount, bytes32 _extraData, address _recipient) returns (uint256, address, uint256, uint256)
events
AssetOpportunityAdded
event AssetOpportunityAdded(address indexed asset, address indexed vaultAddr)
LegoFundsRecovered
event LegoFundsRecovered(address indexed asset, address indexed recipient, uint256 balance)
LegoPauseModified
event LegoPauseModified(bool isPaused)
RipeBorrow
event RipeBorrow(address indexed sender, address indexed asset, uint256 assetAmountBorrowed, uint256 usdValue, address recipient)
RipeClaimRewards
event RipeClaimRewards(address indexed sender, address indexed asset, uint256 ripeClaimed, uint256 usdValue, address recipient)
RipeCollateralDeposit
event RipeCollateralDeposit(address indexed sender, address indexed asset, uint256 assetAmountDeposited, uint256 vaultId, uint256 usdValue, address recipient)
RipeCollateralWithdrawal
event RipeCollateralWithdrawal(address indexed sender, address indexed asset, uint256 assetAmountReceived, uint256 vaultId, uint256 usdValue, address recipient)
RipeRepay
event RipeRepay(address indexed sender, address indexed asset, uint256 assetAmountRepaid, uint256 usdValue, address recipient)
RipeSavingsGreenDeposit
event RipeSavingsGreenDeposit(address indexed sender, address indexed asset, address indexed vaultToken, uint256 assetAmountDeposited, uint256 usdValue, uint256 vaultTokenAmountReceived, address recipient)
RipeSavingsGreenWithdrawal
event RipeSavingsGreenWithdrawal(address indexed sender, address indexed asset, address indexed vaultToken, uint256 assetAmountReceived, uint256 usdValue, uint256 vaultTokenAmountBurned, address recipient)
errors
No errors.
creation bytecode
0x613d6451503461017c576020613e9c5f395f518060a01c61017c576060526020613ebc5f395f518060a01c61017c5760805260605160405261003f61015f565b5f60405261004b610170565b6080511561017c57608051613d0452613d04516302b32af560a052602060a0600460bc845afa61007d573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c01161017c5760a0518060a01c61017c5760e0525060e0905051613d2452613d0451632e90ef3660a052602060a0600460bc845afa6100ce573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c01161017c5760a0518060a01c61017c5760e0525060e0905051613d4452613d045163dc45c7b560a052602060a0600460bc845afa61011f573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c01161017c5760a0518060a01c61017c5760e0525060e0905051613d6452613ce461018061000039613d84610000f35b6040511561017c57604051613ce452565b6040515f556001600755565b5f80fd5f3560e01c60026043820660011b613c5e01601e395f51565b63a5c7434a8118612ca55734613c5a57610160610036610420612ca9565b610420f35b6392975f0a8118612ca55734613c5a576020610057604061305d565b6040f35b6370b84afe811861009457602436103417613c5a576004358060a01c613c5a5760605260206060516040526100906080613067565b6080f35b6367e4ac2c81186101c05734613c5a576007546040526040516100fe57602080606052806060015f5f82525f5f5f60148111613c5a5780156100e857905b5f8160051b6020870101526001018181186100d2575b50508101602001905090508101905060606101be565b5f606052600160405180600111613c5a5760018103905060148111613c5a578015610162578101905b806103005260605160138111613c5a576005610300516020525f5260405f20548160051b608001526001810160605250600101818118610127575b50506020806103005280610300015f6060518083528060051b5f8260148111613c5a5780156101aa57905b8060051b608001518160051b60208801015260010181811861018d575b505082016020019150509050810190506103005bf35b633dde27658118612ca557604436103417613c5a576004358060a01c613c5a576080526024358060a01c613c5a5760a05260206040608060405e61020460c061307d565b60c0f35b636aa06de0811861036257602436103417613c5a576004358060a01c613c5a5760405260036040516020525f5260405f205460605260605161029157602080608052806080015f5f82525f5f5f60288111613c5a57801561027b57905b5f8160051b602087010152600101818118610265575b5050810160200190509050810190506080610360565b5f608052600160605180600111613c5a5760018103905060288111613c5a578015610304578101905b806105a05260805160278111613c5a5760016040516020525f5260405f20806105a0516020525f5260405f209050548160051b60a0015260018101608052506001018181186102ba575b50506020806105a052806105a0015f6080518083528060051b5f8260288111613c5a57801561034c57905b8060051b60a001518160051b60208801015260010181811861032f575b505082016020019150509050810190506105a05bf35b63b187bd26811861037d5734613c5a575f5460405260206040f35b6341a5713b8118612ca557608436103417613c5a576080366101e037610d3f565b6385e43a6681186103be5734613c5a5760206103ba60606130a2565b6060f35b6384eac5318118612ca55761012436103417613c5a5760803660e03761260b565b6302329a29811861045957602436103417613c5a576004358060011c613c5a5760e052336040526104116101006130ce565b6101005115613c5a575f5460e05114613c5a5760e0515f557f252cec9a4f2ed5a790ce3f44a01bf23c9a4f61762b4e2228123909a75c38214760e051610100526020610100a1005b636e2882968118612ca557604436103417613c5a576004358060a01c613c5a576040526024358060a01c613c5a5760605260026040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6324ae6a27811861050e57604436103417613c5a576004358060a01c613c5a57610120526024358060a01c613c5a5761014052336040526104f36101606130ce565b6101605115613c5a57604061012060405e61050c613190565b005b637053a18f8118612ca557604436103417613c5a576004358060a01c613c5a57610120526024356004016014813511613c5a5780355f8160148111613c5a57801561057b57905b8060051b6020850101358060a01c613c5a578160051b6101600152600101818118610555575b505080610140525050336040526105936103e06130ce565b6103e05115613c5a575f6101405160148111613c5a5780156105df57905b8060051b61016001516103e052610120516040526103e0516060526105d4613190565b6001018181186105b1575b5050005b63e8d314e7811861062d57604436103417613c5a576004358060a01c613c5a5760405260016040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b63a1ae0f808118612ca55760c436103417613c5a5760803660a0376128ab565b63b2fba7938118612ca557602436103417613c5a576004358060a01c613c5a5760405260036040516020525f5260405f205460605260206060f35b63cac7a0258118612ca557602436103417613c5a576004358060a01c613c5a5760405260046040516020525f5260405f205460605260206060f35b63cf35bdd081186106f057602436103417613c5a5760056004356020525f5260405f205460405260206040f35b63897e99e381186108f45761010436103417613c5a576084358060a01c613c5a576101e05260a4358060a01c613c5a576102005260c4358060a01c613c5a576102205260e4358060a01c613c5a57610240525b6004358060a01c613c5a576101a0526024358060a01c613c5a576101c0525f54613c5a5760806101e060a05e61077a6102e0613403565b6102e06080816102605e506101a0513318613c5a576020613d645f395f516101c05118613c5a576020613d045f395f5163d81f84b7610300526011610320526020610300602461031c845afa6107d2573d5f5f3e3d5ffd5b3d602081183d6020100218806103000161032011613c5a57610300518060a01c613c5a5761034052506103409050516102e0526102e05163815a4392610320526101a051610340526001610360526020610320604461033c5f855af161083a573d5f5f3e3d5ffd5b60203d10613c5a57610320905051610300526103005115613c5a576102c0516345ab6b79610340526101c05161036052610300516103805260406102806103a05e6020610340608461035c5f855af1610895573d5f5f3e3d5ffd5b60203d10613c5a57610340905051610320526101c051337fa926b5057a9d85913723f22222ab2395bf31ddda28f42abf9dd3926d306b475a60406103006103405e6101a051610380526060610340a360406103006103405e6040610340f35b63e8689daa8118612ca557602436103417613c5a576004358060a01c613c5a5760605260206060516040526109296080613aa1565b6080f35b636a1e31bc8118612ca557602436103417613c5a576004358060a01c613c5a5760405260066040516020525f5260405f205460605260206060f35b63a46fe83b81186109845734613c5a5760075460405260206040f35b634bcae6248118612ca557604436103417613c5a576004358060a01c613c5a576040526024358060a01c613c5a57606052005b635e9d6bf98118612ca557602436103417613c5a576004358060131c613c5a57604052610f8660405116151560605260206060f35b6335884e5a8118610a685734613c5a57602080604052806040015f6020613d046101e03960016101c0525f6101c0518084528060051b5f82600a8111613c5a578015610a5257905b8060051b6101e001518160051b602089010152600101818118610a34575b5050820160200191505090509050810190506040f35b6328ea9bd88118612ca557608436103417613c5a576080366101e037610743565b632785f41c8118610c8a57604436103417613c5a576004358060a01c613c5a576040526024358060131c613c5a576060526020613d0460803960805163d81f84b760c052600560e052602060c0602460dc845afa610ae9573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e011613c5a5760c0518060a01c613c5a57610100525061010090505160a05260a0516385e4d2f860c05260405160e0523061010052602060c0604460dc845afa610b45573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e011613c5a5760c0518060011c613c5a576101205250610120905051610c465760805163d81f84b760e052601161010052602060e0602460fc845afa610b9d573d5f5f3e3d5ffd5b3d602081183d60201002188060e00161010011613c5a5760e0518060a01c613c5a57610120525061012090505160c052606060c051610120528061014052601a60e0527f736574556e64794c65676f4163636573732861646472657373290000000000006101005260e08161012001603a82825e8051806020830101601f825f03163682375050601f19601f825160200101169050905081019050600161016052610120610c88565b60605f61014052806101605280610140015f81528051806020830101601f825f03163682375050601f19601f825160200101169050810190505f610180526101405bf35b633940640b8118612ca557602436103417613c5a576004358060a01c613c5a576040525f60605260206060f35b63071424588118612ca55734613c5a57600160405260206040f35b638f89ebc38118610cec5734613c5a575f60405260206040f35b6314ad68ba81186110f75761010436103417613c5a576084358060a01c613c5a576101e05260a4358060a01c613c5a576102005260c4358060a01c613c5a576102205260e4358060a01c613c5a57610240525b6004358060a01c613c5a576101a0526064358060a01c613c5a576101c0525f54613c5a5760806101e060a05e610d766102e0613403565b6102e06080816102605e503360a052610d906102e0613468565b6102e05115613c5a576101c0513318613c5a576101a0516370a082316103005230610320526020610300602461031c845afa610dce573d5f5f3e3d5ffd5b60203d10613c5a576103009050516102e0526024356101a0516370a082316103205233610340526020610320602461033c845afa610e0e573d5f5f3e3d5ffd5b60203d10613c5a5761032090505180828118828410021890509050610300526103005115613c5a576101a0516323b872dd610320523361034052306103605261030051610380526020610320606461033c5f855af1610e6f573d5f5f3e3d5ffd5b3d610e8657803b15613c5a5760016103a052610eb0565b3d602081183d6020100218806103200161034011613c5a57610320518060011c613c5a576103a052505b6103a090505115613c5a575f6103205260443515610ed057604435610320525b6101a051604052610ee26103606134cd565b610360516103405261034051633fb7de52610360526101a05161038052610300516103a0526101c0516103c0525f6103e0526103205161040052602061036060a461037c5f855af1610f36573d5f5f3e3d5ffd5b60203d10613c5a57610360905051610300526101a05160405261034051606052610f5e6135c2565b6101a0516370a0823161038052306103a0526020610380602461039c845afa610f89573d5f5f3e3d5ffd5b60203d10613c5a57610380905051610360525f610380526102e05161036051111561104957610360516102e051808203828111613c5a5790509050610380526101a05163a9059cbb6103a052336103c052610380516103e05260206103a060446103bc5f855af1610ffc573d5f5f3e3d5ffd5b3d61101357803b15613c5a5760016104005261103d565b3d602081183d6020100218806103a0016103c011613c5a576103a0518060011c613c5a5761040052505b61040090505115613c5a575b6102c0516345ab6b796103c0526101a0516103e052610300516104005260406102806104205e60206103c060846103dc5f855af1611089573d5f5f3e3d5ffd5b60203d10613c5a576103c09050516103a0526101a051337fcd74ffb2a1c8e1d532c5ce3914870756719f2be61bd42379c5545d36dd27a68260406103006103c05e6103a051610400526101c0516104205260806103c0a3610300516103c0526103a0516103e05260406103c0f35b63333f17518118612ca557604436103417613c5a575f61028052612908565b6305b2bed58118612ca557608436103417613c5a576080366101e03761118a565b63611b88e38118612ca55761010436103417613c5a576084358060a01c613c5a576101e05260a4358060a01c613c5a576102005260c4358060a01c613c5a576102205260e4358060a01c613c5a57610240525b6004358060a01c613c5a576101a0526064358060a01c613c5a576101c0525f54613c5a5760806101e060a05e6111c16102e0613403565b6102e06080816102605e503360a0526111db6102e0613468565b6102e05115613c5a576101c0513318613c5a575f6102e05260443515611203576044356102e0525b6020613d045f395f5163d81f84b7610320526011610340526020610320602461033c845afa611234573d5f5f3e3d5ffd5b3d602081183d6020100218806103200161034011613c5a57610320518060a01c613c5a5761036052506103609050516103005261030051635501f1c6610340526101a05161036052602435610380526101c0516103a0525f6103c0526102e0516103e052602061034060a461035c5f855af16112b2573d5f5f3e3d5ffd5b60203d10613c5a57610340905051610320526103205115613c5a576102c0516345ab6b79610360526101a05161038052610320516103a05260406102806103c05e6020610360608461037c5f855af161130d573d5f5f3e3d5ffd5b60203d10613c5a57610360905051610340526101a051337f38f8c12fc695f59deb2494bca30d3911e00f6d52a42523f048c3a65c52c8864761032051610360526102e05161038052610340516103a0526101c0516103c0526080610360a360406103206103605e6040610360f35b63c30f74a1811861139c57608436103417613c5a576080366101e03761145d565b6394b31cc881186113d757604436103417613c5a576004358060a01c613c5a576040526024358060a01c613c5a576060525f60805260206080f35b63954574838118612ca557604436103417613c5a576004358060a01c613c5a576040526024358060a01c613c5a57606052005b6381dac54381186116625761010436103417613c5a576084358060a01c613c5a576101e05260a4358060a01c613c5a576102005260c4358060a01c613c5a576102205260e4358060a01c613c5a57610240525b6004358060a01c613c5a576101a0526064358060a01c613c5a576101c0525f54613c5a5760806101e060a05e6114946102e0613403565b6102e06080816102605e503360a0526114ae6102e0613468565b6102e05115613c5a576101c0513318613c5a576101a0516020613d245f395f5181186114db5760016114e8565b6020613d445f395f518118155b905015613c5a576020613d445f395f516101a051146102e0526020613d045f395f5163d81f84b7610320526011610340526020610320602461033c845afa611532573d5f5f3e3d5ffd5b3d602081183d6020100218806103200161034011613c5a57610320518060a01c613c5a5761036052506103609050516103005261030051638b655a3761034052602435610360526101c051610380526102e0516103a0525f6103c0526020610340608461035c5f855af16115a8573d5f5f3e3d5ffd5b60203d10613c5a57610340905051610320526103205115613c5a576102c0516345ab6b79610360526101a05161038052610320516103a05260406102806103c05e6020610360608461037c5f855af1611603573d5f5f3e3d5ffd5b60203d10613c5a57610360905051610340526101a051337ffa7ff1723fddcc6149b603dd31439ff2df6b58d73aa393c631db2162ddb8c3d160406103206103605e6101c0516103a0526060610360a360406103206103605e6040610360f35b6310c66cb28118612ca557608436103417613c5a576080366101e0376116d6565b63d7f2debb8118611acd5761010436103417613c5a576084358060a01c613c5a576101e05260a4358060a01c613c5a576102005260c4358060a01c613c5a576102205260e4358060a01c613c5a57610240525b6004358060a01c613c5a576101a0526064358060a01c613c5a576101c0525f54613c5a5760806101e060a05e61170d6102e0613403565b6102e06080816102605e503360a0526117276102e0613468565b6102e05115613c5a576101c0513318613c5a576101a0516020613d245f395f518118611754576001611761565b6020613d445f395f518118155b905015613c5a576020613d445f395f516101a051146102e0526101a0516370a082316103205230610340526020610320602461033c845afa6117a5573d5f5f3e3d5ffd5b60203d10613c5a57610320905051610300526024356101a0516370a082316103405233610360526020610340602461035c845afa6117e5573d5f5f3e3d5ffd5b60203d10613c5a5761034090505180828118828410021890509050610320526103205115613c5a576101a0516323b872dd6103405233610360523061038052610320516103a0526020610340606461035c5f855af1611846573d5f5f3e3d5ffd5b3d61185d57803b15613c5a5760016103c052611887565b3d602081183d6020100218806103400161036011613c5a57610340518060011c613c5a576103c052505b6103c090505115613c5a576101a0516040526118a46103606134cd565b61036051610340526103405163897b357b6103605261032051610380526101c0516103a0526102e0516103c05260016103e0526020610360608461037c5f855af16118f1573d5f5f3e3d5ffd5b3d602081183d6020100218806103600161038011613c5a57610360518060011c613c5a57610400525061040050506101a051604052610340516060526119356135c2565b6101a0516370a0823161038052306103a0526020610380602461039c845afa611960573d5f5f3e3d5ffd5b60203d10613c5a57610380905051610360525f6103805261030051610360511115611a20576103605161030051808203828111613c5a5790509050610380526101a05163a9059cbb6103a052336103c052610380516103e05260206103a060446103bc5f855af16119d3573d5f5f3e3d5ffd5b3d6119ea57803b15613c5a57600161040052611a14565b3d602081183d6020100218806103a0016103c011613c5a576103a0518060011c613c5a5761040052505b61040090505115613c5a575b6102c0516345ab6b796103c0526101a0516103e052610320516104005260406102806104205e60206103c060846103dc5f855af1611a60573d5f5f3e3d5ffd5b60203d10613c5a576103c09050516103a0526101a051337f71c103e054d773d6c58e3d656e63713708eac0ca9e72893c9df1ff7105b56d27610320516103c0526103a0516103e0526101c0516104005260606103c0a3610320516103c0526103a0516103e05260406103c0f35b6385c67e148118611aee5760a436103417613c5a5760803661032037611b6f565b63449e815d8118612ca557604436103417613c5a576004358060a01c613c5a576040525f60605260206060f35b63a39579808118612ca55761012436103417613c5a5760a4358060a01c613c5a576103205260c4358060a01c613c5a576103405260e4358060a01c613c5a5761036052610104358060a01c613c5a57610380525b6004358060a01c613c5a576102c0526044358060a01c613c5a576102e0526084358060a01c613c5a57610300525f54613c5a57608061032060a05e611bb5610420613403565b6104206080816103a05e5060406102c06102405e6103a051610280526103e0516102a052611be46104406139c1565b61044051610420526102c0516370a082316104605230610480526020610460602461047c845afa611c17573d5f5f3e3d5ffd5b60203d10613c5a57610460905051610440526024356102c0516370a0823161048052336104a0526020610480602461049c845afa611c57573d5f5f3e3d5ffd5b60203d10613c5a5761048090505180828118828410021890509050610460526104605115613c5a576102c0516323b872dd61048052336104a052306104c052610460516104e0526020610480606461049c5f855af1611cb8573d5f5f3e3d5ffd5b3d611ccf57803b15613c5a57600161050052611cf9565b3d602081183d602010021880610480016104a011613c5a57610480518060011c613c5a5761050052505b61050090505115613c5a5761042051636e553f656104a052610460516104c052610300516104e05260206104a060446104bc5f855af1611d3b573d5f5f3e3d5ffd5b60203d10613c5a576104a0905051610480526104805115613c5a576102c0516370a082316104c052306104e05260206104c060246104dc845afa611d81573d5f5f3e3d5ffd5b60203d10613c5a576104c09050516104a0525f6104c052610440516104a0511115611e5b576104a05161044051808203828111613c5a57905090506104c0526102c05163a9059cbb6104e05233610500526104c0516105205260206104e060446104fc5f855af1611df4573d5f5f3e3d5ffd5b3d611e0b57803b15613c5a57600161054052611e35565b3d602081183d6020100218806104e00161050011613c5a576104e0518060011c613c5a5761054052505b61054090505115613c5a57610460516104c051808203828111613c5a5790509050610460525b610400516345ab6b79610500526102c05161052052610460516105405260406103c06105605e6020610500608461051c5f855af1611e9b573d5f5f3e3d5ffd5b60203d10613c5a576105009050516104e052610420516102c051337f8976f12726b29b6061e9320980cee799e9795b078425c776496835b912afc45961046051610500526104e05161052052610480516105405261030051610560526080610500a46104605161050052610420516105205261048051610540526104e051610560526080610500f35b63a795c55d8118612ca557608436103417613c5a5760803661030037611f98565b63402166a78118612ca55761010436103417613c5a576084358060a01c613c5a576103005260a4358060a01c613c5a576103205260c4358060a01c613c5a576103405260e4358060a01c613c5a57610360525b6004358060a01c613c5a576102c0526064358060a01c613c5a576102e0525f54613c5a57608061030060a05e611fcf610400613403565b6104006080816103805e506102c0516102405261038051610260526103c05161028052611ffd610420613a22565b61042051610400526102c0516370a082316104405230610460526020610440602461045c845afa612030573d5f5f3e3d5ffd5b60203d10613c5a57610440905051610420526024356102c0516370a082316104605233610480526020610460602461047c845afa612070573d5f5f3e3d5ffd5b60203d10613c5a5761046090505180828118828410021890509050610440526104405115613c5a576102c0516323b872dd610460523361048052306104a052610440516104c0526020610460606461047c5f855af16120d1573d5f5f3e3d5ffd5b3d6120e857803b15613c5a5760016104e052612112565b3d602081183d6020100218806104600161048011613c5a57610460518060011c613c5a576104e052505b6104e090505115613c5a576102c05163ba08765261048052610440516104a0526102e0516104c052306104e0526020610480606461049c5f855af1612159573d5f5f3e3d5ffd5b60203d10613c5a57610480905051610460526104605115613c5a576102c0516370a082316104a052306104c05260206104a060246104bc845afa61219f573d5f5f3e3d5ffd5b60203d10613c5a576104a0905051610480525f6104a05261042051610480511115612279576104805161042051808203828111613c5a57905090506104a0526102c05163a9059cbb6104c052336104e0526104a0516105005260206104c060446104dc5f855af1612212573d5f5f3e3d5ffd5b3d61222957803b15613c5a57600161052052612253565b3d602081183d6020100218806104c0016104e011613c5a576104c0518060011c613c5a5761052052505b61052090505115613c5a57610440516104a051808203828111613c5a5790509050610440525b6103e0516345ab6b796104e0526104005161050052610460516105205260406103a06105405e60206104e060846104fc5f855af16122b9573d5f5f3e3d5ffd5b60203d10613c5a576104e09050516104c0526102c05161040051337f7b7996cc413e4af728ddbb55cc862610d8d638387edef76185d30f5c43fd96ee610460516104e0526104c0516105005261044051610520526102e0516105405260806104e0a4610440516104e052610400516105005261046051610520526104c0516105405260806104e0f35b635dfba11581186123625734613c5a57602061235e6040613857565b6040f35b635ecb48168118612ca55761010436103417613c5a576084358060a01c613c5a5760a05260a4358060a01c613c5a5760c05260c4358060a01c613c5a5760e05260e4358060a01c613c5a57610100525b6004358060a01c613c5a576040526024358060a01c613c5a576060526064358060a01c613c5a57608052604036610120376040610120f35b63338c4ccb811861242357602436103417613c5a576004358060a01c613c5a57606052602060605160405261241f6080613a8f565b6080f35b63eafe38508118612ca55761020436103417613c5a57610184358060a01c613c5a57610100526101a4358060a01c613c5a57610120526101c4358060a01c613c5a57610140526101e4358060a01c613c5a57610160525b6024358060a01c613c5a576040526044358060a01c613c5a576060526064358060a01c613c5a576080526084358060020b8118613c5a5760a05260a4358060020b8118613c5a5760c052610164358060a01c613c5a5760e05260a0366101803760a0610180f35b636331f17f811861255857604436103417613c5a576004358060a01c613c5a5760c05260c05160405261251460e0613a8f565b60e051612522576001612527565b602435155b1561253b575f610100526020610100612556565b602060c05160405260243560605261255360e0613ac6565b60e05bf35b631a606eb381186125b557606436103417613c5a576044358060a01c613c5a57610400525b6004358060a01c613c5a576103e05260206103e0516102605260243561028052610400516102a0526125b0610420613c22565b610420f35b633764da188118612ca5576101a436103417613c5a57610124358060a01c613c5a5760e052610144358060a01c613c5a5761010052610164358060a01c613c5a5761012052610184358060a01c613c5a57610140525b6004358060a01c613c5a576040526024358060a01c613c5a576060526044358060a01c613c5a576080526064358060a01c613c5a5760a052610104358060a01c613c5a5760c052608036610160376080610160f35b63fbddde9c8118612ca557606436103417613c5a576004358060a01c613c5a576060526044358060a01c613c5a5760805260605161269f5760016126a4565b608051155b6126b157602435156126b4565b60015b156126c6575f60c052602060c0612725565b6060516080516040526126d960a0613aa1565b60a051146126ee575f60c052602060c0612725565b602060805163c6e6f59260a05260243560c052602060a0602460bc845afa612718573d5f5f3e3d5ffd5b60203d10613c5a5760a090505bf35b6379061303811861274657604436103417613c5a575f6104005261257d565b63d65957a181186128595761012436103417613c5a5760a4358060a01c613c5a576101c05260c4358060a01c613c5a576101e05260e4358060a01c613c5a5761020052610104358060a01c613c5a57610220525b6044356004016005813511613c5a5780355f8160058111613c5a5780156127e257905b8060051b6020850101358060a01c613c5a578160051b606001526001018181186127bd575b50508060405250506064356004016004813511613c5a5780355f8160048111613c5a57801561283357905b8060051b6020850101358060a01c613c5a578160051b610120015260010181811861280d575b5050806101005250506084358060a01c613c5a576101a052606036610240376060610240f35b63e21f2b708118612ca55761014436103417613c5a5760c4358060a01c613c5a5760a05260e4358060a01c613c5a5760c052610104358060a01c613c5a5760e052610124358060a01c613c5a57610100525b6004358060a01c613c5a576040526024358060a01c613c5a5760605260a4358060a01c613c5a57608052608036610120376080610120f35b6359c521208118612ca557606436103417613c5a576044358060a01c613c5a57610280525b6004358060a01c613c5a5761026052606061026051610180526024356101a052610280516101c05261293b6102a0613b63565b6102a0f35b63f3e0ffbf8118612ca557602436103417613c5a576004358060a01c613c5a576060526060516040526129736080613a8f565b608051612987575f60a052602060a06129b8565b60206060516301e1d114608052602060806004609c845afa6129ab573d5f5f3e3d5ffd5b60203d10613c5a57608090505bf35b638d73012481186129e757602436103417613c5a576004358060a01c613c5a576040525f60605260206060f35b6355c259948118612ca55761014436103417613c5a5760803660c037612b47565b63f2dab2368118612ca557604436103417613c5a576004358060a01c613c5a5760405260206040516307a2d13a606052602435604d8111613c5a5780600a0a9050608052602060606024607c845afa612a63573d5f5f3e3d5ffd5b60203d10613c5a5760609050f35b63dd4260a38118612a925760a436103417613c5a576080366101c03761279a565b6369016ca98118612ab45761018436103417613c5a576080366101003761247a565b635d0b7f828118612ca55734613c5a576020613d4460403960206040f35b63a4c681838118612ca557608436103417613c5a5760803660a0376123b2565b6378b1e82c8118612ca5576101c436103417613c5a57610144358060a01c613c5a5760c052610164358060a01c613c5a5760e052610184358060a01c613c5a57610100526101a4358060a01c613c5a57610120525b6004358060a01c613c5a576040526024358060a01c613c5a576060526044358060a01c613c5a57608052610124358060a01c613c5a5760a05260a0366101403760a0610140f35b6345617cff8118612ca55761012436103417613c5a5760803660c037612c04565b634757be698118612ca5576101a436103417613c5a57610124358060a01c613c5a5760c052610144358060a01c613c5a5760e052610164358060a01c613c5a5761010052610184358060a01c613c5a57610120525b6024358060a01c613c5a576040526044358060a01c613c5a576060526064358060a01c613c5a57608052610104358060a01c613c5a5760a05260a0366101403760a0610140f35b6358b5c7568118612ca55734613c5a576020613d0460403960206040f35b63fa899e208118612c875734613c5a576020613d2460403960206040f35b63b8827d5e8118612ca55734613c5a576020613d6460403960206040f35b5f5ffd5b6020613ce4604039604051815260405163e40fe496606052602060606004607c845afa612cd8573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011613c5a576060518060a01c613c5a5760a0525060a0905051602082015260405163d81f84b760c052600160e052602060c0602460dc845afa612d2e573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e011613c5a5760c0518060a01c613c5a576101005250610100905051604082015260405163d81f84b7610120526002610140526020610120602461013c845afa612d8a573d5f5f3e3d5ffd5b3d602081183d6020100218806101200161014011613c5a57610120518060a01c613c5a576101605250610160905051606082015260405163d81f84b76101805260036101a0526020610180602461019c845afa612de9573d5f5f3e3d5ffd5b3d602081183d602010021880610180016101a011613c5a57610180518060a01c613c5a576101c052506101c0905051608082015260405163d81f84b76101e05260046102005260206101e060246101fc845afa612e48573d5f5f3e3d5ffd5b3d602081183d6020100218806101e00161020011613c5a576101e0518060a01c613c5a57610220525061022090505160a082015260405163d81f84b7610240526005610260526020610240602461025c845afa612ea7573d5f5f3e3d5ffd5b3d602081183d6020100218806102400161026011613c5a57610240518060a01c613c5a57610280525061028090505160c082015260405163d81f84b76102a05260066102c05260206102a060246102bc845afa612f06573d5f5f3e3d5ffd5b3d602081183d6020100218806102a0016102c011613c5a576102a0518060a01c613c5a576102e052506102e090505160e082015260405163d81f84b7610300526007610320526020610300602461031c845afa612f65573d5f5f3e3d5ffd5b3d602081183d6020100218806103000161032011613c5a57610300518060a01c613c5a57610340525061034090505161010082015260405163d81f84b7610360526008610380526020610360602461037c845afa612fc5573d5f5f3e3d5ffd5b3d602081183d6020100218806103600161038011613c5a57610360518060a01c613c5a576103a052506103a090505161012082015260405163d81f84b76103c05260096103e05260206103c060246103dc845afa613025573d5f5f3e3d5ffd5b3d602081183d6020100218806103c0016103e011613c5a576103c0518060a01c613c5a57610400525061040090505161014082015250565b6020613ce4823950565b60066040516020525f5260405f20541515815250565b60026040516020525f5260405f20806060516020525f5260405f209050541515815250565b6007546040526040516130b8575f8152506130cc565b60405160018103818111613c5a5790508152505b565b6020613ce45f395f5163d81f84b7608052600460a052602060806024609c845afa6130fb573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011613c5a576080518060a01c613c5a5760c0525060c0905051606052606051613138575f81525061318e565b606051632ba0309360805260405160a052602060806024609c845afa613160573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011613c5a576080518060011c613c5a5760c0525060c09050518152505b565b604051156131a25760605115156131a4565b5f5b15613c5a576060516370a0823160a0523060c052602060a0602460bc845afa6131cf573d5f5f3e3d5ffd5b60203d10613c5a5760a090505160805260805115613c5a5760605163a9059cbb60a05260405160c05260805160e052602060a0604460bc5f855af1613216573d5f5f3e3d5ffd5b3d61322d57803b15613c5a57600161010052613254565b3d602081183d60201002188060a00160c011613c5a5760a0518060011c613c5a5761010052505b61010090505115613c5a576040516060517f8a3285648325f454564929a8aafc7150c1905ccffb4c30f4c27b76c00d44eb8760805160a052602060a0a3565b6020613ce45f395f5163d81f84b76040526001606052602060406024605c845afa6132c0573d5f5f3e3d5ffd5b3d602081183d602010021880604001606011613c5a576040518060a01c613c5a57608052506080905051815250565b6020613ce45f395f5163d81f84b76040526002606052602060406024605c845afa61331c573d5f5f3e3d5ffd5b3d602081183d602010021880604001606011613c5a576040518060a01c613c5a57608052506080905051815250565b6020613ce45f395f5163d81f84b76040526003606052602060406024605c845afa613378573d5f5f3e3d5ffd5b3d602081183d602010021880604001606011613c5a576040518060a01c613c5a57608052506080905051815250565b6020613ce45f395f5163d81f84b76040526007606052602060406024605c845afa6133d4573d5f5f3e3d5ffd5b3d602081183d602010021880604001606011613c5a576040518060a01c613c5a57608052506080905051815250565b60a0511561341757608060a0825e50613466565b613422610120613293565b6101205181526134336101406132ef565b61014051602082015261344761016061334b565b61016051604082015261345b6101806133a7565b610180516060820152505b565b61347260c0613293565b60c0516342af624e60e05260a05161010052602060e0602460fc845afa61349b573d5f5f3e3d5ffd5b3d602081183d60201002188060e00161010011613c5a5760e0518060011c613c5a576101205250610120905051815250565b6020613d045f395f5163d81f84b7608052601160a052602060806024609c845afa6134fa573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011613c5a576080518060a01c613c5a5760c0525060c090505160605260405163095ea7b360805260605160a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60c052602060806044609c5f855af1613574573d5f5f3e3d5ffd5b3d61358a57803b15613c5a57600160e0526135b0565b3d602081183d60201002188060800160a011613c5a576080518060011c613c5a5760e052505b60e090505115613c5a57606051815250565b6060511561363e5760405163095ea7b360805260605160a0525f60c052602060806044609c5f855af16135f7573d5f5f3e3d5ffd5b3d61360d57803b15613c5a57600160e052613633565b3d602081183d60201002188060800160a011613c5a576080518060011c613c5a5760e052505b60e090505115613c5a575b565b60066040516020525f5260405f205461369e576007546060526060516136665760016060525b60405160056060516020525f5260405f205560605160066040516020525f5260405f205560605160018101818110613c5a5790506007555b565b60026080516020525f5260405f208060a0516020525f5260405f209050546137a5576080516136d05760016136d5565b60a051155b6137a55760036080516020525f5260405f205460c05260c0516136f857600160c0525b60a05160016080516020525f5260405f208060c0516020525f5260405f2090505560c05160026080516020525f5260405f208060a0516020525f5260405f2090505560c05160018101818110613c5a57905060036080516020525f5260405f2055608051600460a0516020525f5260405f2055608051604052613779613640565b60a0516080517f3348d34d0e8a0dd27ac5dac3c961cb4454574797a11cf73e86d50b4b069c0edc5f60e0a35b565b60e05163095ea7b36101205261010051610140527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610160526020610120604461013c5f855af16137fa573d5f5f3e3d5ffd5b3d61381157803b15613c5a5760016101805261383b565b3d602081183d6020100218806101200161014011613c5a57610120518060011c613c5a5761018052505b61018090505115613c5a57604060e060805e6138556136a0565b565b5f815250565b60405161386b576001613870565b606051155b6139bf5760805163ae5d6b5f60c05260605160e052602060c0602460dc845afa61389c573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e011613c5a5760c0518060011c613c5a5761010052506101009050516139bf5760a05163c4d9ba636101405230610160526020610140602461015c845afa6138f6573d5f5f3e3d5ffd5b60203d10613c5a576101409050516101205260605163313ce567610160526020610160600461017c845afa61392d573d5f5f3e3d5ffd5b3d602081183d6020100218806101600161018011613c5a57610160518060081c613c5a576101a052506101a09050516101405260805163b6b1ab9a610180526060516101a052610120516101c0526040516101e0526101405161020052613995610160613857565b6101605161022052803b15613c5a575f61018060a461019c5f855af16139bd573d5f5f3e3d5ffd5b505b565b6020613d445f395f516102605118613c5a576020613d245f395f516102405118613c5a576004610260516020525f5260405f2054613a1957604061024060e05e613a096137a7565b608061024060405e613a1961385d565b61026051815250565b6020613d445f395f516102405118613c5a576020613d246102a0396004610240516020525f5260405f2054613a86576102a05160e0526102405161010052613a686137a7565b6102a05160405261024051606052604061026060805e613a8661385d565b6102a051815250565b6020613d445f395f5160405114815250565b6020613d445f395f5160405114613abb575f815250613ac4565b6020613d248239505b565b6040516307a2d13a60805260605160a052602060806024609c845afa613aee573d5f5f3e3d5ffd5b60203d10613c5a576080905051815250565b60e0516101005260e051613b2257613b196101206133a7565b61012051610100525b6101005163c660d11261012052604060a06101405e6020610120604461013c845afa613b50573d5f5f3e3d5ffd5b60203d10613c5a57610120905051815250565b6101a051613b72576001613b78565b61018051155b15613b92575f81525f60208201525f604082015250613c20565b61018051604052613ba4610200613aa1565b610200516101e0526101e051613bc9575f81525f60208201525f604082015250613c20565b604061018060405e613bdc610220613ac6565b610220516102005260406101e060a05e6101c05160e052613bfe610240613b00565b61024051610220526101e0518152610200516020820152610220516040820152505b565b6060366102c03760606102606101805e613c3d610320613b63565b6103206060816103805e5060606103806102c05e61030051815250565b5f80fd26602ca52a082c4b2ca5168304b12ca52ca52ca50cd20968003b2ca5140a2ca51f242ca52a7100182ca50cb711372ca52baf23422940005b06c32ca52ca52ca52ca52b8e2ca51f451b1b2ca528e32ca52af2137b09b72ca5092d2ad22ca52ca50a8924e109ec11162ca52ca50688272705e302082c692ca52ca503df2ca5064d039e23ea29ba8558200b007de83e86c90fa5c9f0b7afd7d3ec22288f17c3a50da99de68a463871f73b193ce481188618a0a165767970657283000403003800000000000000000000000044cf3c4f000dfd76a35d03298049d37be688d6f90000000000000000000000006162df1b329e157479f8f1407e888260e0ec3d2b