0 txs
14.4k calls
constructor
constructor()
functions
accruedRewards
viewfunction accruedRewards(address) view returns (uint256[] rewardAmounts)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
assetInfo
viewfunction assetInfo() view returns (uint8 assetType, address assetAddress, uint8 assetDecimals)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
EUSDE
viewfunction EUSDE() view returns (address)
exchangeRate
viewfunction exchangeRate() view returns (uint256)
getRewardTokens
viewfunction getRewardTokens() view returns (address[] rewardTokens)
getTokensIn
viewfunction getTokensIn() view returns (address[] res)
getTokensOut
viewfunction getTokensOut() view returns (address[] res)
isValidTokenIn
viewfunction isValidTokenIn(address token) view returns (bool)
isValidTokenOut
viewfunction isValidTokenOut(address token) view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
previewDeposit
viewfunction previewDeposit(address tokenIn, uint256 amountTokenToDeposit) view returns (uint256 amountSharesOut)
previewRedeem
viewfunction previewRedeem(address tokenOut, uint256 amountSharesToRedeem) view returns (uint256 amountTokenOut)
pricingInfo
viewfunction pricingInfo() view returns (address refToken, bool refStrictlyEqual)
rewardIndexesStored
viewfunction rewardIndexesStored() view returns (uint256[] indexes)
STRATA_META_VAULT
viewfunction STRATA_META_VAULT() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
USDE
viewfunction USDE() view returns (address)
yieldToken
viewfunction yieldToken() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claimOwnership
nonpayablefunction claimOwnership()
claimRewards
nonpayablefunction claimRewards(address) returns (uint256[] rewardAmounts)
deposit
payablefunction deposit(address receiver, address tokenIn, uint256 amountTokenToDeposit, uint256 minSharesOut) payable returns (uint256 amountSharesOut)
initialize
nonpayablefunction initialize(address _owner)
pause
nonpayablefunction pause()
redeem
nonpayablefunction redeem(address receiver, uint256 amountSharesToRedeem, address tokenOut, uint256 minTokenOut, bool burnFromInternalBalance) returns (uint256 amountTokenOut)
rewardIndexesCurrent
nonpayablefunction rewardIndexesCurrent() returns (uint256[] indexes)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner, bool direct, bool renounce)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
ClaimRewards
event ClaimRewards(address indexed user, address[] rewardTokens, uint256[] rewardAmounts)
Deposit
event Deposit(address indexed caller, address indexed receiver, address indexed tokenIn, uint256 amountDeposited, uint256 amountSyOut)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Redeem
event Redeem(address indexed caller, address indexed receiver, address indexed tokenOut, uint256 amountSyToRedeem, uint256 amountTokenOut)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
errors
SYInsufficientSharesOut
error SYInsufficientSharesOut(uint256 actualSharesOut, uint256 requiredSharesOut)
SYInsufficientTokenOut
error SYInsufficientTokenOut(uint256 actualTokenOut, uint256 requiredTokenOut)
SYInvalidTokenIn
error SYInvalidTokenIn(address token)
SYInvalidTokenOut
error SYInvalidTokenOut(address token)
SYZeroDeposit
error SYZeroDeposit()
SYZeroRedeem
error SYZeroRedeem()
creation bytecode
0x60c060409080825234620001825763313ce56760e01b815260209073a62b204099277762d1669d283732dcc1b3aa96ce908281600481855afa908115620001a2575f9162000137575b5060805260ff19609b5416609b5560a0526001549060ff8260a81c16620000e45760ff808360a01c1603620000a0575b8251613ac39081620001ad823960805181611b50015260a05181818161141001526123170152f35b60ff60a01b1990911660ff60a01b17600155815160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989190a15f8062000078565b60849083519062461bcd60e51b82526004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152fd5b9050823d84116200019a575b601f8101601f191682016001600160401b0381118382101762000186578491839187528101031262000182575160ff8116810362000182575f62000048565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b503d62000143565b84513d5f823e3d90fdfe6080604090808252600480361015610021575b505050361561001f575f80fd5b005b5f3560e01c91826306fdde031461259e57508163071bc3c914612563578163078dfbe7146123dc57816308c4b46814612390578163095ea7b314612342578163128fced11461021a57816314b3aa0f146122cf57816318160ddd1461227457816320e8c56514611d7c578163213cae6314611d4157816323b872dd14611b74578163313ce56714611b195781633ba0b9a914611a455781633f4ba83a1461193857816342de081b146118ec5781634e71e0c8146117e25781635c975abb146117a15781636345f4f91461175557816370a08231146116f3578163769f8e5d1461143457816376d5de85146113c6578163784367d6146113835781638456cb59146112d45781638da5cb5b1461128357816395d89b411461116c578163a40bee501461108a578163a9059cbb14610fbb578163b8f82b2614610f21578163c4d66de8146103d1578163c4f59f9b14610387578163cbe52ae3146102e657508063da88ecb414610215578063dd62ed3e14610271578063e30c39781461021f578063ef5cfb8c1461021a578063f8b2f991146102155763fa5a4f06146101c6578080610012565b346102115760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157602090610208610203612716565b612b0c565b90519015158152f35b5f80fd5b6127e6565b612797565b5034610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b503461021157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576020906102ab612716565b6102b3612739565b9073ffffffffffffffffffffffffffffffffffffffff8091165f5260038452825f2091165f528252805f20549051908152f35b90503461021157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115761031e612716565b9061032882612a58565b156103435760208361033c602435856135bf565b9051908152f35b73ffffffffffffffffffffffffffffffffffffffff60249351927f88a505610000000000000000000000000000000000000000000000000000000084521690820152fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576103cd906103c26129cc565b9051918291826126c5565b0390f35b90503461021157602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115761040c612716565b60019182549160ff8360a81c161592838094610f12575b8015610ef9575b15610e775783740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8316178655610e35575b50855167ffffffffffffffff906060810182811182821017610e09578852602381527f535920537472617461205072652d6465706f736974205265636569707420546f878201527f6b656e00000000000000000000000000000000000000000000000000000000008882015287516104e881612870565b600881527f53592d70555344650000000000000000000000000000000000000000000000008882015261052a60ff885460a81c1661052581613534565b613534565b8151838111610cab5760059080610541835461281f565b948b601f96878111610d9c575b50508b90868311600114610ce2575f92610cd7575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828b1b9260031b1c19161781555b8151938411610cab576105a860065461281f565b90838211610c4b575b505087918311600114610b785773ffffffffffffffffffffffffffffffffffffffff9392915f9183610b6d575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82881b9260031b1c1916176006555b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84541617835561066760ff865460a81c16613534565b167fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f5584517fdd62ed3e00000000000000000000000000000000000000000000000000000000808252308383015273a62b204099277762d1669d283732dcc1b3aa96ce906024918083850152604493734c9edd5852cd905f086c759e8383e09bff1e68b389828781845afa9182156109ba575f92610b3e575b506b7fffffffffffffffffffffff8092106109c4575b508951928352308684015281848401527390d2af7d622ca3141efa4d8f1f24d86e5974cc8f9289818781875afa9081156109ba575f9161098d575b50106107b7575b505050505061076857005b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498927fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff825416825551908152a1005b8851905f808a84017f095ea7b30000000000000000000000000000000000000000000000000000000094858252848882015282898201528881526107fa816128b9565b519082875af1610808613728565b8161095d575b501561090257915f92918380938c51908c8201938452878201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88820152878152610859816128b9565b51925af1610865613728565b816108d2575b501561087857808061075d565b60649291600c7f5361666520417070726f7665000000000000000000000000000000000000000092888a51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b805180159250889083156108ea575b5050505f61086b565b6108fa935082018101910161396c565b5f87816108e1565b506064857f5361666520417070726f7665000000000000000000000000000000000000000086600c878d8f51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b8051801592508b908315610975575b5050505f61080e565b610985935082018101910161396c565b5f8a8161096c565b90508981813d83116109b3575b6109a481836128d5565b8101031261021157515f610756565b503d61099a565b8b513d5f823e3d90fd5b8a515f808c83017f095ea7b30000000000000000000000000000000000000000000000000000000093848252878a820152828b8201528a8152610a06816128b9565b519082865af1610a14613728565b81610b0e575b5015610ab2575f918291828d8f51908101928352878a8201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b8201528a8152610a64816128b9565b51925af1610a70613728565b81610a82575b5015610902575f61071b565b8051801592508b908315610a9a575b5050505f610a76565b610aaa935082018101910161396c565b5f8a81610a91565b506064877f5361666520417070726f7665000000000000000000000000000000000000000088600c8f8f8b9151957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b8051801592508d908315610b26575b5050505f610a1a565b610b36935082018101910161396c565b5f8c81610b1d565b9091508981813d8311610b66575b610b5681836128d5565b810103126102115751905f610705565b503d610b4c565b015190505f806105de565b929186917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b8b828210610c35575050958373ffffffffffffffffffffffffffffffffffffffff9710610bfe575b505050811b01600655610610565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610bf0565b8389015185558b96909401939283019201610bc8565b60065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9084808701821c8301938c8810610ca2575b01901c019088905b828110610c9757506105b1565b5f8155018890610c8a565b93508293610c82565b6041867f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b015190505f80610563565b908c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08d9516865f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0935f905b828210610d855750508411610d4e575b505050811b018155610594565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610d41565b8385015186558f979095019493840193018f610d31565b90919250845f52867f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091818601871c8301938610610e00575b918d918695949301871c01915b828110610df257508d915061054e565b5f81558594508d9101610de2565b92508192610dd5565b6041857f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff1675010100000000000000000000000000000000000000001784555f610471565b608483878951917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b15801561042a57508460ff8260a01c161461042a565b508460ff8260a01c1610610423565b90503461021157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157610f59612716565b90610f6382612b0c565b15610f775760208361033c602435856133bc565b73ffffffffffffffffffffffffffffffffffffffff60249351927faeabe7180000000000000000000000000000000000000000000000000000000084521690820152fd5b823461021157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576020917f0100000000000000000000000000000000000000000000000000000000000000611016612716565b61107d83549161102c60028460f81c14156129f3565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094161785556024359033612f55565b8254161790555160018152f35b905034610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115781517f313ce567000000000000000000000000000000000000000000000000000000008152602081734c9edd5852cd905f086c759e8383e09bff1e68b39381855afa908115611162575f91611123575b509160ff6060938251935f855260208501521690820152f35b90506020813d60201161115a575b8161113e602093836128d5565b8101031261021157519160ff83168303610211579160ff61110a565b3d9150611131565b83513d5f823e3d90fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115780515f6006546111aa8161281f565b8084529060209060019081811690811561123b57506001146111e2575b6103cd85876111d8828803836128d5565b5191829182612661565b60065f90815293507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b838510611228575050505081016020016111d8826103cd6111c7565b805486860184015293820193810161120c565b6103cd979550869350602092506111d89491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010192946111c7565b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760209073ffffffffffffffffffffffffffffffffffffffff5f54169051908152f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589161134973ffffffffffffffffffffffffffffffffffffffff5f54163314612967565b611351613902565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00609b541617609b5551338152a1005b82346102115760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576020906102086113c1612716565b612a58565b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b82346102115760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115761146c612716565b906024359260443573ffffffffffffffffffffffffffffffffffffffff948582169081830361021157606435966084358015158103610211576115078654956114bb60028860f81c14156129f3565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809816178855612a58565b156116c457821561169c571561168d5761152182306131d9565b86858473a62b204099277762d1669d283732dcc1b3aa96ce8082036115f3575050505081966115508382613785565b8888106115be5760209850907f0100000000000000000000000000000000000000000000000000000000000000949392918751928352888a84015216907faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c873392a482541617905551908152f35b6044868a8a8a51927fbfee4ca00000000000000000000000000000000000000000000000000000000084528301526024820152fd5b6020925f608492878d5197889687957ffea53be10000000000000000000000000000000000000000000000000000000087528601528a60248601521660448401523060648401525af1908115611683575f91611651575b5096611550565b90506020813d60201161167b575b8161166c602093836128d5565b8101031261021157518961164a565b3d915061165f565b87513d5f823e3d90fd5b61169782336131d9565b611521565b8587517fc3d83b07000000000000000000000000000000000000000000000000000000008152fd5b602486858951917f88a50561000000000000000000000000000000000000000000000000000000008352820152fd5b82346102115760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760209073ffffffffffffffffffffffffffffffffffffffff611743612716565b165f5260028252805f20549051908152f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157602090517390d2af7d622ca3141efa4d8f1f24d86e5974cc8f8152f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760209060ff609b541690519015158152f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576001549073ffffffffffffffffffffffffffffffffffffffff928383169182330361188f575050805f549384167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffff0000000000000000000000000000000000000000928316175f5516600155005b90602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760209051734c9edd5852cd905f086c759e8383e09bff1e68b38152f35b905034610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115761198a73ffffffffffffffffffffffffffffffffffffffff5f54163314612967565b609b549060ff8216156119e8577f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516609b5551338152a1005b60649060208451917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157670de0b6b3a76400008151927f07a2d13a00000000000000000000000000000000000000000000000000000000845283015260208260248173a62b204099277762d1669d283732dcc1b3aa96ce5afa908115611b10575f91611adb575b6020925051908152f35b90506020823d602011611b08575b81611af6602093836128d5565b81010312610211576020915190611ad1565b3d9150611ae9565b513d5f823e3d90fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346102115760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157611bad612716565b611bb5612739565b60443590835492611bcc60028560f81c14156129f3565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80951617855573ffffffffffffffffffffffffffffffffffffffff81165f526003602052855f20335f52602052855f20547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8103611c97575b602087877f01000000000000000000000000000000000000000000000000000000000000008861107d898989612f55565b838110611ce4579260209695949261107d92611cd7837f010000000000000000000000000000000000000000000000000000000000000097033383612ced565b9250929495965092611c66565b60648660208951917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576103cd906103c2612c59565b8260807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157611daf612716565b90611db8612739565b91604492833593606494853595875494611dd860028760f81c14156129f3565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809716178955611e2885612b0c565b1561222f5782156122075773ffffffffffffffffffffffffffffffffffffffff908186169586155f1461207b578434036120205784611e6691612e5e565b98808a10611fec575016928315611f92575050611e81613902565b83861161021157865484871685821601858111611f6657918593917fff0000000000000000000000000000000000000000000000000000000000000060209a977f01000000000000000000000000000000000000000000000000000000000000009795169116178655815f5260028952865f20611eff898254612f1b565b9055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b8a518c8152a3865190815287898201527f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59873392a482541617905551908152f35b6011897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300899160208951937f08c379a0000000000000000000000000000000000000000000000000000000008552840152601f6024840152820152fd5b8a86918b8b51927fbc71f2ba0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b838b7f657468206d69736d6174636800000000000000000000000000000000000000008860208d51937f08c379a0000000000000000000000000000000000000000000000000000000008552840152600c6024840152820152fd5b8851602081017f23b872dd0000000000000000000000000000000000000000000000000000000081523360248301523088830152868683015285825260a082019180831067ffffffffffffffff8411176121db575f83928192612122958f526120e385612870565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460c08201525190828d5af161211b613728565b908a613a5d565b80519081159182156121c1575b5050156121405784611e6691612e5e565b60848b7f6f74207375636365656400000000000000000000000000000000000000000000867f5361666545524332303a204552433230206f7065726174696f6e20646964206e8a60208f51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152602a6024860152840152820152fd5b6121d4925060208091830101910161396c565b8c8061212f565b60418e7f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b8887517fa907f2f0000000000000000000000000000000000000000000000000000000008152fd5b86517faeabe71800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616818b0152602490fd5b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211577effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157805173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260016020820152f35b823461021157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102115760209061238961237f612716565b6024359033612ced565b5160018152f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576020905173a62b204099277762d1669d283732dcc1b3aa96ce8152f35b82346102115760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021157612414612716565b91602435918215158303610211576044359283151584036102115773ffffffffffffffffffffffffffffffffffffffff948591612455835f54163314612967565b15612530571692831590811591612528575b50156124cb575050805f549283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffff0000000000000000000000000000000000000000809216175f55600154166001555f80f35b90602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b905085612467565b9350505050167fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001555f80f35b8234610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576103cd906103c2612916565b839034610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211575f6005546125db8161281f565b8084529060209060019081811690811561123b5750600114612608576103cd85876111d8828803836128d5565b60055f90815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b83851061264e575050505081016020016111d8826103cd6111c7565b8054868601840152938201938101612632565b6020808252825181830181905293925f5b8581106126b1575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6040809697860101520116010190565b818101830151848201604001528201612672565b60209060206040818301928281528551809452019301915f5b8281106126ec575050505090565b835173ffffffffffffffffffffffffffffffffffffffff16855293810193928101926001016126de565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361021157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361021157565b60209060206040818301928281528551809452019301915f5b828110612783575050505090565b835185529381019392810192600101612775565b346102115760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576127ce612716565b506103cd6127da6129cc565b6040519182918261275c565b34610211575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610211576103cd6127da6129cc565b90600182811c92168015612866575b602083101461283957565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161282e565b6040810190811067ffffffffffffffff82111761288c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761288c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761288c57604052565b61291e612b4a565b1561292e5761292b612c59565b90565b60405161293a81612870565b600181526020368183013773a62b204099277762d1669d283732dcc1b3aa96ce61296382612c1f565b5290565b1561296e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6040516020810181811067ffffffffffffffff82111761288c576040525f8152905f368137565b156129fa57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b612a60612b4a565b15612add5773ffffffffffffffffffffffffffffffffffffffff16734c9edd5852cd905f086c759e8383e09bff1e68b38114908115612abf575b8115612aa4575090565b73a62b204099277762d1669d283732dcc1b3aa96ce91501490565b7390d2af7d622ca3141efa4d8f1f24d86e5974cc8f81149150612a9a565b73ffffffffffffffffffffffffffffffffffffffff1673a62b204099277762d1669d283732dcc1b3aa96ce1490565b73ffffffffffffffffffffffffffffffffffffffff16734c9edd5852cd905f086c759e8383e09bff1e68b38114908115612abf578115612aa4575090565b6040517f055ad42e00000000000000000000000000000000000000000000000000000000815260208160048173a62b204099277762d1669d283732dcc1b3aa96ce5afa908115612c14575f91612bd9575b506002811015612bac576001141590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b90506020813d602011612c0c575b81612bf4602093836128d5565b8101031261021157516002811015610211575f612b9b565b3d9150612be7565b6040513d5f823e3d90fd5b805115612c2c5760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604051906080820182811067ffffffffffffffff82111761288c5760405260038252606036602084013781734c9edd5852cd905f086c759e8383e09bff1e68b3612ca282612c1f565b52805160011015612c2c577390d2af7d622ca3141efa4d8f1f24d86e5974cc8f6040820152805160021015612c2c57606073a62b204099277762d1669d283732dcc1b3aa96ce910152565b73ffffffffffffffffffffffffffffffffffffffff809116918215612ddb5716918215612d575760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526003825260405f20855f5282528060405f2055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b73a62b204099277762d1669d283732dcc1b3aa96ce9073ffffffffffffffffffffffffffffffffffffffff16818103612e9657505090565b916064602092935f60405195869485937ff45346dc000000000000000000000000000000000000000000000000000000008552600485015260248401523060448401525af1908115612c14575f91612eec575090565b90506020813d602011612f13575b81612f07602093836128d5565b81010312610211575190565b3d9150612efa565b91908201809211612f2857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff80911691821561315557169182156130d15782821461307357612f8b613902565b815f52600260205260405f2054818110612fef57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f52600284520360405f2055845f5260405f20612fe4828254612f1b565b9055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f45524332303a207472616e7366657220746f2073656c660000000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff168015613338576131fd613902565b805f52600260205260405f20548281106132b4578290825f5260026020520360405f20557effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9182811161021157600454928082168185160391818311612f28575f947fff000000000000000000000000000000000000000000000000000000000000006020937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9516911617600455604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff1673a62b204099277762d1669d283732dcc1b3aa96ce8082036133f357505090565b7390d2af7d622ca3141efa4d8f1f24d86e5974cc8f92909183036134eb576040519283917f4cdad506000000000000000000000000000000000000000000000000000000008352600483015281602460209586935afa8015612c145783915f916134bc575b506024604051809481937fef8b30f700000000000000000000000000000000000000000000000000000000835260048301525afa918215612c14575f9261349e57505090565b90809250813d83116134b5575b612f0781836128d5565b503d6134ab565b82819392503d83116134e4575b6134d381836128d5565b81010312610211578290515f613458565b503d6134c9565b60209192506024604051809481937fef8b30f700000000000000000000000000000000000000000000000000000000835260048301525afa908115612c14575f91612eec575090565b1561353b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b73a62b204099277762d1669d283732dcc1b3aa96ce919073ffffffffffffffffffffffffffffffffffffffff168281036135f95750905090565b734c9edd5852cd905f086c759e8383e09bff1e68b30361365a576020906024604051809481937f4cdad50600000000000000000000000000000000000000000000000000000000835260048301525afa908115612c14575f91612eec575090565b6040519182917f4cdad506000000000000000000000000000000000000000000000000000000008352600483015281602460209485935afa908115612c14575f916136fb575b50604051907f0a28a477000000000000000000000000000000000000000000000000000000008252600482015281816024817390d2af7d622ca3141efa4d8f1f24d86e5974cc8f5afa918215612c14575f9261349e57505090565b90508181813d8311613721575b61371281836128d5565b8101031261021157515f6136a0565b503d613708565b3d15613780573d9067ffffffffffffffff821161288c576040519161377560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601846128d5565b82523d5f602084013e565b606090565b81156138fe57613849905f806040519260209573ffffffffffffffffffffffffffffffffffffffff878601927fa9059cbb0000000000000000000000000000000000000000000000000000000084521660248601526044850152604484526137ec846128b9565b604051936137f985612870565b8685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648786015251908273a62b204099277762d1669d283732dcc1b3aa96ce5af1613843613728565b90613984565b8051908282159283156138e6575b505050156138625750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6138f6935082018101910161396c565b5f8281613857565b5050565b60ff609b541661390e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b90816020910312610211575180151581036102115790565b90919015613a1357508051156139975790565b73a62b204099277762d1669d283732dcc1b3aa96ce3b156139b55790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b815115613a235750805190602001fd5b613a59906040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301612661565b0390fd5b91929015613a7a5750815115613a71575090565b3b156139b55790565b825190915015613a235750805190602001fdfea264697066735822122074d70bf024b12e29292b5b9050302f27c4822c90e1b3ff6c3e465e577d54f50d64736f6c63430008180033