0 txs
19 calls
constructor
No constructor.
functions
CBBTC_ADDRESS
viewfunction CBBTC_ADDRESS() view returns (address)
CRV_ADDRESS
viewfunction CRV_ADDRESS() view returns (address)
CURVE_REGISTRY
viewfunction CURVE_REGISTRY() view returns (address)
CVX_ADDRESS
viewfunction CVX_ADDRESS() view returns (address)
getAmountOutV2
viewfunction getAmountOutV2(uint256 amountIn, address[] path) view returns (uint256 amountOut)
getAmountOutV3
viewfunction getAmountOutV3(uint256 amountIn, address[] path, uint24[] feeTiers) view returns (uint256 amountOut)
getCurvePool
viewfunction getCurvePool(address inputToken, address outputToken) view returns (address curvePool, uint256 i, uint256 j)
getPathV2
viewfunction getPathV2(address inputToken, address outputToken, address factoryAddress) view returns (address[] path)
getPathV3
viewfunction getPathV3(address inputToken, address outputToken, address factoryAddress) view returns (address[] path, uint24[] feeTiers, bytes encodedPath)
getPathV3SpecificIntermediateToken
viewfunction getPathV3SpecificIntermediateToken(address inputToken, address intToken, address outputToken, address factoryAddress) view returns (address[] path, uint24[] feeTiers, bytes encodedPath)
getPathV3SpecificIntermediateTokens
viewfunction getPathV3SpecificIntermediateTokens(address inputToken, address intToken1, address intToken2, address outputToken, address factoryAddress) view returns (address[] path, uint24[] feeTiers, bytes encodedPath)
getTokenIndex
viewfunction getTokenIndex(address token, address pool) view returns (uint256)
intermediateToken
viewfunction intermediateToken() view returns (address)
owner
viewfunction owner() view returns (address)
priceOracleAddress
viewfunction priceOracleAddress() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
ROUTER_NG
viewfunction ROUTER_NG() view returns (address)
sUSN_ADDRESS
viewfunction sUSN_ADDRESS() view returns (address)
UNISWAP_V2_FACTORY
viewfunction UNISWAP_V2_FACTORY() view returns (address)
UNISWAP_V2_ROUTER
viewfunction UNISWAP_V2_ROUTER() view returns (address)
UNISWAP_V3_FACTORY
viewfunction UNISWAP_V3_FACTORY() view returns (address)
UNISWAP_V3_ROUTER
viewfunction UNISWAP_V3_ROUTER() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
USDC_ADDRESS
viewfunction USDC_ADDRESS() view returns (address)
USDT_ADDRESS
viewfunction USDT_ADDRESS() view returns (address)
initialize
nonpayablefunction initialize(address _priceOracle)
renounceOwnership
nonpayablefunction renounceOwnership()
setPriceOracleAddress
nonpayablefunction setPriceOracleAddress(address _priceOracle)
swap
nonpayablefunction swap(address inputToken, uint256 amount, address outputToken, uint16 slippageBps, address strategy, uint256 maxDeadline, bytes data) returns (uint256 amountOut)
swapExactOut
nonpayablefunction swapExactOut(uint256 totalAmountAvailable, address inputToken, uint256 amountOut, address outputToken, uint16 slippageBps, address receiver, uint16 maxDeadline, bytes data) returns (uint256 amountIn)
swapTokensViaCurveNG
nonpayablefunction swapTokensViaCurveNG(address[11] route, uint256[5][5] swapParams, address[5] pools, uint256 amount, uint16 slippageBps) returns (uint256 amountOut)
swapViaUniV3SpecificIntermediateToken
nonpayablefunction swapViaUniV3SpecificIntermediateToken(address inputToken, address intToken, uint256 amount, address outputToken, uint16 slippageBps, address strategy, uint256 maxDeadline, bytes data) returns (uint256 amountOut)
swapViaUniV3SpecificIntermediateTokens
nonpayablefunction swapViaUniV3SpecificIntermediateTokens(address inputToken, address intToken1, address intToken2, uint256 amount, address outputToken, uint16 slippageBps, address strategy, uint256 maxDeadline, bytes) returns (uint256 amountOut)
swapViaUniV4
nonpayablefunction swapViaUniV4(address inputToken, uint256 amount, address outputToken, uint16 slippageBps, address receiver, uint256 maxDeadline, bytes) returns (uint256 amountOut)
swapViaUniV4MultiHop
nonpayablefunction swapViaUniV4MultiHop(address inputToken, uint256 amount, address outputToken, uint16 slippageBps, address receiver, uint256 maxDeadline) returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AmountCantBeZero
error AmountCantBeZero()
ConfirmationAlreadyProcessed
error ConfirmationAlreadyProcessed()
DepositExceedsLimit
error DepositExceedsLimit()
DepositsPaused
error DepositsPaused()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExceedsMaxSharesOut
error ExceedsMaxSharesOut()
FailedCall
error FailedCall()
FeeExceedsLimit
error FeeExceedsLimit()
InsufficientBalance
error InsufficientBalance()
InsufficientInputAmount
error InsufficientInputAmount()
InsufficientLiquidity
error InsufficientLiquidity()
InsufficientOut
error InsufficientOut()
InvalidAddress
error InvalidAddress()
InvalidAmanaVault
error InvalidAmanaVault()
InvalidInitialization
error InvalidInitialization()
InvalidMessage
error InvalidMessage()
InvalidNonce
error InvalidNonce()
InvalidPath
error InvalidPath()
InvalidPathLength
error InvalidPathLength()
InvalidStrategyChainId
error InvalidStrategyChainId()
InvalidTokenPair
error InvalidTokenPair()
MintExceedsLimit
error MintExceedsLimit()
NoAssetsToSwitch
error NoAssetsToSwitch()
NoFundsReceived
error NoFundsReceived()
NotAuthorized
error NotAuthorized()
NothingToWithdraw
error NothingToWithdraw()
NotInitializing
error NotInitializing()
OldStrategyNotSet
error OldStrategyNotSet()
OnlyGateway
error OnlyGateway()
OnlyVault
error OnlyVault()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
RedeemExceedsLimit
error RedeemExceedsLimit()
StrategyAlreadySet
error StrategyAlreadySet()
TransferFailed
error TransferFailed()
UserSharesInsufficientForWithdrawal
error UserSharesInsufficientForWithdrawal(address user, uint256 required, uint256 actual)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
VaultAlreadyAuthorized
error VaultAlreadyAuthorized()
WithdrawExceedsLimit
error WithdrawExceedsLimit()
creation bytecode
0x60a0806040523460295730608052614e5a908161002f8239608051818181610d040152610dd40152f35b600080fdfe60a080604052600436101561001357600080fd5b60009081803560e01c9182630b630b1214611eb357505080630f24df5d14611e8a5780630f267c781461194b5780631104ea711461190c5780631a86e68e146118d657806323e5e2121461189657806324015b7f146118675780632bc51c6d1461184057806334d34e04146117c55780633c6463661461162857806341c64a2f146115ff57806345cdc3e4146115d257806347ee8ea51461157c5780634bde96d31461120f5780634e4b6c6b14610f865780634f1ef28614610d5957806352d1902d14610cf157806356ff5cbf14610bce578063715018a614610b645780637dc4f22014610b3a57806384a8ab801461097d5780638da5cb5b146109475780638e05664714610678578063982a68721461062e57806399d8fae314610605578063a82ed9ec146105dc578063ad3cb1cc1461058f578063b942717b14610566578063bb09d9b714610537578063c189205814610508578063c43d14cf146104d9578063c4d66de81461029f578063ed1c1e0014610270578063f0c51e5e14610241578063f2fde38b14610214578063f4cf4d9c146101e55763f73e5aab146101ba57600080fd5b346101e257806003193601126101e2576004546040516001600160a01b039091168152602090f35b80fd5b50346101e257806003193601126101e257602060405173cbb7c0000ab88b473b1f5afd9ef808440eed33bf8152f35b50346101e25760203660031901126101e25761023e610231612316565b61023961485c565b614253565b80f35b50346101e257806003193601126101e25760206040517316c6521dff6bab339122a0fe25a91166932653538152f35b50346101e257806003193601126101e257602060405173d533a949740bb3306d119cc777fa900ba034cd528152f35b50346101e25760203660031901126101e2576102b9612316565b600080516020614e05833981519152549060ff8260401c1615916001600160401b038116801590816104d1575b60011490816104c7575b1590816104be575b506104af5767ffffffffffffffff198116600117600080516020614e058339815191525582610482575b5061032b614d35565b610333614d35565b61033b614d35565b61034433614253565b61034c614d35565b82546001600160a01b03199081166001600160a01b0392909216919091178355600180548216737a250d5630b4cf539739df2c5dacb4c659f2488d179055600280548216735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f17905560038054821673e592427a0aece92de3edee1f18e0157c05861564179055600480548216731f98431c8ad98523631ae4a59f267346ea31f98417905560058054821673f98b45fa17de75fb1ad0e7afd971b0ca00e379fc1790556006805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556104285780f35b68ff000000000000000019600080516020614e058339815191525416600080516020614e05833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff19166801000000000000000117600080516020614e058339815191525538610322565b63f92ee8a960e01b8452600484fd5b905015386102f8565b303b1591506102f0565b8491506102e6565b50346101e257806003193601126101e2576020604051734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b8152f35b50346101e257806003193601126101e257602060405173dac17f958d2ee523a2206206994597c13d831ec78152f35b50346101e257806003193601126101e257602060405173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488152f35b50346101e257806003193601126101e2576005546040516001600160a01b039091168152602090f35b50346101e257806003193601126101e257506105d86040516105b2604082612592565b60058152640352e302e360dc1b60208201526040519182916020835260208301906124cd565b0390f35b50346101e257806003193601126101e2576001546040516001600160a01b039091168152602090f35b50346101e257806003193601126101e2576002546040516001600160a01b039091168152602090f35b50346101e25760603660031901126101e2576105d861066461064e612316565b610656612358565b61065e61232c565b91614178565b60405191829160208352602083019061246d565b50346101e2576105603660031901126101e25736602312156101e257604051906106a461016083612592565b8136610164116108cd576004905b610164821061092f5750503661018312156101e2576040519160a06106d78185612592565b8336610484116108b357610164905b61048482106108d157505050366104a312156108cd576040519261070b60a085612592565b8336610524116108b357610484905b610524821061089b57505061052435916105443561ffff8116810361089757610757908461074784614a00565b84516001600160a01b031661439d565b9484602060018060a01b0384511660446040518094819363095ea7b360e01b83527316c6521dff6bab339122a0fe25a911669326535360048401528a60248401525af1801561088c57610842575b5060209392916107cc91604051978895869563c872a3c560e01b875233946004880161409a565b0381847316c6521dff6bab339122a0fe25a91166932653535af190811561083657906107fe575b602090604051908152f35b506020813d60201161082e575b8161081860209383612592565b8101031261082957602090516107f3565b600080fd5b3d915061080b565b604051903d90823e3d90fd5b6020813d602011610884575b8161085b60209383612592565b8101031261088057916107cc916108756020969594612ca2565b5091509192936107a5565b8580fd5b3d915061084e565b6040513d88823e3d90fd5b8480fd5b602080916108a88461239a565b81520191019061071a565b8380fd5b634e487b7160e01b600052604160045260246000fd5b5080fd5b36601f83011215610897576040516108e98482612592565b8084840136811161092b5791859285949294905b808210610915575050815292019160200190506106e6565b81358652602095860195889550909101906108fd565b8780fd5b6020809161093c8461239a565b8152019101906106b2565b50346101e257806003193601126101e257600080516020614dc5833981519152546040516001600160a01b039091168152602090f35b50346101e2576101003660031901126101e25780610999612316565b6109a1612358565b6044356109ac61236e565b6109b46123ae565b936109bd612384565b9160e4356001600160401b03811161092b576109dd9036906004016123bf565b50506040516370a0823160e01b81523060048201526001600160a01b03831696906020816024818b5afa908115610b2f578991610ae8575b5094610a528194610acd989694610a40610a6795610a388660209e9c101561264a565b85838561439d565b9760018060a01b036004541692612887565b9791505060018060a01b0360035416906148c2565b610a7360c4354261268d565b9060405194610a818661255c565b855260018060a01b03168685015260408401526060830152608082015260018060a01b03600354169060405195868094819363c04b8d5960e01b83528760048401526024830190612d61565b03925af190811561083657906107fe57602090604051908152f35b9850509593919492906020883d602011610b27575b81610b0a60209383612592565b810103126108295796518897949693959294919390610a52610a15565b3d9150610afd565b6040513d8b823e3d90fd5b50346101e2576020610b5c610b4e366123ec565b50509493909392919261384d565b604051908152f35b50346101e257806003193601126101e257610b7d61485c565b600080516020614dc583398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101e25760403660031901126101e257610be8612316565b610bf0612358565b600554604051632a1f7c1b60e21b81526001600160a01b0384811660048301528381166024830152909160209183916044918391165afa9384156108365793610cc0575b506001600160a01b038316918215610c6f5783610c56606095610c5c936134ec565b926134ec565b9060405192835260208301526040820152f35b60405162461bcd60e51b815260206004820152602360248201527f43757276653a204e6f20706f6f6c20666f756e6420666f7220746f6b656e207060448201526230b4b960e91b6064820152608490fd5b610ce391935060203d602011610cea575b610cdb8183612592565b8101906133f8565b9138610c34565b503d610cd1565b50346101e257806003193601126101e2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610d4a576020604051600080516020614de58339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101e257610d6e612316565b602435906001600160401b038211610f825736602383011215610f825781600401359083610d9b8361262f565b93610da96040519586612592565b83855260208501933660248284010111610f8257806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f5f575b50610f5057610e0c61485c565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610f18575b50610e4f57634c9c8ce360e01b86526004859052602486fd5b9384600080516020614de5833981519152879603610f065750823b15610ef457600080516020614de583398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610ed957610ed59382915190845af4610ecf614892565b91614d63565b5080f35b5050505034610ee55780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f48575b81610f3460209383612592565b81010312610f4457519038610e36565b8680fd5b3d9150610f27565b63703e46dd60e11b8452600484fd5b600080516020614de5833981519152546001600160a01b03161415905038610dff565b8280fd5b50346101e25760403660031901126101e2576004356024356001600160401b038111610f8257610fba9036906004016125ca565b9080158015611204575b6111f5576002546001600160a01b03169183915b815160001981019081116111e1578310156107f3576001600160a01b03610fff8484612786565b51169060018401808511611111576001600160a01b03906110209085612786565b5160405163e6a4390560e01b81526001600160a01b0385811660048301529290911691821660248201526020816044818a5afa9081156111b85788916111c3575b506001600160a01b031680156111395790606060049260405193848092630240bc6b60e21b82525afa9182156111b85788908993611156575b506001600160701b0380911692169310600014611150575b801592838015611148575b611139576103e58302928084046103e51490151715611125576110e09083613806565b926103e882029182046103e814171561111157916111036111099260019461268d565b90613819565b920191610fd8565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b88526011600452602488fd5b63bb55fd2760e01b8852600488fd5b5080156110bd565b916110b2565b9250506060823d82116111b0575b8161117160609383612592565b8101031261092b5761118282613839565b604061119060208501613839565b93015163ffffffff8116036111ac576001600160701b0361109a565b8880fd5b3d9150611164565b6040513d8a823e3d90fd5b6111db915060203d8111610cea57610cdb8183612592565b38611061565b634e487b7160e01b86526011600452602486fd5b6320db826760e01b8352600483fd5b506002825110610fc4565b50346101e25760603660031901126101e2576004356024356001600160401b038111610f82576112439036906004016125ca565b91604435916001600160401b0383116108cd57366023840112156108cd57826004013561126f816125b3565b9361127d6040519586612592565b8185526024602086019260051b8201019036821161089757602401915b8183106115605750505080158015611555575b8015611529575b61151a5792819360018060a01b0360045416905b82516000198101908111611506578610156107f3576001600160a01b036112ef8785612786565b5116600187018088116111e1576020906001600160a01b03906113129087612786565b511662ffffff6113228a8a612786565b51604051630b4c774160e11b81526001600160a01b03958616600482015292909416602483015290921662ffffff16604483015281606481865afa9081156114fb5785916114dd575b506001600160a01b0316801561140657604051633850c7bd60e01b81529060e082600481845afa91821561088c578692611443575b50602060049160405192838092630d34328160e11b82525afa90811561088c57906001600160801b03918791611415575b501615611406576001916113fb916113f2906001600160a01b031680613806565b60601c90613806565b60601c9501946112c8565b63bb55fd2760e01b8552600485fd5b611436915060203d811161143c575b61142e8183612592565b8101906137e7565b386113d1565b503d611424565b90915060e0813d82116114d5575b8161145e60e09383612592565b81010312610880578051906001600160a01b0382168203610f445760208101518060020b03610f44576004916114cc60c08361149e6040602096016137ca565b506114ab606082016137ca565b506114b8608082016137ca565b506114c560a082016137d9565b5001612ca2565b509291506113a0565b3d9150611451565b6114f5915060203d8111610cea57610cdb8183612592565b3861136b565b6040513d87823e3d90fd5b634e487b7160e01b85526011600452602485fd5b6320db826760e01b8252600482fd5b508351600019810190811161154157835114156112b4565b634e487b7160e01b83526011600452602483fd5b5060028451106112ad565b823562ffffff811681036108805781526020928301920161129a565b50346101e25760a03660031901126101e2576105d86115c361159c612316565b6115a4612358565b6115ac61232c565b6115b461236e565b916115bd612342565b936135b7565b604093919351938493846124f2565b50346101e25760403660031901126101e2576020610b5c6115f1612316565b6115f9612358565b906134ec565b50346101e257806003193601126101e2576003546040516001600160a01b039091168152602090f35b50346101e2576101203660031901126101e257611643612316565b8161164c612358565b9161165561232c565b60643590611661612342565b9260a4359361ffff851685036108805760c4356001600160a01b0381169390849003610f4457610104356001600160401b03811161092b576116a79036906004016123bf565b50506040516370a0823160e01b81523060048201526001600160a01b03841696906020816024818b5afa908115610b2f57899161177c575b5086946020999a969461171e9461170c8895611704610acd9d9c610a5297101561264a565b86848661439d565b9860018060a01b0360045416936135b7565b61172a60e4354261268d565b90604051946117388661255c565b85528685015260408401526060830152608082015260018060a01b03600354169060405195868094819363c04b8d5960e01b83528760048401526024830190612d61565b919995939796949850506020813d6020116117bd575b8161179f60209383612592565b81010312610829575193978997959693959294929392610acd6116df565b3d9150611792565b50346101e2576101003660031901126101e2576117e0612358565b6117e861236e565b6117f06123ae565b906117f9612384565b9260c4359461ffff861686036101e25760e435906001600160401b0382116101e2576020610b5c88888888886118323660048b016123bf565b505060443590600435612db5565b50346101e257806003193601126101e257546040516001600160a01b039091168152602090f35b50346101e257806003193601126101e257602060405173e24a3dc889621612422a64e6388927901608b91d8152f35b50346101e25760203660031901126101e2576118b0612316565b6118b861485c565b81546001600160a01b0319166001600160a01b039190911617815580f35b50346101e25760603660031901126101e2576105d86115c36118f6612316565b6118fe612358565b61190661232c565b91612b1a565b50346101e25760803660031901126101e2576105d86115c361192c612316565b611934612358565b61193c61232c565b9061194561236e565b92612887565b50346101e25760c03660031901126101e257611965612316565b61196d61232c565b60643561ffff811681036108b357611983612342565b6040516370a0823160e01b815230600482015290936001600160a01b03811692909190602082602481875afa918215611e7f578792611e49575b506119dc906119d2889493602435111561264a565b602435868461439d565b93611a0665ffffffffffff6119f360a4354261268d565b166024356001600160a01b0316846145b7565b604051611a128161255c565b73da67b4284609d2d48e5d10cfac411572727dc1ed81526064602082015260016040820152836060820152600060805260805150608051506020608052604051611a5e60805182612592565b8481526080820152611a6e612769565b52611a77612769565b5060405194611a858661255c565b60018060a01b03821695868152606460805182015260016040820152846060820152604051611ab660805182612592565b8581526080820152611ac6612776565b52611acf612776565b5060405194611add86612577565b8552608051850191606083526001600160801b036024351660408701526001600160801b038216606087015260405193600160fc1b60805186015260018552611b27602186612592565b604051608051600760f81b90820152600360fa1b6021820152600f60f81b60228201526003815296611b5a602389612592565b611b626126b0565b946040519160805160805184015260c083019160018060a01b038251166040850152519160806060850152825180915260e084019060e08160051b8601019360805101918b905b828210611dc457505050509282611bf2611c2f94611c3d946001600160801b03606089826040611c799d9c015116608086015201511660a083015203601f198101835282612592565b611bfb88612726565b52611c0587612726565b50604080516080516001600160a01b03909316928101928352602435602084015293849290910190565b03601f198101835282612592565b611c4685612749565b52611c5084612749565b50604080516080516001600160a01b039093169281019283526020830194909452839101611c2f565b611c8282612759565b52611c8c81612759565b50611cac611c986126eb565b94611c2f60405193849260805184016127f3565b611cb584612726565b52611cbf83612726565b50611ccc60a4354261268d565b927366a9893cc07d91d95644aedd05d03f95e1dba8af3b15610f82578291611d086040519586938493630d64d59360e21b855260048501612818565b0381837366a9893cc07d91d95644aedd05d03f95e1dba8af5af19182611daf575b5050611d3e5750505b60405190815260805190f35b6040516370a0823160e01b81526001600160a01b03909216600483015260805190829060249082905afa9182156108365791611d7b575b50611d32565b90506080513d60805111611da8575b611d948183612592565b816080519181010312610829575138611d75565b503d611d8a565b81611db991612592565b6108b3578338611d29565b91939460019193969798999a9b9c50611e2c9060df1989820301845260a0608089518580841b03815116845262ffffff8251820151168251850152604081015160020b60408501528580841b03606082015116606085015201519181608082015201906124cd565b9560805101916080510192018f9b9a999897969594939192611ba9565b91506020823d602011611e77575b81611e6460209383612592565b81010312610829579051906119d26119bd565b3d9150611e57565b6040513d89823e3d90fd5b50346101e257806003193601126101e2576006546040516001600160a01b039091168152602090f35b81903461231357611ec3366123ec565b50506370a0823160e01b87523060048801526001600160a01b03861696919593949390929091906020826024818b5afa8015610b2f5785928a916122da575b50611f1a92611f1291101561264a565b84868461439d565b93611f4065ffffffffffff611f2f854261268d565b166001600160a01b038616846145b7565b604051600160fc1b60208201526001815294611f5d602187612592565b604051600360f91b6020820152600360fa1b6021820152600f60f81b60228201526003815292611f8e602385612592565b6001600160a01b0383169889119586156122d35781965b80156122cd57845b60405198611fba8a61255c565b6001600160a01b039081168a521660208901526064604089015260016060890152608088018c9052611fea6126b0565b9760209d8e9260405191611ffe8584612592565b82526040519261200d8461255c565b8352838301908152604083016001600160801b038616815260608401916001600160801b03891683526080850193845260405195869581808801525190600160a01b600190038251166040880152600160a01b6001900390820151166060870152604081015162ffffff166080870152606081015160020b60a0870152600160a01b6001900390608001511660c086015251151560e0850152516001600160801b0316610100840152516001600160801b0316610120830152516101408201610120905261016082016120df916124cd565b03601f19810182526120f19082612592565b6120fa88612726565b5261210487612726565b50604080516001600160a01b039093168d8401908152602081019290925282910103601f19810182526121379082612592565b61214086612749565b5261214a85612749565b50604080516001600160a01b039093168b8401908152602081019290925282910103601f198101825261217d9082612592565b61218684612759565b5261219083612759565b506121996126eb565b926040519182918a8301916121ad926127f3565b03601f19810182526121bf9082612592565b6121c883612726565b526121d282612726565b506121dd904261268d565b917366a9893cc07d91d95644aedd05d03f95e1dba8af3b156108805790859161221a6040519485938493630d64d59360e21b855260048501612818565b0381837366a9893cc07d91d95644aedd05d03f95e1dba8af5af180156122c257908592916122ae575b506040516370a0823160e01b81526001600160a01b03909116600482015291829060249082905afa9182156108365791612281575b50604051908152f35b90508181813d83116122a7575b6122988183612592565b81010312610829575182612278565b503d61228e565b846122bb91959295612592565b9285612243565b6040513d86823e3d90fd5b82611fad565b8396611fa5565b9250506020823d60201161230b575b816122f660209383612592565b810103126111ac579051849190611f1a611f02565b3d91506122e9565b50fd5b600435906001600160a01b038216820361082957565b604435906001600160a01b038216820361082957565b608435906001600160a01b038216820361082957565b602435906001600160a01b038216820361082957565b606435906001600160a01b038216820361082957565b60a435906001600160a01b038216820361082957565b35906001600160a01b038216820361082957565b6084359061ffff8216820361082957565b9181601f84011215610829578235916001600160401b038311610829576020838186019501011161082957565b60e0600319820112610829576004356001600160a01b03811681036108295791602435916044356001600160a01b0381168103610829579160643561ffff8116810361082957916084356001600160a01b0381168103610829579160a4359160c435906001600160401b03821161082957612469916004016123bf565b9091565b906020808351928381520192019060005b81811061248b5750505090565b82516001600160a01b031684526020938401939092019160010161247e565b60005b8381106124bd5750506000910152565b81810151838201526020016124ad565b906020916124e6815180928185528580860191016124aa565b601f01601f1916010190565b9392906125079060608652606086019061246d565b9380850360208201526020808451968781520193016000955b80871061253f57505061253c93945060408184039101526124cd565b90565b909360208060019262ffffff885116815201950196019590612520565b60a081019081106001600160401b038211176108b757604052565b608081019081106001600160401b038211176108b757604052565b90601f801991011681019081106001600160401b038211176108b757604052565b6001600160401b0381116108b75760051b60200190565b9080601f830112156108295781356125e1816125b3565b926125ef6040519485612592565b81845260208085019260051b82010192831161082957602001905b8282106126175750505090565b602080916126248461239a565b81520191019061260a565b6001600160401b0381116108b757601f01601f191660200190565b1561265157565b60405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606490fd5b9190820180921161269a57565b634e487b7160e01b600052601160045260246000fd5b604051608091906126c18382612592565b6003815291601f19018260005b8281106126da57505050565b8060606020809385010152016126ce565b604080519091906126fc8382612592565b6001815291601f19018260005b82811061271557505050565b806060602080938501015201612709565b8051156127335760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156127335760400190565b8051600210156127335760600190565b6060511561273357608090565b606051600110156127335760a090565b80518210156127335760209160051b010190565b9080602083519182815201916020808360051b8301019401926000915b8383106127c657505050505090565b90919293946020806127e4600193601f1986820301875289516124cd565b970193019301919392906127b7565b909161280a61253c936040845260408401906124cd565b91602081840391015261279a565b939291612841906128336040936060885260608801906124cd565b90868203602088015261279a565b930152565b60209061285c60179593828151948592016124aa565b60e89390931b6001600160e81b031916920191825260601b6001600160601b03191660038201520190565b6060948594909385936001600160a01b038085169490831693919290858514612b09576128b58383836146ed565b90612a11575082846128c6926146ed565b92906128d8575b505050505050929190565b6128e291846146ed565b91906128ee57806128cd565b92959650929650925060405193612906608086612592565b60038552606036602087013760609360405197612923868a612592565b60028952601f1986013660208b013761293b87612726565b5261294586612749565b6001600160a01b03909116905261295b85612759565b5262ffffff61296987612726565b9116905262ffffff61297a86612749565b9116905261298782612726565b51604051911b6001600160601b0319166020820152601481526129ab603482612592565b926000935b8151851015612a0b5762ffffff6129c78684612786565b51166001860180871161269a57600192612a0391611c2f906001600160a01b03906129f29089612786565b511660405194859360208501612846565b9401936129b0565b91935091565b95995050505050935060405191612a288184612592565b60028352601f1901366020840137604093845195612a468688612592565b60018752601f198601366020890137612a5e84612726565b52612a6883612749565b5262ffffff612a7686612726565b91169052612b046001600160a01b03612a8e83612726565b5116612af662ffffff612aa088612726565b5116956001600160a01b03612ab486612749565b5116905196879360208501606091821b6001600160601b0319908116825260e89390931b6001600160e81b031916601482015292901b166017820152602b0190565b03601f198101855284612592565b929190565b63e6c4247b60e01b60005260046000fd5b6060938493909284926001600160a01b038082169390831692848414612b0957612b458282856146ed565b90612c8c57506006546001600160a01b031692612b6590839085906146ed565b9290612b7657505050505050929190565b612b8091846146ed565b9190612b8c57806128cd565b92959650929650925060405193612ba4608086612592565b60038552606036602087013760609360405197612bc1868a612592565b60028952601f1986013660208b0137612bd987612726565b52612be386612749565b52612bed85612759565b5262ffffff612bfb87612726565b9116905262ffffff612c0c86612749565b91169052612c1982612726565b51604051911b6001600160601b031916602082015260148152612c3d603482612592565b926000935b8151851015612a0b5762ffffff612c598684612786565b51166001860180871161269a57600192612c8491611c2f906001600160a01b03906129f29089612786565b940193612c42565b949850505050935060405191612a288184612592565b5190811515820361082957565b602081830312610829578051906001600160401b03821161082957019080601f83011215610829578151612ce2816125b3565b92612cf06040519485612592565b81845260208085019260051b82010192831161082957602001905b828210612d185750505090565b8151815260209182019101612d0b565b9192608093612d4d92979695978452602084015260a0604084015260a083019061246d565b6001600160a01b0390951660608201520152565b90608080612d78845160a0855260a08501906124cd565b6020808601516001600160a01b031690850152604080860151908501526060808601519085015293015191015290565b9190820391821161269a57565b94959093612dc285614b3b565b612dcb85614b3b565b9080158015906133e4575b612ddf906142c9565b81158015906133d0575b612df29061430b565b612dfb87614c87565b600091901561334c5750508484876305f5e100935b612e1984614c87565b6000919015613291575050612e8d612e9c9594612e8861271095612e82612e7c612e9597611103612e7c61ffff9960ff612e7581612e6e6305f5e100945b8d151580613288575b612e699061434e565b614ccc565b1698614ccc565b1693613806565b9161438f565b90613806565b613819565b931683613806565b049061268d565b6040516370a0823160e01b81523060048201526001600160a01b03861695919291906020816024818a5afa8015613079578490600090613252575b612ee39250101561264a565b600454612efa906001600160a01b03168287612b1a565b80519097925015905061310a57505060035460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905290506020816044816000895af18015613079576130c2575b50600354604051600094602094612fb1946001600160a01b039094169391612f6f8461255c565b835260018060a01b038a168684015242604084015260608301526080820152604051948580948193631e51809360e31b83528760048401526024830190612d61565b03925af16000918161308e575b50612fcc5750505050600090565b9283915b82151580613085575b612fe5575b5050505090565b612ff460209361302995612da8565b60405163a9059cbb60e01b81526001600160a01b03909316600484015260248301529092839190829060009082906044820190565b03925af1801561307957613040575b818180612fde565b6020813d602011613071575b8161305960209383612592565b810103126108295761306a90612ca2565b5038613038565b3d915061304c565b6040513d6000823e3d90fd5b50828411612fd9565b9091506020813d6020116130ba575b816130aa60209383612592565b8101031261082957519038612fbe565b3d915061309d565b90916020823d602011613102575b816130dd60209383612592565b81010312610829576000936020936130f7612fb194612ca2565b509250935091612f48565b3d91506130d0565b60025494955092939192613127926001600160a01b031691614178565b9060028251106132465760015460405163095ea7b360e01b81526001600160a01b039091166004820152602481018490529260208460448160008a5af1938415613079578894613203575b5060008094956131b161319461ffff60018060a01b036001541696164261268d565b604051634401edf760e11b81529889978896879560048701612d28565b03925af1600091816131de575b506131cc5750505050600090565b6131d590612726565b51928391612fd0565b6131fc9192503d806000833e6131f48183612592565b810190612caf565b90386131be565b9493506020853d60201161323e575b8161321f60209383612592565b8101031261082957600080946132358a97612ca2565b50959450613172565b3d9150613212565b50505050505050600090565b50506020813d602011613280575b8161326d60209383612592565b810103126108295783612ee39151612ed7565b3d9150613260565b50851515612e60565b81546040516311b5d67560e21b81526004810192909252919450925060209150829060249082906001600160a01b03165afa9182156108365787928792828b939261330c575b5050612e9c9594612e8861271095612e82612e7c612e9597611103612e7c61ffff9960ff612e7581612e6e612e8d9d94612e57565b9350935050506020823d602011613344575b8161332b60209383612592565b810103126101e257505185908590889084612e886132d7565b3d915061331e565b81546040516311b5d67560e21b81526004810192909252602090829060249082906001600160a01b03165afa9182156108365787928792828b9392613394575b505093612e10565b9350935050506020823d6020116133c8575b816133b360209383612592565b810103126101e257508487879251388061338c565b3d91506133a6565b50612df26133dd87614c87565b9050612de9565b50612ddf6133f188614c87565b9050612dd6565b9081602091031261082957516001600160a01b03811681036108295790565b60005b60088110613468575b60405162461bcd60e51b815260206004820152601d60248201527f546f6b656e206e6f7420666f756e6420696e20437572766520706f6f6c0000006044820152606490fd5b60405163c661065760e01b81526004810182905260208160248173b576491f1e6e5e62f1d8f26062ee822b40b0e0d45afa600091816134cc575b506134ad5750613423565b6001600160a01b038381169116146134c75760010161341a565b905090565b6134e591925060203d8111610cea57610cdb8183612592565b90386134a2565b9060005b6008811061353d5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e206e6f7420666f756e6420696e20437572766520706f6f6c0000006044820152606490fd5b60405163c661065760e01b8152600481018290526020816024816001600160a01b0387165afa60009181613597575b506135775750613423565b6001600160a01b03848116911614613591576001016134f0565b91505090565b6135b091925060203d8111610cea57610cdb8183612592565b903861356c565b6001600160a01b03808216969593946060949093909291841691859081908a851480156137c2575b80156137b1575b80156137a0575b8015613798575b612b09578584613603926146ed565b95901561378557613615818a866146ed565b9790156137755790613627918a6146ed565b979015613766575050506040519561364060a088612592565b6004875260803660208901376080916040519961365d848c612592565b60038b52601f1984013660208d013761367589612726565b5261367f88612749565b6001600160a01b03909116905261369587612759565b6001600160a01b0390911690528551600310156127335785015262ffffff6136bc87612726565b9116905262ffffff6136cd86612749565b9116905262ffffff6136de85612759565b911690526136eb81612726565b51604051906bffffffffffffffffffffffff199060601b16602082015260148152613717603482612592565b926000935b8151851015612a0b5762ffffff6137338684612786565b51166001860180871161269a5760019261375e91611c2f906001600160a01b03906129f29089612786565b94019361371c565b99509097909650945050505050565b5050979650975050505050929190565b5050505050505091925050906060908190565b5084156135f4565b506001600160a01b038916156135ed565b506001600160a01b038416156135e6565b508a156135df565b519061ffff8216820361082957565b519060ff8216820361082957565b9081602091031261082957516001600160801b03811681036108295790565b8181029291811591840414171561269a57565b8115613823570490565b634e487b7160e01b600052601260045260246000fd5b51906001600160701b038216820361082957565b6040516370a0823160e01b81523060048201529095929491939192916001600160a01b0387169190602082602481865afa8015613079578692600091614050575b506138a69261389e91101561264a565b85878961439d565b95734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b8214613b66575b6004546138da906001600160a01b03168783612b1a565b805190989250159050613a3157505060035460405163095ea7b360e01b81526001600160a01b0390911660048201526024810185905290602090829060449082906000905af18015613079576139e0575b509361399b92602094926139416000974261268d565b906040519461394f8661255c565b855260018060a01b03168685015260408401526060830152608082015260018060a01b03600354169060405194858094819363c04b8d5960e01b83528760048401526024830190612d61565b03925af1908115613079576000916139b1575090565b90506020813d6020116139d8575b816139cc60209383612592565b81010312610829575190565b3d91506139bf565b93919490926020853d602011613a29575b816139fe60209383612592565b810103126108295760009561394161399b95613a1b602098612ca2565b50939750509294509261392b565b3d91506139f1565b613a4d9295965060018060a0999596991b036002541691614178565b926002845110613b5b5760015460405163095ea7b360e01b81526001600160a01b0390911660048201526024810186905290602090829060449082906000905af1801561307957613b1d575b5060008094613ad3613ab660018060a01b0360015416954261268d565b6040516338ed173960e01b81529889978896879560048701612d28565b03925af190811561307957600091613b02575b508051600019810190811161269a57613afe91612786565b5190565b613b1791503d806000833e6131f48183612592565b38613ae6565b6020813d602011613b53575b81613b3660209383612592565b8101031261082957600094613b4b8692612ca2565b509450613a99565b3d9150613b29565b505050505050600090565b94956001600160a01b0387169593949093909273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28703613d2557506020613bab613ba5600093613417565b98613417565b9260446040518094819363095ea7b360e01b835273b576491f1e6e5e62f1d8f26062ee822b40b0e0d460048401528860248401525af1801561307957613cee575b5060405195630b68372160e31b87526004870152602486015260448501526064840152602083608481600073b576491f1e6e5e62f1d8f26062ee822b40b0e0d45af192831561307957600093613cb7575b5060405163a9059cbb60e01b81526001600160a01b039190911660048201526024810183905290602090829060449082906000905af1801561307957613c81575090565b6020813d602011613caf575b81613c9a60209383612592565b8101031261082957613cab90612ca2565b5090565b3d9150613c8d565b9091926020823d602011613ce6575b81613cd360209383612592565b810103126101e257505191906020613c3d565b3d9150613cc6565b6020813d602011613d1d575b81613d0760209383612592565b8101031261082957613d1890612ca2565b613bec565b3d9150613cfa565b929493969573a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48036138c3575050505090506040519061016082018281106001600160401b038211176108b757604052734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b825273b576491f1e6e5e62f1d8f26062ee822b40b0e0d4602083015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040830152737f86bf177dd4f3494b841a37e810a34dd56c829b606083015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486080830152600060a0830152600060c0830152600060e0830152600061010083015260006101208301526000610140830152604051613e208161255c565b604051613e2c8161255c565b60018152600060208201526001604082015260026060820152600260808201528152604051613e5a8161255c565b60028152600060208201526001604082015260036060820152600360808201526020820152604051613e8b8161255c565b60008152600060208201526000604082015260006060820152600060808201526040820152604051613ebc8161255c565b60008152600060208201526000604082015260006060820152600060808201526060820152604051613eed8161255c565b6000815260006020820152600060408201526000606082015260006080820152608082015260405192613f1f8461255c565b73b576491f1e6e5e62f1d8f26062ee822b40b0e0d48452737f86bf177dd4f3494b841a37e810a34dd56c829b602085015260006040850152600060608501526000608085015260405163095ea7b360e01b81527316c6521dff6bab339122a0fe25a911669326535360048201528360248201526020816044816000734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b5af180156130795761400e575b50613fe190602094604051968795869563c872a3c560e01b875233946004880161409a565b038160007316c6521dff6bab339122a0fe25a91166932653535af1908115613079576000916139b1575090565b906020823d602011614048575b8161402860209383612592565b810103126108295760209461403f613fe193612ca2565b50945090613fbc565b3d915061401b565b9250506020823d602011614081575b8161406c60209383612592565b810103126108295790518591906138a661388e565b3d915061405f565b90600b8110156127335760051b0190565b94929096959391610580860197866000905b600b82106141585750505061016086016000905b6005821061411d575050506104808501526104a084015260006104c084015b600582106140fd575050506001600160a01b03166105609190910152565b82516001600160a01b0316815260209283019260019290920191016140df565b8251600090825b6005831061414257505050602060a0600192019301910190916140c0565b6020806001928451815201920192019190614124565b82516001600160a01b0316815260209283019260019290920191016140ac565b6060926001600160a01b03808316939081169291848414612b095761419e818385614a60565b614220576006546001600160a01b0316926141bc9082908590614a60565b918261420e575b50506141cf5750505090565b604051935090916141e1608085612592565b6003845260603660208601376141f684612726565b5261420083612749565b5261420a82612759565b5290565b614219925083614a60565b38806141c3565b50505090604051926142328185612592565b60028452601f190136602085013761424983612726565b5261420a82612749565b6001600160a01b031680156142b357600080516020614dc583398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b156142d057565b60405162461bcd60e51b815260206004820152601360248201527224b73b30b634b21034b7383aba103a37b5b2b760691b6044820152606490fd5b1561431257565b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21037baba383aba103a37b5b2b760611b6044820152606490fd5b1561435557565b60405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207072696365206461746160701b6044820152606490fd5b604d811161269a57600a0a90565b6143a681614b3b565b906143b083614b3b565b9180158015906145a3575b6143c4906142c9565b821580159061458f575b6143d79061430b565b6143e082614c87565b60009190156145185750506305f5e100915b6143fb84614c87565b600091901561446c575050612e8d612e69612e8861253c9796612e82612e7c61271098611103612e7c61445b9a60ff6144548161444d61ffff9e6305f5e1009d8e5b8715159081614462575b5061434e565b1695614ccc565b1696613806565b0490612da8565b905015158f614447565b81546040516311b5d67560e21b81526004810192909252602090829060249082906001600160a01b03165afa9182156108365780926144df575b5050612e69612e8861253c9796612e82612e7c61271098611103612e7c61445b9a60ff6144548161444d61ffff9e612e8d9e9d8e61443d565b9091506020823d602011614510575b816144fb60209383612592565b810103126101e2575051612e69612e886144a6565b3d91506144ee565b81546040516311b5d67560e21b81526004810192909252602090829060249082906001600160a01b03165afa91821561083657809261455a575b5050916143f2565b9091506020823d602011614587575b8161457660209383612592565b810103126101e25750513880614552565b3d9150614569565b506143d761459c85614c87565b90506143ce565b506143c46145b083614c87565b90506143bb565b60405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba3600482015260001960248201526000936001600160a01b03909216929060208160448188885af180156114fb576146a5575b506e22d473030f116ddee9f6b43ac78ba33b156108b3576040516387517c4560e01b815260048101939093527366a9893cc07d91d95644aedd05d03f95e1dba8af60248401526001600160a01b0316604483015265ffffffffffff1660648201528181608481836e22d473030f116ddee9f6b43ac78ba35af1801561469a5761468d575050565b8161469791612592565b50565b6040513d84823e3d90fd5b6020813d6020116146d4575b816146be60209383612592565b81010312610897576146cf90612ca2565b614606565b3d91506146b1565b9060048110156127335760051b0190565b929190604051906146fd82612577565b606482526101f46020830152610bb86040830152612710606083015260009160009560009460005b60048110614737575050505050509190565b614787602062ffffff61474a84886146dc565b51604051630b4c774160e11b81526001600160a01b0388811660048301528a166024820152911662ffffff16604482015291829081906064820190565b03816001600160a01b0387165afa9081156130795760009161483e575b506001600160a01b0316806147bd575b50600101614725565b602060049160405192838092630d34328160e11b82525afa90811561307957600091614820575b506001600160801b0387166001600160801b03821611156147b4579198509550935062ffffff61481486846146dc565b511696600195866147b4565b614838915060203d811161143c5761142e8183612592565b386147e4565b614856915060203d8111610cea57610cdb8183612592565b386147a4565b600080516020614dc5833981519152546001600160a01b0316330361487d57565b63118cdaa760e01b6000523360045260246000fd5b3d156148bd573d906148a38261262f565b916148b16040519384612592565b82523d6000602084013e565b606090565b60405163095ea7b360e01b602082019081526001600160a01b0384166024830152604482019490945291906148fa8360648101612af6565b60018060a01b03169060008084518682865af1614915614892565b506149fa5760405163095ea7b360e01b602082019081526001600160a01b039092166024820152600060448083018290528252918291614956606482612592565b519082855af1614964614892565b50156149c15760009283809351925af161497c614892565b501561498457565b60405162461bcd60e51b815260206004820152601560248201527414d958dbdb9908185c1c1c9bdd994819985a5b1959605a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601160248201527014995cd95d081d1bc80c0819985a5b1959607a1b6044820152606490fd5b50505050565b90600b805b614a10575060009150565b600019810181811161269a576001600160a01b03614a2e8286614089565b5116614a455750801561269a576000190180614a05565b91926001600160a01b0392614a5b925090614089565b511690565b60405163e6a4390560e01b81526001600160a01b0391821660048201529181166024830152909160209183916044918391165afa90811561307957600091614b1c575b506001600160a01b03168015159081614aba575090565b6040516318160ddd60e01b81529150602090829060049082905afa90811561307957600091614aea575b50151590565b90506020813d602011614b14575b81614b0560209383612592565b81010312610829575138614ae4565b3d9150614af8565b614b35915060203d602011610cea57610cdb8183612592565b38614aa3565b6001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28103614b8457507fff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace90565b73d533a949740bb3306d119cc777fa900ba034cd528103614bc457507fa19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae890565b734e3fbd56cd56c3e72c1403e103b45db9da5b9d2b8103614c0457507f6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e7690565b73e24a3dc889621612422a64e6388927901608b91d8103614c4457507f4fad14ab0b3793942fa6b796f40b263f0bb67815685625f9061f804cc4f7968f90565b73cbb7c0000ab88b473b1f5afd9ef808440eed33bf03614c82577f2817d7bfe5c64b8ea956e9a26f573ef64e72e4d7891f2d6af9bcc93f7aff9a9790565b600090565b60018060a01b031673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488114908115614cb1575090565b73dac17f958d2ee523a2206206994597c13d831ec791501490565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa90811561307957600091614d01575090565b90506020813d602011614d2d575b81614d1c60209383612592565b810103126108295761253c906137d9565b3d9150614d0f565b60ff600080516020614e058339815191525460401c1615614d5257565b631afcd79f60e31b60005260046000fd5b90614d895750805115614d7857805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580614dbb575b614d9a575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15614d9256fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bb8652a469bfc3e4f8649b3d45a52808046620f7fc7d98362b8823f4b13d12a564736f6c634300081a0033