ETH Price: $2,324.26 (-0.62%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

> 10 Internal Transactions and > 10 Token Transfers found.

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Deposit231633172025-08-17 20:58:47246 days ago1755464327
0x00005242...7B2791888
0.65973833 ETH
Transfer231633172025-08-17 20:58:47246 days ago1755464327
0x00005242...7B2791888
0.65973833 ETH
Transfer*229761582025-07-22 17:18:23273 days ago1753204703
0x00005242...7B2791888
1.42444272 ETH
Transfer229761582025-07-22 17:18:23273 days ago1753204703
0x00005242...7B2791888
1.42444272 ETH
Transfer*229654602025-07-21 5:24:47274 days ago1753075487
0x00005242...7B2791888
0.80318641 ETH
Transfer229654602025-07-21 5:24:47274 days ago1753075487
0x00005242...7B2791888
0.80318641 ETH
Transfer*229643242025-07-21 1:36:23274 days ago1753061783
0x00005242...7B2791888
0.79110311 ETH
Transfer229643242025-07-21 1:36:23274 days ago1753061783
0x00005242...7B2791888
0.79110311 ETH
Transfer*229639652025-07-21 0:24:23274 days ago1753057463
0x00005242...7B2791888
1.23227814 ETH
Transfer229639652025-07-21 0:24:23274 days ago1753057463
0x00005242...7B2791888
1.23227814 ETH
Transfer*229484802025-07-18 20:28:35277 days ago1752870515
0x00005242...7B2791888
1.55814076 ETH
Transfer229484802025-07-18 20:28:35277 days ago1752870515
0x00005242...7B2791888
1.55814076 ETH
Transfer*229357332025-07-17 1:48:35278 days ago1752716915
0x00005242...7B2791888
1.63637318 ETH
Transfer229357332025-07-17 1:48:35278 days ago1752716915
0x00005242...7B2791888
1.63637318 ETH
Transfer*229296512025-07-16 5:27:11279 days ago1752643631
0x00005242...7B2791888
1.6286354 ETH
Transfer229296512025-07-16 5:27:11279 days ago1752643631
0x00005242...7B2791888
1.6286354 ETH
Transfer*229129892025-07-13 21:38:11281 days ago1752442691
0x00005242...7B2791888
1.24392755 ETH
Transfer229129892025-07-13 21:38:11281 days ago1752442691
0x00005242...7B2791888
1.24392755 ETH
Transfer*228880492025-07-10 10:01:11285 days ago1752141671
0x00005242...7B2791888
3.47098963 ETH
Transfer228880492025-07-10 10:01:11285 days ago1752141671
0x00005242...7B2791888
3.47098963 ETH
Transfer*228840652025-07-09 20:39:23285 days ago1752093563
0x00005242...7B2791888
4.90195181 ETH
Transfer228840652025-07-09 20:39:23285 days ago1752093563
0x00005242...7B2791888
4.90195181 ETH
Transfer*228633192025-07-06 23:03:47288 days ago1751843027
0x00005242...7B2791888
4.76952531 ETH
Transfer228633192025-07-06 23:03:47288 days ago1751843027
0x00005242...7B2791888
4.76952531 ETH
Transfer*228633142025-07-06 23:02:47288 days ago1751842967
0x00005242...7B2791888
6.10862447 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

BunniHook

Compiler Version
v0.8.30+commit.73712a01
Optimization Enabled
Yes with 2000 runs
Other Settings
cancun EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IBunniHub","name":"hub_","type":"address"},{"internalType":"contract IFloodPlain","name":"floodPlain_","type":"address"},{"internalType":"contract WETH","name":"weth_","type":"address"},{"internalType":"contract IZone","name":"floodZone_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"hookFeeRecipientController_","type":"address"},{"internalType":"uint48","name":"k_","type":"uint48"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"AmAmm__BidLocked","type":"error"},{"inputs":[],"name":"AmAmm__InvalidBid","type":"error"},{"inputs":[],"name":"AmAmm__InvalidDepositAmount","type":"error"},{"inputs":[],"name":"AmAmm__NotEnabled","type":"error"},{"inputs":[],"name":"AmAmm__Unauthorized","type":"error"},{"inputs":[],"name":"BunniHook__HookFeeRecipientAlreadySet","type":"error"},{"inputs":[],"name":"BunniHook__HookFeeRecipientNotSet","type":"error"},{"inputs":[],"name":"BunniHook__InvalidActiveBlock","type":"error"},{"inputs":[],"name":"BunniHook__InvalidCuratorFee","type":"error"},{"inputs":[],"name":"BunniHook__InvalidK","type":"error"},{"inputs":[],"name":"BunniHook__InvalidModifier","type":"error"},{"inputs":[],"name":"BunniHook__InvalidRebalanceOrderHash","type":"error"},{"inputs":[],"name":"BunniHook__PrehookPostConditionFailed","type":"error"},{"inputs":[],"name":"BunniHook__RebalanceInProgress","type":"error"},{"inputs":[],"name":"BunniHook__Unauthorized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"OracleCardinalityCannotBeZero","type":"error"},{"inputs":[],"name":"ReentrancyGuard__ReentrantCall","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"Currency","name":"currency","type":"address"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"}],"name":"ClaimFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Currency[]","name":"currencyList","type":"address[]"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"ClaimProtocolFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"refund","type":"uint256"}],"name":"ClaimRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"feeAmount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount1","type":"uint256"}],"name":"CuratorClaimFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint16","name":"newFeeRate","type":"uint16"}],"name":"CuratorSetFeeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"}],"name":"DepositIntoNextBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"}],"name":"DepositIntoTopBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"uint128","name":"additionalRent","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"updatedDeposit","type":"uint128"},{"indexed":false,"internalType":"bool","name":"topBid","type":"bool"},{"indexed":true,"internalType":"address","name":"withdrawRecipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amountDeposited","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amountWithdrawn","type":"uint128"}],"name":"IncreaseBidRent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"currentK","type":"uint48"},{"indexed":true,"internalType":"uint48","name":"newK","type":"uint48"},{"indexed":true,"internalType":"uint160","name":"activeBlock","type":"uint160"}],"name":"ScheduleKChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bytes6","name":"payload","type":"bytes6"},{"indexed":false,"internalType":"bool","name":"topBid","type":"bool"}],"name":"SetBidPayload","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"hookFeeModifier","type":"uint32"}],"name":"SetHookFeeModifier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"hookFeeRecipient","type":"address"}],"name":"SetHookFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"unblocked","type":"bool"}],"name":"SetWithdrawalUnblocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IZone","name":"zone","type":"address"}],"name":"SetZone","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"uint48","name":"blockIdx","type":"uint48"},{"indexed":false,"internalType":"bytes6","name":"payload","type":"bytes6"},{"indexed":false,"internalType":"uint128","name":"rent","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"deposit","type":"uint128"}],"name":"SubmitBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bool","name":"exactIn","type":"bool"},{"indexed":false,"internalType":"bool","name":"zeroForOne","type":"bool"},{"indexed":false,"internalType":"uint256","name":"inputAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outputAmount","type":"uint256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":false,"internalType":"uint256","name":"totalLiquidity","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"}],"name":"WithdrawFromNextBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"}],"name":"WithdrawFromTopBid","type":"event"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"}],"name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManager.SwapParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"bytes6","name":"payload","type":"bytes6"},{"internalType":"uint128","name":"rent","type":"uint128"},{"internalType":"uint128","name":"deposit","type":"uint128"}],"name":"bid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"canWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"Currency","name":"currency","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"claimFees","outputs":[{"internalType":"uint256","name":"fees","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Currency[]","name":"currencyList","type":"address[]"}],"name":"claimProtocolFees","outputs":[{"internalType":"uint256[]","name":"claimedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"}],"name":"claimRefund","outputs":[{"internalType":"uint256","name":"refund","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"address","name":"recipient","type":"address"}],"name":"curatorClaimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"uint16","name":"newFeeRate","type":"uint16"}],"name":"curatorSetFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bool","name":"isTopBid","type":"bool"}],"name":"depositIntoBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"extsload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"startSlot","type":"bytes32"},{"internalType":"uint256","name":"nSlots","type":"uint256"}],"name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"slots","type":"bytes32[]"}],"name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"getAmAmmEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"bool","name":"isTopBid","type":"bool"}],"name":"getBid","outputs":[{"components":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint48","name":"blockIdx","type":"uint48"},{"internalType":"bytes6","name":"payload","type":"bytes6"},{"internalType":"uint128","name":"rent","type":"uint128"},{"internalType":"uint128","name":"deposit","type":"uint128"}],"internalType":"struct IAmAmm.Bid","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"bool","name":"isTopBid","type":"bool"}],"name":"getBidWrite","outputs":[{"components":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint48","name":"blockIdx","type":"uint48"},{"internalType":"bytes6","name":"payload","type":"bytes6"},{"internalType":"uint128","name":"rent","type":"uint128"},{"internalType":"uint128","name":"deposit","type":"uint128"}],"internalType":"struct IAmAmm.Bid","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"Currency","name":"currency","type":"address"}],"name":"getFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"getRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"getRefundWrite","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"uint128","name":"additionalRent","type":"uint128"},{"internalType":"uint128","name":"updatedDeposit","type":"uint128"},{"internalType":"bool","name":"isTopBid","type":"bool"},{"internalType":"address","name":"withdrawRecipient","type":"address"}],"name":"increaseBidRent","outputs":[{"internalType":"uint128","name":"amountDeposited","type":"uint128"},{"internalType":"uint128","name":"amountWithdrawn","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint32","name":"cardinalityNext","type":"uint32"}],"name":"increaseCardinalityNext","outputs":[{"internalType":"uint32","name":"cardinalityNextOld","type":"uint32"},{"internalType":"uint32","name":"cardinalityNextNew","type":"uint32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"hookParams","type":"bytes"}],"name":"isValidParams","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"ldfStates","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isPreHook","type":"bool"},{"components":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"Currency","name":"currency","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct IBunniHook.RebalanceOrderPreHookArgs","name":"preHookArgs","type":"tuple"},{"components":[{"internalType":"Currency","name":"currency","type":"address"}],"internalType":"struct IBunniHook.RebalanceOrderPostHookArgs","name":"postHookArgs","type":"tuple"}],"internalType":"struct IBunniHook.RebalanceOrderHookArgs","name":"hookArgs","type":"tuple"}],"name":"rebalanceOrderHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newK","type":"uint48"},{"internalType":"uint160","name":"activeBlock","type":"uint160"}],"name":"scheduleKChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"bytes6","name":"payload","type":"bytes6"},{"internalType":"bool","name":"isTopBid","type":"bool"}],"name":"setBidPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newHookFeeModifier","type":"uint32"}],"name":"setHookFeeModifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newHookFeeRecipient","type":"address"}],"name":"setHookFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"bool","name":"unblocked","type":"bool"}],"name":"setWithdrawalUnblocked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IZone","name":"zone","type":"address"}],"name":"setZone","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"slot0s","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint32","name":"lastSwapTimestamp","type":"uint32"},{"internalType":"uint32","name":"lastSurgeTimestamp","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"bytes32","name":"newState","type":"bytes32"}],"name":"updateLdfState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"updateStateMachine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"isTopBid","type":"bool"}],"name":"withdrawFromBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
610140806040523461036b576101008161648780380380916100218285610447565b83398101031261036b5780516001600160a01b03811680820361036b5760208301516001600160a01b03811680820361036b576040850151916001600160a01b03831680840361036b5760608701516001600160a01b0381169081810361036b5760808901516001600160a01b038116969087900361036b576100a660a08b0161047e565b9460e06100b560c08d0161047e565b9b01519965ffffffffffff8b16809b0361036b576080524661a4b1036104415760405163a3b1b31d60e01b815260208160048160645afa908115610377575f9161040f575b505b60a05260e052610120526040516306afdd8560e41b8152602081600481875afa908115610377575f916103cd575b506001600160a01b031661010081905260c09190915284151592836103c3575b50826103b9575b50816103af575b508061039d575b8061038b575b80610382575b1561036b575f9560209560449460018060a01b0319601154161760115565ffffffffffff1960135416176013554260155560018060a01b031660018060a01b0319601454161760145560018060a01b031680638b78c6d81955857f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3604051948593849263558a729760e01b84526004840152600160248401525af180156103775761033b575b604051615ff490816104938239608051818181610eed015281816110ce015281816113d8015281816114e5015281816116e301528181612497015281816128ac0152818161390e01528181613edc01528181613fec0152818161483301528181614c700152615399015260a051818181610bf70152818161422701526155f1015260c0518181816117c3015281816124410152818161256d0152818161281201528181613a7b0152614d3d015260e051818181611591015281816117540152818161296e01528181612d72015281816143ab0152818161496801528181614b090152818161548a01528181615b2501528181615bdc01528181615cd40152615ea90152610100518181816117f40152614d6201526101205181818161178b01526123840152f35b6020813d60201161036f575b8161035460209383610447565b8101031261036b57518015150361036b575f610214565b5f80fd5b3d9150610347565b6040513d5f823e3d90fd5b5084151561016b565b506001600160a01b0381161515610165565b506001600160a01b038616151561015f565b905015155f610158565b151591505f610151565b151592505f61014a565b90506020813d602011610407575b816103e860209383610447565b8101031261036b57516001600160a01b038116810361036b575f61012a565b3d91506103db565b90506020813d602011610439575b8161042a60209383610447565b8101031261036b57515f6100fa565b3d915061041d565b436100fc565b601f909101601f19168101906001600160401b0382119082101761046a57604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361036b5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c80630be21ab514612fde5780631254f2fe14612dae5780631367935514612d57578063142a3c8c1461234657806315dcc2e0146123265780631626ba7e146122bd5780631a362e401461220c5780631e2eaeaf146121ef578063214ada3e1461204a57806323c0571b14611f185780632569296214611ecd5780632b02feaf14611e215780632dbfa73514611de35780632e6ee7c314611da15780633465dc0c14611d7757806335fd631a14611d20578063531f4dd214611ca557806354d1f13d14611c5f57806354d8d9a514611a78578063575e24b4146116645780636fb70c76146116125780636fe7e6eb14611491578063715018a614611446578063729b45c1146113135780637ba3668414611210578063859049d314610ffa57806389a6dccf14610f6e5780638da5cb5b14610f4357806391dd734614610eb0578063a15dd0b514610ae0578063ababb83c14610a93578063bbb546b5146109ef578063c6b4968814610982578063c982bcca14610934578063cceb676514610908578063dbd035ff1461088e578063e3fe3452146107d3578063e6333979146106bb578063f04e283e14610636578063f2fde38b146105c4578063f96f97f2146103d1578063fb20e17e14610327578063fee2ba441461023e5763fee81cf414610209575061000e565b3461023b57602060031936011261023b57610222613137565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461023b57604060031936011261023b576004356024359061ffff82168092036103235761026b6145d8565b6102748161545e565b61753082116102fb57808352600f60205260408320827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00008254161790557f790a677be3faa0bace16b44a99f888bdeb9169c827ca24d85f2843108a95863f8380a3807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b6004837fb6436a0b000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b503461023b57602060031936011261023b576004358152600d602052604081209060405190608082019082821067ffffffffffffffff8311176103bd5750608092606091604052546001600160a01b038116928381528160a01c60020b9081602082015263ffffffff808460b81c169384604084015260d81c169384910152604051938452602084015260408301526060820152f35b80634e487b7160e01b602492526041600452fd5b503461023b57600319360160c081126105c05760a01361023b5760a43567ffffffffffffffff81116105c05761040b90369060040161325a565b8260405180937f88ec5b470000000000000000000000000000000000000000000000000000000082528360e483016006600485015261044c602485016134e3565b60e060c4850152526101048201909383905b80821061058e57505081929350038173000000007a00d1e94c60f9e1cfb1ea752035f52c5af49081156105835782916104db575b5090604051918291602083016020845282518091526020604085019301915b8181106104bf575050500390f35b825160060b8452859450602093840193909201916001016104b1565b90503d8083833e6104ec81836131a7565b8101906020818303126103235780519067ffffffffffffffff821161057f57019080601f8301121561032357815190610524826136d5565b9261053260405194856131a7565b82845260208085019360051b82010191821161057b57602001915b81831061055d575050505f610492565b82518060060b81036105775781526020928301920161054d565b8580fd5b8480fd5b8380fd5b6040513d84823e3d90fd5b9250925083359063ffffffff82168092036105bc57602081600193829352019401920192859293859261045e565b8680fd5b5080fd5b50602060031936011261023b576105d9613137565b6105e16151a6565b8060601b15610629576001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08480a3638b78c6d8195580f35b637448fbae82526004601cfd5b50602060031936011261023b5761064b613137565b6106536151a6565b63389a75e1600c528082526020600c20805442116106ae5790826001600160a01b0392551680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08480a3638b78c6d8195580f35b636f5e881883526004601cfd5b503461023b57602060031936011261023b5760043563ffffffff811690818103610323576106e76151a6565b6207a120821180156107c7575b61079f57601054906001600160a01b038216156107775777ffffffff00000000000000000000000000000000000000007fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9160a01b169116176010557f1830fd731bc638f82d569312f1d49094df6daec186ff017fe0b73c79df44f29e8280a280f35b6004847f261bdb72000000000000000000000000000000000000000000000000000000008152fd5b6004837f58e6eb95000000000000000000000000000000000000000000000000000000008152fd5b50620186a082106106f4565b503461023b57604060031936011261023b5761081c604061087d926004356107f9613112565b6108016140e6565b5061080b8261421b565b156108815781528060205220614110565b6040519182918291909160806001600160801b038160a08401956001600160a01b03815116855265ffffffffffff60208201511660208601526001600160d01b03196040820151166040860152826060820151166060860152015116910152565b0390f35b8152600160205220614110565b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c0576108c090369060040161325a565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156108ff5750602080916108e3565b60408186030190f35b503461023b57602060031936011261023b57602060ff610929600435615aea565b604051911615158152f35b503461023b57604060031936011261023b576001600160a01b036040610958613137565b928261096261314d565b9416815260056020522091165f52602052602060405f2054604051908152f35b503461023b57604060031936011261023b576020906109c46004356109a561314d565b906109ae6145d8565b6109b661464f565b6109bf81614169565b615690565b907f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d604051908152f35b503461023b57604060031936011261023b5761087d90610a0d613112565b610a156140e6565b50610a216004356155ca565b9092509015610a8c57506040519182918291909160806001600160801b038160a08401956001600160a01b03815116855265ffffffffffff60208201511660208601526001600160d01b03196040820151166040860152826060820151166060860152015116910152565b905061081c565b503461023b57604060031936011261023b576040602091610ab2613137565b6001600160a01b0360243591610ac78361421b565b1682526004845282822090825283522054604051908152f35b503461023b5760a060031936011261023b57600435610afd61314d565b90604435906001600160d01b0319821680830361057b57606435926001600160801b0384168085036105bc576084356001600160801b03811692838203610eac57610b466145d8565b610b4e61464f565b610b5786614169565b6001600160a01b03610b676141a4565b98610b718861421b565b16968715928315610e80575b8315610e54575b8315610e34575b50508115610e22575b508015610e08575b610de0578387526001602052604087206001015460801c848852600160205260408820546001600160a01b031688526004602052604088208589526020526040882090815490610beb916136a7565b9055610bf56151c2565b7f0000000000000000000000000000000000000000000000000000000000000000610c1f91613450565b65ffffffffffff169582604051610c3581613177565b8781528960208201918a83526040810188815260608201938785528a6080840194878652528d60016020526040902092516001600160a01b03166001600160a01b0316835473ffffffffffffffffffffffffffffffffffffffff19161783555182549060a01b79ffffffffffff000000000000000000000000000000000000000016907fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff16178255516001600160d01b0319168154906001600160d01b0319169079ffffffffffffffffffffffffffffffffffffffffffffffffffff1617815560010191516001600160801b03166001600160801b031682546fffffffffffffffffffffffffffffffff1916178255516001600160801b0316610d7b91906001600160801b036fffffffffffffffffffffffffffffffff1983549260801b169116179055565b610d859186615e86565b6040519283526020830152604082015260607f892cf75ad2a5896151df4a595c62378620b908182714c75fc026987990dfa7c991a4807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b6004877fcf8172ed000000000000000000000000000000000000000000000000000000008152fd5b506001600160801b03610e1a85615cca565b168110610b9c565b610e2d9150856145a6565b155f610b94565b6001600160801b0392935090610e499161469f565b161515905f80610b8b565b92506001600160801b03610e7765ffffffffffff610e70615b77565b16836155a7565b16851092610b84565b9250868a526001602052610ea36001600160801b03600160408d20015416615f54565b84111592610b7d565b8880fd5b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c057610ee290369060040161322c565b916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303610f345761087d610f2084846137a0565b6040519182916020835260208301906132c4565b8063570c108560e11b60049252fd5b503461023b578060031936011261023b576020638b78c6d819546001600160a01b0360405191168152f35b503461023b57604060031936011261023b576004357fa74dd19ca00a9e1befbb93daa40f943456e44ffc5b645c00ac4d68467cc4df8d6020610fae613112565b610fb66151a6565b8385526012825260408520901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a280f35b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c05761102c90369060040161325a565b91906110366145d8565b60405192806040850160208087015252606084019190835b8181106111e8576110c1858061109161109f8a611074818b03601f1981018352826131a7565b6040519283916002602084015260408084015260608301906132c4565b03601f1981018352826131a7565b604051809481926348c8949160e01b83526020600484015260248301906132c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19182156111db5781926111b7575b5081518201916020818185019403126105c05760208101519067ffffffffffffffff821161032357019082603f8301121561023b57602082015192611142846136d5565b9261115060405194856131a7565b8484526020808086019660051b8301010191821161032357604001935b8185106111a75761087d84847f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d6040519182918261328b565b845181526020948501940161116d565b6111d49192503d8084833e6111cc81836131a7565b8101906135f6565b90826110fe565b50604051903d90823e3d90fd5b9091926020806001926001600160a01b0361120288613163565b16815201940192910161104e565b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c057906020611247604493369060040161322c565b938491601f19601f60405197889586947f7ba3668400000000000000000000000000000000000000000000000000000000865288600487015281602487015286860137878582860101520116810103018173000000007a00d1e94c60f9e1cfb1ea752035f52c5af49081156113075780916112ca575b6020826040519015158152f35b90506020823d6020116112ff575b816112e5602093836131a7565b8101031261023b57506112f96020916136b4565b5f6112bd565b3d91506112d8565b604051903d90823e3d90fd5b503461023b57600319360160c081126105c05760a01361023b5760a435816001600160a01b03821680920361023b576110916113a96113cb936113546145d8565b61136860a061136236613370565b2061545e565b60405190611378602083016134e3565b60c082015260c0815261138c60e0826131a7565b6040519283916003602084015260408084015260608301906132c4565b604051809381926348c8949160e01b83526020600484015260248301906132c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156105835761142c575b50807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b61143f903d8084833e6111cc81836131a7565b505f611405565b508060031936011261023b5761145a6151a6565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b503461023b5761010060031936011261023b576114ac613137565b60a06023193601126105c05760c435906001600160a01b0382168092036103235760e4358060020b80910361057f576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036116035790839173000000007a00d1e94c60f9e1cfb1ea752035f52c91823b1561057f576001600160a01b03926101449260405196879586947f8e04931e0000000000000000000000000000000000000000000000000000000086526006600487015216602485015261157c60448501613471565b60e48401526101048301526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166101248301525af48015610583576115ee575b60206040517f6fe7e6eb000000000000000000000000000000000000000000000000000000008152f35b6115f98280926131a7565b61023b57806115c4565b60048463570c108560e11b8152fd5b503461023b57602060031936011261023b5760209060043590818152600a83526040812054421191821561164d575b50506040519015158152f35b815260128352604090205460ff1690505f80611641565b503461023b5761014060031936011261023b5761167f613137565b9060a060231936011261023b5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261023b576101243567ffffffffffffffff81116105c0576116d790369060040161322c565b50506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823303611a69576117136145d8565b63ffffffff60105460a01c16926001600160a01b0360115416906040519460e0860186811067ffffffffffffffff821117611a5557604052855260208501917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316835260408601918252606086017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526080870191825260a08701927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316845260c08801947f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168652604051987f09ed8ad5000000000000000000000000000000000000000000000000000000008a5260048a01600690525163ffffffff1660248a0152516001600160a01b03166044890152516001600160a01b03166064880152516001600160a01b03166084870152516001600160a01b031660a4860152516001600160a01b031660c4850152516001600160a01b031660e48401526001600160a01b031661010483015261012482016118d090613471565b60c4358015158091036105c0576101c483015260e4356101e4830152610104356001600160a01b0381168091036105c05761020483015260a0826102248173000000007a00d1e94c60f9e1cfb1ea752035f52c5af49081156113075780928182839284956119eb575b5060609561199b575b505050807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d604051917f575e24b400000000000000000000000000000000000000000000000000000000835260208301526040820152f35b6001600160a01b0380921684526005602052604084208282165f5260205260405f206119c88482546136a7565b905516825260036020526119e1604083209182546136a7565b90555f8080611942565b9450505050915060a0813d60a011611a4d575b81611a0b60a093836131a7565b810103126105c057606091611a1f826136b4565b611a2b602084016136c1565b92611a38604082016136c1565b85820151608090920151929592949192611939565b3d91506119fe565b602486634e487b7160e01b81526041600452fd5b60048263570c108560e11b8152fd5b503461023b57606060031936011261023b57600435611a95613121565b90611a9e6130f4565b611aa66145d8565b611aae61464f565b611ab782614169565b611abf6141a4565b90611ac98361421b565b8015611c4d578285528460205260408520935b611ae585614110565b946001600160a01b03865116956001600160a01b038516968703611c25576001600160801b03611b1b816060840151168561469f565b16611bfd5791611b6d6001600160801b03926001611b4284866080611b7699015116614f27565b9101906001600160801b036fffffffffffffffffffffffffffffffff1983549260801b169116179055565b16809385615e86565b15611bcd5760207f5fedbb7fbc8b2dd98c779ccc8c3d8e18dc48cc2eb1cb0215af9c1f77741d869a91604051908152a35b807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b60207f018ca21103a82dec7bc9c112d22fe77a99b58608eac0ed93262243e30fe1da1591604051908152a3611ba7565b6004887fa2d53a3c000000000000000000000000000000000000000000000000000000008152fd5b6004887fb601a689000000000000000000000000000000000000000000000000000000008152fd5b82855260016020526040852093611adc565b508060031936011261023b5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461023b57602060031936011261023b576004356001600160a01b0381168091036105c05760207f21014fa276f518db71a4b74f0526c61ed7661bf69a707c64a30d5b0040b7113c91611cf76151a6565b8073ffffffffffffffffffffffffffffffffffffffff196011541617601155604051908152a180f35b503461023b57604060031936011261023b576024356004356040519160408360208152826020820152019060051b8301916001602060408501935b835481520191019084838210156108ff57506020600191611d5b565b503461023b57602060031936011261023b5760406020916004358152600c83522054604051908152f35b503461023b57604060031936011261023b5760406020916001600160a01b03611dc8613137565b16815260048352818120602435825283522054604051908152f35b503461023b57604060031936011261023b576020906109c4611e03613137565b611e0b61314d565b90611e146145d8565b611e1c61464f565b6152c9565b503461023b57600319360160c081126105c05760a01361023b5760a43563ffffffff811681036105c0579063ffffffff604092611e8760a0611e6236613370565b209182855260076020528585209286858554821c169687928152600660205220615210565b81547fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff1681861b6bffffffff000000000000000016179091558351928352166020820152f35b508060031936011261023b5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461023b57602060031936011261023b57611f32613137565b6001600160a01b036014541633148015612004575b15611fdc57601054906001600160a01b038216611fb45773ffffffffffffffffffffffffffffffffffffffff197f1ad2c8d0e069471d98a667bcf612463b372082f8870dc6d167a3793a133931ab926001600160a01b03602093169182911617601055604051908152a180f35b6004837f28524992000000000000000000000000000000000000000000000000000000008152fd5b6004827f1424d63b000000000000000000000000000000000000000000000000000000008152fd5b506001600160a01b03638b78c6d819541633148015611f47575060155462ed4e00810180911161203657421015611f47565b602483634e487b7160e01b81526011600452fd5b503461023b57604060031936011261023b5760043565ffffffffffff81168082036103235761207761314d565b916120806151a6565b6013549265ffffffffffff84169365ffffffffffff8160301c1694808511156121c7576120ab6151c2565b956001600160a01b0384169680881061219f579282828a957fe327dd1af0911b252ef7e49d7a72cd9fbca0275a5be0590eb13e7482272a4674989560209895119081612191575b50156121835765ffffffffffff905b16948591820361214f5750505065ffffffffffff6bffffffffffff0000000000006bffffffffffffffffffffffff196013549360601b169360301b16911617176013555b604051908152a380f35b6bffffffffffffffffffffffff196bffffffffffff00000000000093959460601b169416179160301b161717601355612145565b5065ffffffffffff81612101565b90508360601c11155f6120f2565b6004897f19f108c5000000000000000000000000000000000000000000000000000000008152fd5b6004877ff94d6108000000000000000000000000000000000000000000000000000000008152fd5b503461023b57602060031936011261023b57602090600435548152f35b503461023b5760a060031936011261023b57600435612229613121565b6044356001600160801b038116810361057f57612244613103565b91608435936001600160a01b0385168503610577579261228a9260409695926001600160801b03956122746145d8565b61227c61464f565b61228581614169565b614f47565b90927f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d81845193168352166020820152f35b503461023b57604060031936011261023b576024359067ffffffffffffffff821161023b5760206122fc6122f436600486016131e6565b600435613659565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b503461023b57602060031936011261023b5761234360043561421b565b80f35b503461270557610120600319360112612705576004358015158103612705576101006023193601126127055761237a6145d8565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303612d2f5760a06123b5366132e9565b2090815f526008602052601f1936013560405f205403612d075715612721575060017f81033a18d648f105cf4834b06051c94a8095dbf3ba7aa3cb9e7baead1658f20a5d612409612404613424565b61470f565b6001600160a01b036124196133f7565b16612711576040516370a0823160e01b81523060048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156126d05783916126db575b505b7f07bd55ea91cddb9c2c27beeba6deadeb8f557caeb242f82d756cf1d33154a78c5d7f000000000000000000000000000000000000000000000000000000000000000090826124c183614780565b15612610575061251891506125086124d7613424565b6124df61343a565b6001600160a01b03806124f0613424565b16911614906124fe366132e9565b9060e43590614afd565b612513612404613424565b613450565b60e4358091106125e85781906001600160a01b03612534613424565b1615612563575b5050807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156125e45782906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af18015610583571561253b57816125d9916131a7565b61023b57805f61253b565b5050fd5b6004827f4539e67f000000000000000000000000000000000000000000000000000000008152fd5b61269b6001600160a01b039361109161267661262a613424565b61265a61263561343a565b898061263f613424565b169116149161109160405193849260e4359060208501613555565b60405192839187602084015260408084015260608301906132c4565b836040519687809581946348c8949160e01b83526020600484015260248301906132c4565b0393165af19182156126d057612518926126b6575b50612508565b6126c9903d8086833e6111cc81836131a7565b505f6126b0565b6040513d85823e3d90fd5b90506020813d602011612709575b816126f6602093836131a7565b8101031261270557515f612471565b5f80fd5b3d91506126e9565b61271c6124046133f7565b612473565b5f81815260086020908152604080832083905560098252808320839055600a8252808320839055600d909152902080547fff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffff164260b881901b7affffffff0000000000000000000000000000000000000000000000169190911760d89190911b7effffffff000000000000000000000000000000000000000000000000000000161790557f07bd55ea91cddb9c2c27beeba6deadeb8f557caeb242f82d756cf1d33154a78c5c91906001600160a01b036127f86133f7565b16612cf7576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082602481845afa918215612cb8575f92612cc3575b5081813b15612705575f916024839260405194859384927f2e1a7d4d00000000000000000000000000000000000000000000000000000000845260048401525af18015612cb857612ca1575b5082936128a991613450565b907f0000000000000000000000000000000000000000000000000000000000000000836128d582614780565b15612bde5750506129156128e76133f7565b6128ef61340e565b6001600160a01b03806129006133f7565b16911614908461290f366132e9565b91614826565b73000000007a00d1e94c60f9e1cfb1ea752035f52c90813b15612bce576040517f434e273900000000000000000000000000000000000000000000000000000000815260066004820152848160e4816001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016968760248301526129a160448301613471565b5af4908115612bd3578591612bb9575b50506020906024604051809481937f14ff92a600000000000000000000000000000000000000000000000000000000835260048301525afa9081156126d0578391612b77575b50612a0061340e565b6001600160a01b0380612a116133f7565b169116146001600160a01b0382163303612a50575b5050507f81033a18d648f105cf4834b06051c94a8095dbf3ba7aa3cb9e7baead1658f20a5d611ba7565b611000821615612a26578380936040519060208201937ff776a973000000000000000000000000000000000000000000000000000000008552612a9560248401613471565b60c483015260e43560e48301526101048201526101048152612ab9610124826131a7565b51925af115612b58577ff776a973000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000604051601f19603f3d011681016040523d815260203d91019084823e511603612b3057805f8080612a26565b807f404190970000000000000000000000000000000000000000000000000000000060049252fd5b3d15612b6a57604051903d90823e3d90fd5b63855e32e790526004601cfd5b90506020813d602011612bb1575b81612b92602093836131a7565b810103126125e457516001600160a01b03811681036125e4575f6129f7565b3d9150612b85565b81612bc3916131a7565b612bce57835f6129b1565b505050fd5b6040513d87823e3d90fd5b612c666001600160a01b0392611091612c4187612c24612bfc6133f7565b611091612c0761340e565b8a80612c116133f7565b1691161460405194859360208501613555565b6040519283916001602084015260408084015260608301906132c4565b836040519586809581946348c8949160e01b83526020600484015260248301906132c4565b0393165af18015612c9657612c7c575b50612915565b612c8f903d8086833e6111cc81836131a7565b505f612c76565b6040513d86823e3d90fd5b612cae9193505f906131a7565b5f916128a961289d565b6040513d5f823e3d90fd5b9091506020813d602011612cef575b81612cdf602093836131a7565b810103126127055751905f612851565b3d9150612cd2565b6128a982936125136124046133f7565b7f5dac7a1b000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f1424d63b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34612705576040600319360112612705576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303612d2f576004355f52600c60205260243560405f20555f80f35b3461270557608060031936011261270557600435612dca613121565b604435916001600160a01b0383169283810361270557612de8613103565b612df06145d8565b612df861464f565b612e0183614169565b612e096141a4565b93612e138461421b565b8115612fcd57835f525f60205260405f205b612e2e81614110565b916001600160a01b03808451169716968703612fa55760608301926001600160801b03612e5e818651168461469f565b16612f7d576080612e899101936001600160801b03612e8084828851166146d1565b915116906146f1565b6001600160801b0365ffffffffffff612ea0615b77565b16911610612f5557612ec66001600160801b03926001611b428486612ecf9851166146d1565b16809385615bb7565b15612f255760207f804678e3e29c23a5bf87029444349f6b833eab92ed696f51ed1d9412e738d02791604051908152a45b5f7f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d005b60207fd6cbb6e489a2ca95eea500cfdffb93e083287ee5a015abb7ed0fe2fdd770fe8091604051908152a4612f00565b7f9aa6880d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fa2d53a3c000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb601a689000000000000000000000000000000000000000000000000000000005f5260045ffd5b835f52600160205260405f20612e25565b3461270557606060031936011261270557600435602435906001600160d01b0319821691828103612705576130116130f4565b9061301b83614169565b6130236141a4565b9361302d8461421b565b82156130e257835f525f60205260405f20915b6001600160a01b03808454169616958603612fa55761305f90856145a6565b156130ba577fd89758def3a89808b83911284af1db38111ea1b042a45f0d39d526f67fab7a3792828279ffffffffffffffffffffffffffffffffffffffffffffffffffff6040955416179055825191825215156020820152a3005b7fcf8172ed000000000000000000000000000000000000000000000000000000005f5260045ffd5b835f52600160205260405f2091613040565b60443590811515820361270557565b60643590811515820361270557565b60243590811515820361270557565b602435906001600160801b038216820361270557565b600435906001600160a01b038216820361270557565b602435906001600160a01b038216820361270557565b35906001600160a01b038216820361270557565b60a0810190811067ffffffffffffffff82111761319357604052565b634e487b7160e01b5f52604160045260245ffd5b90601f601f19910116810190811067ffffffffffffffff82111761319357604052565b67ffffffffffffffff811161319357601f01601f191660200190565b81601f82011215612705578035906131fd826131ca565b9261320b60405194856131a7565b8284526020838301011161270557815f926020809301838601378301015290565b9181601f840112156127055782359167ffffffffffffffff8311612705576020838186019501011161270557565b9181601f840112156127055782359167ffffffffffffffff8311612705576020808501948460051b01011161270557565b60206040818301928281528451809452019201905f5b8181106132ae5750505090565b82518452602093840193909201916001016132a1565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b60231960a0910112612705576040519061330282613177565b816024356001600160a01b03811681036127055781526044356001600160a01b038116810361270557602082015260643562ffffff811681036127055760408201526084358060020b810361270557606082015260a435906001600160a01b03821682036127055760800152565b60031960a0910112612705576040519061338982613177565b816004356001600160a01b03811681036127055781526024356001600160a01b038116810361270557602082015260443562ffffff811681036127055760408201526064358060020b8103612705576060820152608435906001600160a01b03821682036127055760800152565b610104356001600160a01b03811681036127055790565b6024356001600160a01b03811681036127055790565b60c4356001600160a01b03811681036127055790565b6044356001600160a01b03811681036127055790565b9190820391821161345d57565b634e487b7160e01b5f52601160045260245ffd5b6024356001600160a01b0381168091036127055781526044356001600160a01b03811680910361270557602082015260643562ffffff81168091036127055760408201526084358060020b80910361270557606082015260a435906001600160a01b0382168092036127055760800152565b6004356001600160a01b0381168091036127055781526024356001600160a01b03811680910361270557602082015260443562ffffff81168091036127055760408201526064358060020b809103612705576060820152608435906001600160a01b0382168092036127055760800152565b91939290936001600160a01b03610100840195168352602083015260408201906001600160a01b036135876024613163565b1682526001600160a01b0361359c6044613163565b16602083015260643562ffffff811681036127055762ffffff16604083015260843591600283900b83036127055760e09260020b606082015260806001600160a01b036135eb82602401613163565b169101521515910152565b6020818303126127055780519067ffffffffffffffff8211612705570181601f820112156127055780519061362a826131ca565b9261363860405194856131a7565b8284526020838301011161270557815f9260208093018386015e8301015290565b9190915f9260208180518101031261270557602001515f52600960205260405f20541461368257565b7f1626ba7e000000000000000000000000000000000000000000000000000000009150565b9190820180921161345d57565b5190811515820361270557565b51906001600160a01b038216820361270557565b67ffffffffffffffff81116131935760051b60200190565b91908260a09103126127055760405161370581613177565b8092613710816136c1565b825261371e602082016136c1565b6020830152604081015162ffffff811681036127055760408301526060810151908160020b82036127055760809160608401520151906001600160a01b03821682036127055760800152565b610100818303126127055761377e816136c1565b9261379d60e0613796602085015195604086016136ed565b93016136b4565b90565b9081015f9160408183031261270557803591600483101561270557602082013567ffffffffffffffff8111612705576137d992016131e6565b908061381357506137f6816020806137ff9451830101910161376a565b92919091614afd565b6040519061380e6020836131a7565b815290565b6001810361384057506138328160208061383b9451830101910161376a565b92919091614826565b6137ff565b91929160028103613d495750805181019060208181840193031261057f5760208101519067ffffffffffffffff821161057b57019281603f8501121561023b5760208401519161388f836136d5565b9461389d60405196876131a7565b8386526020860190602080839660051b8301010192831161057f57604001905b828210613d31575050506001600160a01b0360105416908115613d0957849392935194601f196139056138ef886136d5565b976138fd604051998a6131a7565b8089526136d5565b013660208801377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693825b8251811015613c82576001600160a01b036139548285615593565b516040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152911660248201819052906020816044818b5afa908115613b8c578691613c4f575b506139bc6139cf918388526003602052604088205490613450565b828752600e602052604087205490613450565b90816139e0575b5050600101613939565b873b1561057757604051637a94c56560e11b815230600482015260248101829052604481018390528681606481838d5af18015613bb057908791613c3a575b505080613bd057873b1561057757604051630b0d9c0960e01b81526001600160a01b03919091166004820152306024820152604481018290528581606481838c5af18015613b8c57908691613bbb575b50506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610577576040517fd0e30db0000000000000000000000000000000000000000000000000000000008152868160048186865af18015613bb05783918891613b97575b506040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038a16600482015260248101929092529091602091839160449183915af18015613b8c57613b4f575b50906001915b613b47828b615593565b52905f6139d6565b6020813d8211613b84575b81613b67602093836131a7565b810103126105775790613b7c600193926136b4565b509091613b37565b3d9150613b5a565b6040513d88823e3d90fd5b81925090613ba4916131a7565b6105775781865f613ae0565b6040513d89823e3d90fd5b81613bc5916131a7565b61057b57845f613a6f565b873b1561057757604051630b0d9c0960e01b81526001600160a01b0391821660048201529087166024820152604481018290528581606481838c5af18015613b8c57908691613c25575b505090600191613b3d565b81613c2f916131a7565b61057b57845f613c1a565b81613c44916131a7565b61057757855f613a1f565b90506020813d8211613c7a575b81613c69602093836131a7565b8101031261270557516139bc6139a1565b3d9150613c5c565b509594919092935060405192602084019060208552518091526040840192915b818110613cea57505050917f343ec735634cde6c74e128c9997c907fee57a10d2d60ddd6c6edd5b3deae436382611091959361379d950390a26040519283916020830161328b565b82516001600160a01b0316845260209384019390920191600101613ca2565b807f261bdb720000000000000000000000000000000000000000000000000000000060049252fd5b60208091613d3e846136c1565b8152019101906138bd565b919291600314613d5a575b506137ff565b8051810160c08282031261270557613d7a602060c09201602084016136ed565b910151906001600160a01b0382168092036127055760a0812090815f52600f60205260405f2060405191606083019183831067ffffffffffffffff841117613193576040928352549261ffff841681526effffffffffffffffffffffffffffff8460101c169384602083015260881c9283910152835f52600f60205260405f207fffffffffffffffffffffffffffffff000000000000000000000000000000ffff8154169055835f52600f60205260405f2070ffffffffffffffffffffffffffffffffff81541690556001600160a01b038151165f52600e60205260405f20613e64848254613450565b905560208101906001600160a01b038251165f52600e60205260405f20613e8c848254613450565b905583613fe2575b5081613ed2575b507f6af496ab2167a3cd8281d42f68c2b5789b2d3e1c627eda4ad62f7d63d3d350299160409182519182526020820152a35f613d54565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906001600160a01b03815116823b15613fde57604051637a94c56560e11b8152306004820152602481019190915260448101849052878160648183875af18015613fd357908891613fbe575b5050516001600160a01b0316813b156105bc57604051630b0d9c0960e01b81526001600160a01b0391821660048201529086166024820152604481018390529086908290606490829084905af18015613b8c57908691613fa9575b50613e9b565b81613fb3916131a7565b61057b57845f613fa3565b81613fc8916131a7565b6105bc57865f613f48565b6040513d8a823e3d90fd5b8780fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906001600160a01b03815116823b1561270557604051637a94c56560e11b81523060048201526024810191909152604481018690525f8160648183875af18015612cb8576140ca575b50516001600160a01b0316813b15613fde57604051630b0d9c0960e01b81526001600160a01b0391821660048201529087166024820152604481018590529087908290606490829084905af18015613bb0579087916140b5575b50613e94565b816140bf916131a7565b61057757855f6140af565b6140d79198505f906131a7565b5f966001600160a01b03614055565b604051906140f382613177565b5f6080838281528260208201528260408201528260608201520152565b9060405161411d81613177565b6080600182946001600160d01b031981546001600160a01b038116865265ffffffffffff8160a01c16602087015216604085015201546001600160801b0381166060840152811c910152565b61417460ff91615aea565b161561417c57565b7f47d88c52000000000000000000000000000000000000000000000000000000005f5260045ffd5b335f526e2fd5aeb385d324b580fca7c83823a033146141fc575b6dd9ecebf3c23529de49815dac1c4c33146141d8575f5190565b60205f80806dd9ecebf3c23529de49815dac1c4c5afa156141f8575f5190565b3838fd5b60205f80806e2fd5aeb385d324b580fca7c83823a05afa6141be573838fd5b65ffffffffffff61424c7f000000000000000000000000000000000000000000000000000000000000000043613450565b1691815f5260026020528265ffffffffffff60405f205416146145a157815f525f60205261427c60405f20614110565b92825f52600160205261429160405f20614110565b935f906142a35f965f925b8786615724565b93949b91929b9790979594801580614599575b61433357926001600160a01b0392826142a3989796956142e794911561432b575b509d8115614323575b50976136a7565b9616806142fa575b50509793929761429c565b5f52600460205260405f20895f5260205261431a60405f209182546136a7565b90555f806142ef565b90505f6142e0565b90505f6142d7565b509394965094989799505050614503575b5061446e575b50815f52600260205260405f20907fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000082541617905581614388575050565b6040519063a2a5669760e01b825260048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa8015612cb8576001600160a01b03915f9161443f575b501690813b15612705575f916024839260405194859384927f42966c6800000000000000000000000000000000000000000000000000000000845260048401525af18015612cb857614433575b50565b5f61443d916131a7565b565b614461915060203d602011614467575b61445981836131a7565b81019061543f565b5f6143e3565b503d61444f565b5f8381526001602081815260408084208551928601519186015160a09290921b79ffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092176001600160d01b0319909116178155606084015160809485015190941b6fffffffffffffffffffffffffffffffff19166001600160801b039094169390931792019190915561434a565b5f858152602081815260408083208451928501519185015160a09290921b79ffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092176001600160d01b0319909116178155606083015160809384015190931b6fffffffffffffffffffffffffffffffff19166001600160801b0390931692909217600190920191909155614344565b508c156142b6565b915050565b6145b362ffffff91615aea565b60881c16808260e81c111591826145c957505090565b60d01c62ffffff161115919050565b60017f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5c146146275760017f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d565b7fbb6b8f9a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f81033a18d648f105cf4834b06051c94a8095dbf3ba7aa3cb9e7baead1658f20a5c61467757565b7ffa64107f000000000000000000000000000000000000000000000000000000005f5260045ffd5b906001600160801b03169081156146bd576001600160801b03160690565b634e487b7160e01b5f52601260045260245ffd5b906001600160801b03809116911603906001600160801b03821161345d57565b906001600160801b03169081156146bd576001600160801b03160490565b6001600160a01b03168061472257504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115612cb8575f91614751575090565b90506020813d602011614778575b8161476c602093836131a7565b81010312612705575190565b3d915061475f565b60206001600160a01b03916024604051809481937ff135baaa0000000000000000000000000000000000000000000000000000000083527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab236004840152165afa908115612cb8575f916147f4575b50151590565b90506020813d60201161481e575b8161480f602093836131a7565b8101031261270557515f6147ee565b3d9150614802565b9291906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15612705576001600160a01b03604051957fa584119400000000000000000000000000000000000000000000000000000000875216908160048701525a955f816024818388819cf18015612cb857614ae8575b5081158015614a8c575b60049392919015614a83576020905b604051948580927f11da60b4000000000000000000000000000000000000000000000000000000008252865af1928315613b8c578693614a4f575b50813b15610577576040517f156e29f60000000000000000000000000000000000000000000000000000000081523060048201526024810191909152604481018390529085908290606490829084905af18015612bd357908591614a3a575b50506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561057b57849283614a0c9360e49360405197889687957f63f7de6f00000000000000000000000000000000000000000000000000000000875260048701906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b151560a485015260c48401525af1801561058357614a28575050565b614a338280926131a7565b61023b5750565b81614a44916131a7565b61057f57835f61495c565b9092506020813d602011614a7b575b81614a6b602093836131a7565b810103126127055751915f6148fd565b3d9150614a5e565b506020866148c2565b83601452816034526fa9059cbb00000000000000000000000087526020876044601082875af18060018951141615614aca575b5060348790526148b3565b3d843b15171015614adb575f614abf565b6390b8ec1887526004601cfd5b614af59196505f906131a7565b5f945f6148a9565b90916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15612705576040517f23407c160000000000000000000000000000000000000000000000000000000081525f95614ba360048301846001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b151560a48201525f60c48201528460e48201525f6101048201525f816101248183875af18015612cb857614f12575b50813b1561057b57614c5460a486928360405195869485937f3fac650600000000000000000000000000000000000000000000000000000000855260048501906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b5af18015612c9657908491614efd575b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b03821691813b1561057b57604051637a94c56560e11b81523060048201526024810184905260448101859052858160648183875af18015613b8c57908691614ee8575b5050813b1561057b57604051630b0d9c0960e01b81526001600160a01b03919091166004820152306024820152604481018490529084908290606490829084905af18015612c9657908491614ed3575b505080614ec557506001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000165b16907f00000000000000000000000000000000000000000000000000000000000000006040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152602081604481875afa908115612bd3579083918691614e90575b5010614de3575b50505050565b601452806034526f095ea7b300000000000000000000000083526020836044601082865af18060018551141615614e24575b5050506034525f808080614ddd565b3d833b15171015614e36575b80614e15565b826034526f095ea7b3000000000000000000000000835282386044601083865af1506034526020826044601082855af19081600184511416614e30573b153d171015614e83575f80614e30565b633e3f8f7390526004601cfd5b9150506020813d602011614ebd575b81614eac602093836131a7565b81010312612705578290515f614dd6565b3d9150614e9f565b6001600160a01b0390614d5e565b81614edd916131a7565b61032357825f614d2a565b81614ef2916131a7565b61057b57845f614cda565b81614f07916131a7565b61032357825f614c64565b614f1f9195505f906131a7565b5f935f614bd2565b906001600160801b03809116911601906001600160801b03821161345d57565b5f9586959094614f556141a4565b976001600160801b03851695861561519757614f708561421b565b821561518657845f525f60205260405f205b614f8b81614110565b6001600160a01b03815116976001600160a01b038d16988903612fa557614fbf906001600160801b03606084015116614f27565b6001600160801b03614fd1828661469f565b1615801590615163575b6130ba57614fe981856146f1565b6001600160801b0365ffffffffffff615000615b77565b16911610612f5557608084811b6fffffffffffffffffffffffffffffffff19166001600160801b0390921691909117600193909301929092550180516001600160801b03838116949116808511156150d2575050926001600160a01b039261509d6001600160801b037ff9f1ab7a2f5f90eeba49c837a758919739dc7e5ea102551b4251fb11552d57b297948160a0985116900316809d89615e86565b6040519889526020890152151560408801526001600160801b038a1660608801526001600160801b03891660808801521694a4565b91509a50808310615113575b50507ff9f1ab7a2f5f90eeba49c837a758919739dc7e5ea102551b4251fb11552d57b29260a0926001600160a01b039261509d565b036001600160801b031697507ff9f1ab7a2f5f90eeba49c837a758919739dc7e5ea102551b4251fb11552d57b29260a0926001600160a01b03926151588b8489615bb7565b9250928194506150de565b506001600160801b0361517589615cca565b166001600160801b03821610614fdb565b845f52600160205260405f20614f82565b505f9850889750505050505050565b638b78c6d8195433036151b557565b6382b429005f526004601cfd5b4661a4b10361520c576040517fa3b1b31d00000000000000000000000000000000000000000000000000000000815260208160048160645afa908115612cb8575f91614751575090565b4390565b63ffffffff82169182156152a15763ffffffff84169283111561529a575b8263ffffffff8216106152415750505090565b62ffffff8110156152865760018163ffffffff928401827fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000825416179055011661522e565b634e487b7160e01b5f52603260045260245ffd5b9250505090565b7fab7760cc000000000000000000000000000000000000000000000000000000005f5260045ffd5b91906001600160a01b036152db6141a4565b16805f52600560205260405f206001600160a01b0385165f5260205260405f2054938415615437576001600160a01b0390825f52600560205260405f208282165f526020525f604081205516805f52600360205260405f208581540390556040517f095bcdb60000000000000000000000000000000000000000000000000000000081526020818061538c898689600485016040919493926001600160a01b03606083019616825260208201520152565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015612cb8576153fe575b507fee447878094bcc87bd81b55e4831b5e9e3d095866fce10f4f7e4caa64ea7a55860206001600160a01b03604051958887521694a4565b6020813d60201161542f575b81615417602093836131a7565b8101031261270557615428906136b4565b505f6153c6565b3d915061540a565b505f93505050565b9081602091031261270557516001600160a01b03811681036127055790565b6154666141a4565b906040519063a2a5669760e01b825260048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa8015612cb8576001600160a01b03915f91615574575b50169081159182156154d7575b5050612d2f57565b6004919250602090604051928380927f8da5cb5b0000000000000000000000000000000000000000000000000000000082525afa908115612cb8575f91615530575b506001600160a01b03809116911614155f806154cf565b90506020813d60201161556c575b8161554b602093836131a7565b81010312612705576001600160a01b0361556581926136c1565b9150615519565b3d915061553e565b61558d915060203d6020116144675761445981836131a7565b5f6154c2565b80518210156152865760209160051b010190565b906001600160801b03809116911602906001600160801b03821691820361345d57565b906155d36140e6565b506155dc6140e6565b5065ffffffffffff6156166155ef6151c2565b7f000000000000000000000000000000000000000000000000000000000000000090613450565b1690825f525f60205261562b60405f20614110565b92805f52600160205261564060405f20614110565b92815f5260026020528065ffffffffffff60405f20541614615683575b92819461566a9285615724565b50505090959294919495159081615687575b501561565d575b5050565b9050155f61567c565b91906001600160a01b036156a26141a4565b6156ab8561421b565b16805f52600460205260405f20845f5260205260405f205493841561543757815f52600460205260405f20815f526020525f60408120556156ed858483615bb7565b7fb50cab7f3cadbfcd988880bdb754510d79ca993ead3b8c09b58559769f6d920660206001600160a01b03604051958887521694a4565b91929390506157316140e6565b5061573a6140e6565b505f925f925f925f925f9261574d615b77565b89516001600160a01b031661585e57506001600160a01b03825116615778575b505b96959493929190565b929490602081989398016001600160801b036157a865ffffffffffff8084511688031682606086015116906155a7565b169060808301956001600160801b038751168310155f14615807575050505050506001600160801b03905116916040516157e181613177565b5f81525f60208201525f60408201525f60608201525f6080820152946001955b5f61576d565b909192939795839a959a61581f575b50505050615801565b90919399508297506001600160801b0361584c61584365ffffffffffff959a615f8c565b828451166146d1565b1690521690526001955f808080615816565b90896001600160a01b03845116155f146158d6579065ffffffffffff602081930193818551160116918291161015615898575b505061576f565b939892975095505093526040516158ae81613177565b5f81525f60208201525f60408201525f60608201525f60808201529460019485945f80615891565b9790966001600160801b036159428160608c9d96989d015116878b88606081019361590387865116615f54565b109e8f15615acd5765ffffffffffff8793818096816020818082819a015116809603169601511601160316818110908218021816925b511691166155a7565b168b60808601916001600160801b038351168110155f146159ea575050505050506001600160801b03608065ffffffffffff9201511694828960405161598781613177565b5f81525f60208201525f60408201525f60608201525f6080820152985f146159e35760200151918316918316018216818118908211021881165b8160208a0193818551169203168181119082180218169052600194859461576f565b50506159c1565b809c97949b939a92959c615a8b575b509065ffffffffffff602081949301948186511601169283911610159081615a83575b50615a2a575b50505061576f565b945096509793506001600160801b039196506001600160a01b0390511696511695919352604051615a5a81613177565b5f81525f60208201525f60408201525f60608201525f60808201529460019485945f8080615a22565b90505f615a1c565b99509a509065ffffffffffff916001600160801b03615ab5615aac8c615f8c565b828851166146d1565b168552808316602087015260019b91929091906159f9565b5065ffffffffffff92508591836020819301511690031692615939565b604051907f129f38ea00000000000000000000000000000000000000000000000000000000825260048201525f816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa8015612cb8576020915f91615b5d575b50015190565b615b7191503d805f833e6111cc81836131a7565b5f615b57565b60135465ffffffffffff811665ffffffffffff8260301c16918183119081615ba9575b5015615ba4575090565b905090565b905060601c4310155f615b9a565b90916040519163a2a5669760e01b835260048301526020826024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa8015612cb857615c67936020935f92615cab575b505f6001600160a01b036040518097819682957fa9059cbb00000000000000000000000000000000000000000000000000000000845260048401602090939291936001600160a01b0360408201951681520152565b0393165af18015612cb857615c795750565b6020813d602011615ca3575b81615c92602093836131a7565b8101031261270557614430906136b4565b3d9150615c85565b615cc3919250843d86116144675761445981836131a7565b905f615c12565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906040517f129f38ea0000000000000000000000000000000000000000000000000000000081528160048201525f81602481865afa8015612cb857604065ffffffffffff916020935f91615e6c575b50015160b01c169160246040518095819363a2a5669760e01b835260048301525afa918215612cb8576001600160a01b03926020915f91615e4f575b506004604051809581937f18160ddd000000000000000000000000000000000000000000000000000000008352165afa918215612cb8575f92615e1b575b508082029181830403615e04575b50670de0b6b3a764000080820615159104016001600160801b03811115615df857506001600160801b0390565b6001600160801b031690565b615e0e575f615dcb565b63bac65e5b5f526004601cfd5b9091506020813d602011615e47575b81615e37602093836131a7565b810103126127055751905f615dbd565b3d9150615e2a565b615e669150823d84116144675761445981836131a7565b5f615d7f565b615e8091503d805f833e6111cc81836131a7565b5f615d43565b6040519063a2a5669760e01b825260048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115612cb8576020925f6001600160a01b0380946064948391615f37575b5060405197889687957f23b872dd0000000000000000000000000000000000000000000000000000000087521660048601523060248601526044850152165af18015612cb857615c795750565b615f4e9150873d89116144675761445981836131a7565b5f615eea565b7810c50f78edb1e1d81828a2cb16cd80b4a2de5ba4dce252a7ef8111615e0e57670f43fc2c04ee0000670de0b6b3a764000091020490565b700100000000000000000000000000000000811015615fb1576001600160801b031690565b6335278d125f526004601cfdfea2646970667358221220637b3f70d933416155ce31ee0906ec1177114618ff92a321f72d7e58102e833e64736f6c634300081e0033000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f10000000000000000000000000000000000f0d1c07ca806ab9154199e2e627ea6000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000ff3ba1257149f69cd0d22263dd0a14ea0000000000000000000000009a8fee232dcf73060af348a1b62cdb0a19852d13000000000000000000000000cef02dff42ac3b2462dd4ebb509c29fcf331a49c0000000000000000000000000000000000000000000000000000000000000e10
Deployed Bytecode
0x6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c80630be21ab514612fde5780631254f2fe14612dae5780631367935514612d57578063142a3c8c1461234657806315dcc2e0146123265780631626ba7e146122bd5780631a362e401461220c5780631e2eaeaf146121ef578063214ada3e1461204a57806323c0571b14611f185780632569296214611ecd5780632b02feaf14611e215780632dbfa73514611de35780632e6ee7c314611da15780633465dc0c14611d7757806335fd631a14611d20578063531f4dd214611ca557806354d1f13d14611c5f57806354d8d9a514611a78578063575e24b4146116645780636fb70c76146116125780636fe7e6eb14611491578063715018a614611446578063729b45c1146113135780637ba3668414611210578063859049d314610ffa57806389a6dccf14610f6e5780638da5cb5b14610f4357806391dd734614610eb0578063a15dd0b514610ae0578063ababb83c14610a93578063bbb546b5146109ef578063c6b4968814610982578063c982bcca14610934578063cceb676514610908578063dbd035ff1461088e578063e3fe3452146107d3578063e6333979146106bb578063f04e283e14610636578063f2fde38b146105c4578063f96f97f2146103d1578063fb20e17e14610327578063fee2ba441461023e5763fee81cf414610209575061000e565b3461023b57602060031936011261023b57610222613137565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461023b57604060031936011261023b576004356024359061ffff82168092036103235761026b6145d8565b6102748161545e565b61753082116102fb57808352600f60205260408320827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00008254161790557f790a677be3faa0bace16b44a99f888bdeb9169c827ca24d85f2843108a95863f8380a3807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b6004837fb6436a0b000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b503461023b57602060031936011261023b576004358152600d602052604081209060405190608082019082821067ffffffffffffffff8311176103bd5750608092606091604052546001600160a01b038116928381528160a01c60020b9081602082015263ffffffff808460b81c169384604084015260d81c169384910152604051938452602084015260408301526060820152f35b80634e487b7160e01b602492526041600452fd5b503461023b57600319360160c081126105c05760a01361023b5760a43567ffffffffffffffff81116105c05761040b90369060040161325a565b8260405180937f88ec5b470000000000000000000000000000000000000000000000000000000082528360e483016006600485015261044c602485016134e3565b60e060c4850152526101048201909383905b80821061058e57505081929350038173000000007a00d1e94c60f9e1cfb1ea752035f52c5af49081156105835782916104db575b5090604051918291602083016020845282518091526020604085019301915b8181106104bf575050500390f35b825160060b8452859450602093840193909201916001016104b1565b90503d8083833e6104ec81836131a7565b8101906020818303126103235780519067ffffffffffffffff821161057f57019080601f8301121561032357815190610524826136d5565b9261053260405194856131a7565b82845260208085019360051b82010191821161057b57602001915b81831061055d575050505f610492565b82518060060b81036105775781526020928301920161054d565b8580fd5b8480fd5b8380fd5b6040513d84823e3d90fd5b9250925083359063ffffffff82168092036105bc57602081600193829352019401920192859293859261045e565b8680fd5b5080fd5b50602060031936011261023b576105d9613137565b6105e16151a6565b8060601b15610629576001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08480a3638b78c6d8195580f35b637448fbae82526004601cfd5b50602060031936011261023b5761064b613137565b6106536151a6565b63389a75e1600c528082526020600c20805442116106ae5790826001600160a01b0392551680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08480a3638b78c6d8195580f35b636f5e881883526004601cfd5b503461023b57602060031936011261023b5760043563ffffffff811690818103610323576106e76151a6565b6207a120821180156107c7575b61079f57601054906001600160a01b038216156107775777ffffffff00000000000000000000000000000000000000007fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9160a01b169116176010557f1830fd731bc638f82d569312f1d49094df6daec186ff017fe0b73c79df44f29e8280a280f35b6004847f261bdb72000000000000000000000000000000000000000000000000000000008152fd5b6004837f58e6eb95000000000000000000000000000000000000000000000000000000008152fd5b50620186a082106106f4565b503461023b57604060031936011261023b5761081c604061087d926004356107f9613112565b6108016140e6565b5061080b8261421b565b156108815781528060205220614110565b6040519182918291909160806001600160801b038160a08401956001600160a01b03815116855265ffffffffffff60208201511660208601526001600160d01b03196040820151166040860152826060820151166060860152015116910152565b0390f35b8152600160205220614110565b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c0576108c090369060040161325a565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156108ff5750602080916108e3565b60408186030190f35b503461023b57602060031936011261023b57602060ff610929600435615aea565b604051911615158152f35b503461023b57604060031936011261023b576001600160a01b036040610958613137565b928261096261314d565b9416815260056020522091165f52602052602060405f2054604051908152f35b503461023b57604060031936011261023b576020906109c46004356109a561314d565b906109ae6145d8565b6109b661464f565b6109bf81614169565b615690565b907f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d604051908152f35b503461023b57604060031936011261023b5761087d90610a0d613112565b610a156140e6565b50610a216004356155ca565b9092509015610a8c57506040519182918291909160806001600160801b038160a08401956001600160a01b03815116855265ffffffffffff60208201511660208601526001600160d01b03196040820151166040860152826060820151166060860152015116910152565b905061081c565b503461023b57604060031936011261023b576040602091610ab2613137565b6001600160a01b0360243591610ac78361421b565b1682526004845282822090825283522054604051908152f35b503461023b5760a060031936011261023b57600435610afd61314d565b90604435906001600160d01b0319821680830361057b57606435926001600160801b0384168085036105bc576084356001600160801b03811692838203610eac57610b466145d8565b610b4e61464f565b610b5786614169565b6001600160a01b03610b676141a4565b98610b718861421b565b16968715928315610e80575b8315610e54575b8315610e34575b50508115610e22575b508015610e08575b610de0578387526001602052604087206001015460801c848852600160205260408820546001600160a01b031688526004602052604088208589526020526040882090815490610beb916136a7565b9055610bf56151c2565b7f00000000000000000000000000000000000000000000000000000000015a23b2610c1f91613450565b65ffffffffffff169582604051610c3581613177565b8781528960208201918a83526040810188815260608201938785528a6080840194878652528d60016020526040902092516001600160a01b03166001600160a01b0316835473ffffffffffffffffffffffffffffffffffffffff19161783555182549060a01b79ffffffffffff000000000000000000000000000000000000000016907fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff16178255516001600160d01b0319168154906001600160d01b0319169079ffffffffffffffffffffffffffffffffffffffffffffffffffff1617815560010191516001600160801b03166001600160801b031682546fffffffffffffffffffffffffffffffff1916178255516001600160801b0316610d7b91906001600160801b036fffffffffffffffffffffffffffffffff1983549260801b169116179055565b610d859186615e86565b6040519283526020830152604082015260607f892cf75ad2a5896151df4a595c62378620b908182714c75fc026987990dfa7c991a4807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b6004877fcf8172ed000000000000000000000000000000000000000000000000000000008152fd5b506001600160801b03610e1a85615cca565b168110610b9c565b610e2d9150856145a6565b155f610b94565b6001600160801b0392935090610e499161469f565b161515905f80610b8b565b92506001600160801b03610e7765ffffffffffff610e70615b77565b16836155a7565b16851092610b84565b9250868a526001602052610ea36001600160801b03600160408d20015416615f54565b84111592610b7d565b8880fd5b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c057610ee290369060040161322c565b916001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90163303610f345761087d610f2084846137a0565b6040519182916020835260208301906132c4565b8063570c108560e11b60049252fd5b503461023b578060031936011261023b576020638b78c6d819546001600160a01b0360405191168152f35b503461023b57604060031936011261023b576004357fa74dd19ca00a9e1befbb93daa40f943456e44ffc5b645c00ac4d68467cc4df8d6020610fae613112565b610fb66151a6565b8385526012825260408520901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a280f35b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c05761102c90369060040161325a565b91906110366145d8565b60405192806040850160208087015252606084019190835b8181106111e8576110c1858061109161109f8a611074818b03601f1981018352826131a7565b6040519283916002602084015260408084015260608301906132c4565b03601f1981018352826131a7565b604051809481926348c8949160e01b83526020600484015260248301906132c4565b0381836001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90165af19182156111db5781926111b7575b5081518201916020818185019403126105c05760208101519067ffffffffffffffff821161032357019082603f8301121561023b57602082015192611142846136d5565b9261115060405194856131a7565b8484526020808086019660051b8301010191821161032357604001935b8185106111a75761087d84847f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d6040519182918261328b565b845181526020948501940161116d565b6111d49192503d8084833e6111cc81836131a7565b8101906135f6565b90826110fe565b50604051903d90823e3d90fd5b9091926020806001926001600160a01b0361120288613163565b16815201940192910161104e565b503461023b57602060031936011261023b5760043567ffffffffffffffff81116105c057906020611247604493369060040161322c565b938491601f19601f60405197889586947f7ba3668400000000000000000000000000000000000000000000000000000000865288600487015281602487015286860137878582860101520116810103018173000000007a00d1e94c60f9e1cfb1ea752035f52c5af49081156113075780916112ca575b6020826040519015158152f35b90506020823d6020116112ff575b816112e5602093836131a7565b8101031261023b57506112f96020916136b4565b5f6112bd565b3d91506112d8565b604051903d90823e3d90fd5b503461023b57600319360160c081126105c05760a01361023b5760a435816001600160a01b03821680920361023b576110916113a96113cb936113546145d8565b61136860a061136236613370565b2061545e565b60405190611378602083016134e3565b60c082015260c0815261138c60e0826131a7565b6040519283916003602084015260408084015260608301906132c4565b604051809381926348c8949160e01b83526020600484015260248301906132c4565b0381836001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90165af180156105835761142c575b50807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b61143f903d8084833e6111cc81836131a7565b505f611405565b508060031936011261023b5761145a6151a6565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b503461023b5761010060031936011261023b576114ac613137565b60a06023193601126105c05760c435906001600160a01b0382168092036103235760e4358060020b80910361057f576001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a901633036116035790839173000000007a00d1e94c60f9e1cfb1ea752035f52c91823b1561057f576001600160a01b03926101449260405196879586947f8e04931e0000000000000000000000000000000000000000000000000000000086526006600487015216602485015261157c60448501613471565b60e48401526101048301526001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1166101248301525af48015610583576115ee575b60206040517f6fe7e6eb000000000000000000000000000000000000000000000000000000008152f35b6115f98280926131a7565b61023b57806115c4565b60048463570c108560e11b8152fd5b503461023b57602060031936011261023b5760209060043590818152600a83526040812054421191821561164d575b50506040519015158152f35b815260128352604090205460ff1690505f80611641565b503461023b5761014060031936011261023b5761167f613137565b9060a060231936011261023b5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261023b576101243567ffffffffffffffff81116105c0576116d790369060040161322c565b50506001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a901691823303611a69576117136145d8565b63ffffffff60105460a01c16926001600160a01b0360115416906040519460e0860186811067ffffffffffffffff821117611a5557604052855260208501917f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f16001600160a01b0316835260408601918252606086017f0000000000000000000000000000000000f0d1c07ca806ab9154199e2e627ea66001600160a01b031681526080870191825260a08701927f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316845260c08801947f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba36001600160a01b03168652604051987f09ed8ad5000000000000000000000000000000000000000000000000000000008a5260048a01600690525163ffffffff1660248a0152516001600160a01b03166044890152516001600160a01b03166064880152516001600160a01b03166084870152516001600160a01b031660a4860152516001600160a01b031660c4850152516001600160a01b031660e48401526001600160a01b031661010483015261012482016118d090613471565b60c4358015158091036105c0576101c483015260e4356101e4830152610104356001600160a01b0381168091036105c05761020483015260a0826102248173000000007a00d1e94c60f9e1cfb1ea752035f52c5af49081156113075780928182839284956119eb575b5060609561199b575b505050807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d604051917f575e24b400000000000000000000000000000000000000000000000000000000835260208301526040820152f35b6001600160a01b0380921684526005602052604084208282165f5260205260405f206119c88482546136a7565b905516825260036020526119e1604083209182546136a7565b90555f8080611942565b9450505050915060a0813d60a011611a4d575b81611a0b60a093836131a7565b810103126105c057606091611a1f826136b4565b611a2b602084016136c1565b92611a38604082016136c1565b85820151608090920151929592949192611939565b3d91506119fe565b602486634e487b7160e01b81526041600452fd5b60048263570c108560e11b8152fd5b503461023b57606060031936011261023b57600435611a95613121565b90611a9e6130f4565b611aa66145d8565b611aae61464f565b611ab782614169565b611abf6141a4565b90611ac98361421b565b8015611c4d578285528460205260408520935b611ae585614110565b946001600160a01b03865116956001600160a01b038516968703611c25576001600160801b03611b1b816060840151168561469f565b16611bfd5791611b6d6001600160801b03926001611b4284866080611b7699015116614f27565b9101906001600160801b036fffffffffffffffffffffffffffffffff1983549260801b169116179055565b16809385615e86565b15611bcd5760207f5fedbb7fbc8b2dd98c779ccc8c3d8e18dc48cc2eb1cb0215af9c1f77741d869a91604051908152a35b807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b60207f018ca21103a82dec7bc9c112d22fe77a99b58608eac0ed93262243e30fe1da1591604051908152a3611ba7565b6004887fa2d53a3c000000000000000000000000000000000000000000000000000000008152fd5b6004887fb601a689000000000000000000000000000000000000000000000000000000008152fd5b82855260016020526040852093611adc565b508060031936011261023b5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461023b57602060031936011261023b576004356001600160a01b0381168091036105c05760207f21014fa276f518db71a4b74f0526c61ed7661bf69a707c64a30d5b0040b7113c91611cf76151a6565b8073ffffffffffffffffffffffffffffffffffffffff196011541617601155604051908152a180f35b503461023b57604060031936011261023b576024356004356040519160408360208152826020820152019060051b8301916001602060408501935b835481520191019084838210156108ff57506020600191611d5b565b503461023b57602060031936011261023b5760406020916004358152600c83522054604051908152f35b503461023b57604060031936011261023b5760406020916001600160a01b03611dc8613137565b16815260048352818120602435825283522054604051908152f35b503461023b57604060031936011261023b576020906109c4611e03613137565b611e0b61314d565b90611e146145d8565b611e1c61464f565b6152c9565b503461023b57600319360160c081126105c05760a01361023b5760a43563ffffffff811681036105c0579063ffffffff604092611e8760a0611e6236613370565b209182855260076020528585209286858554821c169687928152600660205220615210565b81547fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff1681861b6bffffffff000000000000000016179091558351928352166020820152f35b508060031936011261023b5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461023b57602060031936011261023b57611f32613137565b6001600160a01b036014541633148015612004575b15611fdc57601054906001600160a01b038216611fb45773ffffffffffffffffffffffffffffffffffffffff197f1ad2c8d0e069471d98a667bcf612463b372082f8870dc6d167a3793a133931ab926001600160a01b03602093169182911617601055604051908152a180f35b6004837f28524992000000000000000000000000000000000000000000000000000000008152fd5b6004827f1424d63b000000000000000000000000000000000000000000000000000000008152fd5b506001600160a01b03638b78c6d819541633148015611f47575060155462ed4e00810180911161203657421015611f47565b602483634e487b7160e01b81526011600452fd5b503461023b57604060031936011261023b5760043565ffffffffffff81168082036103235761207761314d565b916120806151a6565b6013549265ffffffffffff84169365ffffffffffff8160301c1694808511156121c7576120ab6151c2565b956001600160a01b0384169680881061219f579282828a957fe327dd1af0911b252ef7e49d7a72cd9fbca0275a5be0590eb13e7482272a4674989560209895119081612191575b50156121835765ffffffffffff905b16948591820361214f5750505065ffffffffffff6bffffffffffff0000000000006bffffffffffffffffffffffff196013549360601b169360301b16911617176013555b604051908152a380f35b6bffffffffffffffffffffffff196bffffffffffff00000000000093959460601b169416179160301b161717601355612145565b5065ffffffffffff81612101565b90508360601c11155f6120f2565b6004897f19f108c5000000000000000000000000000000000000000000000000000000008152fd5b6004877ff94d6108000000000000000000000000000000000000000000000000000000008152fd5b503461023b57602060031936011261023b57602090600435548152f35b503461023b5760a060031936011261023b57600435612229613121565b6044356001600160801b038116810361057f57612244613103565b91608435936001600160a01b0385168503610577579261228a9260409695926001600160801b03956122746145d8565b61227c61464f565b61228581614169565b614f47565b90927f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d81845193168352166020820152f35b503461023b57604060031936011261023b576024359067ffffffffffffffff821161023b5760206122fc6122f436600486016131e6565b600435613659565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b503461023b57602060031936011261023b5761234360043561421b565b80f35b503461270557610120600319360112612705576004358015158103612705576101006023193601126127055761237a6145d8565b6001600160a01b037f0000000000000000000000000000000000f0d1c07ca806ab9154199e2e627ea6163303612d2f5760a06123b5366132e9565b2090815f526008602052601f1936013560405f205403612d075715612721575060017f81033a18d648f105cf4834b06051c94a8095dbf3ba7aa3cb9e7baead1658f20a5d612409612404613424565b61470f565b6001600160a01b036124196133f7565b16612711576040516370a0823160e01b81523060048201526020816024816001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2165afa9081156126d05783916126db575b505b7f07bd55ea91cddb9c2c27beeba6deadeb8f557caeb242f82d756cf1d33154a78c5d7f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9090826124c183614780565b15612610575061251891506125086124d7613424565b6124df61343a565b6001600160a01b03806124f0613424565b16911614906124fe366132e9565b9060e43590614afd565b612513612404613424565b613450565b60e4358091106125e85781906001600160a01b03612534613424565b1615612563575b5050807f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d80f35b6001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216803b156125e45782906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af18015610583571561253b57816125d9916131a7565b61023b57805f61253b565b5050fd5b6004827f4539e67f000000000000000000000000000000000000000000000000000000008152fd5b61269b6001600160a01b039361109161267661262a613424565b61265a61263561343a565b898061263f613424565b169116149161109160405193849260e4359060208501613555565b60405192839187602084015260408084015260608301906132c4565b836040519687809581946348c8949160e01b83526020600484015260248301906132c4565b0393165af19182156126d057612518926126b6575b50612508565b6126c9903d8086833e6111cc81836131a7565b505f6126b0565b6040513d85823e3d90fd5b90506020813d602011612709575b816126f6602093836131a7565b8101031261270557515f612471565b5f80fd5b3d91506126e9565b61271c6124046133f7565b612473565b5f81815260086020908152604080832083905560098252808320839055600a8252808320839055600d909152902080547fff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffff164260b881901b7affffffff0000000000000000000000000000000000000000000000169190911760d89190911b7effffffff000000000000000000000000000000000000000000000000000000161790557f07bd55ea91cddb9c2c27beeba6deadeb8f557caeb242f82d756cf1d33154a78c5c91906001600160a01b036127f86133f7565b16612cf7576040516370a0823160e01b81523060048201527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316602082602481845afa918215612cb8575f92612cc3575b5081813b15612705575f916024839260405194859384927f2e1a7d4d00000000000000000000000000000000000000000000000000000000845260048401525af18015612cb857612ca1575b5082936128a991613450565b907f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90836128d582614780565b15612bde5750506129156128e76133f7565b6128ef61340e565b6001600160a01b03806129006133f7565b16911614908461290f366132e9565b91614826565b73000000007a00d1e94c60f9e1cfb1ea752035f52c90813b15612bce576040517f434e273900000000000000000000000000000000000000000000000000000000815260066004820152848160e4816001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f116968760248301526129a160448301613471565b5af4908115612bd3578591612bb9575b50506020906024604051809481937f14ff92a600000000000000000000000000000000000000000000000000000000835260048301525afa9081156126d0578391612b77575b50612a0061340e565b6001600160a01b0380612a116133f7565b169116146001600160a01b0382163303612a50575b5050507f81033a18d648f105cf4834b06051c94a8095dbf3ba7aa3cb9e7baead1658f20a5d611ba7565b611000821615612a26578380936040519060208201937ff776a973000000000000000000000000000000000000000000000000000000008552612a9560248401613471565b60c483015260e43560e48301526101048201526101048152612ab9610124826131a7565b51925af115612b58577ff776a973000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000604051601f19603f3d011681016040523d815260203d91019084823e511603612b3057805f8080612a26565b807f404190970000000000000000000000000000000000000000000000000000000060049252fd5b3d15612b6a57604051903d90823e3d90fd5b63855e32e790526004601cfd5b90506020813d602011612bb1575b81612b92602093836131a7565b810103126125e457516001600160a01b03811681036125e4575f6129f7565b3d9150612b85565b81612bc3916131a7565b612bce57835f6129b1565b505050fd5b6040513d87823e3d90fd5b612c666001600160a01b0392611091612c4187612c24612bfc6133f7565b611091612c0761340e565b8a80612c116133f7565b1691161460405194859360208501613555565b6040519283916001602084015260408084015260608301906132c4565b836040519586809581946348c8949160e01b83526020600484015260248301906132c4565b0393165af18015612c9657612c7c575b50612915565b612c8f903d8086833e6111cc81836131a7565b505f612c76565b6040513d86823e3d90fd5b612cae9193505f906131a7565b5f916128a961289d565b6040513d5f823e3d90fd5b9091506020813d602011612cef575b81612cdf602093836131a7565b810103126127055751905f612851565b3d9150612cd2565b6128a982936125136124046133f7565b7f5dac7a1b000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f1424d63b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34612705576040600319360112612705576001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1163303612d2f576004355f52600c60205260243560405f20555f80f35b3461270557608060031936011261270557600435612dca613121565b604435916001600160a01b0383169283810361270557612de8613103565b612df06145d8565b612df861464f565b612e0183614169565b612e096141a4565b93612e138461421b565b8115612fcd57835f525f60205260405f205b612e2e81614110565b916001600160a01b03808451169716968703612fa55760608301926001600160801b03612e5e818651168461469f565b16612f7d576080612e899101936001600160801b03612e8084828851166146d1565b915116906146f1565b6001600160801b0365ffffffffffff612ea0615b77565b16911610612f5557612ec66001600160801b03926001611b428486612ecf9851166146d1565b16809385615bb7565b15612f255760207f804678e3e29c23a5bf87029444349f6b833eab92ed696f51ed1d9412e738d02791604051908152a45b5f7f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d005b60207fd6cbb6e489a2ca95eea500cfdffb93e083287ee5a015abb7ed0fe2fdd770fe8091604051908152a4612f00565b7f9aa6880d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fa2d53a3c000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb601a689000000000000000000000000000000000000000000000000000000005f5260045ffd5b835f52600160205260405f20612e25565b3461270557606060031936011261270557600435602435906001600160d01b0319821691828103612705576130116130f4565b9061301b83614169565b6130236141a4565b9361302d8461421b565b82156130e257835f525f60205260405f20915b6001600160a01b03808454169616958603612fa55761305f90856145a6565b156130ba577fd89758def3a89808b83911284af1db38111ea1b042a45f0d39d526f67fab7a3792828279ffffffffffffffffffffffffffffffffffffffffffffffffffff6040955416179055825191825215156020820152a3005b7fcf8172ed000000000000000000000000000000000000000000000000000000005f5260045ffd5b835f52600160205260405f2091613040565b60443590811515820361270557565b60643590811515820361270557565b60243590811515820361270557565b602435906001600160801b038216820361270557565b600435906001600160a01b038216820361270557565b602435906001600160a01b038216820361270557565b35906001600160a01b038216820361270557565b60a0810190811067ffffffffffffffff82111761319357604052565b634e487b7160e01b5f52604160045260245ffd5b90601f601f19910116810190811067ffffffffffffffff82111761319357604052565b67ffffffffffffffff811161319357601f01601f191660200190565b81601f82011215612705578035906131fd826131ca565b9261320b60405194856131a7565b8284526020838301011161270557815f926020809301838601378301015290565b9181601f840112156127055782359167ffffffffffffffff8311612705576020838186019501011161270557565b9181601f840112156127055782359167ffffffffffffffff8311612705576020808501948460051b01011161270557565b60206040818301928281528451809452019201905f5b8181106132ae5750505090565b82518452602093840193909201916001016132a1565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b60231960a0910112612705576040519061330282613177565b816024356001600160a01b03811681036127055781526044356001600160a01b038116810361270557602082015260643562ffffff811681036127055760408201526084358060020b810361270557606082015260a435906001600160a01b03821682036127055760800152565b60031960a0910112612705576040519061338982613177565b816004356001600160a01b03811681036127055781526024356001600160a01b038116810361270557602082015260443562ffffff811681036127055760408201526064358060020b8103612705576060820152608435906001600160a01b03821682036127055760800152565b610104356001600160a01b03811681036127055790565b6024356001600160a01b03811681036127055790565b60c4356001600160a01b03811681036127055790565b6044356001600160a01b03811681036127055790565b9190820391821161345d57565b634e487b7160e01b5f52601160045260245ffd5b6024356001600160a01b0381168091036127055781526044356001600160a01b03811680910361270557602082015260643562ffffff81168091036127055760408201526084358060020b80910361270557606082015260a435906001600160a01b0382168092036127055760800152565b6004356001600160a01b0381168091036127055781526024356001600160a01b03811680910361270557602082015260443562ffffff81168091036127055760408201526064358060020b809103612705576060820152608435906001600160a01b0382168092036127055760800152565b91939290936001600160a01b03610100840195168352602083015260408201906001600160a01b036135876024613163565b1682526001600160a01b0361359c6044613163565b16602083015260643562ffffff811681036127055762ffffff16604083015260843591600283900b83036127055760e09260020b606082015260806001600160a01b036135eb82602401613163565b169101521515910152565b6020818303126127055780519067ffffffffffffffff8211612705570181601f820112156127055780519061362a826131ca565b9261363860405194856131a7565b8284526020838301011161270557815f9260208093018386015e8301015290565b9190915f9260208180518101031261270557602001515f52600960205260405f20541461368257565b7f1626ba7e000000000000000000000000000000000000000000000000000000009150565b9190820180921161345d57565b5190811515820361270557565b51906001600160a01b038216820361270557565b67ffffffffffffffff81116131935760051b60200190565b91908260a09103126127055760405161370581613177565b8092613710816136c1565b825261371e602082016136c1565b6020830152604081015162ffffff811681036127055760408301526060810151908160020b82036127055760809160608401520151906001600160a01b03821682036127055760800152565b610100818303126127055761377e816136c1565b9261379d60e0613796602085015195604086016136ed565b93016136b4565b90565b9081015f9160408183031261270557803591600483101561270557602082013567ffffffffffffffff8111612705576137d992016131e6565b908061381357506137f6816020806137ff9451830101910161376a565b92919091614afd565b6040519061380e6020836131a7565b815290565b6001810361384057506138328160208061383b9451830101910161376a565b92919091614826565b6137ff565b91929160028103613d495750805181019060208181840193031261057f5760208101519067ffffffffffffffff821161057b57019281603f8501121561023b5760208401519161388f836136d5565b9461389d60405196876131a7565b8386526020860190602080839660051b8301010192831161057f57604001905b828210613d31575050506001600160a01b0360105416908115613d0957849392935194601f196139056138ef886136d5565b976138fd604051998a6131a7565b8089526136d5565b013660208801377f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b031693825b8251811015613c82576001600160a01b036139548285615593565b516040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152911660248201819052906020816044818b5afa908115613b8c578691613c4f575b506139bc6139cf918388526003602052604088205490613450565b828752600e602052604087205490613450565b90816139e0575b5050600101613939565b873b1561057757604051637a94c56560e11b815230600482015260248101829052604481018390528681606481838d5af18015613bb057908791613c3a575b505080613bd057873b1561057757604051630b0d9c0960e01b81526001600160a01b03919091166004820152306024820152604481018290528581606481838c5af18015613b8c57908691613bbb575b50506001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216803b15610577576040517fd0e30db0000000000000000000000000000000000000000000000000000000008152868160048186865af18015613bb05783918891613b97575b506040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038a16600482015260248101929092529091602091839160449183915af18015613b8c57613b4f575b50906001915b613b47828b615593565b52905f6139d6565b6020813d8211613b84575b81613b67602093836131a7565b810103126105775790613b7c600193926136b4565b509091613b37565b3d9150613b5a565b6040513d88823e3d90fd5b81925090613ba4916131a7565b6105775781865f613ae0565b6040513d89823e3d90fd5b81613bc5916131a7565b61057b57845f613a6f565b873b1561057757604051630b0d9c0960e01b81526001600160a01b0391821660048201529087166024820152604481018290528581606481838c5af18015613b8c57908691613c25575b505090600191613b3d565b81613c2f916131a7565b61057b57845f613c1a565b81613c44916131a7565b61057757855f613a1f565b90506020813d8211613c7a575b81613c69602093836131a7565b8101031261270557516139bc6139a1565b3d9150613c5c565b509594919092935060405192602084019060208552518091526040840192915b818110613cea57505050917f343ec735634cde6c74e128c9997c907fee57a10d2d60ddd6c6edd5b3deae436382611091959361379d950390a26040519283916020830161328b565b82516001600160a01b0316845260209384019390920191600101613ca2565b807f261bdb720000000000000000000000000000000000000000000000000000000060049252fd5b60208091613d3e846136c1565b8152019101906138bd565b919291600314613d5a575b506137ff565b8051810160c08282031261270557613d7a602060c09201602084016136ed565b910151906001600160a01b0382168092036127055760a0812090815f52600f60205260405f2060405191606083019183831067ffffffffffffffff841117613193576040928352549261ffff841681526effffffffffffffffffffffffffffff8460101c169384602083015260881c9283910152835f52600f60205260405f207fffffffffffffffffffffffffffffff000000000000000000000000000000ffff8154169055835f52600f60205260405f2070ffffffffffffffffffffffffffffffffff81541690556001600160a01b038151165f52600e60205260405f20613e64848254613450565b905560208101906001600160a01b038251165f52600e60205260405f20613e8c848254613450565b905583613fe2575b5081613ed2575b507f6af496ab2167a3cd8281d42f68c2b5789b2d3e1c627eda4ad62f7d63d3d350299160409182519182526020820152a35f613d54565b6001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9016906001600160a01b03815116823b15613fde57604051637a94c56560e11b8152306004820152602481019190915260448101849052878160648183875af18015613fd357908891613fbe575b5050516001600160a01b0316813b156105bc57604051630b0d9c0960e01b81526001600160a01b0391821660048201529086166024820152604481018390529086908290606490829084905af18015613b8c57908691613fa9575b50613e9b565b81613fb3916131a7565b61057b57845f613fa3565b81613fc8916131a7565b6105bc57865f613f48565b6040513d8a823e3d90fd5b8780fd5b6001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9016906001600160a01b03815116823b1561270557604051637a94c56560e11b81523060048201526024810191909152604481018690525f8160648183875af18015612cb8576140ca575b50516001600160a01b0316813b15613fde57604051630b0d9c0960e01b81526001600160a01b0391821660048201529087166024820152604481018590529087908290606490829084905af18015613bb0579087916140b5575b50613e94565b816140bf916131a7565b61057757855f6140af565b6140d79198505f906131a7565b5f966001600160a01b03614055565b604051906140f382613177565b5f6080838281528260208201528260408201528260608201520152565b9060405161411d81613177565b6080600182946001600160d01b031981546001600160a01b038116865265ffffffffffff8160a01c16602087015216604085015201546001600160801b0381166060840152811c910152565b61417460ff91615aea565b161561417c57565b7f47d88c52000000000000000000000000000000000000000000000000000000005f5260045ffd5b335f526e2fd5aeb385d324b580fca7c83823a033146141fc575b6dd9ecebf3c23529de49815dac1c4c33146141d8575f5190565b60205f80806dd9ecebf3c23529de49815dac1c4c5afa156141f8575f5190565b3838fd5b60205f80806e2fd5aeb385d324b580fca7c83823a05afa6141be573838fd5b65ffffffffffff61424c7f00000000000000000000000000000000000000000000000000000000015a23b243613450565b1691815f5260026020528265ffffffffffff60405f205416146145a157815f525f60205261427c60405f20614110565b92825f52600160205261429160405f20614110565b935f906142a35f965f925b8786615724565b93949b91929b9790979594801580614599575b61433357926001600160a01b0392826142a3989796956142e794911561432b575b509d8115614323575b50976136a7565b9616806142fa575b50509793929761429c565b5f52600460205260405f20895f5260205261431a60405f209182546136a7565b90555f806142ef565b90505f6142e0565b90505f6142d7565b509394965094989799505050614503575b5061446e575b50815f52600260205260405f20907fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000082541617905581614388575050565b6040519063a2a5669760e01b825260048201526020816024816001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1165afa8015612cb8576001600160a01b03915f9161443f575b501690813b15612705575f916024839260405194859384927f42966c6800000000000000000000000000000000000000000000000000000000845260048401525af18015612cb857614433575b50565b5f61443d916131a7565b565b614461915060203d602011614467575b61445981836131a7565b81019061543f565b5f6143e3565b503d61444f565b5f8381526001602081815260408084208551928601519186015160a09290921b79ffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092176001600160d01b0319909116178155606084015160809485015190941b6fffffffffffffffffffffffffffffffff19166001600160801b039094169390931792019190915561434a565b5f858152602081815260408083208451928501519185015160a09290921b79ffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092176001600160d01b0319909116178155606083015160809384015190931b6fffffffffffffffffffffffffffffffff19166001600160801b0390931692909217600190920191909155614344565b508c156142b6565b915050565b6145b362ffffff91615aea565b60881c16808260e81c111591826145c957505090565b60d01c62ffffff161115919050565b60017f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5c146146275760017f99d6ee9363d15a40a5ab48bebc5e3e7dd2c4e190c950f55fe724fad94b380d7e5d565b7fbb6b8f9a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f81033a18d648f105cf4834b06051c94a8095dbf3ba7aa3cb9e7baead1658f20a5c61467757565b7ffa64107f000000000000000000000000000000000000000000000000000000005f5260045ffd5b906001600160801b03169081156146bd576001600160801b03160690565b634e487b7160e01b5f52601260045260245ffd5b906001600160801b03809116911603906001600160801b03821161345d57565b906001600160801b03169081156146bd576001600160801b03160490565b6001600160a01b03168061472257504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115612cb8575f91614751575090565b90506020813d602011614778575b8161476c602093836131a7565b81010312612705575190565b3d915061475f565b60206001600160a01b03916024604051809481937ff135baaa0000000000000000000000000000000000000000000000000000000083527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab236004840152165afa908115612cb8575f916147f4575b50151590565b90506020813d60201161481e575b8161480f602093836131a7565b8101031261270557515f6147ee565b3d9150614802565b9291906001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a901690813b15612705576001600160a01b03604051957fa584119400000000000000000000000000000000000000000000000000000000875216908160048701525a955f816024818388819cf18015612cb857614ae8575b5081158015614a8c575b60049392919015614a83576020905b604051948580927f11da60b4000000000000000000000000000000000000000000000000000000008252865af1928315613b8c578693614a4f575b50813b15610577576040517f156e29f60000000000000000000000000000000000000000000000000000000081523060048201526024810191909152604481018390529085908290606490829084905af18015612bd357908591614a3a575b50506001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f11690813b1561057b57849283614a0c9360e49360405197889687957f63f7de6f00000000000000000000000000000000000000000000000000000000875260048701906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b151560a485015260c48401525af1801561058357614a28575050565b614a338280926131a7565b61023b5750565b81614a44916131a7565b61057f57835f61495c565b9092506020813d602011614a7b575b81614a6b602093836131a7565b810103126127055751915f6148fd565b3d9150614a5e565b506020866148c2565b83601452816034526fa9059cbb00000000000000000000000087526020876044601082875af18060018951141615614aca575b5060348790526148b3565b3d843b15171015614adb575f614abf565b6390b8ec1887526004601cfd5b614af59196505f906131a7565b5f945f6148a9565b90916001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f11690813b15612705576040517f23407c160000000000000000000000000000000000000000000000000000000081525f95614ba360048301846001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b151560a48201525f60c48201528460e48201525f6101048201525f816101248183875af18015612cb857614f12575b50813b1561057b57614c5460a486928360405195869485937f3fac650600000000000000000000000000000000000000000000000000000000855260048501906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b5af18015612c9657908491614efd575b50506001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90166001600160a01b03821691813b1561057b57604051637a94c56560e11b81523060048201526024810184905260448101859052858160648183875af18015613b8c57908691614ee8575b5050813b1561057b57604051630b0d9c0960e01b81526001600160a01b03919091166004820152306024820152604481018490529084908290606490829084905af18015612c9657908491614ed3575b505080614ec557506001600160a01b03807f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2165b16907f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba36040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152602081604481875afa908115612bd3579083918691614e90575b5010614de3575b50505050565b601452806034526f095ea7b300000000000000000000000083526020836044601082865af18060018551141615614e24575b5050506034525f808080614ddd565b3d833b15171015614e36575b80614e15565b826034526f095ea7b3000000000000000000000000835282386044601083865af1506034526020826044601082855af19081600184511416614e30573b153d171015614e83575f80614e30565b633e3f8f7390526004601cfd5b9150506020813d602011614ebd575b81614eac602093836131a7565b81010312612705578290515f614dd6565b3d9150614e9f565b6001600160a01b0390614d5e565b81614edd916131a7565b61032357825f614d2a565b81614ef2916131a7565b61057b57845f614cda565b81614f07916131a7565b61032357825f614c64565b614f1f9195505f906131a7565b5f935f614bd2565b906001600160801b03809116911601906001600160801b03821161345d57565b5f9586959094614f556141a4565b976001600160801b03851695861561519757614f708561421b565b821561518657845f525f60205260405f205b614f8b81614110565b6001600160a01b03815116976001600160a01b038d16988903612fa557614fbf906001600160801b03606084015116614f27565b6001600160801b03614fd1828661469f565b1615801590615163575b6130ba57614fe981856146f1565b6001600160801b0365ffffffffffff615000615b77565b16911610612f5557608084811b6fffffffffffffffffffffffffffffffff19166001600160801b0390921691909117600193909301929092550180516001600160801b03838116949116808511156150d2575050926001600160a01b039261509d6001600160801b037ff9f1ab7a2f5f90eeba49c837a758919739dc7e5ea102551b4251fb11552d57b297948160a0985116900316809d89615e86565b6040519889526020890152151560408801526001600160801b038a1660608801526001600160801b03891660808801521694a4565b91509a50808310615113575b50507ff9f1ab7a2f5f90eeba49c837a758919739dc7e5ea102551b4251fb11552d57b29260a0926001600160a01b039261509d565b036001600160801b031697507ff9f1ab7a2f5f90eeba49c837a758919739dc7e5ea102551b4251fb11552d57b29260a0926001600160a01b03926151588b8489615bb7565b9250928194506150de565b506001600160801b0361517589615cca565b166001600160801b03821610614fdb565b845f52600160205260405f20614f82565b505f9850889750505050505050565b638b78c6d8195433036151b557565b6382b429005f526004601cfd5b4661a4b10361520c576040517fa3b1b31d00000000000000000000000000000000000000000000000000000000815260208160048160645afa908115612cb8575f91614751575090565b4390565b63ffffffff82169182156152a15763ffffffff84169283111561529a575b8263ffffffff8216106152415750505090565b62ffffff8110156152865760018163ffffffff928401827fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000825416179055011661522e565b634e487b7160e01b5f52603260045260245ffd5b9250505090565b7fab7760cc000000000000000000000000000000000000000000000000000000005f5260045ffd5b91906001600160a01b036152db6141a4565b16805f52600560205260405f206001600160a01b0385165f5260205260405f2054938415615437576001600160a01b0390825f52600560205260405f208282165f526020525f604081205516805f52600360205260405f208581540390556040517f095bcdb60000000000000000000000000000000000000000000000000000000081526020818061538c898689600485016040919493926001600160a01b03606083019616825260208201520152565b03815f6001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90165af18015612cb8576153fe575b507fee447878094bcc87bd81b55e4831b5e9e3d095866fce10f4f7e4caa64ea7a55860206001600160a01b03604051958887521694a4565b6020813d60201161542f575b81615417602093836131a7565b8101031261270557615428906136b4565b505f6153c6565b3d915061540a565b505f93505050565b9081602091031261270557516001600160a01b03811681036127055790565b6154666141a4565b906040519063a2a5669760e01b825260048201526020816024816001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1165afa8015612cb8576001600160a01b03915f91615574575b50169081159182156154d7575b5050612d2f57565b6004919250602090604051928380927f8da5cb5b0000000000000000000000000000000000000000000000000000000082525afa908115612cb8575f91615530575b506001600160a01b03809116911614155f806154cf565b90506020813d60201161556c575b8161554b602093836131a7565b81010312612705576001600160a01b0361556581926136c1565b9150615519565b3d915061553e565b61558d915060203d6020116144675761445981836131a7565b5f6154c2565b80518210156152865760209160051b010190565b906001600160801b03809116911602906001600160801b03821691820361345d57565b906155d36140e6565b506155dc6140e6565b5065ffffffffffff6156166155ef6151c2565b7f00000000000000000000000000000000000000000000000000000000015a23b290613450565b1690825f525f60205261562b60405f20614110565b92805f52600160205261564060405f20614110565b92815f5260026020528065ffffffffffff60405f20541614615683575b92819461566a9285615724565b50505090959294919495159081615687575b501561565d575b5050565b9050155f61567c565b91906001600160a01b036156a26141a4565b6156ab8561421b565b16805f52600460205260405f20845f5260205260405f205493841561543757815f52600460205260405f20815f526020525f60408120556156ed858483615bb7565b7fb50cab7f3cadbfcd988880bdb754510d79ca993ead3b8c09b58559769f6d920660206001600160a01b03604051958887521694a4565b91929390506157316140e6565b5061573a6140e6565b505f925f925f925f925f9261574d615b77565b89516001600160a01b031661585e57506001600160a01b03825116615778575b505b96959493929190565b929490602081989398016001600160801b036157a865ffffffffffff8084511688031682606086015116906155a7565b169060808301956001600160801b038751168310155f14615807575050505050506001600160801b03905116916040516157e181613177565b5f81525f60208201525f60408201525f60608201525f6080820152946001955b5f61576d565b909192939795839a959a61581f575b50505050615801565b90919399508297506001600160801b0361584c61584365ffffffffffff959a615f8c565b828451166146d1565b1690521690526001955f808080615816565b90896001600160a01b03845116155f146158d6579065ffffffffffff602081930193818551160116918291161015615898575b505061576f565b939892975095505093526040516158ae81613177565b5f81525f60208201525f60408201525f60608201525f60808201529460019485945f80615891565b9790966001600160801b036159428160608c9d96989d015116878b88606081019361590387865116615f54565b109e8f15615acd5765ffffffffffff8793818096816020818082819a015116809603169601511601160316818110908218021816925b511691166155a7565b168b60808601916001600160801b038351168110155f146159ea575050505050506001600160801b03608065ffffffffffff9201511694828960405161598781613177565b5f81525f60208201525f60408201525f60608201525f6080820152985f146159e35760200151918316918316018216818118908211021881165b8160208a0193818551169203168181119082180218169052600194859461576f565b50506159c1565b809c97949b939a92959c615a8b575b509065ffffffffffff602081949301948186511601169283911610159081615a83575b50615a2a575b50505061576f565b945096509793506001600160801b039196506001600160a01b0390511696511695919352604051615a5a81613177565b5f81525f60208201525f60408201525f60608201525f60808201529460019485945f8080615a22565b90505f615a1c565b99509a509065ffffffffffff916001600160801b03615ab5615aac8c615f8c565b828851166146d1565b168552808316602087015260019b91929091906159f9565b5065ffffffffffff92508591836020819301511690031692615939565b604051907f129f38ea00000000000000000000000000000000000000000000000000000000825260048201525f816024816001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1165afa8015612cb8576020915f91615b5d575b50015190565b615b7191503d805f833e6111cc81836131a7565b5f615b57565b60135465ffffffffffff811665ffffffffffff8260301c16918183119081615ba9575b5015615ba4575090565b905090565b905060601c4310155f615b9a565b90916040519163a2a5669760e01b835260048301526020826024816001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1165afa8015612cb857615c67936020935f92615cab575b505f6001600160a01b036040518097819682957fa9059cbb00000000000000000000000000000000000000000000000000000000845260048401602090939291936001600160a01b0360408201951681520152565b0393165af18015612cb857615c795750565b6020813d602011615ca3575b81615c92602093836131a7565b8101031261270557614430906136b4565b3d9150615c85565b615cc3919250843d86116144675761445981836131a7565b905f615c12565b6001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f116906040517f129f38ea0000000000000000000000000000000000000000000000000000000081528160048201525f81602481865afa8015612cb857604065ffffffffffff916020935f91615e6c575b50015160b01c169160246040518095819363a2a5669760e01b835260048301525afa918215612cb8576001600160a01b03926020915f91615e4f575b506004604051809581937f18160ddd000000000000000000000000000000000000000000000000000000008352165afa918215612cb8575f92615e1b575b508082029181830403615e04575b50670de0b6b3a764000080820615159104016001600160801b03811115615df857506001600160801b0390565b6001600160801b031690565b615e0e575f615dcb565b63bac65e5b5f526004601cfd5b9091506020813d602011615e47575b81615e37602093836131a7565b810103126127055751905f615dbd565b3d9150615e2a565b615e669150823d84116144675761445981836131a7565b5f615d7f565b615e8091503d805f833e6111cc81836131a7565b5f615d43565b6040519063a2a5669760e01b825260048201526020816024816001600160a01b037f000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1165afa908115612cb8576020925f6001600160a01b0380946064948391615f37575b5060405197889687957f23b872dd0000000000000000000000000000000000000000000000000000000087521660048601523060248601526044850152165af18015612cb857615c795750565b615f4e9150873d89116144675761445981836131a7565b5f615eea565b7810c50f78edb1e1d81828a2cb16cd80b4a2de5ba4dce252a7ef8111615e0e57670f43fc2c04ee0000670de0b6b3a764000091020490565b700100000000000000000000000000000000811015615fb1576001600160801b031690565b6335278d125f526004601cfdfea2646970667358221220637b3f70d933416155ce31ee0906ec1177114618ff92a321f72d7e58102e833e64736f6c634300081e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f10000000000000000000000000000000000f0d1c07ca806ab9154199e2e627ea6000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000ff3ba1257149f69cd0d22263dd0a14ea0000000000000000000000009a8fee232dcf73060af348a1b62cdb0a19852d13000000000000000000000000cef02dff42ac3b2462dd4ebb509c29fcf331a49c0000000000000000000000000000000000000000000000000000000000000e10

