{
	"id": "8c00846c41cf0468700e1ede63dbe22d",
	"_format": "hh-sol-build-info-1",
	"solcVersion": "0.8.13",
	"solcLongVersion": "0.8.13+commit.abaa5c0e",
	"input": {
		"language": "Solidity",
		"sources": {
			"contracts/interfaces/uniswapV3/IUniswapV3Pool.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IUniswapV3Pool {\n    function swap(\n        address recipient,\n        bool zeroForOne,\n        int256 amountSpecified,\n        uint160 sqrtPriceLimitX96,\n        bytes calldata data\n    ) external returns (int256 amount0, int256 amount1);\n\n    function increaseObservationCardinalityNext(uint16 observationCardinalityNext) external;\n\n    function slot0()\n        external\n        view\n        returns (\n            uint160 sqrtPriceX96,\n            int24 tick,\n            uint16 observationIndex,\n            uint16 observationCardinality,\n            uint16 observationCardinalityNext,\n            uint8 feeProtocol,\n            bool unlocked\n        );\n\n    function observations(uint256 index)\n        external\n        view\n        returns (\n            uint32 blockTimestamp,\n            int56 tickCumulative,\n            uint160 secondsPerLiquidityCumulativeX128,\n            bool initialized\n        );\n\n    function liquidity() external view returns (uint128);\n\n    function token0() external view returns (address);\n\n    function token1() external view returns (address);\n\n    function fee() external view returns (uint24);\n\n    function observe(uint32[] calldata secondsAgos)\n        external\n        view\n        returns (int56[] memory tickCumulatives, uint160[] memory secondsPerLiquidityCumulativeX128s);\n}\n"
			}
		},
		"settings": {
			"optimizer": {
				"enabled": true,
				"runs": 200
			},
			"outputSelection": {
				"*": {
					"": [
						"ast"
					],
					"*": [
						"abi",
						"metadata",
						"devdoc",
						"userdoc",
						"storageLayout",
						"evm.legacyAssembly",
						"evm.bytecode",
						"evm.deployedBytecode",
						"evm.methodIdentifiers",
						"evm.gasEstimates",
						"evm.assembly"
					]
				}
			}
		}
	},
	"output": {
		"contracts": {
			"contracts/interfaces/uniswapV3/IUniswapV3Pool.sol": {
				"IUniswapV3Pool": {
					"abi": [
						{
							"inputs": [],
							"name": "fee",
							"outputs": [
								{
									"internalType": "uint24",
									"name": "",
									"type": "uint24"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "observationCardinalityNext",
									"type": "uint16"
								}
							],
							"name": "increaseObservationCardinalityNext",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "liquidity",
							"outputs": [
								{
									"internalType": "uint128",
									"name": "",
									"type": "uint128"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "index",
									"type": "uint256"
								}
							],
							"name": "observations",
							"outputs": [
								{
									"internalType": "uint32",
									"name": "blockTimestamp",
									"type": "uint32"
								},
								{
									"internalType": "int56",
									"name": "tickCumulative",
									"type": "int56"
								},
								{
									"internalType": "uint160",
									"name": "secondsPerLiquidityCumulativeX128",
									"type": "uint160"
								},
								{
									"internalType": "bool",
									"name": "initialized",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint32[]",
									"name": "secondsAgos",
									"type": "uint32[]"
								}
							],
							"name": "observe",
							"outputs": [
								{
									"internalType": "int56[]",
									"name": "tickCumulatives",
									"type": "int56[]"
								},
								{
									"internalType": "uint160[]",
									"name": "secondsPerLiquidityCumulativeX128s",
									"type": "uint160[]"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "slot0",
							"outputs": [
								{
									"internalType": "uint160",
									"name": "sqrtPriceX96",
									"type": "uint160"
								},
								{
									"internalType": "int24",
									"name": "tick",
									"type": "int24"
								},
								{
									"internalType": "uint16",
									"name": "observationIndex",
									"type": "uint16"
								},
								{
									"internalType": "uint16",
									"name": "observationCardinality",
									"type": "uint16"
								},
								{
									"internalType": "uint16",
									"name": "observationCardinalityNext",
									"type": "uint16"
								},
								{
									"internalType": "uint8",
									"name": "feeProtocol",
									"type": "uint8"
								},
								{
									"internalType": "bool",
									"name": "unlocked",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "recipient",
									"type": "address"
								},
								{
									"internalType": "bool",
									"name": "zeroForOne",
									"type": "bool"
								},
								{
									"internalType": "int256",
									"name": "amountSpecified",
									"type": "int256"
								},
								{
									"internalType": "uint160",
									"name": "sqrtPriceLimitX96",
									"type": "uint160"
								},
								{
									"internalType": "bytes",
									"name": "data",
									"type": "bytes"
								}
							],
							"name": "swap",
							"outputs": [
								{
									"internalType": "int256",
									"name": "amount0",
									"type": "int256"
								},
								{
									"internalType": "int256",
									"name": "amount1",
									"type": "int256"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "token0",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "token1",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"fee()": "ddca3f43",
							"increaseObservationCardinalityNext(uint16)": "32148f67",
							"liquidity()": "1a686502",
							"observations(uint256)": "252c09d7",
							"observe(uint32[])": "883bdbfd",
							"slot0()": "3850c7bd",
							"swap(address,bool,int256,uint160,bytes)": "128acb08",
							"token0()": "0dfe1681",
							"token1()": "d21220a7"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/uniswapV3/IUniswapV3Pool.sol\":\"IUniswapV3Pool\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/uniswapV3/IUniswapV3Pool.sol\":{\"keccak256\":\"0x14b0cc01dc120979968812b8b88e3733f3e280bf192e4523e2e0742d5e5a77fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5559b1eca8ebbc011e414eaf79007b53c4ab3fa8a99d4013ca0db459bf743ade\",\"dweb:/ipfs/QmTvGqGX18yPj35fWxAA683Z9taizMjvW9sDnZgCTQqoqt\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			}
		},
		"sources": {
			"contracts/interfaces/uniswapV3/IUniswapV3Pool.sol": {
				"ast": {
					"absolutePath": "contracts/interfaces/uniswapV3/IUniswapV3Pool.sol",
					"exportedSymbols": {
						"IUniswapV3Pool": [
							86
						]
					},
					"id": 87,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "32:23:0"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IUniswapV3Pool",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 86,
							"linearizedBaseContracts": [
								86
							],
							"name": "IUniswapV3Pool",
							"nameLocation": "67:14:0",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "128acb08",
									"id": 18,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "swap",
									"nameLocation": "97:4:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 12,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3,
												"mutability": "mutable",
												"name": "recipient",
												"nameLocation": "119:9:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "111:17:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "111:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5,
												"mutability": "mutable",
												"name": "zeroForOne",
												"nameLocation": "143:10:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "138:15:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "138:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7,
												"mutability": "mutable",
												"name": "amountSpecified",
												"nameLocation": "170:15:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "163:22:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 6,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "163:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9,
												"mutability": "mutable",
												"name": "sqrtPriceLimitX96",
												"nameLocation": "203:17:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "195:25:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint160",
													"typeString": "uint160"
												},
												"typeName": {
													"id": 8,
													"name": "uint160",
													"nodeType": "ElementaryTypeName",
													"src": "195:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint160",
														"typeString": "uint160"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "245:4:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "230:19:0",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 10,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "230:5:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "101:154:0"
									},
									"returnParameters": {
										"id": 17,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 14,
												"mutability": "mutable",
												"name": "amount0",
												"nameLocation": "281:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "274:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 13,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "274:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 16,
												"mutability": "mutable",
												"name": "amount1",
												"nameLocation": "297:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 18,
												"src": "290:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 15,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "290:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "273:32:0"
									},
									"scope": 86,
									"src": "88:218:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "32148f67",
									"id": 23,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "increaseObservationCardinalityNext",
									"nameLocation": "321:34:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 21,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 20,
												"mutability": "mutable",
												"name": "observationCardinalityNext",
												"nameLocation": "363:26:0",
												"nodeType": "VariableDeclaration",
												"scope": 23,
												"src": "356:33:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 19,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "356:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "355:35:0"
									},
									"returnParameters": {
										"id": 22,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "399:0:0"
									},
									"scope": 86,
									"src": "312:88:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "3850c7bd",
									"id": 40,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "slot0",
									"nameLocation": "415:5:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 24,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "420:2:0"
									},
									"returnParameters": {
										"id": 39,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 26,
												"mutability": "mutable",
												"name": "sqrtPriceX96",
												"nameLocation": "491:12:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "483:20:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint160",
													"typeString": "uint160"
												},
												"typeName": {
													"id": 25,
													"name": "uint160",
													"nodeType": "ElementaryTypeName",
													"src": "483:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint160",
														"typeString": "uint160"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 28,
												"mutability": "mutable",
												"name": "tick",
												"nameLocation": "523:4:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "517:10:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int24",
													"typeString": "int24"
												},
												"typeName": {
													"id": 27,
													"name": "int24",
													"nodeType": "ElementaryTypeName",
													"src": "517:5:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int24",
														"typeString": "int24"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 30,
												"mutability": "mutable",
												"name": "observationIndex",
												"nameLocation": "548:16:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "541:23:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 29,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "541:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 32,
												"mutability": "mutable",
												"name": "observationCardinality",
												"nameLocation": "585:22:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "578:29:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 31,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "578:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 34,
												"mutability": "mutable",
												"name": "observationCardinalityNext",
												"nameLocation": "628:26:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "621:33:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 33,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "621:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 36,
												"mutability": "mutable",
												"name": "feeProtocol",
												"nameLocation": "674:11:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "668:17:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint8",
													"typeString": "uint8"
												},
												"typeName": {
													"id": 35,
													"name": "uint8",
													"nodeType": "ElementaryTypeName",
													"src": "668:5:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 38,
												"mutability": "mutable",
												"name": "unlocked",
												"nameLocation": "704:8:0",
												"nodeType": "VariableDeclaration",
												"scope": 40,
												"src": "699:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 37,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "699:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "469:253:0"
									},
									"scope": 86,
									"src": "406:317:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "252c09d7",
									"id": 53,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "observations",
									"nameLocation": "738:12:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 43,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 42,
												"mutability": "mutable",
												"name": "index",
												"nameLocation": "759:5:0",
												"nodeType": "VariableDeclaration",
												"scope": 53,
												"src": "751:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 41,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "751:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "750:15:0"
									},
									"returnParameters": {
										"id": 52,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 45,
												"mutability": "mutable",
												"name": "blockTimestamp",
												"nameLocation": "833:14:0",
												"nodeType": "VariableDeclaration",
												"scope": 53,
												"src": "826:21:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint32",
													"typeString": "uint32"
												},
												"typeName": {
													"id": 44,
													"name": "uint32",
													"nodeType": "ElementaryTypeName",
													"src": "826:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint32",
														"typeString": "uint32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 47,
												"mutability": "mutable",
												"name": "tickCumulative",
												"nameLocation": "867:14:0",
												"nodeType": "VariableDeclaration",
												"scope": 53,
												"src": "861:20:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int56",
													"typeString": "int56"
												},
												"typeName": {
													"id": 46,
													"name": "int56",
													"nodeType": "ElementaryTypeName",
													"src": "861:5:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int56",
														"typeString": "int56"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 49,
												"mutability": "mutable",
												"name": "secondsPerLiquidityCumulativeX128",
												"nameLocation": "903:33:0",
												"nodeType": "VariableDeclaration",
												"scope": 53,
												"src": "895:41:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint160",
													"typeString": "uint160"
												},
												"typeName": {
													"id": 48,
													"name": "uint160",
													"nodeType": "ElementaryTypeName",
													"src": "895:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint160",
														"typeString": "uint160"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 51,
												"mutability": "mutable",
												"name": "initialized",
												"nameLocation": "955:11:0",
												"nodeType": "VariableDeclaration",
												"scope": 53,
												"src": "950:16:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 50,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "950:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "812:164:0"
									},
									"scope": 86,
									"src": "729:248:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "1a686502",
									"id": 58,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "liquidity",
									"nameLocation": "992:9:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 54,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1001:2:0"
									},
									"returnParameters": {
										"id": 57,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 56,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 58,
												"src": "1027:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint128",
													"typeString": "uint128"
												},
												"typeName": {
													"id": 55,
													"name": "uint128",
													"nodeType": "ElementaryTypeName",
													"src": "1027:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint128",
														"typeString": "uint128"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1026:9:0"
									},
									"scope": 86,
									"src": "983:53:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "0dfe1681",
									"id": 63,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "token0",
									"nameLocation": "1051:6:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 59,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1057:2:0"
									},
									"returnParameters": {
										"id": 62,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 61,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 63,
												"src": "1083:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 60,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1083:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1082:9:0"
									},
									"scope": 86,
									"src": "1042:50:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "d21220a7",
									"id": 68,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "token1",
									"nameLocation": "1107:6:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 64,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1113:2:0"
									},
									"returnParameters": {
										"id": 67,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 66,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 68,
												"src": "1139:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 65,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1139:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1138:9:0"
									},
									"scope": 86,
									"src": "1098:50:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "ddca3f43",
									"id": 73,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "fee",
									"nameLocation": "1163:3:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 69,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1166:2:0"
									},
									"returnParameters": {
										"id": 72,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 71,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 73,
												"src": "1192:6:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint24",
													"typeString": "uint24"
												},
												"typeName": {
													"id": 70,
													"name": "uint24",
													"nodeType": "ElementaryTypeName",
													"src": "1192:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint24",
														"typeString": "uint24"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1191:8:0"
									},
									"scope": 86,
									"src": "1154:46:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "883bdbfd",
									"id": 85,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "observe",
									"nameLocation": "1215:7:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 77,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 76,
												"mutability": "mutable",
												"name": "secondsAgos",
												"nameLocation": "1241:11:0",
												"nodeType": "VariableDeclaration",
												"scope": 85,
												"src": "1223:29:0",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr",
													"typeString": "uint32[]"
												},
												"typeName": {
													"baseType": {
														"id": 74,
														"name": "uint32",
														"nodeType": "ElementaryTypeName",
														"src": "1223:6:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint32",
															"typeString": "uint32"
														}
													},
													"id": 75,
													"nodeType": "ArrayTypeName",
													"src": "1223:8:0",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
														"typeString": "uint32[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1222:31:0"
									},
									"returnParameters": {
										"id": 84,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 80,
												"mutability": "mutable",
												"name": "tickCumulatives",
												"nameLocation": "1316:15:0",
												"nodeType": "VariableDeclaration",
												"scope": 85,
												"src": "1301:30:0",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_int56_$dyn_memory_ptr",
													"typeString": "int56[]"
												},
												"typeName": {
													"baseType": {
														"id": 78,
														"name": "int56",
														"nodeType": "ElementaryTypeName",
														"src": "1301:5:0",
														"typeDescriptions": {
															"typeIdentifier": "t_int56",
															"typeString": "int56"
														}
													},
													"id": 79,
													"nodeType": "ArrayTypeName",
													"src": "1301:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_int56_$dyn_storage_ptr",
														"typeString": "int56[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 83,
												"mutability": "mutable",
												"name": "secondsPerLiquidityCumulativeX128s",
												"nameLocation": "1350:34:0",
												"nodeType": "VariableDeclaration",
												"scope": 85,
												"src": "1333:51:0",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_uint160_$dyn_memory_ptr",
													"typeString": "uint160[]"
												},
												"typeName": {
													"baseType": {
														"id": 81,
														"name": "uint160",
														"nodeType": "ElementaryTypeName",
														"src": "1333:7:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint160",
															"typeString": "uint160"
														}
													},
													"id": 82,
													"nodeType": "ArrayTypeName",
													"src": "1333:9:0",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_uint160_$dyn_storage_ptr",
														"typeString": "uint160[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1300:85:0"
									},
									"scope": 86,
									"src": "1206:180:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 87,
							"src": "57:1331:0",
							"usedErrors": []
						}
					],
					"src": "32:1357:0"
				},
				"id": 0
			}
		}
	}
}