0 txs
0 calls
constructor
constructor(address _moonwellComptroller, address _addyRegistry, address _wethAddr)
functions
ADDY_REGISTRY
viewfunction ADDY_REGISTRY() view returns (address)
assetOpportunities
viewfunction assetOpportunities(address arg0, uint256 arg1) view returns (address)
assets
viewfunction assets(uint256 arg0) view returns (address)
canGovern
viewfunction canGovern(address _address) view returns (bool)
getAccessForLego
viewfunction getAccessForLego(address _user) view returns (address, string, uint256)
getAssetOpportunities
viewfunction getAssetOpportunities(address _asset) view returns (address[])
getAssets
viewfunction getAssets() view returns (address[])
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 _oracleRegistry) view returns (address, uint256, uint256)
getUnderlyingData
viewfunction getUnderlyingData(address _vaultToken, uint256 _vaultTokenAmount) view returns (address, uint256, uint256)
getUsdValueOfVaultToken
viewfunction getUsdValueOfVaultToken(address _vaultToken, uint256 _vaultTokenAmount, address _oracleRegistry) 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)
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)
indexOfAsset
viewfunction indexOfAsset(address arg0) view returns (uint256)
indexOfAssetOpportunity
viewfunction indexOfAssetOpportunity(address arg0, address arg1) view returns (uint256)
isActivated
viewfunction isActivated() view returns (bool)
isVaultToken
viewfunction isVaultToken(address _vaultToken) 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)
MOONWELL_COMPTROLLER
viewfunction MOONWELL_COMPTROLLER() view returns (address)
numAssetOpportunities
viewfunction numAssetOpportunities(address arg0) view returns (uint256)
numAssets
viewfunction numAssets() view returns (uint256)
pendingGov
viewfunction pendingGov() view returns (tuple)
totalAssets
viewfunction totalAssets(address _vaultToken) view returns (uint256)
totalBorrows
viewfunction totalBorrows(address _vaultToken) view returns (uint256)
vaultToAsset
viewfunction vaultToAsset(address arg0) view returns (address)
WETH
viewfunction WETH() view returns (address)
activate
nonpayablefunction activate(bool _shouldActivate)
addAssetOpportunity
nonpayablefunction addAssetOpportunity(address _asset, address _vault) returns (bool)
cancelGovernanceChange
nonpayablefunction cancelGovernanceChange()
changeGovernance
nonpayablefunction changeGovernance(address _newGov)
claimRewards
nonpayablefunction claimRewards(address _user, address _market, address _rewardToken, uint256 _rewardAmount, bytes32 _proof)
confirmGovernanceChange
nonpayablefunction confirmGovernanceChange()
depositTokens
nonpayablefunction depositTokens(address _asset, uint256 _amount, address _vault, address _recipient, address _oracleRegistry) returns (uint256, address, uint256, uint256, uint256)
depositTokens
nonpayablefunction depositTokens(address _asset, uint256 _amount, address _vault, address _recipient) returns (uint256, address, uint256, uint256, uint256)
recoverFunds
nonpayablefunction recoverFunds(address _asset, address _recipient) returns (bool)
removeAssetOpportunity
nonpayablefunction removeAssetOpportunity(address _asset, address _vault) returns (bool)
setGovernanceChangeDelay
nonpayablefunction setGovernanceChangeDelay(uint256 _numBlocks)
setLegoId
nonpayablefunction setLegoId(uint256 _legoId) returns (bool)
withdrawTokens
nonpayablefunction withdrawTokens(address _asset, uint256 _amount, address _vaultToken, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256)
withdrawTokens
nonpayablefunction withdrawTokens(address _asset, uint256 _amount, address _vaultToken, address _recipient) returns (uint256, uint256, uint256, uint256)
events
AssetOpportunityAdded
event AssetOpportunityAdded(address indexed asset, address indexed vaultToken)
AssetOpportunityRemoved
event AssetOpportunityRemoved(address indexed asset, address indexed vaultToken)
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)
MoonwellActivated
event MoonwellActivated(bool isActivated)
MoonwellDeposit
event MoonwellDeposit(address indexed sender, address indexed asset, address indexed vaultToken, uint256 assetAmountDeposited, uint256 usdValue, uint256 vaultTokenAmountReceived, address recipient)
MoonwellFundsRecovered
event MoonwellFundsRecovered(address indexed asset, address indexed recipient, uint256 amount)
MoonwellLegoIdSet
event MoonwellLegoIdSet(uint256 legoId)
MoonwellWithdrawal
event MoonwellWithdrawal(address indexed sender, address indexed asset, address indexed vaultToken, uint256 assetAmountReceived, uint256 usdValue, uint256 vaultTokenAmountBurned, address recipient)
errors
No errors.
creation bytecode
0x6129e05150346101bb576020612b575f395f518060a01c6101bb57610140526020612b775f395f518060a01c6101bb57610160526020612b975f395f518060a01c6101bb5761018052610140511561006b5761016051156100655761018051151561006d565b5f61006d565b5f5b156101bb57610140516129a052610160516129c052610180516129e0526001600e555f604052610160516060526040366080376100a86100c2565b6100b06101b9565b6129606101bf61000039612a00610000f35b604051156100d15760016100d7565b60605115155b156101bb57604051156100eb576040516007555b606051156100fa57606051600c555b6040608060c05e60c05161010f576001610114565b60e051155b1561018e57606051156101bb5760605163ed860576610100526020610100600461011c845afa610146573d5f5f3e3d5ffd5b60203d106101bb5761010090505160c05260605163c55728b0610100526020610100600461011c845afa61017c573d5f5f3e3d5ffd5b60203d106101bb5761010090505160e0525b60e05160c05110156101bb5760c0516129605260e05161298052606051156101b75760c051600b555b565b565b5f80fd5f3560e01c60026028820660011b61291001601e395f51565b636aa06de0811861207f5760243610341761290c576004358060a01c61290c5760405260026040516020525f5260405f20546060526060516100a157602080608052806080015f5f82525f5f5f600f811161290c57801561008b57905b5f8160051b602087010152600101818118610075575b505081016020019050905081019050608061016f565b5f60805260016060518060011161290c57600181039050600f811161290c578015610113578101905b8061028052608051600e811161290c575f6040516020525f5260405f2080610280516020525f5260405f209050548160051b60a0015260018101608052506001018181186100ca575b50506020806102805280610280015f6080518083528060051b5f82600f811161290c57801561015b57905b8060051b60a001518160051b60208801015260010181811861013e575b505082016020019150509050810190506102805bf35b6367e4ac2c811861029d573461290c576006546040526040516101db57602080606052806060015f5f82525f5f5f6019811161290c5780156101c557905b5f8160051b6020870101526001018181186101af575b505081016020019050905081019050606061029b565b5f60605260016040518060011161290c576001810390506019811161290c57801561023f578101905b806103a0526060516018811161290c5760046103a0516020525f5260405f20548160051b608001526001810160605250600101818118610204575b50506020806103a052806103a0015f6060518083528060051b5f826019811161290c57801561028757905b8060051b608001518160051b60208801015260010181811861026a575b505082016020019150509050810190506103a05bf35b638aadf9ac81186103145760a43610341761290c576004358060a01c61290c576040526024358060a01c61290c576060526044358060a01c61290c5760805260206129a05f395f5163d279c19160a05260405160c052803b1561290c575f60a0602460bc5f855af1610311573d5f5f3e3d5ffd5b50005b63b6ff4934811861207f5760243610341761290c576004358060a01c61290c5760405260206129a05f395f5163acc2166a608052602060806004609c845afa61035f573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a01161290c576080518060a01c61290c5760c0525060c090505160605260605163c9a06b4562027e205260405162027e405262028a4062027e20602462027e3c845afa6103be573d5f5f3e3d5ffd5b3d62028a4081183d62028a401002188062027e200162027e401161290c5762027e2062027e205162027e20011061290c5762027e205162027e20018162027e2001815160051b60200182011161290c57603281511161290c5780515f816032811161290c57801561053257905b602084018160051b60208601015160208601011061290c578060051b60208501015160208501018562027e2001604082011161290c57610cc08202620508a00181518060a01c61290c57815281602083015183011061290c57602082015182018762027e2001815160071b60200182011161290c57601981511161290c5780515f816019811161290c57801561051b57905b8060071b60208501018b62027e2001608082011161290c57602086018260071b6020820101905081518060a01c61290c57815260208201516020820152604082015160408201526060820151606082015250506001018181186104bd575b50508060208401525050505060010181811861042b575b505080620508805250505062050880905080515f816032811161290c57801561057c57905b610cc081026020850101610cc0820260a001610cc082825e5050600101818118610557575b50508060805250505f6080516032811161290c57801561063c57905b8062027e2052610cc062027e205160805181101561290c570260a001602081019050805160208160071b01808362027e405e5050505f62027e40516019811161290c57801561062f57905b8062028ae05262028ae05162027e405181101561290c5760071b62027e600160208101905051156106245750505050600162028b0052602062028b0061064b565b6001018181186105e3575b5050600101818118610598575b50505f62027e2052602062027e205bf35b63e8d314e781186106965760443610341761290c576004358060a01c61290c576040525f6040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b633f561eff811861207f573461290c57600a54151560405260206040f35b636e288296811861070c5760443610341761290c576004358060a01c61290c576040526024358060a01c61290c5760605260016040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6310f18c76811861207f573461290c5760206129a060403960206040f35b63b2fba793811861207f5760243610341761290c576004358060a01c61290c5760405260026040516020525f5260405f205460605260206060f35b63cac7a02581186107a05760243610341761290c576004358060a01c61290c5760405260036040516020525f5260405f205460605260206060f35b635aa6e675811861207f573461290c5760075460405260206040f35b63cf35bdd081186107e95760243610341761290c5760046004356020525f5260405f205460405260206040f35b63252408108118610811573461290c57600854604052600954606052600a5460805260606040f35b63ad5c4648811861207f573461290c5760206129e060403960206040f35b636a1e31bc811861086a5760243610341761290c576004358060a01c61290c5760405260056040516020525f5260405f205460605260206060f35b638d73012481186108f05760243610341761290c576004358060a01c61290c5761140052611400516113c0526108a16114206122dc565b611420516108b8575f6114405260206114406108ee565b6020611400516347bd3718611420526020611420600461143c845afa6108e0573d5f5f3e3d5ffd5b60203d1061290c5761142090505bf35b634bcae624811861207f5760443610341761290c576004358060a01c61290c57611480526024358060a01c61290c576114a05233610160526109336114c0612152565b6114c0511561290c57611480516114a0516113c0526109536114c0612317565b6114c0511861290c576114805163095ea7b36114c0526114a0516114e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115005260206114c060446114dc5f855af16109b0573d5f5f3e3d5ffd5b3d6109c757803b1561290c576001611520526109f1565b3d602081183d6020100218806114c0016114e01161290c576114c0518060011c61290c5761152052505b6115209050511561290c57604061148060805e610a0c61260d565b60016114c05260206114c0f35b63a46fe83b8118610a35573461290c5760065460405260206040f35b631a606eb3811861207f5760643610341761290c576044358060a01c61290c57611700525b6004358060a01c61290c576116e05260206116e0516115605260243561158052611700516115a052610a8d611720612575565b611720f35b6353aa43078118610ad05760243610341761290c576004358060a01c61290c576102605260206102605161016052610acb610280612152565b610280f35b63c797bfe7811861207f5760843610341761290c575f61018052611ae2565b6399572d6f8118610c585760243610341761290c576004358060a01c61290c5761016052610b1e6101e0612081565b6101e0805160208160051b0180836101805e505050335f6101e0525f610180516002811161290c578015610b7357905b8060051b6101a001518318610b685760016101e052610b73565b600101818118610b4e575b50506101e05190501561290c576101605160016101e0525f610180516002811161290c578015610bc357905b8060051b6101a001518318610bb8575f6101e052610bc3565b600101818118610b9f575b50506101e05190501561290c57610160513b1561290c57610be56101e06121b1565b6101e05115610bf857610160511561290c575b43600b5480820182811061290c57905090506101e05261016051600855436009556101e051600a55610160516007547fa8e5a115434955f3c91f53089861da9b575399fbfbc1fc8b345ae6a18b0f193e6101e051610200526020610200a3005b636331f17f811861207f5760443610341761290c576004358060a01c61290c5761140052611400516113c052610c8f6114206122dc565b61142051610c9e576001610ca3565b602435155b15610cb7575f611440526020611440610cd5565b602061140051604052602435606052610cd16114206123b8565b6114205bf35b636e4fd9c88118610d71573461290c57600854604052600954606052600a546080526040511561290c5760805115610d1457608051431015610d16565b5f5b1561290c57604051331861290c5760075460a0526040516007555f6008555f6009555f600a5560405160a0517fb5dfe18540f75a87f8c7963e7f4942e9392be572b787d486d7868ac53a5bdf5b6040606060c05e604060c0a3005b6359c52120811861207f5760643610341761290c576044358060a01c61290c57611580525b6004358060a01c61290c5761156052606061156051611480526024356114a052611580516114c052610dc96115a06124b5565b6115a0f35b63366836cc8118610e57573461290c573361016052610dee610260612152565b610260511561290c576008546102605260095461028052600a546102a0526102a0511561290c575f6008555f6009555f600a55610260517f4301277e72c59c5071608882749a82a210817721ba94066744cea89211d3838060406102806102c05e60406102c0a2005b6359b76fe4811861207f573461290c57600d5460405260206040f35b63a908dc808118610f0a5760243610341761290c57600a5461290c573361016052610e9f610260612152565b610260511561290c5760206129605f395f516004351015610ec0575f610ecf565b60206129805f395f5160043511155b1561290c57600435600b557fb8d7f2c6802e04bfd3abb436c2b7b52bd4b37872b53bd1150146816d66ac7de2600435610260526020610260a1005b63c55728b0811861207f573461290c57602061298060403960206040f35b63f40b16978118610f44573461290c57600b5460405260206040f35b63f3e0ffbf81186110275760243610341761290c576004358060a01c61290c5761140052611400516113c052610f7b6114206122dc565b61142051610f92575f611440526020611440611025565b611400516318160ddd611420526020611420600461143c845afa610fb8573d5f5f3e3d5ffd5b60203d1061290c576114209050516114005163182df0f5611460526020611460600461147c845afa610fec573d5f5f3e3d5ffd5b60203d1061290c5761146090505180820281158383830414171561290c5790509050670de0b6b3a7640000810490506114a05260206114a05bf35b6394b51d37811861207f573461290c5760206129c060403960206040f35b63ed860576811861207f573461290c57602061296060403960206040f35b6335884e5a811861207f573461290c57602080604052806040015f60206129a06101e03960016101c0525f6101c0518084528060051b5f82600a811161290c5780156110c957905b8060051b6101e001518160051b6020890101526001018181186110ab575b5050820160200191505090509050810190506040f35b632f7ab0da81186111405760243610341761290c576004358060a01c61290c5760405260605f60605280608052806060015f81528051806020830101601f825f03163682375050601f19601f825160200101169050810190505f60a0526060f35b63e8689daa811861207f5760243610341761290c576004358060a01c61290c57611480526020611480516113c0526111796114a0612317565b6114a0f35b63338c4ccb81186111bc5760243610341761290c576004358060a01c61290c57611400526020611400516113c0526111b76114206122dc565b611420f35b639545748381186112a55760443610341761290c576004358060a01c61290c57610260526024358060a01c61290c576102805233610160526111ff6102a0612152565b6102a0511561290c57604061026060e05e6112186127ac565b6102605163095ea7b36102a052610280516102c0525f6102e05260206102a060446102bc5f855af161124c573d5f5f3e3d5ffd5b3d61126357803b1561290c5760016103005261128d565b3d602081183d6020100218806102a0016102c01161290c576102a0518060011c61290c5761030052505b6103009050511561290c5760016102a05260206102a0f35b63ce5e84a3811861207f5760243610341761290c576004358060011c61290c576102605233610160526112d9610280612152565b610280511561290c5761026051600e557fb9f98f27644198b27cbba39d23e5cbe88e49d37051e39d39e665c8598716548461026051610280526020610280a1005b63fbddde9c81186113d65760643610341761290c576004358060a01c61290c576040526044358060a01c61290c5760605260405160036060516020525f5260405f20541461136f575f608052602060806113d4565b602435670de0b6b3a7640000810281670de0b6b3a764000082041861290c57905060605163182df0f5608052602060806004609c845afa6113b2573d5f5f3e3d5ffd5b60203d1061290c576080905051801561290c578082049050905060c052602060c05bf35b6314f5c51c81186113f55760843610341761290c575f61018052611474565b634a8c1fb4811861207f573461290c57600e5460405260206040f35b6379061303811861207f5760443610341761290c575f61170052610a5a565b63333f1751811861207f5760443610341761290c575f61158052610d96565b631b7a69e781186119395760a43610341761290c576084358060a01c61290c57610180525b6004358060a01c61290c57610120526044358060a01c61290c57610140526064358060a01c61290c5761016052600e541561290c576001610120516020525f5260405f2080610140516020525f5260405f209050541561290c57610120516370a082316101c052306101e05260206101c060246101dc845afa6114f9573d5f5f3e3d5ffd5b60203d1061290c576101c09050516101a052610140516370a082316101e052306102005260206101e060246101fc845afa611536573d5f5f3e3d5ffd5b60203d1061290c576101e09050516101c052602435610120516370a082316102005233610220526020610200602461021c845afa611576573d5f5f3e3d5ffd5b60203d1061290c57610200905051808281188284100218905090506101e0526101e0511561290c57610120516323b872dd61020052336102205230610240526101e051610260526020610200606461021c5f855af16115d7573d5f5f3e3d5ffd5b3d6115ee57803b1561290c57600161028052611618565b3d602081183d602010021880610200016102201161290c57610200518060011c61290c5761028052505b6102809050511561290c576101e051610120516370a082316102205230610240526020610220602461023c845afa611652573d5f5f3e3d5ffd5b60203d1061290c5761022090505180828118828410021890509050610200526101405163a0712d686102205261020051610240526020610220602461023c5f855af16116a0573d5f5f3e3d5ffd5b60203d1061290c5761022090505161290c57610140516370a082316102405230610260526020610240602461025c845afa6116dd573d5f5f3e3d5ffd5b60203d1061290c576102409050516101c05180820382811161290c579050905061022052610220511561290c576101405163a9059cbb61024052610160516102605261022051610280526020610240604461025c5f855af1611741573d5f5f3e3d5ffd5b3d61175857803b1561290c5760016102a052611782565b3d602081183d602010021880610240016102601161290c57610240518060011c61290c576102a052505b6102a09050511561290c57610120516370a082316102605230610280526020610260602461027c845afa6117b8573d5f5f3e3d5ffd5b60203d1061290c57610260905051610240525f610260526101a05161024051111561189257610240516101a05180820382811161290c5790509050610260526101205163a9059cbb61028052336102a052610260516102c0526020610280604461029c5f855af161182b573d5f5f3e3d5ffd5b3d61184257803b1561290c5760016102e05261186c565b3d602081183d602010021880610280016102a01161290c57610280518060011c61290c576102e052505b6102e09050511561290c57610200516102605180820382811161290c5790509050610200525b6101205160405261020051606052610180516080526118b26102a0612410565b6102a051610280526101405161012051337f0dc40b2a0d8cfef3b489e07c0b0ba8a5e2252d8691fd28f7b2943b7cbc3dd951610200516102a052610280516102c052610220516102e052610160516103005260806102a0a4610200516102a052610140516102c052610220516102e0526102605161030052610280516103205260a06102a0f35b6324ae6a27811861207f5760443610341761290c576004358060a01c61290c57610260526024358060a01c61290c5761028052336101605261197c6102a0612152565b6102a0511561290c57610260516370a082316102c052306102e05260206102c060246102dc845afa6119b0573d5f5f3e3d5ffd5b60203d1061290c576102c09050516102a052610280516119d15760016119d7565b61026051155b6119e5576102a051156119e8565b60015b156119fc575f6102e05260206102e0611abb565b6102605163a9059cbb6102c05260406102806102e05e60206102c060446102dc5f855af1611a2c573d5f5f3e3d5ffd5b3d611a4357803b1561290c57600161032052611a6d565b3d602081183d6020100218806102c0016102e01161290c576102c0518060011c61290c5761032052505b6103209050511561290c5761028051610260517fc00260737dd0bfc038efaf58693b1754a42366ff7e6382b0e97d03d988dcbd266102a0516102c05260206102c0a360016102c05260206102c05bf35b63e9bb12f0811861207f5760a43610341761290c576084358060a01c61290c57610180525b6004358060a01c61290c57610120526044358060a01c61290c57610140526064358060a01c61290c5761016052600e541561290c576001610120516020525f5260405f2080610140516020525f5260405f209050541561290c57610120516370a082316101c052306101e05260206101c060246101dc845afa611b67573d5f5f3e3d5ffd5b60203d1061290c576101c09050516101a052610140516370a082316101e052306102005260206101e060246101fc845afa611ba4573d5f5f3e3d5ffd5b60203d1061290c576101e09050516101c052602435610140516370a082316102005233610220526020610200602461021c845afa611be4573d5f5f3e3d5ffd5b60203d1061290c57610200905051808281188284100218905090506101e0526101e0511561290c57610140516323b872dd61020052336102205230610240526101e051610260526020610200606461021c5f855af1611c45573d5f5f3e3d5ffd5b3d611c5c57803b1561290c57600161028052611c86565b3d602081183d602010021880610200016102201161290c57610200518060011c61290c5761028052505b6102809050511561290c576101405163db006a75610200527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610220526020610200602461021c5f855af1611cdd573d5f5f3e3d5ffd5b60203d1061290c5761020090505161290c5760206129e05f395f516101205118611d355760206129e05f395f5163d0e30db061020052803b1561290c575f610200600461021c47855af1611d33573d5f5f3e3d5ffd5b505b610120516370a082316102205230610240526020610220602461023c845afa611d60573d5f5f3e3d5ffd5b60203d1061290c576102209050516101a05180820382811161290c579050905061020052610200511561290c576101205163a9059cbb61022052610160516102405261020051610260526020610220604461023c5f855af1611dc4573d5f5f3e3d5ffd5b3d611ddb57803b1561290c57600161028052611e05565b3d602081183d602010021880610220016102401161290c57610220518060011c61290c5761028052505b6102809050511561290c57610140516370a082316102405230610260526020610240602461025c845afa611e3b573d5f5f3e3d5ffd5b60203d1061290c57610240905051610220525f610240526101c051610220511115611f1557610220516101c05180820382811161290c5790509050610240526101405163a9059cbb610260523361028052610240516102a0526020610260604461027c5f855af1611eae573d5f5f3e3d5ffd5b3d611ec557803b1561290c5760016102c052611eef565b3d602081183d602010021880610260016102801161290c57610260518060011c61290c576102c052505b6102c09050511561290c576101e0516102405180820382811161290c57905090506101e0525b610120516040526102005160605261018051608052611f35610280612410565b61028051610260526101405161012051337fb1fb4d60baf5b6b9cfeae87d776706f716922838b653387e861a7dd7e2e875cb6102005161028052610260516102a0526101e0516102c052610160516102e0526080610280a461020051610280526101e0516102a05260406102406102c05e6080610280f35b63ab96e079811861207f5760243610341761290c5760206129c05f395f516347be091a6040526002606052602060406024605c845afa611fef573d5f5f3e3d5ffd5b3d602081183d60201002188060400160601161290c576040518060a01c61290c57608052506080905051331861290c57600d5460405260405161203357600161203c565b60043560405118155b1561290c57600435600d557fd8f53b08d4a1cac6e765f5b44432f7832059322df8b36c60a1c37a3794534ff160043560605260206060a1600160605260206060f35b5b005b5f60405260075460a05260a051156120b2576040516001811161290c5760a0518160051b6060015260018101604052505b600c5460c05260c0511561213e5760c051635aa6e675610100526020610100600461011c845afa6120e5573d5f5f3e3d5ffd5b3d602081183d602010021880610100016101201161290c57610100518060a01c61290c57610140525061014090505160e05260e0511561213e576040516001811161290c5760e0518160051b6060015260018101604052505b60405160208160051b01806040845e505050565b610160516121616101e0612081565b6101e05f610240525f81516002811161290c5780156121a257905b8060051b6020840101518418612197576001610240526121a2565b60010181811861217c575b50506102405190509050815250565b600c5415815250565b60206129a05f395f5163b0772d0b6106c0526106806106c060046106dc845afa6121e6573d5f5f3e3d5ffd5b3d61068081183d610680100218806106c0016106e01161290c576106c06106c0516106c0011061290c576106c0516106c001816106c001815160051b60200182011161290c57603281511161290c5780515f816032811161290c57801561226f57905b8060051b6020850101518060a01c61290c578160051b610d800152600101818118612249575b505080610d6052505050610d609050805160208160051b01808360605e5050506040515f6106c0525f6060516032811161290c5780156122cf57905b8060051b6080015183186122c45760016106c0526122cf565b6001018181186122ab575b50506106c0519050815250565b60036113c0516020525f5260405f2054156122fb576001815250612315565b6113c05160405261230d6113e06121ba565b6113e0518152505b565b60036113c0516020525f5260405f20546113e0526113e05161234e576113c0516040526123456114006121ba565b61140051612350565b5f5b156123af576113c051636f307dc3611420526020611420600461143c845afa61237b573d5f5f3e3d5ffd5b3d602081183d602010021880611420016114401161290c57611420518060a01c61290c5761146052506114609050516113e0525b6113e051815250565b60605160405163182df0f5608052602060806004609c845afa6123dd573d5f5f3e3d5ffd5b60203d1061290c57608090505180820281158383830414171561290c5790509050670de0b6b3a764000081049050815250565b60805160a05260805161247a5760206129c05f395f516347be091a60c052600460e052602060c0602460dc845afa61244a573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e01161290c5760c0518060a01c61290c57610100525061010090505160a0525b60a05163c660d11260c0526040604060e05e602060c0604460dc845afa6124a3573d5f5f3e3d5ffd5b60203d1061290c5760c0905051815250565b6114a0516124c45760016124ca565b61148051155b156124e4575f81525f60208201525f604082015250612573565b611480516113c0526124f7611500612317565b611500516114e0526114e05161251c575f81525f60208201525f604082015250612573565b604061148060405e61252f6115206123b8565b611520516115005260406114e060405e6114c051608052612551611540612410565b61154051611520526114e0518152611500516020820152611520516040820152505b565b6060366115c03760606115606114805e6125906116206124b5565b6116206060816116805e5060606116806115c05e61160051815250565b60056040516020525f5260405f205461260b576006546060526060516125d35760016060525b60405160046060516020525f5260405f205560605160056040516020525f5260405f20556060516001810181811061290c5790506006555b565b60016080516020525f5260405f208060a0516020525f5260405f2090505461290c57608051156126415760a0511515612643565b5f5b1561290c5760026080516020525f5260405f205460c05260c05161266757600160c0525b60a0515f6080516020525f5260405f208060c0516020525f5260405f2090505560c05160016080516020525f5260405f208060a0516020525f5260405f2090505560c0516001810181811061290c57905060026080516020525f5260405f2055608051600360a0516020525f5260405f20556080516040526126e76125ad565b60a0516080517f3348d34d0e8a0dd27ac5dac3c961cb4454574797a11cf73e86d50b4b069c0edc5f60e0a3565b600654606052600160605111156127aa5760056040516020525f5260405f2054608052608051156127aa576060516001810381811161290c57905060a05260a0516006555f60056040516020525f5260405f205560a051608051146127aa57600460a0516020525f5260405f205460c05260c05160046080516020525f5260405f2055608051600560c0516020525f5260405f20555b565b600160e0516020525f5260405f2080610100516020525f5260405f2090505461012052610120511561290c57600260e0516020525f5260405f2054610140526002610140511061290c57610140516001810381811161290c5790506101605261016051600260e0516020525f5260405f20555f600160e0516020525f5260405f2080610100516020525f5260405f209050555f6003610100516020525f5260405f20556101605161012051146128c4575f60e0516020525f5260405f2080610160516020525f5260405f2090505461018052610180515f60e0516020525f5260405f2080610120516020525f5260405f2090505561012051600160e0516020525f5260405f2080610180516020525f5260405f209050555b600161016051116128dd5760e0516040526128dd612714565b6101005160e0517f806b555e5d3ce1eff082e5a7a21ef3550a2d56728951ae4e8a2a699509448be65f610180a3565b5f80fd0e731fad1063072a207e207e207e0a921abd207e207e0a19017107651045144f0cd7207e10df1411131a207e207e0f280018207e207e207e082f207e06b40aef07bc1430207e117e0dce207e207e064d855820e3b0e383e403d5b1ada498d077bc965956a2e93b98f0f32b945ee68c382313e319296081185018a0a1657679706572830004010038000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000dccab9855d7ee558409ebdf358a3a44a8b2415b30000000000000000000000004200000000000000000000000000000000000006