136 txs
16.9k calls
constructor
constructor(address dataFeedAddress, address poolAddress, address pool0Address, address pool1Address, address usdtAddress, address receiverAddress_, uint256 receiverFeePercentage_)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
depositFee
viewfunction depositFee() view returns (uint256)
feeReceiver
viewfunction feeReceiver() view returns (address)
getRangePercentage
viewfunction getRangePercentage(uint256 amount0, uint256 amount1, uint256 poolPrice) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTickRange
viewfunction getTickRange() view returns (int24, int24)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
MAX_FEE_PERCENTAGE
viewfunction MAX_FEE_PERCENTAGE() view returns (uint256)
MAX_PERCENTAGE
viewfunction MAX_PERCENTAGE() view returns (uint256)
minDepositAmount
viewfunction minDepositAmount() view returns (uint256)
name
viewfunction name() view returns (string)
PRECISION
viewfunction PRECISION() view returns (uint256)
receiverAddress
viewfunction receiverAddress() view returns (address)
receiverPercentage
viewfunction receiverPercentage() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
usdt
viewfunction usdt() view returns (address)
addLiquidity
nonpayablefunction addLiquidity(int24 tickLower, int24 tickUpper)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 depositAmount, address sender) returns (uint256 shares)
distributeRewards
nonpayablefunction distributeRewards(uint256 amountOutMin)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
pancakeswapV3MintCallback
nonpayablefunction pancakeswapV3MintCallback(uint256 amount0, uint256 amount1, bytes)
pancakeV3MintCallback
nonpayablefunction pancakeV3MintCallback(uint256 amount0Owed, uint256 amount1Owed, bytes)
pancakeV3SwapCallback
nonpayablefunction pancakeV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes)
reAddLiquidity
nonpayablefunction reAddLiquidity()
removeLiquidity
nonpayablefunction removeLiquidity()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setFee
nonpayablefunction setFee(uint256 depositFeePercentage, address feeReceiverAddress)
setMinDepositAmount
nonpayablefunction setMinDepositAmount(uint256 minimumDepositAmount)
setReceiverData
nonpayablefunction setReceiverData(address receiverAddress_, uint256 receiverFeePercentage_)
setSlippage
nonpayablefunction setSlippage(uint256 slippage)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
updatePosition
nonpayablefunction updatePosition(int24 tickLower, int24 tickUpper)
withdraw
nonpayablefunction withdraw(address sender)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address indexed user, uint256 shares, uint256 depositAmount)
FeeChanged
event FeeChanged(uint256 depositFee, address feeReceiver)
FeeCharged
event FeeCharged(uint256 fee)
LiquidityAdded
event LiquidityAdded(int24 tickLower, int24 tickUpper)
LiquidityRemoved
event LiquidityRemoved(int24 tickLower, int24 tickUpper)
MinDepositAmountUpdated
event MinDepositAmountUpdated(uint256 minimumDepositAmount)
PositionUpdated
event PositionUpdated(int24 tickLower, int24 tickUpper)
ReceiverDataUpdated
event ReceiverDataUpdated(address indexed receiverAddress, uint256 receiverFeePercentage)
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)
SlippageUpdated
event SlippageUpdated(uint256 slippage)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdraw
event Withdraw(address indexed user, uint256 shares)
errors
InsufficientBalance
error InsufficientBalance()
InvalidEntry
error InvalidEntry()
InvalidInput
error InvalidInput()
NotEnoughBalance
error NotEnoughBalance()
NotPool
error NotPool()
creation bytecode
0x6101c0604052612710600b55678ac7230489e80000600c553480156200002457600080fd5b5060405162004fb138038062004fb18339810160408190526200004791620004b7565b604080518082018252600f81526e2837b9b4ba34b7b726b0b730b3b2b960891b60208083019190915282518084019093526002835261504d60f01b9083015260016003559060076200009a8382620005ea565b506008620000a98282620005ea565b5050506001600160a01b0387161580620000ca57506001600160a01b038616155b80620000dd57506001600160a01b038316155b80620000f057506001600160a01b038216155b80620000fe5750620f424081115b8062000108575080155b806200012e57506001600160a01b0385161580156200012e57506001600160a01b038416155b156200014d5760405163b4fa3fb360e01b815260040160405180910390fd5b6001600160a01b0380881660a05286811660c081905286821660e0529085166101205260408051630dfe168160e01b81529051630dfe1681916004808201926020929091908290030181865afa158015620001ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d29190620006b6565b6001600160a01b0316610180816001600160a01b03168152505060c0516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002539190620006b6565b6001600160a01b039081166101a052838116608052600980546001600160a01b031916918416919091179055600a819055336101608190526200029990600090620003e6565b60e0516001600160a01b0316158015906200032b5750826001600160a01b031660e0516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003209190620006b6565b6001600160a01b0316145b1562000338576001610100525b610120516001600160a01b031615801590620003cc5750826001600160a01b0316610120516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c19190620006b6565b6001600160a01b0316145b15620003d9576001610140525b50505050505050620006db565b620003f28282620003f6565b5050565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff16620003f25760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620004563390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b0381168114620004b257600080fd5b919050565b600080600080600080600060e0888a031215620004d357600080fd5b620004de886200049a565b9650620004ee602089016200049a565b9550620004fe604089016200049a565b94506200050e606089016200049a565b93506200051e608089016200049a565b92506200052e60a089016200049a565b915060c0880151905092959891949750929550565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200056e57607f821691505b6020821081036200058f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005e5576000816000526020600020601f850160051c81016020861015620005c05750805b601f850160051c820191505b81811015620005e157828155600101620005cc565b5050505b505050565b81516001600160401b0381111562000606576200060662000543565b6200061e8162000617845462000559565b8462000595565b602080601f8311600181146200065657600084156200063d5750858301515b600019600386901b1c1916600185901b178555620005e1565b600085815260208120601f198616915b82811015620006875788860151825594840194600190910190840162000666565b5085821015620006a65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006c957600080fd5b620006d4826200049a565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516147346200087d60003960008181610fd201528181611a1001528181611b020152611f91015260008181610f98015281816119b601528181611ac80152611f0e015260008181610e8f015281816112820152818161150a0152611d930152600081816113bf015281816113e001528181612d6e0152612d90015260008181610955015281816113910152818161167001528181611cf20152612d400152600081816114620152818161148301528181612ce60152612d08015260008181610920015281816114340152818161163101528181611d4e0152612cb80152600081816108ec01528181611938015281816119d801528181611a3201528181611a7701528181611e6e01528181612123015281816121b4015281816122c70152818161233801528181613720015281816137dd01526138b401526000612bb40152600081816103b901528181610c5a01528181611069015281816110fd01528181611578015281816117f201528181611dc60152613c3a01526147346000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806358829f4e1161015157806399eee9d0116100c3578063b3f0067411610087578063b3f006741461056c578063b4f2e8b81461057f578063d547741f14610592578063dd62ed3e146105a5578063ec87621c146105b8578063f0fa55a9146105cd57600080fd5b806399eee9d014610516578063a217fddf14610529578063a457c2d714610531578063a9059cbb14610544578063aaf5eb681461055757600080fd5b806367b9a2861161011557806367b9a286146104a45780636e553f65146104ac57806370a08231146104bf57806391d14854146104e857806395d89b41146104fb57806398ee1e401461050357600080fd5b806358829f4e1461046e57806359974e38146104765780635c8d7ea314610489578063645006ca1461049257806367a527931461049b57600080fd5b80632ce29dd8116101ea57806336568abe116101ae57806336568abe146103fd578063371165661461041057806339509351146104345780634c255c971461044757806351cff8d914610451578063558e44d31461046457600080fd5b80632ce29dd81461038e5780632f2ff15d146103a15780632f48ab7d146103b4578063313ce567146103db57806336309923146103ea57600080fd5b806316fed3e21161023c57806316fed3e2146102ff57806318160ddd1461032a57806323a69e751461033257806323b872dd14610345578063248a9ca3146103585780632a80cda31461037b57600080fd5b806301ffc9a71461027957806306fdde03146102a1578063085107bd146102b657806308dabe2d146102cb578063095ea7b3146102ec575b600080fd5b61028c610287366004613f5a565b6105e0565b60405190151581526020015b60405180910390f35b6102a9610617565b6040516102989190613fa8565b6102c96102c4366004613fea565b6106a9565b005b6102de6102d9366004614023565b6107f1565b604051908152602001610298565b61028c6102fa366004614064565b6108c9565b600954610312906001600160a01b031681565b6040516001600160a01b039091168152602001610298565b6006546102de565b6102c96103403660046140d2565b6108e1565b61028c610353366004614125565b610a6d565b6102de610366366004614166565b60009081526002602052604090206001015490565b6102c9610389366004614166565b610a91565b6102c961039c366004614064565b610ad9565b6102c96103af36600461417f565b610b7e565b6103127f000000000000000000000000000000000000000000000000000000000000000081565b60405160128152602001610298565b6102c96103f8366004613fea565b610ba8565b6102c961040b36600461417f565b610ddf565b600d5460408051600283810b8252630100000090930490920b602083015201610298565b61028c610442366004614064565b610e62565b6102de620f424081565b6102c961045f3660046141a4565b610e84565b6102de620186a081565b6102c9611182565b6102c9610484366004614166565b611236565b6102de600a5481565b6102de600c5481565b6102de60005481565b6102c96112e4565b6102de6104ba36600461417f565b6114fd565b6102de6104cd3660046141a4565b6001600160a01b031660009081526004602052604090205490565b61028c6104f636600461417f565b6118f3565b6102a961191e565b6102c96105113660046141d7565b61192d565b6102c96105243660046140d2565b611a6c565b6102de600081565b61028c61053f366004614064565b611b29565b61028c610552366004614064565b611ba4565b6102de6a0c097ce7bc90715b34b9f160241b81565b600154610312906001600160a01b031681565b6102c961058d36600461417f565b611bb2565b6102c96105a036600461417f565b611bc7565b6102de6105b336600461429b565b611bec565b6102de6000805160206146df83398151915281565b6102c96105db366004614166565b611c17565b60006001600160e01b03198216637965db0b60e01b148061061157506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060078054610626906142c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610652906142c9565b801561069f5780601f106106745761010080835404028352916020019161069f565b820191906000526020600020905b81548152906001019060200180831161068257829003601f168201915b5050505050905090565b6000805160206146df8339815191526106c181611c7b565b600d5463010000008104600290810b91900b036106f15760405163887efaa560e01b815260040160405180910390fd5b8160020b8360020b13156107185760405163b4fa3fb360e01b815260040160405180910390fd5b610720611c85565b600d5461074e90600281810b9163010000009004900b610749828261074460065490565b611df8565b611e2f565b600d805462ffffff84811663010000000265ffffffffffff199092169086161717905560008061077c611eec565b91509150600061078a61200a565b905061079783838361205b565b61079f612203565b600d5460408051600283810b8252630100000090930490920b60208301527f5c00336af6a6440e3e537aaa4ed6ae355ac541c5c5552eadcdb0509847e7bf8891015b60405180910390a1505050505050565b60008060006107fe612333565b91509150600061080d826123c7565b600d549091506000906108229060020b6123c7565b600d5490915060009061083e906301000000900460020b6123c7565b9050600061084d86838c612688565b9050600061085c84888c6126c7565b905061087385858561086e8587614313565b6126ee565b909b50995060006108938b6a0c097ce7bc90715b34b9f160241b8c612774565b90506108b78c6a0c097ce7bc90715b34b9f160241b6108b2848361433a565b612774565b985050505050505050505b9392505050565b6000336108d7818585612781565b5060019392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906109435750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b80156109785750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b1561099657604051636f61f64160e01b815260040160405180910390fd5b6000841315610a1b57610a163385336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a06919061434d565b6001600160a01b031691906128a5565b610a67565b6000831315610a6757610a673384336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e2573d6000803e3d6000fd5b50505050565b600033610a7b858285612908565b610a8685858561297c565b506001949350505050565b6000610a9c81611c7b565b600c8290556040518281527fb443c8bd39a1b60d415144f9148c6f90c2b68a553eb90c62cef5e44979db009d906020015b60405180910390a15050565b6000610ae481611c7b565b620f4240821180610af3575081155b80610b0557506001600160a01b038316155b15610b235760405163b4fa3fb360e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b038516908117909155600a8390556040518381527f8b4e25f78db7bb77acd8a3072d822f125bc92a3fb812b4aba0cc8e42b343fbfb9060200160405180910390a2505050565b600082815260026020526040902060010154610b9981611c7b565b610ba38383612b27565b505050565b6000805160206146df833981519152610bc081611c7b565b600d54600281810b6301000000909204900b14610bf05760405163887efaa560e01b815260040160405180910390fd5b8160020b8360020b1315610c175760405163b4fa3fb360e01b815260040160405180910390fd5b600d805462ffffff84811663010000000265ffffffffffff1990921690861617179055610c42611c85565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd919061436a565b905080600003610cf05760405163887efaa560e01b815260040160405180910390fd5b60006a0c097ce7bc90715b34b9f160241b610d09612bad565b610d139190614383565b90506000610d1f61200a565b90506000610d4984610d436305f5e1006a0c097ce7bc90715b34b9f160241b614383565b85612774565b90506000610d66826a0c097ce7bc90715b34b9f160241b85612774565b90506000610d758284866107f1565b9050610d8386868684612c79565b610d8b612203565b600d5460408051600283810b8252630100000090930490920b60208301527fe30a3a20c150aff70e34005196196ece9115a2e4b22bc7bdd9a469777aa821d8910160405180910390a1505050505050505050565b6001600160a01b0381163314610e545760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610e5e8282612dbe565b5050565b6000336108d7818585610e758383611bec565b610e7f919061433a565b612781565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ecd5760405163887efaa560e01b815260040160405180910390fd5b610ed5612e25565b6001600160a01b03811660009081526004602052604081205490819003610f0f57604051631e9acf1760e31b815260040160405180910390fd5b600d54600281810b6301000000909204900b1461105157610f2e611c85565b600d54610f5290600281810b9163010000009004900b610749828261074460065490565b600080610f5d611eec565b915091506000610f7183856108b260065490565b90506000610f8383866108b260065490565b90508115610fbf57610fbf6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001687846128a5565b8015610ff957610ff96001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001687836128a5565b8461100360065490565b0361101c57600d805465ffffffffffff19169055611048565b611040611029838661439a565b611033838661439a565b61103b61200a565b61205b565b611048612203565b50505050611127565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc919061436a565b905060006110ee82846108b260065490565b90506111246001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685836128a5565b50505b6111318282612e7e565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161116c91815260200190565b60405180910390a25061117f6001600355565b50565b600d5463010000008104600290810b91900b036111b25760405163887efaa560e01b815260040160405180910390fd5b6111ba611c85565b6000806111c5611eec565b9150915060006111d361200a565b90506111e083838361205b565b6111e8612203565b600d5460408051600283810b8252630100000090930490920b60208301527fe30a3a20c150aff70e34005196196ece9115a2e4b22bc7bdd9a469777aa821d8910160405180910390a1505050565b6000805160206146df83398151915261124e81611c7b565b600954600a54604051638dc3ec4d60e01b81526001600160a01b0392831660048201526024810191909152604481018490527f000000000000000000000000000000000000000000000000000000000000000090911690638dc3ec4d90606401600060405180830381600087803b1580156112c857600080fd5b505af11580156112dc573d6000803e3d6000fd5b505050505050565b6000805160206146df8339815191526112fc81611c7b565b600d5463010000008104600290810b91900b0361132c5760405163b4fa3fb360e01b815260040160405180910390fd5b611334611c85565b600d5461135890600281810b9163010000009004900b610749828261074460065490565b600080611363611eec565b9150915060006a0c097ce7bc90715b34b9f160241b611380612bad565b61138a9190614383565b90506114057f0000000000000000000000000000000000000000000000000000000000000000836113bd85856001612fb2565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000015613031565b50600061141061200a565b9050600061142d85836a0c097ce7bc90715b34b9f160241b612774565b90506114a87f00000000000000000000000000000000000000000000000000000000000000008661146084876001612fb2565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000015613031565b50600d805465ffffffffffff19169081905560408051600283810b8252630100000090930490920b60208301527f0627c11bf779f1f1e577095c4de0dc8c2713310e83e22e3bc777291a6bff6a6491016107e1565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115485760405163887efaa560e01b815260040160405180910390fd5b600c5483101561156b5760405163b4fa3fb360e01b815260040160405180910390fd5b6115a06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168330866134c6565b6115a9836134fe565b925060006a0c097ce7bc90715b34b9f160241b6115c4612bad565b6115ce9190614383565b600d54909150600281810b6301000000909204900b146117a4576115f0611c85565b600d5461161490600281810b9163010000009004900b610749828261074460065490565b60008061161f611eec565b91509150600061162d61200a565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661166e57611667878461439a565b92506116a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116a9576116a6878361439a565b91505b6000826116c585846a0c097ce7bc90715b34b9f160241b612774565b6116cf919061433a565b905060006116f9896116f36305f5e1006a0c097ce7bc90715b34b9f160241b614383565b88612774565b905061170e8161170860065490565b84612774565b965061171b85858561205b565b61172361200a565b925061172d611eec565b90955093508361174c86856a0c097ce7bc90715b34b9f160241b612774565b611756919061433a565b91506000611773836a0c097ce7bc90715b34b9f160241b86612774565b905060006117828285876107f1565b90506117908b898784612c79565b611798612203565b5050505050505061189e565b6117bd84826a0c097ce7bc90715b34b9f160241b612774565b915060006117ca60065490565b111561189e576040516370a0823160e01b815230600482015260009085906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d919061436a565b611867919061439a565b9050600061188482846a0c097ce7bc90715b34b9f160241b612774565b90506118998461189360065490565b83612774565b935050505b6118a88383613526565b60408051838152602081018690526001600160a01b038516917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a25092915050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060088054610626906142c9565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461197657604051636f61f64160e01b815260040160405180910390fd5b600d546601000000000000900460ff166119a35760405163887efaa560e01b815260040160405180910390fd5b82156119fd576119fd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000856128a5565b8115611a5757611a576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846128a5565b5050600d805466ff0000000000001916905550565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ab557604051636f61f64160e01b815260040160405180910390fd5b8315611aef57611aef6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633866128a5565b8215610a6757610a676001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633856128a5565b60003381611b378286611bec565b905083811015611b975760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610e4b565b610a868286868403612781565b6000336108d781858561297c565b6000611bbd81611c7b565b610ba383836135e7565b600082815260026020526040902060010154611be281611c7b565b610ba38383612dbe565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6000611c2281611c7b565b620f4240821115611c465760405163b4fa3fb360e01b815260040160405180910390fd5b600b8290556040518281527ff5a802650e0a86db227cc342f06327d2ca0ff5cf2b12e0084fc5d8a7db2c54fd90602001610acd565b61117f8133613665565b600080611c90611eec565b91509150611c9c6136be565b600080611ca7611eec565b90925090506000611cb8858461439a565b90506000611cc6858461439a565b905060006a0c097ce7bc90715b34b9f160241b611ce1612bad565b611ceb9190614383565b9050611d1e7f0000000000000000000000000000000000000000000000000000000000000000836113bd85856001612fb2565b91506000611d2a61200a565b90506000611d4785836a0c097ce7bc90715b34b9f160241b612774565b9050611d7a7f00000000000000000000000000000000000000000000000000000000000000008661146084876001612fb2565b94506000611d88858761433a565b1115611ded57611ded7f0000000000000000000000000000000000000000000000000000000000000000611dbc868861433a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906128a5565b505050505050505050565b600080611e058585613851565b9050611e26611e21826001600160801b0316856108b260065490565b613934565b95945050505050565b6001600160801b03811615610ba35760405163a34123a760e01b8152600284810b600483015283900b60248201526001600160801b03821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a34123a79060640160408051808303816000875af1158015611ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee291906143ad565b5050610ba36136be565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f79919061436a565b6040516370a0823160e01b81523060048201529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611fe0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612004919061436a565b90509091565b600080612015612333565b9150506000612023826123c7565b905061205461203b6001600160a01b03831680614383565b6a0c097ce7bc90715b34b9f160241b600160c01b612774565b9250505090565b600083612077846a0c097ce7bc90715b34b9f160241b85612774565b612081919061433a565b905060008361209f86856a0c097ce7bc90715b34b9f160241b612774565b6120a9919061433a565b905060006120b88383866107f1565b905060006120d5866a0c097ce7bc90715b34b9f160241b85612774565b6120ed906a0c097ce7bc90715b34b9f160241b61439a565b90508181111561216c57600061211285846a0c097ce7bc90715b34b9f160241b612774565b61211c908961439a565b90506121657f00000000000000000000000000000000000000000000000000000000000000008261215c816121556305f5e1008c614383565b6001612fb2565b60016000613031565b50506121fa565b6000612186836a0c097ce7bc90715b34b9f160241b61439a565b905060006121a385836a0c097ce7bc90715b34b9f160241b612774565b6121ad908961439a565b90506121f67f0000000000000000000000000000000000000000000000000000000000000000826121ed816121e66305f5e1008d614383565b6000612fb2565b60006001613031565b5050505b50505050505050565b60008061220e611eec565b91509150600061221c612333565b50600d549091506000906122559083906122389060020b6123c7565b600d5461224e906301000000900460020b6123c7565b8787613951565b600d805466ff000000000000191666010000000000001790819055604051633c8a7d8d60e01b8152306004820152600282810b6024830152630100000090920490910b60448201526001600160801b038216606482015260a06084820152600060a48201529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c8a7d8d9060c40160408051808303816000875af115801561230f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc91906143ad565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b891906143f8565b50949793965092945050505050565b60008160ff81901d80820118620d89e88111156123f6576308c379a0600052602080526101546041526045601cfd5b7001fffcb933bd6fad37aa2d162d1a5940016001821602600160801b186002821615612432576ffff97272373d413259a46990580e213a0260801c5b6004821615612451576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612470576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561248f576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156124ae576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156124cd576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156124ec576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561250c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561252c576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561254c576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561256c576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561258c576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156125ac576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156125cc576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156125ec576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561260d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561262d576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561264c576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612669576b048a170391f7dc42444e8fa20260801c5b600085131561267757600019045b63ffffffff0160201c949350505050565b6000806126a7856001600160a01b0316856001600160a01b03166139e6565b9050611e266126c284838888036001600160a01b0316612774565b613a24565b60006126e66126c283600160601b8787036001600160a01b0316612774565b949350505050565b6000806126fb8585613a36565b90955093506001600160a01b03808616908716116127255761271e858585613a4c565b915061276b565b836001600160a01b0316866001600160a01b03161161275d57612749868585613a4c565b9150612756858785613a8e565b905061276b565b612768858585613a8e565b90505b94509492505050565b60006126e6848484613aae565b6001600160a01b0383166127e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e4b565b6001600160a01b0382166128445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e4b565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040516001600160a01b038316602482015260448101829052610ba390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613b4e565b60006129148484611bec565b90506000198114610a67578181101561296f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e4b565b610a678484848403612781565b6001600160a01b0383166129e05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e4b565b6001600160a01b038216612a425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e4b565b6001600160a01b03831660009081526004602052604090205481811015612aba5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610e4b565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612b1a9086815260200190565b60405180910390a3610a67565b612b3182826118f3565b610e5e5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612b693390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3491906144a8565b50935050925050600082131580612c55575080612c536104b04261439a565b115b15612c735760405163b4fa3fb360e01b815260040160405180910390fd5b50919050565b6000612c9485836a0c097ce7bc90715b34b9f160241b612774565b90506000612cb185856a0c097ce7bc90715b34b9f160241b612774565b9050612d2c7f000000000000000000000000000000000000000000000000000000000000000083612ce485856000612fb2565b7f0000000000000000000000000000000000000000000000000000000000000000157f0000000000000000000000000000000000000000000000000000000000000000613031565b506000612d39838861439a565b9050612db47f000000000000000000000000000000000000000000000000000000000000000082612d6c848a6000612fb2565b7f0000000000000000000000000000000000000000000000000000000000000000157f0000000000000000000000000000000000000000000000000000000000000000613031565b5050505050505050565b612dc882826118f3565b15610e5e5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600260035403612e775760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610e4b565b6002600355565b6001600160a01b038216612ede5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610e4b565b6001600160a01b03821660009081526004602052604090205481811015612f525760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610e4b565b6001600160a01b03831660008181526004602090815260408083208686039055600680548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000808215612fea576305f5e100612fd986866a0c097ce7bc90715b34b9f160241b612774565b612fe391906144f8565b9050613013565b6130108561300a6305f5e1006a0c097ce7bc90715b34b9f160241b614383565b86612774565b90505b611e2681600b54620f4240613028919061439a565b620f4240612774565b6000806001600160a01b0387161580613048575085155b156130565785915050611e26565b831561312f57866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561309a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130be919061434d565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613104573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613128919061436a565b90506131fe565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613191919061434d565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156131d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fb919061436a565b90505b866001600160a01b031663128acb083086898761322a576132256401000276a3600161451a565b613249565b613249600173fffd8963efd1fc6a506488495d951d5263988d2661453a565b60405160e086901b6001600160e01b03191681526001600160a01b03948516600482015292151560248401526044830191909152909116606482015260a06084820152600060a482015260c40160408051808303816000875af11580156132b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d891906143ad565b5050600084156133c05781886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613321573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613345919061434d565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561338b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133af919061436a565b6133b9919061439a565b905061349a565b81886001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613423919061434d565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061348d919061436a565b613497919061439a565b90505b858110156134bb5760405163569d45cf60e11b815260040160405180910390fd5b979650505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610a679085906323b872dd60e01b906084016128d1565b60008061351183600054620f4240612774565b905061351c81613c23565b6108c2818461439a565b6001600160a01b03821661357c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e4b565b806006600082825461358e919061433a565b90915550506001600160a01b0382166000818152600460209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b620186a082111561360b5760405163887efaa560e01b815260040160405180910390fd5b6000829055600180546001600160a01b0319166001600160a01b0383169081179091556040805184815260208101929092527fb2d190129c7f8c6952e604fc184b8aa257a6a1bcfc8d2b934242892af9f61cdc9101610acd565b61366f82826118f3565b610e5e5761367c81613c99565b613687836020613cab565b60405160200161369892919061455a565b60408051601f198184030181529082905262461bcd60e51b8252610e4b91600401613fa8565b600d546000906136dc90600281810b9163010000009004900b613851565b90506001600160801b0381161561379757600d5460405163a34123a760e01b8152600282810b6004830152630100000090920490910b6024820152600060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a34123a79060640160408051808303816000875af1158015613770573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379491906143ad565b50505b600d546040516309e3d67b60e31b8152306004820152600282810b6024830152630100000090920490910b60448201526001600160801b036064820181905260848201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634f1eb3d89060a40160408051808303816000875af115801561382d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba391906145e6565b6040516bffffffffffffffffffffffff193060601b16602082015260e883811b603483015282901b60378201526000908190603a0160408051808303601f1901815290829052805160209091012063514ea4bf60e01b82526004820181905291507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063514ea4bf9060240160a060405180830381865afa158015613903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139279190614619565b5092979650505050505050565b60006001600160801b0382111561394d5761394d614664565b5090565b600061395d8585613a36565b90955093506001600160a01b038086169087161161398757613980858585612688565b9050611e26565b836001600160a01b0316866001600160a01b031610156139d15760006139ae878686612688565b905060006139bd8789866126c7565b905081811081831802821892505050611e26565b6139dc8585846126c7565b9695505050505050565b600082820260001983850981811082019003600160601b8110613a115763ae47f7026000526004601cfd5b8060a01b8260601c179250505092915050565b6000600160801b821061394d57600080fd5b80821882821002918218911881815b9250929050565b60006126e6846001600160a01b0316613a8a606060ff16856001600160801b0316901b8787036001600160a01b0316876001600160a01b0316612774565b0490565b60006126e6826001600160801b03168585036001600160a01b03166139e6565b8282026000198385098181108201900380613adf5782613ad65763ae47f7026000526004601cfd5b508190046108c2565b808311613af45763ae47f7026000526004601cfd5b82848609600084810385169485900494848311909303908390038390046001010292030417600260038302811880840282030280840282030280840282030280840282030280840282030280840290910302029392505050565b6000613ba3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e479092919063ffffffff16565b9050805160001480613bc4575080806020019051810190613bc4919061467a565b610ba35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e4b565b801561117f57600154613c63906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116836128a5565b6040518181527fccac4111799e8a37144a6ae9e90ea146dcd86f34f155783a8ce97c546ad8c2fe9060200160405180910390a150565b60606106116001600160a01b03831660145b60606000613cba836002614383565b613cc590600261433a565b67ffffffffffffffff811115613cdd57613cdd6141c1565b6040519080825280601f01601f191660200182016040528015613d07576020820181803683370190505b509050600360fc1b81600081518110613d2257613d22614695565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613d5157613d51614695565b60200101906001600160f81b031916908160001a9053506000613d75846002614383565b613d8090600161433a565b90505b6001811115613df8576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613db457613db4614695565b1a60f81b828281518110613dca57613dca614695565b60200101906001600160f81b031916908160001a90535060049490941c93613df1816146ab565b9050613d83565b5083156108c25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e4b565b60606126e6848460008585600080866001600160a01b03168587604051613e6e91906146c2565b60006040518083038185875af1925050503d8060008114613eab576040519150601f19603f3d011682016040523d82523d6000602084013e613eb0565b606091505b50915091506134bb8783838760608315613f2b578251600003613f24576001600160a01b0385163b613f245760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e4b565b50816126e6565b6126e68383815115613f405781518083602001fd5b8060405162461bcd60e51b8152600401610e4b9190613fa8565b600060208284031215613f6c57600080fd5b81356001600160e01b0319811681146108c257600080fd5b60005b83811015613f9f578181015183820152602001613f87565b50506000910152565b6020815260008251806020840152613fc7816040850160208701613f84565b601f01601f19169190910160400192915050565b8060020b811461117f57600080fd5b60008060408385031215613ffd57600080fd5b823561400881613fdb565b9150602083013561401881613fdb565b809150509250929050565b60008060006060848603121561403857600080fd5b505081359360208301359350604090920135919050565b6001600160a01b038116811461117f57600080fd5b6000806040838503121561407757600080fd5b82356140828161404f565b946020939093013593505050565b60008083601f8401126140a257600080fd5b50813567ffffffffffffffff8111156140ba57600080fd5b602083019150836020828501011115613a4557600080fd5b600080600080606085870312156140e857600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561410d57600080fd5b61411987828801614090565b95989497509550505050565b60008060006060848603121561413a57600080fd5b83356141458161404f565b925060208401356141558161404f565b929592945050506040919091013590565b60006020828403121561417857600080fd5b5035919050565b6000806040838503121561419257600080fd5b8235915060208301356140188161404f565b6000602082840312156141b657600080fd5b81356108c28161404f565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156141ec57600080fd5b8335925060208401359150604084013567ffffffffffffffff8082111561421257600080fd5b818601915086601f83011261422657600080fd5b813581811115614238576142386141c1565b604051601f8201601f19908116603f01168101908382118183101715614260576142606141c1565b8160405282815289602084870101111561427957600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080604083850312156142ae57600080fd5b82356142b98161404f565b915060208301356140188161404f565b600181811c908216806142dd57607f821691505b602082108103612c7357634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6001600160801b03818116838216019080821115614333576143336142fd565b5092915050565b80820180821115610611576106116142fd565b60006020828403121561435f57600080fd5b81516108c28161404f565b60006020828403121561437c57600080fd5b5051919050565b8082028115828204841417610611576106116142fd565b81810381811115610611576106116142fd565b600080604083850312156143c057600080fd5b505080516020909101519092909150565b805161ffff811681146143e357600080fd5b919050565b805180151581146143e357600080fd5b600080600080600080600060e0888a03121561441357600080fd5b875161441e8161404f565b602089015190975061442f81613fdb565b955061443d604089016143d1565b945061444b606089016143d1565b9350614459608089016143d1565b925060a088015163ffffffff8116811461447257600080fd5b915061448060c089016143e8565b905092959891949750929550565b805169ffffffffffffffffffff811681146143e357600080fd5b600080600080600060a086880312156144c057600080fd5b6144c98661448e565b94506020860151935060408601519250606086015191506144ec6080870161448e565b90509295509295909350565b60008261451557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03818116838216019080821115614333576143336142fd565b6001600160a01b03828116828216039080821115614333576143336142fd565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614592816017850160208801613f84565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516145c3816028840160208801613f84565b01602801949350505050565b80516001600160801b03811681146143e357600080fd5b600080604083850312156145f957600080fd5b614602836145cf565b9150614610602084016145cf565b90509250929050565b600080600080600060a0868803121561463157600080fd5b61463a866145cf565b94506020860151935060408601519250614656606087016145cf565b91506144ec608087016145cf565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561468c57600080fd5b6108c2826143e8565b634e487b7160e01b600052603260045260246000fd5b6000816146ba576146ba6142fd565b506000190190565b600082516146d4818460208701613f84565b919091019291505056fef33d40e6c84e251a3e1cff80c569d5646a4f006b85649b53b993dadc59eb3748a2646970667358221220e44690be1406ffc0c6f2506e41564f473f0b3593ad8615dfe2298a2dafcbe6b764736f6c63430008180033000000000000000000000000b97ad0e74fa7d920791e90258a6e2085088b43200000000000000000000000007e58f160b5b77b8b24cd9900c09a3e730215ac470000000000000000000000007e58f160b5b77b8b24cd9900c09a3e730215ac47000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000b0c8b7efe84fea6b1bf98915689337c0b95e59aa000000000000000000000000000000000000000000000000000000000004d18d