{"abi":[{"type":"function","name":"afterAddLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"delta","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterDonate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterInitialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint160","internalType":"uint160"},{"name":"","type":"int24","internalType":"int24"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterRemoveLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"delta","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int128","internalType":"int128"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeAddLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeDonate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeInitialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeRemoveLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BeforeSwapDelta"},{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"nonpayable"},{"type":"function","name":"clearDeltas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deltas","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"view"},{"type":"function","name":"numberDeltasReturned","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAddresses","inputs":[{"name":"_posm","type":"address","internalType":"contract IPositionManager"},{"name":"_permit2","type":"address","internalType":"contract IAllowanceTransfer"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"HookNotImplemented","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50610f748061001c5f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806390107afe11610088578063b6a8b0fa11610063578063b6a8b0fa146102d6578063d934d2f7146102e4578063dc98354e146102f7578063e1b4af69146102d6575f80fd5b806390107afe146102145780639f063efc14610275578063b47b2fb114610288575f80fd5b806357c5b148116100c357806357c5b1481461019b578063623ea21a146101ac5780636c2bbe7e146101b65780636fe7e6eb14610201575f80fd5b806321d0ee70146100e9578063259982e514610132578063575e24b414610145575b5f80fd5b6100fc6100f736600461090d565b610305565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100fc61014036600461090d565b6103d1565b610158610153366004610994565b61049d565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff1690820152606001610129565b5f545b604051908152602001610129565b6101b4610592565b005b6101c96101c43660046109ee565b61059e565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352602083019190915201610129565b6100fc61020f366004610a79565b610605565b6101b4610222366004610ad8565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b6101c96102833660046109ee565b610638565b61029b610296366004610b0f565b61069f565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b602083015201610129565b6100fc61020f366004610b90565b61019e6102f2366004610bea565b6106d3565b6100fc61020f366004610c01565b5f81156103a6575f8061031a84860186610d4e565b6001546040517f4afe393c00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff1690634afe393c906103769085908590600401610e93565b5f604051808303815f87803b15801561038d575f80fd5b505af115801561039f573d5f803e3d5ffd5b5050505050505b507f21d0ee700000000000000000000000000000000000000000000000000000000095945050505050565b5f8115610472575f806103e684860186610d4e565b6001546040517f4afe393c00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff1690634afe393c906104429085908590600401610e93565b5f604051808303815f87803b158015610459575f80fd5b505af115801561046b573d5f803e3d5ffd5b5050505050505b507f259982e50000000000000000000000000000000000000000000000000000000095945050505050565b5f80806104b56104b06020890189610f26565b6106f1565b6104c86104b06040890160208a01610f26565b5f806104d686880188610d4e565b6001546040517f4afe393c00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff1690634afe393c906105329085908590600401610e93565b5f604051808303815f87803b158015610549575f80fd5b505af115801561055b573d5f803e3d5ffd5b507f575e24b4000000000000000000000000000000000000000000000000000000009d5f9d508d9c509a5050505050505050505050565b61059c5f8061084b565b565b5f806105d5865f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b507f6c2bbe7e00000000000000000000000000000000000000000000000000000000985f98509650505050505050565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061066f865f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b507f9f063efc00000000000000000000000000000000000000000000000000000000985f98509650505050505050565b5f806040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81815481106106e1575f80fd5b5f91825260209091200154905081565b6002546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529082169063095ea7b3906044016020604051808303815f875af1158015610786573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107aa9190610f48565b506002546001546040517f87517c4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291821660248201526044810182905265ffffffffffff60648201529116906387517c45906084015f604051808303815f87803b158015610832575f80fd5b505af1158015610844573d5f803e3d5ffd5b5050505050565b5080545f8255905f5260205f20908101906108669190610869565b50565b5b8082111561087d575f815560010161086a565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114610866575f80fd5b5f60a082840312156108b2575f80fd5b50919050565b5f608082840312156108b2575f80fd5b5f8083601f8401126108d8575f80fd5b50813567ffffffffffffffff8111156108ef575f80fd5b602083019150836020828501011115610906575f80fd5b9250929050565b5f805f805f6101608688031215610922575f80fd5b853561092d81610881565b945061093c87602088016108a2565b935061094b8760c088016108b8565b925061014086013567ffffffffffffffff811115610967575f80fd5b610973888289016108c8565b969995985093965092949392505050565b5f606082840312156108b2575f80fd5b5f805f805f61014086880312156109a9575f80fd5b85356109b481610881565b94506109c387602088016108a2565b93506109d28760c08801610984565b925061012086013567ffffffffffffffff811115610967575f80fd5b5f805f805f805f6101a0888a031215610a05575f80fd5b8735610a1081610881565b9650610a1f8960208a016108a2565b9550610a2e8960c08a016108b8565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115610a5a575f80fd5b610a668a828b016108c8565b989b979a50959850939692959293505050565b5f805f806101008587031215610a8d575f80fd5b8435610a9881610881565b9350610aa786602087016108a2565b925060c0850135610ab781610881565b915060e0850135600281900b8114610acd575f80fd5b939692955090935050565b5f8060408385031215610ae9575f80fd5b8235610af481610881565b91506020830135610b0481610881565b809150509250929050565b5f805f805f806101608789031215610b25575f80fd5b8635610b3081610881565b9550610b3f88602089016108a2565b9450610b4e8860c08901610984565b9350610120870135925061014087013567ffffffffffffffff811115610b72575f80fd5b610b7e89828a016108c8565b979a9699509497509295939492505050565b5f805f805f806101208789031215610ba6575f80fd5b8635610bb181610881565b9550610bc088602089016108a2565b945060c0870135935060e0870135925061010087013567ffffffffffffffff811115610b72575f80fd5b5f60208284031215610bfa575f80fd5b5035919050565b5f805f60e08486031215610c13575f80fd5b8335610c1e81610881565b9250610c2d85602086016108a2565b915060c0840135610c3d81610881565b809150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610cbc57610cbc610c48565b604052919050565b5f82601f830112610cd3575f80fd5b813567ffffffffffffffff811115610ced57610ced610c48565b610d1e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610c75565b818152846020838601011115610d32575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610d5f575f80fd5b823567ffffffffffffffff811115610d75575f80fd5b610d8185828601610cc4565b925050602083013567ffffffffffffffff811115610d9d575f80fd5b8301601f81018513610dad575f80fd5b803567ffffffffffffffff811115610dc757610dc7610c48565b8060051b610dd760208201610c75565b91825260208184018101929081019088841115610df2575f80fd5b6020850192505b83831015610e3857823567ffffffffffffffff811115610e17575f80fd5b610e268a602083890101610cc4565b83525060209283019290910190610df9565b80955050505050509250929050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b604081525f610ea56040830185610e47565b828103602084015280845180835260208301915060208160051b840101602087015f5b83811015610f18577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403018552610f02838351610e47565b6020958601959093509190910190600101610ec8565b509098975050505050505050565b5f60208284031215610f36575f80fd5b8135610f4181610881565b9392505050565b5f60208284031215610f58575f80fd5b81518015158114610f41575f80fdfea164736f6c634300081a000a","sourceMap":"1031:2349:252:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806390107afe11610088578063b6a8b0fa11610063578063b6a8b0fa146102d6578063d934d2f7146102e4578063dc98354e146102f7578063e1b4af69146102d6575f80fd5b806390107afe146102145780639f063efc14610275578063b47b2fb114610288575f80fd5b806357c5b148116100c357806357c5b1481461019b578063623ea21a146101ac5780636c2bbe7e146101b65780636fe7e6eb14610201575f80fd5b806321d0ee70146100e9578063259982e514610132578063575e24b414610145575b5f80fd5b6100fc6100f736600461090d565b610305565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100fc61014036600461090d565b6103d1565b610158610153366004610994565b61049d565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff1690820152606001610129565b5f545b604051908152602001610129565b6101b4610592565b005b6101c96101c43660046109ee565b61059e565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352602083019190915201610129565b6100fc61020f366004610a79565b610605565b6101b4610222366004610ad8565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b6101c96102833660046109ee565b610638565b61029b610296366004610b0f565b61069f565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b602083015201610129565b6100fc61020f366004610b90565b61019e6102f2366004610bea565b6106d3565b6100fc61020f366004610c01565b5f81156103a6575f8061031a84860186610d4e565b6001546040517f4afe393c00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff1690634afe393c906103769085908590600401610e93565b5f604051808303815f87803b15801561038d575f80fd5b505af115801561039f573d5f803e3d5ffd5b5050505050505b507f21d0ee700000000000000000000000000000000000000000000000000000000095945050505050565b5f8115610472575f806103e684860186610d4e565b6001546040517f4afe393c00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff1690634afe393c906104429085908590600401610e93565b5f604051808303815f87803b158015610459575f80fd5b505af115801561046b573d5f803e3d5ffd5b5050505050505b507f259982e50000000000000000000000000000000000000000000000000000000095945050505050565b5f80806104b56104b06020890189610f26565b6106f1565b6104c86104b06040890160208a01610f26565b5f806104d686880188610d4e565b6001546040517f4afe393c00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff1690634afe393c906105329085908590600401610e93565b5f604051808303815f87803b158015610549575f80fd5b505af115801561055b573d5f803e3d5ffd5b507f575e24b4000000000000000000000000000000000000000000000000000000009d5f9d508d9c509a5050505050505050505050565b61059c5f8061084b565b565b5f806105d5865f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b507f6c2bbe7e00000000000000000000000000000000000000000000000000000000985f98509650505050505050565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061066f865f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b507f9f063efc00000000000000000000000000000000000000000000000000000000985f98509650505050505050565b5f806040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81815481106106e1575f80fd5b5f91825260209091200154905081565b6002546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529082169063095ea7b3906044016020604051808303815f875af1158015610786573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107aa9190610f48565b506002546001546040517f87517c4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291821660248201526044810182905265ffffffffffff60648201529116906387517c45906084015f604051808303815f87803b158015610832575f80fd5b505af1158015610844573d5f803e3d5ffd5b5050505050565b5080545f8255905f5260205f20908101906108669190610869565b50565b5b8082111561087d575f815560010161086a565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114610866575f80fd5b5f60a082840312156108b2575f80fd5b50919050565b5f608082840312156108b2575f80fd5b5f8083601f8401126108d8575f80fd5b50813567ffffffffffffffff8111156108ef575f80fd5b602083019150836020828501011115610906575f80fd5b9250929050565b5f805f805f6101608688031215610922575f80fd5b853561092d81610881565b945061093c87602088016108a2565b935061094b8760c088016108b8565b925061014086013567ffffffffffffffff811115610967575f80fd5b610973888289016108c8565b969995985093965092949392505050565b5f606082840312156108b2575f80fd5b5f805f805f61014086880312156109a9575f80fd5b85356109b481610881565b94506109c387602088016108a2565b93506109d28760c08801610984565b925061012086013567ffffffffffffffff811115610967575f80fd5b5f805f805f805f6101a0888a031215610a05575f80fd5b8735610a1081610881565b9650610a1f8960208a016108a2565b9550610a2e8960c08a016108b8565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115610a5a575f80fd5b610a668a828b016108c8565b989b979a50959850939692959293505050565b5f805f806101008587031215610a8d575f80fd5b8435610a9881610881565b9350610aa786602087016108a2565b925060c0850135610ab781610881565b915060e0850135600281900b8114610acd575f80fd5b939692955090935050565b5f8060408385031215610ae9575f80fd5b8235610af481610881565b91506020830135610b0481610881565b809150509250929050565b5f805f805f806101608789031215610b25575f80fd5b8635610b3081610881565b9550610b3f88602089016108a2565b9450610b4e8860c08901610984565b9350610120870135925061014087013567ffffffffffffffff811115610b72575f80fd5b610b7e89828a016108c8565b979a9699509497509295939492505050565b5f805f805f806101208789031215610ba6575f80fd5b8635610bb181610881565b9550610bc088602089016108a2565b945060c0870135935060e0870135925061010087013567ffffffffffffffff811115610b72575f80fd5b5f60208284031215610bfa575f80fd5b5035919050565b5f805f60e08486031215610c13575f80fd5b8335610c1e81610881565b9250610c2d85602086016108a2565b915060c0840135610c3d81610881565b809150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610cbc57610cbc610c48565b604052919050565b5f82601f830112610cd3575f80fd5b813567ffffffffffffffff811115610ced57610ced610c48565b610d1e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610c75565b818152846020838601011115610d32575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610d5f575f80fd5b823567ffffffffffffffff811115610d75575f80fd5b610d8185828601610cc4565b925050602083013567ffffffffffffffff811115610d9d575f80fd5b8301601f81018513610dad575f80fd5b803567ffffffffffffffff811115610dc757610dc7610c48565b8060051b610dd760208201610c75565b91825260208184018101929081019088841115610df2575f80fd5b6020850192505b83831015610e3857823567ffffffffffffffff811115610e17575f80fd5b610e268a602083890101610cc4565b83525060209283019290910190610df9565b80955050505050509250929050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b604081525f610ea56040830185610e47565b828103602084015280845180835260208301915060208160051b840101602087015f5b83811015610f18577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403018552610f02838351610e47565b6020958601959093509190910190600101610ec8565b509098975050505050505050565b5f60208284031215610f36575f80fd5b8135610f4181610881565b9392505050565b5f60208284031215610f58575f80fd5b81518015158114610f41575f80fdfea164736f6c634300081a000a","sourceMap":"1031:2349:252:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:497;;;;;;:::i;:::-;;:::i;:::-;;;1869:66:262;1857:79;;;1839:98;;1827:2;1812:18;2365:497:252;;;;;;;;1868:491;;;;;;:::i;:::-;;:::i;1293:569::-;;;;;;:::i;:::-;;:::i;:::-;;;;3187:66:262;3175:79;;;3157:98;;3286:2;3271:18;;3264:34;;;;3346:8;3334:21;3314:18;;;3307:49;3145:2;3130:18;1293:569:252;2923:439:262;1594:101:253;1649:7;1675:13;1594:101;;;3513:25:262;;;3501:2;3486:18;1594:101:253;3367:177:262;1701:62:253;;;:::i;:::-;;1062:435;;;;;;:::i;:::-;;:::i;:::-;;;;4928:66:262;4916:79;;;4898:98;;5027:2;5012:18;;5005:34;;;;4871:18;1062:435:253;4693:352:262;710:241:107;;;;;;:::i;:::-;;:::i;1146:141:252:-;;;;;;:::i;:::-;1240:4;:12;;;;;;;;;;;;;;1262:7;:18;;;;;;;;;;;1146:141;626:430:253;;;;;;:::i;:::-;;:::i;2541:297:107:-;;;;;;:::i;:::-;;:::i;:::-;;;;7354:66:262;7342:79;;;7324:98;;7469:2;7458:22;;;;7453:2;7438:18;;7431:50;7297:18;2541:297:107;7154:333:262;2844:278:107;;;;;;:::i;591:28:253:-;;;;;;:::i;:::-;;:::i;490:214:107:-;;;;;;:::i;2365:497:252:-;2584:6;2606:19;;2602:202;;2642:20;;2689:38;;;;2700:8;2689:38;:::i;:::-;2741:4;;:52;;;;;2641:86;;-1:-1:-1;2641:86:252;;-1:-1:-1;2741:4:252;;;:35;;:52;;2641:86;;;;2741:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2627:177;;2602:202;-1:-1:-1;2820:35:252;2365:497;;;;;;;:::o;1868:491::-;2084:6;2106:19;;2102:202;;2142:20;;2189:38;;;;2200:8;2189:38;:::i;:::-;2241:4;;:52;;;;;2141:86;;-1:-1:-1;2141:86:252;;-1:-1:-1;2241:4:252;;;:35;;:52;;2141:86;;;;2241:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2127:177;;2102:202;-1:-1:-1;2320:32:252;1868:491;;;;;;;:::o;1293:569::-;1494:6;;;1537:34;1557:13;;;;:3;:13;:::i;:::-;1537:19;:34::i;:::-;1581;1601:13;;;;;;;;:::i;1581:34::-;1627:20;;1674:38;;;;1685:8;1674:38;:::i;:::-;1722:4;;:52;;;;;1626:86;;-1:-1:-1;1626:86:252;;-1:-1:-1;1722:4:252;;;:35;;:52;;1626:86;;;;1722:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1792:24:252;;830:1:119;;-1:-1:-1;830:1:119;;-1:-1:-1;1293:569:252;-1:-1:-1;;;;;;;;;;;1293:569:252:o;1701:62:253:-;1743:13;1750:6;;1743:13;:::i;:::-;1701:62::o;1062:435::-;1355:6;1363:12;1387:18;1399:5;1563:6;:18;;;;;;;;;;;;;1503:85;1387:18;-1:-1:-1;1423:34:253;;1949:1:118;;-1:-1:-1;1062:435:253;-1:-1:-1;;;;;;;1062:435:253:o;710:241:107:-;899:6;924:20;;;;;;;;;;;;;;626:430:253;917:6;925:12;949:18;961:5;1563:6;:18;;;;;;;;;;;;;1503:85;949:18;-1:-1:-1;985:31:253;;1949:1:118;;-1:-1:-1;626:430:253;-1:-1:-1;;;;;;;626:430:253:o;2541:297:107:-;2778:6;2786;2811:20;;;;;;;;;;;;;;591:28:253;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;591:28:253;:::o;2868:510:252:-;3127:7;;3077:78;;;;;:41;3127:7;;;3077:78;;;13623:74:262;3137:17:252;13713:18:262;;;13706:34;3077:41:252;;;;;;13596:18:262;;3077:78:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3277:7:252;;;3328:4;3277:94;;;;;:7;14280:55:262;;;3277:94:252;;;14262:74:262;3328:4:252;;;14352:18:262;;;14345:83;14444:18;;;14437:83;;;3354:16:252;14536:18:262;;;14529:55;3277:7:252;;;:15;;14234:19:262;;3277:94:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:510;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;14:154:262:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:156;233:5;278:3;269:6;264:3;260:16;256:26;253:46;;;295:1;292;285:12;253:46;-1:-1:-1;317:6:262;173:156;-1:-1:-1;173:156:262:o;334:170::-;408:5;453:3;444:6;439:3;435:16;431:26;428:46;;;470:1;467;460:12;509:347;560:8;570:6;624:3;617:4;609:6;605:17;601:27;591:55;;642:1;639;632:12;591:55;-1:-1:-1;665:20:262;;708:18;697:30;;694:50;;;740:1;737;730:12;694:50;777:4;769:6;765:17;753:29;;829:3;822:4;813:6;805;801:19;797:30;794:39;791:59;;;846:1;843;836:12;791:59;509:347;;;;;:::o;861:829::-;1028:6;1036;1044;1052;1060;1113:3;1101:9;1092:7;1088:23;1084:33;1081:53;;;1130:1;1127;1120:12;1081:53;1169:9;1156:23;1188:31;1213:5;1188:31;:::i;:::-;1238:5;-1:-1:-1;1262:63:262;1317:7;1312:2;1297:18;;1262:63;:::i;:::-;1252:73;;1344:78;1414:7;1408:3;1397:9;1393:19;1344:78;:::i;:::-;1334:88;;1473:3;1462:9;1458:19;1445:33;1501:18;1493:6;1490:30;1487:50;;;1533:1;1530;1523:12;1487:50;1572:58;1622:7;1613:6;1602:9;1598:22;1572:58;:::i;:::-;861:829;;;;-1:-1:-1;861:829:262;;-1:-1:-1;1649:8:262;;1546:84;861:829;-1:-1:-1;;;861:829:262:o;1948:158::-;2011:5;2056:2;2047:6;2042:3;2038:16;2034:25;2031:45;;;2072:1;2069;2062:12;2111:807;2267:6;2275;2283;2291;2299;2352:3;2340:9;2331:7;2327:23;2323:33;2320:53;;;2369:1;2366;2359:12;2320:53;2408:9;2395:23;2427:31;2452:5;2427:31;:::i;:::-;2477:5;-1:-1:-1;2501:63:262;2556:7;2551:2;2536:18;;2501:63;:::i;:::-;2491:73;;2583:67;2642:7;2636:3;2625:9;2621:19;2583:67;:::i;:::-;2573:77;;2701:3;2690:9;2686:19;2673:33;2729:18;2721:6;2718:30;2715:50;;;2761:1;2758;2751:12;3549:1139;3802:6;3810;3818;3826;3834;3842;3850;3903:3;3891:9;3882:7;3878:23;3874:33;3871:53;;;3920:1;3917;3910:12;3871:53;3959:9;3946:23;3978:31;4003:5;3978:31;:::i;:::-;4028:5;-1:-1:-1;4052:63:262;4107:7;4102:2;4087:18;;4052:63;:::i;:::-;4042:73;;4134:78;4204:7;4198:3;4187:9;4183:19;4134:78;:::i;:::-;4124:88;-1:-1:-1;4285:3:262;4270:19;;4257:33;;-1:-1:-1;4389:3:262;4374:19;;4361:33;;-1:-1:-1;4471:3:262;4456:19;;4443:33;4499:18;4488:30;;4485:50;;;4531:1;4528;4521:12;4485:50;4570:58;4620:7;4611:6;4600:9;4596:22;4570:58;:::i;:::-;3549:1139;;;;-1:-1:-1;3549:1139:262;;-1:-1:-1;3549:1139:262;;;;4544:84;;-1:-1:-1;;;3549:1139:262:o;5050:687::-;5162:6;5170;5178;5186;5239:3;5227:9;5218:7;5214:23;5210:33;5207:53;;;5256:1;5253;5246:12;5207:53;5295:9;5282:23;5314:31;5339:5;5314:31;:::i;:::-;5364:5;-1:-1:-1;5388:63:262;5443:7;5438:2;5423:18;;5388:63;:::i;:::-;5378:73;;5503:3;5492:9;5488:19;5475:33;5517;5542:7;5517:33;:::i;:::-;5569:7;-1:-1:-1;5628:3:262;5613:19;;5600:33;5675:1;5664:22;;;5652:35;;5642:63;;5701:1;5698;5691:12;5642:63;5050:687;;;;-1:-1:-1;5050:687:262;;-1:-1:-1;;5050:687:262:o;5742:440::-;5862:6;5870;5923:2;5911:9;5902:7;5898:23;5894:32;5891:52;;;5939:1;5936;5929:12;5891:52;5978:9;5965:23;5997:31;6022:5;5997:31;:::i;:::-;6047:5;-1:-1:-1;6104:2:262;6089:18;;6076:32;6117:33;6076:32;6117:33;:::i;:::-;6169:7;6159:17;;;5742:440;;;;;:::o;6187:962::-;6386:6;6394;6402;6410;6418;6426;6479:3;6467:9;6458:7;6454:23;6450:33;6447:53;;;6496:1;6493;6486:12;6447:53;6535:9;6522:23;6554:31;6579:5;6554:31;:::i;:::-;6604:5;-1:-1:-1;6628:63:262;6683:7;6678:2;6663:18;;6628:63;:::i;:::-;6618:73;;6710:67;6769:7;6763:3;6752:9;6748:19;6710:67;:::i;:::-;6700:77;-1:-1:-1;6850:3:262;6835:19;;6822:33;;-1:-1:-1;6932:3:262;6917:19;;6904:33;6960:18;6949:30;;6946:50;;;6992:1;6989;6982:12;6946:50;7031:58;7081:7;7072:6;7061:9;7057:22;7031:58;:::i;:::-;6187:962;;;;-1:-1:-1;6187:962:262;;-1:-1:-1;6187:962:262;;7108:8;;6187:962;-1:-1:-1;;;6187:962:262:o;7492:915::-;7626:6;7634;7642;7650;7658;7666;7719:3;7707:9;7698:7;7694:23;7690:33;7687:53;;;7736:1;7733;7726:12;7687:53;7775:9;7762:23;7794:31;7819:5;7794:31;:::i;:::-;7844:5;-1:-1:-1;7868:63:262;7923:7;7918:2;7903:18;;7868:63;:::i;:::-;7858:73;-1:-1:-1;8004:3:262;7989:19;;7976:33;;-1:-1:-1;8108:3:262;8093:19;;8080:33;;-1:-1:-1;8190:3:262;8175:19;;8162:33;8218:18;8207:30;;8204:50;;;8250:1;8247;8240:12;8412:226;8471:6;8524:2;8512:9;8503:7;8499:23;8495:32;8492:52;;;8540:1;8537;8530:12;8492:52;-1:-1:-1;8585:23:262;;8412:226;-1:-1:-1;8412:226:262:o;8858:517::-;8963:6;8971;8979;9032:3;9020:9;9011:7;9007:23;9003:33;9000:53;;;9049:1;9046;9039:12;9000:53;9088:9;9075:23;9107:31;9132:5;9107:31;:::i;:::-;9157:5;-1:-1:-1;9181:63:262;9236:7;9231:2;9216:18;;9181:63;:::i;:::-;9171:73;;9296:3;9285:9;9281:19;9268:33;9310;9335:7;9310:33;:::i;:::-;9362:7;9352:17;;;8858:517;;;;;:::o;9380:184::-;9432:77;9429:1;9422:88;9529:4;9526:1;9519:15;9553:4;9550:1;9543:15;9569:334;9640:2;9634:9;9696:2;9686:13;;9701:66;9682:86;9670:99;;9799:18;9784:34;;9820:22;;;9781:62;9778:88;;;9846:18;;:::i;:::-;9882:2;9875:22;9569:334;;-1:-1:-1;9569:334:262:o;9908:617::-;9950:5;10003:3;9996:4;9988:6;9984:17;9980:27;9970:55;;10021:1;10018;10011:12;9970:55;10061:6;10048:20;10091:18;10083:6;10080:30;10077:56;;;10113:18;;:::i;:::-;10157:118;10269:4;10200:66;10193:4;10185:6;10181:17;10177:90;10173:101;10157:118;:::i;:::-;10300:6;10291:7;10284:23;10354:3;10347:4;10338:6;10330;10326:19;10322:30;10319:39;10316:59;;;10371:1;10368;10361:12;10316:59;10436:6;10429:4;10421:6;10417:17;10410:4;10401:7;10397:18;10384:59;10492:1;10463:20;;;10485:4;10459:31;10452:42;;;;10467:7;9908:617;-1:-1:-1;;;9908:617:262:o;10530:1315::-;10641:6;10649;10702:2;10690:9;10681:7;10677:23;10673:32;10670:52;;;10718:1;10715;10708:12;10670:52;10758:9;10745:23;10791:18;10783:6;10780:30;10777:50;;;10823:1;10820;10813:12;10777:50;10846:49;10887:7;10878:6;10867:9;10863:22;10846:49;:::i;:::-;10836:59;;;10948:2;10937:9;10933:18;10920:32;10977:18;10967:8;10964:32;10961:52;;;11009:1;11006;10999:12;10961:52;11032:24;;11087:4;11079:13;;11075:27;-1:-1:-1;11065:55:262;;11116:1;11113;11106:12;11065:55;11156:2;11143:16;11182:18;11174:6;11171:30;11168:56;;;11204:18;;:::i;:::-;11250:6;11247:1;11243:14;11277:28;11301:2;11297;11293:11;11277:28;:::i;:::-;11339:19;;;11383:2;11413:11;;;11409:20;;;11374:12;;;;11441:19;;;11438:39;;;11473:1;11470;11463:12;11438:39;11505:2;11501;11497:11;11486:22;;11517:298;11533:6;11528:3;11525:15;11517:298;;;11619:3;11606:17;11655:18;11642:11;11639:35;11636:55;;;11687:1;11684;11677:12;11636:55;11716:56;11764:7;11759:2;11745:11;11741:2;11737:20;11733:29;11716:56;:::i;:::-;11704:69;;-1:-1:-1;11802:2:262;11550:12;;;;11793;;;;11517:298;;;11834:5;11824:15;;;;;;;10530:1315;;;;;:::o;11850:347::-;11891:3;11929:5;11923:12;11956:6;11951:3;11944:19;12012:6;12005:4;11998:5;11994:16;11987:4;11982:3;11978:14;11972:47;12064:1;12057:4;12048:6;12043:3;12039:16;12035:27;12028:38;12186:4;12116:66;12111:2;12103:6;12099:15;12095:88;12090:3;12086:98;12082:109;12075:116;;;11850:347;;;;:::o;12202:960::-;12445:2;12434:9;12427:21;12408:4;12471:44;12511:2;12500:9;12496:18;12488:6;12471:44;:::i;:::-;12563:9;12555:6;12551:22;12546:2;12535:9;12531:18;12524:50;12594:6;12629;12623:13;12660:6;12652;12645:22;12695:2;12687:6;12683:15;12676:22;;12754:2;12744:6;12741:1;12737:14;12729:6;12725:27;12721:36;12792:2;12784:6;12780:15;12813:1;12823:310;12837:6;12834:1;12831:13;12823:310;;;12923:66;12914:6;12906;12902:19;12898:92;12893:3;12886:105;13014:39;13046:6;13037;13031:13;13014:39;:::i;:::-;13088:2;13111:12;;;;13004:49;;-1:-1:-1;13076:15:262;;;;;12859:1;12852:9;12823:310;;;-1:-1:-1;13150:6:262;;12202:960;-1:-1:-1;;;;;;;;12202:960:262:o;13167:277::-;13256:6;13309:2;13297:9;13288:7;13284:23;13280:32;13277:52;;;13325:1;13322;13315:12;13277:52;13364:9;13351:23;13383:31;13408:5;13383:31;:::i;:::-;13433:5;13167:277;-1:-1:-1;;;13167:277:262:o;13751:::-;13818:6;13871:2;13859:9;13850:7;13846:23;13842:32;13839:52;;;13887:1;13884;13877:12;13839:52;13919:9;13913:16;13972:5;13965:13;13958:21;13951:5;13948:32;13938:60;;13994:1;13991;13984:12","linkReferences":{}},"methodIdentifiers":{"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"9f063efc","afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"e1b4af69","afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)":"6fe7e6eb","afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"6c2bbe7e","afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)":"b47b2fb1","beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"259982e5","beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"b6a8b0fa","beforeInitialize(address,(address,address,uint24,int24,address),uint160)":"dc98354e","beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"21d0ee70","beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)":"575e24b4","clearDeltas()":"623ea21a","deltas(uint256)":"d934d2f7","numberDeltasReturned()":"57c5b148","setAddresses(address,address)":"90107afe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HookNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"afterAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"afterDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"name\":\"afterInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"afterRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"afterSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"beforeDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"name\":\"beforeInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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 SwapParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"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\":[],\"name\":\"clearDeltas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deltas\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numberDeltasReturned\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPositionManager\",\"name\":\"_posm\",\"type\":\"address\"},{\"internalType\":\"contract IAllowanceTransfer\",\"name\":\"_permit2\",\"type\":\"address\"}],\"name\":\"setAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"a hook that can modify liquidity in beforeSwap\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is NOT a production use contract. It is meant to be used in testing to verify that external contracts can modify liquidity without a lock (IPositionManager.modifyLiquiditiesWithoutUnlock)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/shared/HookModifyLiquidities.sol\":\"HookModifyLiquidities\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/\",\":@uniswap/v4-core/=lib/v4-core/\",\":ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/v4-core/lib/forge-std/src/\",\":hardhat/=lib/v4-core/node_modules/hardhat/\",\":openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/src/\"]},\"sources\":{\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/v4-core/lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"lib/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"lib/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"lib/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"lib/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"lib/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"lib/v4-core/src/test/BaseTestHooks.sol\":{\"keccak256\":\"0x8bb1b533b9df117bc4c85ef9d4c2afa7758771581a752e0a2a69dcae1041e546\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://eebf2728b8bda26bfd0e8c9726950f9cad3f2b8ffa5951117f2c2a9534e37ba6\",\"dweb:/ipfs/QmPCbUDp3e3sF5EPfte4v3VEF9Lhz8db6jLhZQJxXDvBSE\"]},\"lib/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"lib/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"lib/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"lib/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"lib/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"lib/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]},\"test/shared/HookModifyLiquidities.sol\":{\"keccak256\":\"0xb8ea82e68e21f8d1d88583693e17bcded7791c2570cf99c34269d260c79e957f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9c4080aa6cbe2e6d496ce0cb8f837b2c5da039c95f4fcd67996d5320281dfd32\",\"dweb:/ipfs/QmeagGekQThZtAZsoSdLE4LzttEn4tKk62yhpEgcxLLY1Y\"]},\"test/shared/HookSavesDelta.sol\":{\"keccak256\":\"0x3a2c5629e37b0d999ffb27c8f528b1f5877bc4f7fbcc148a5cfa663d1a509eda\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://84d35648d09735095eb62b90f5eefc59f99f4246903d947f97dac68ca991d985\",\"dweb:/ipfs/QmPmnJ2j1Rn9BYKrFSvuBB4y45CJyEYwqzJdYKxancm89Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"HookNotImplemented"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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 ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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 ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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 SwapParams","name":"","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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 ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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":"uint160","name":"","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","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 ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","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 SwapParams","name":"","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearDeltas"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deltas","outputs":[{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numberDeltasReturned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract IPositionManager","name":"_posm","type":"address"},{"internalType":"contract IAllowanceTransfer","name":"_permit2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddresses"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/","@uniswap/v4-core/=lib/v4-core/","ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/v4-core/lib/forge-std/src/","hardhat/=lib/v4-core/node_modules/hardhat/","openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/v4-core/lib/solmate/","v4-core/=lib/v4-core/src/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/shared/HookModifyLiquidities.sol":"HookModifyLiquidities"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/v4-core/lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"lib/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"lib/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"lib/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"lib/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"lib/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"lib/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"lib/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"lib/v4-core/src/test/BaseTestHooks.sol":{"keccak256":"0x8bb1b533b9df117bc4c85ef9d4c2afa7758771581a752e0a2a69dcae1041e546","urls":["bzz-raw://eebf2728b8bda26bfd0e8c9726950f9cad3f2b8ffa5951117f2c2a9534e37ba6","dweb:/ipfs/QmPCbUDp3e3sF5EPfte4v3VEF9Lhz8db6jLhZQJxXDvBSE"],"license":"UNLICENSED"},"lib/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"lib/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"lib/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"lib/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"lib/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"lib/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"},"test/shared/HookModifyLiquidities.sol":{"keccak256":"0xb8ea82e68e21f8d1d88583693e17bcded7791c2570cf99c34269d260c79e957f","urls":["bzz-raw://9c4080aa6cbe2e6d496ce0cb8f837b2c5da039c95f4fcd67996d5320281dfd32","dweb:/ipfs/QmeagGekQThZtAZsoSdLE4LzttEn4tKk62yhpEgcxLLY1Y"],"license":"UNLICENSED"},"test/shared/HookSavesDelta.sol":{"keccak256":"0x3a2c5629e37b0d999ffb27c8f528b1f5877bc4f7fbcc148a5cfa663d1a509eda","urls":["bzz-raw://84d35648d09735095eb62b90f5eefc59f99f4246903d947f97dac68ca991d985","dweb:/ipfs/QmPmnJ2j1Rn9BYKrFSvuBB4y45CJyEYwqzJdYKxancm89Z"],"license":"UNLICENSED"}},"version":1},"id":252}