0 txs
1 call
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
asset
viewfunction asset() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
convertToAssets
viewfunction convertToAssets(uint256 shares) view returns (uint256)
convertToShares
viewfunction convertToShares(uint256 assets) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FEE_100
viewfunction FEE_100() view returns (uint256)
fee
viewfunction fee() view returns (uint256)
feeReceiver
viewfunction feeReceiver() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isPausable
viewfunction isPausable() view returns (bool)
MAX_FEE
viewfunction MAX_FEE() view returns (uint256)
maxDeposit
viewfunction maxDeposit(address _who) view returns (uint256)
maxMint
viewfunction maxMint(address _who) view returns (uint256)
maxRedeem
viewfunction maxRedeem(address _who) view returns (uint256)
maxWithdraw
viewfunction maxWithdraw(address _who) view returns (uint256)
name
viewfunction name() view returns (string)
NAME
viewfunction NAME() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
previewDeposit
viewfunction previewDeposit(uint256 assets) view returns (uint256)
previewMint
viewfunction previewMint(uint256 shares) view returns (uint256)
previewRedeem
viewfunction previewRedeem(uint256 shares) view returns (uint256)
previewWithdraw
viewfunction previewWithdraw(uint256 assets) view returns (uint256)
queue
viewfunction queue() view returns (address)
rewards
viewfunction rewards() view returns (uint256)
rewardsLastDeposit
viewfunction rewardsLastDeposit() view returns (uint256)
rewardsVesting
viewfunction rewardsVesting() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
SYMBOL
viewfunction SYMBOL() view returns (string)
totalAssets
viewfunction totalAssets() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
deposit
nonpayablefunction deposit(uint256 assets, address receiver) returns (uint256)
depositRewards
nonpayablefunction depositRewards(uint256 amount)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address token, uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _paretoDollar, address _admin, address _pauser, address _queue)
mint
nonpayablefunction mint(uint256 shares, address receiver) returns (uint256)
pause
nonpayablefunction pause()
redeem
nonpayablefunction redeem(uint256 shares, address receiver, address owner) returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateFeeParams
nonpayablefunction updateFeeParams(uint256 _fee, address _feeReceiver)
updateRewardsVesting
nonpayablefunction updateRewardsVesting(uint256 _rewardsVesting)
withdraw
nonpayablefunction withdraw(uint256 assets, address receiver, address owner) returns (uint256)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RewardsDeposited
event RewardsDeposited(uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address indexed sender, address indexed receiver, address indexed owner, uint256 assets, uint256 shares)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
ERC4626ExceededMaxDeposit
error ERC4626ExceededMaxDeposit(address receiver, uint256 assets, uint256 max)
ERC4626ExceededMaxMint
error ERC4626ExceededMaxMint(address receiver, uint256 shares, uint256 max)
ERC4626ExceededMaxRedeem
error ERC4626ExceededMaxRedeem(address owner, uint256 shares, uint256 max)
ERC4626ExceededMaxWithdraw
error ERC4626ExceededMaxWithdraw(address owner, uint256 assets, uint256 max)
ExpectedPause
error ExpectedPause()
FeeTooHigh
error FeeTooHigh()
InvalidInitialization
error InvalidInitialization()
NotAllowed
error NotAllowed()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x6080806040523460aa575f51602061358c5f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b6040516134dd90816100af8239f35b6001600160401b0319166001600160401b039081175f51602061358c5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301e1d11414611e1657806301ffc9a714611d7557806303c8f92c14611d235780630605a63614611c8757806306fdde0314611ba457806307a2d13a1461178f578063095ea7b314611a9c5780630a28a47714611a7e57806318160ddd14611a4257806323b872dd14611a0a578063248a9ca3146119c05780632f2fdf60146119a35780632f2ff15d14611946578063313ce5671461192b57806336568abe146118c157806338d52e0f1461186f5780633f4ba83a14611794578063402d267d14610df25780634cdad5061461178f5780635c975abb1461174e5780636e553f65146116bf57806370a082311461165b578063715018a61461159f5780638456cb591461146c5780638bdf67f21461132a5780638da5cb5b146112d857806391d148541461126257806394bf804d146111d457806395ccea671461118f57806395d89b41146110695780639ec5a8941461104c578063a09a16011461100b578063a217fddf14610ff1578063a3f4df7e14610fd6578063a9059cbb14610fa5578063ad67ec7514610f88578063b3d7f6b914610f6a578063b3f0067414610f37578063b460af9414610eb4578063ba08765214610e31578063bc063e1a14610e15578063c63d75b614610df2578063c6e6f59214610c04578063ce96cb7714610dcf578063d547741f14610d6d578063d905777e14610d42578063dd62ed3e14610caf578063ddca3f4314610c92578063e10d29ee14610c5f578063e30ffbc014610c43578063e63ab1e914610c09578063ef8b30f714610c04578063f2fde38b14610bd9578063f76f8d7814610bae5763f8c8765e14610276575f80fd5b34610baa576080600319360112610baa5761028f611e53565b610297611e30565b6044359073ffffffffffffffffffffffffffffffffffffffff82168203610baa576064359073ffffffffffffffffffffffffffffffffffffffff8216809203610baa577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549260ff8460401c16159367ffffffffffffffff811680159081610ba2575b6001149081610b98575b159081610b8f575b50610b67578460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610b12575b50610388611f3b565b94610391611fe8565b9561039a6132c2565b6103a26132c2565b80519067ffffffffffffffff821161096e5781906103e07f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354612145565b601f8111610a85575b50602090601f83116001146109a6575f9261099b575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03555b855167ffffffffffffffff811161096e5761048c7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454612145565b601f81116108ec575b506020601f82116001146107f057918173ffffffffffffffffffffffffffffffffffffffff9697989261067b959488945f926107e5575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04555b166105276132c2565b61052f6132c2565b610538816133d5565b90156107dd575b7fffffffffffffffffffffff00000000000000000000000000000000000000000074ff00000000000000000000000000000000000000007f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00549260a01b16911617177f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00556105cb6132c2565b6105d36132c2565b6105db6132c2565b6105e48361231e565b6105ec6132c2565b6105f46132c2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300556106626132c2565b61066b83612986565b5061067583612a6d565b50612a6d565b5060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007f34255c687a9ae703b4ae30638c7776ee81513fdfa4b4dd654e5578b21b95d8005416177f34255c687a9ae703b4ae30638c7776ee81513fdfa4b4dd654e5578b21b95d8005562093a805f55611388600355167fffffffffffffffffffffffff000000000000000000000000000000000000000060045416176004557fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055561074a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b50601261053f565b015190505f806104cc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216977f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f52815f20985f5b8181106108d457509273ffffffffffffffffffffffffffffffffffffffff97989961067b969593600193838b971061089d575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045561051e565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610870565b838301518b556001909a01996020938401930161083d565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c81019160208410610964575b601f0160051c01905b8181106109595750610495565b5f815560010161094c565b9091508190610943565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b015190505f806103ff565b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f52815f20925f5b818110610a6d5750908460019594939210610a36575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0355610451565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610a09565b929360206001819287860151815501950193016109f3565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510610b08575b90601f859493920160051c01905b818110610afa57506103e9565b5f8155849350600101610aed565b9091508190610adf565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555f61037f565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050155f61032c565b303b159150610324565b86915061031a565b5f80fd5b34610baa575f600319360112610baa57610bd5610bc9611fe8565b60405191829182611e76565b0390f35b34610baa576020600319360112610baa57610c02610bf5611e53565b610bfd61244a565b61231e565b005b611fca565b34610baa575f600319360112610baa5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b34610baa575f600319360112610baa5760205f54604051908152f35b34610baa575f600319360112610baa57602073ffffffffffffffffffffffffffffffffffffffff60055416604051908152f35b34610baa575f600319360112610baa576020600354604051908152f35b34610baa576040600319360112610baa57610cc8611e53565b73ffffffffffffffffffffffffffffffffffffffff610d2c610ce8611e30565b9273ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b34610baa576020600319360112610baa576020610d65610d60611e53565b6122ab565b604051908152f35b34610baa576040600319360112610baa57610c02600435610d8c611e30565b90610dca610dc5825f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b612900565b612c7d565b34610baa576020600319360112610baa576020610d65610ded611e53565b612233565b34610baa576020600319360112610baa576020610d65610e10611e53565b612196565b34610baa575f600319360112610baa576020604051614e208152f35b34610baa57610e3f36611f76565b9190610e4a836122ab565b808311610e6b57602084610d658585610e6282612503565b93849133612f99565b8273ffffffffffffffffffffffffffffffffffffffff857fb94abeec000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b34610baa57610ec236611f76565b9091610ecd82612233565b808211610eee575060209281610ee5610d659361254f565b93849233612f99565b9173ffffffffffffffffffffffffffffffffffffffff907ffe9cceec000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b34610baa575f600319360112610baa57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b34610baa576020600319360112610baa576020610d656004356124b6565b34610baa575f600319360112610baa576020604051620186a08152f35b34610baa576040600319360112610baa57610fcb610fc1611e53565b602435903361277e565b602060405160018152f35b34610baa575f600319360112610baa57610bd5610bc9611f3b565b34610baa575f600319360112610baa5760206040515f8152f35b34610baa575f600319360112610baa57602060ff7f34255c687a9ae703b4ae30638c7776ee81513fdfa4b4dd654e5578b21b95d80054166040519015158152f35b34610baa575f600319360112610baa576020600154604051908152f35b34610baa575f600319360112610baa576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04546110a881612145565b808452906001811690811561114d57506001146110d0575b610bd583610bc981850382611efa565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b80821061113357509091508101602001610bc96110c0565b91926001816020925483858801015201910190929161111b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610bc990506110c0565b34610baa576040600319360112610baa57610c026111ab611e53565b6111b361244a565b6024359073ffffffffffffffffffffffffffffffffffffffff339116612f3c565b34610baa576040600319360112610baa576004356111f0611e30565b906111fa82612196565b80821161121957602083610d6584611211816124b6565b809333612d85565b9173ffffffffffffffffffffffffffffffffffffffff907f284ff667000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b34610baa576040600319360112610baa5761127b611e30565b6004355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b34610baa575f600319360112610baa57602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b34610baa576020600319360112610baa5760043573ffffffffffffffffffffffffffffffffffffffff6005541633036114445760206113fe7f4e9221f2cca6ca0397acc6004ea0b716798254f5abcf53924fab34f0373e5d4e9273ffffffffffffffffffffffffffffffffffffffff7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416906113c981303385612ece565b600354915f9280611407575b50506113f26113e48383612023565b6113ec61240b565b90612138565b60015542600255612023565b604051908152a1005b61143d91935061141b620186a091846121e9565b04809373ffffffffffffffffffffffffffffffffffffffff6004541690612f3c565b85806113d5565b7f3d693ada000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610baa575f600319360112610baa57335f9081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561154f576114ba6131e8565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416177fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b7fe2517d3f000000000000000000000000000000000000000000000000000000005f52336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260445ffd5b34610baa575f600319360112610baa576115b761244a565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610baa576020600319360112610baa5773ffffffffffffffffffffffffffffffffffffffff611689611e53565b165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052602060405f2054604051908152f35b34610baa576040600319360112610baa576004356116db611e30565b906116e582612196565b8082116117055750610d656020926116fc8361259c565b92839133612d85565b9173ffffffffffffffffffffffffffffffffffffffff907f79012fb2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b34610baa575f600319360112610baa57602060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166040519015158152f35b611edc565b34610baa575f600319360112610baa576117ac61244a565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff811615611847577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610baa575f600319360112610baa57602073ffffffffffffffffffffffffffffffffffffffff7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416604051908152f35b34610baa576040600319360112610baa576118da611e30565b3373ffffffffffffffffffffffffffffffffffffffff82160361190357610c0290600435612c7d565b7f6697b232000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610baa575f600319360112610baa57602060405160128152f35b34610baa576040600319360112610baa57610c02600435611965611e30565b9061199e610dc5825f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b612b71565b34610baa575f600319360112610baa576020600254604051908152f35b34610baa576020600319360112610baa576020610d656004355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b34610baa576060600319360112610baa57610fcb611a26611e53565b611a2e611e30565b60443591611a3d8333836125e8565b61277e565b34610baa575f600319360112610baa5760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b34610baa576020600319360112610baa576020610d6560043561254f565b34610baa576040600319360112610baa57611ab5611e53565b602435903315611b785773ffffffffffffffffffffffffffffffffffffffff16908115611b4c57335f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260409020825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b34610baa575f600319360112610baa576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354611be381612145565b808452906001811690811561114d5750600114611c0a57610bd583610bc981850382611efa565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611c6d57509091508101602001610bc96110c0565b919260018160209254838588010152019101909291611c55565b34610baa576040600319360112610baa57600435611ca3611e30565b611cab61244a565b614e208211611cfb5773ffffffffffffffffffffffffffffffffffffffff91600355167fffffffffffffffffffffffff000000000000000000000000000000000000000060045416176004555f80f35b7fcd4e6167000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610baa576020600319360112610baa57600435611d3f61244a565b60025481611d4e5f5483612138565b4210918215611d62575b5050611444575f55005b611d6c9250612138565b42108183611d58565b34610baa576020600319360112610baa576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610baa57807f7965db0b0000000000000000000000000000000000000000000000000000000060209214908115611dec575b506040519015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501482611de1565b34610baa575f600319360112610baa576020610d6561205d565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610baa57565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610baa57565b919091602081528251928360208301525f5b848110611ec65750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6040809697860101520116010190565b8060208092840101516040828601015201611e88565b34610baa576020600319360112610baa576020610d65600435612503565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761096e57604052565b60405190611f4a604083611efa565b601182527f50617265746f207374616b6564205553500000000000000000000000000000006020830152565b6003196060910112610baa576004359060243573ffffffffffffffffffffffffffffffffffffffff81168103610baa579060443573ffffffffffffffffffffffffffffffffffffffff81168103610baa5790565b34610baa576020600319360112610baa576020610d6560043561259c565b60405190611ff7604083611efa565b600482527f73555350000000000000000000000000000000000000000000000000000000006020830152565b9190820391821161203057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6024602073ffffffffffffffffffffffffffffffffffffffff7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561212d575f916120fb575b506120e261240b565b8181116120f5576120f291612023565b90565b50505f90565b90506020813d602011612125575b8161211660209383611efa565b81010312610baa57515f6120d9565b3d9150612109565b6040513d5f823e3d90fd5b9190820180921161203057565b90600182811c9216801561218c575b602083101461215f57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691612154565b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16156121c5575f90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b8181029291811591840414171561203057565b8115612206570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff161561226257505f90565b73ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020526120f260405f2054612503565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16156122da57505f90565b73ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b73ffffffffffffffffffffffffffffffffffffffff1680156123df5773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b5f905f546001549061241f60025442612023565b81811061242b57505050565b6120f29394509061243f61244492846121e9565b6121fc565b90612023565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416330361248a57565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6124be61205d565b9060018201809211612030577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025460018101809111612030576120f292600192613171565b61250b61205d565b9060018201809211612030577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025460018101809111612030576120f2925f92613171565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490600182018092116120305761258561205d565b60018101809111612030576120f292600192613171565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02549060018201809211612030576125d261205d565b60018101809111612030576120f2925f92613171565b91906126318373ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f5260205260405f2054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8410612681575b50505050565b8284106127345773ffffffffffffffffffffffffffffffffffffffff811615611b785773ffffffffffffffffffffffffffffffffffffffff821615611b4c5761271c73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f5260205260405f20910390555f80808061267b565b5073ffffffffffffffffffffffffffffffffffffffff83917ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b73ffffffffffffffffffffffffffffffffffffffff169081156128d45773ffffffffffffffffffffffffffffffffffffffff169182156128a857815f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205481811061287657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0084520360405f2055845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00825260405f20818154019055604051908152a3565b827fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260ff60405f205416156129575750565b7fe2517d3f000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16612a685773ffffffffffffffffffffffffffffffffffffffff165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff16612a685773ffffffffffffffffffffffffffffffffffffffff165f8181527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790553391907f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260ff60405f205416155f146120f557805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260ff60405f2054165f146120f557805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b929073ffffffffffffffffffffffffffffffffffffffff90612da56131e8565b612dd584837f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416873091612ece565b169283156128a85773ffffffffffffffffffffffffffffffffffffffff60409183612e427fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7957f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254612138565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0255865f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052835f20818154019055865f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208751858152a3835195865260208601521692a3565b90919273ffffffffffffffffffffffffffffffffffffffff612f3a9481604051957f23b872dd000000000000000000000000000000000000000000000000000000006020880152166024860152166044840152606483015260648252612f35608483611efa565b61323b565b565b612f3a9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252612f35606483611efa565b9193612fa36131e8565b73ffffffffffffffffffffffffffffffffffffffff8516948173ffffffffffffffffffffffffffffffffffffffff851694878603613160575b50505084156128d457845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205481811061312e577ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db928260409373ffffffffffffffffffffffffffffffffffffffff93895f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205203845f2055807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555f887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208751858152a361311f8783857f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416612f3c565b835196875260208701521693a4565b857fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b613169926125e8565b5f8181612fdc565b929161317e818386613319565b9260048110156131bb5760018091161491826131a4575b50506120f29250151590612138565b9080925015612206576120f2930915155f80613195565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300541661321357565b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af11561212d575f513d6132b9575073ffffffffffffffffffffffffffffffffffffffff81163b155b6132775750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415613270565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156132f157565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395146133c857848311156133b05790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906120f292506121fc565b5f809160405173ffffffffffffffffffffffffffffffffffffffff60208201917f313ce56700000000000000000000000000000000000000000000000000000000835260048152613427602482611efa565b5192165afa3d156134c8573d9067ffffffffffffffff821161096e5760405191613479601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200184611efa565b82523d5f602084013e5b806134bc575b613495575b505f905f90565b60208151918180820193849201010312610baa575160ff811161348e579060ff6001921690565b50602081511015613489565b60609061348356fea164736f6c634300081d000af0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00