-----Decoded View---------------
Arg [0] : poolManager_ (address): 0x000000000004444c5dc75cB358380D2e3dE08A90
Arg [1] : hub_ (address): 0x000000000049C7bcBCa294E63567b4D21EB765f1
Arg [2] : floodPlain_ (address): 0x0000000000f0D1C07cA806aB9154199E2E627Ea6
Arg [3] : weth_ (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [4] : floodZone_ (address): 0x00000000Ff3ba1257149f69CD0d22263DD0A14ea
Arg [5] : owner_ (address): 0x9a8FEe232DCF73060Af348a1B62Cdb0a19852d13
Arg [6] : hookFeeRecipientController_ (address): 0xceF02dff42ac3b2462DD4ebB509c29fCF331A49c
Arg [7] : k_ (uint48): 3600

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
Arg [1] : 000000000000000000000000000000000049c7bcbca294e63567b4d21eb765f1
Arg [2] : 0000000000000000000000000000000000f0d1c07ca806ab9154199e2e627ea6
Arg [3] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [4] : 00000000000000000000000000000000ff3ba1257149f69cd0d22263dd0a14ea
Arg [5] : 0000000000000000000000009a8fee232dcf73060af348a1b62cdb0a19852d13
Arg [6] : 000000000000000000000000cef02dff42ac3b2462dd4ebb509c29fcf331a49c
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000e10

🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.