Files
contract/deployment/alpha/out/TestSinglePool.sol/TestSinglePool.json
2023-11-16 17:36:43 -04:00

3094 lines
207 KiB
JSON

{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "log",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "log_address",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256[]",
"name": "val",
"type": "uint256[]"
}
],
"name": "log_array",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "int256[]",
"name": "val",
"type": "int256[]"
}
],
"name": "log_array",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address[]",
"name": "val",
"type": "address[]"
}
],
"name": "log_array",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "log_bytes",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "log_bytes32",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"name": "log_int",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "address",
"name": "val",
"type": "address"
}
],
"name": "log_named_address",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "val",
"type": "uint256[]"
}
],
"name": "log_named_array",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "int256[]",
"name": "val",
"type": "int256[]"
}
],
"name": "log_named_array",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "address[]",
"name": "val",
"type": "address[]"
}
],
"name": "log_named_array",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes",
"name": "val",
"type": "bytes"
}
],
"name": "log_named_bytes",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "val",
"type": "bytes32"
}
],
"name": "log_named_bytes32",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "int256",
"name": "val",
"type": "int256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "decimals",
"type": "uint256"
}
],
"name": "log_named_decimal_int",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "val",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "decimals",
"type": "uint256"
}
],
"name": "log_named_decimal_uint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "int256",
"name": "val",
"type": "int256"
}
],
"name": "log_named_int",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "val",
"type": "string"
}
],
"name": "log_named_string",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "val",
"type": "uint256"
}
],
"name": "log_named_uint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "log_string",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "log_uint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "logs",
"type": "event"
},
{
"inputs": [],
"name": "COIN",
"outputs": [
{
"internalType": "contract MockERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "IS_TEST",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USD",
"outputs": [
{
"internalType": "contract MockERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "excludeArtifacts",
"outputs": [
{
"internalType": "string[]",
"name": "excludedArtifacts_",
"type": "string[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "excludeContracts",
"outputs": [
{
"internalType": "address[]",
"name": "excludedContracts_",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "excludeSenders",
"outputs": [
{
"internalType": "address[]",
"name": "excludedSenders_",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "failed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "fee",
"outputs": [
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "inverted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nfpm",
"outputs": [
{
"internalType": "contract INonfungiblePositionManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pool",
"outputs": [
{
"internalType": "contract IUniswapV3Pool",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "price",
"outputs": [
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "setUp",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "int24",
"name": "lower",
"type": "int24"
},
{
"internalType": "int24",
"name": "upper",
"type": "int24"
}
],
"name": "stake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "coinAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "usdAmount",
"type": "uint256"
},
{
"internalType": "int24",
"name": "lower",
"type": "int24"
},
{
"internalType": "int24",
"name": "upper",
"type": "int24"
}
],
"name": "stake",
"outputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "int24",
"name": "width",
"type": "int24"
}
],
"name": "stake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract MockERC20",
"name": "inToken",
"type": "address"
},
{
"internalType": "contract MockERC20",
"name": "outToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "swap",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract MockERC20",
"name": "inToken",
"type": "address"
},
{
"internalType": "contract MockERC20",
"name": "outToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"name": "swap",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "swapToPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "swapper",
"outputs": [
{
"internalType": "contract ISwapRouter",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "targetArtifactSelectors",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes4[]",
"name": "selectors",
"type": "bytes4[]"
}
],
"internalType": "struct StdInvariant.FuzzSelector[]",
"name": "targetedArtifactSelectors_",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "targetArtifacts",
"outputs": [
{
"internalType": "string[]",
"name": "targetedArtifacts_",
"type": "string[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "targetContracts",
"outputs": [
{
"internalType": "address[]",
"name": "targetedContracts_",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "targetSelectors",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes4[]",
"name": "selectors",
"type": "bytes4[]"
}
],
"internalType": "struct StdInvariant.FuzzSelector[]",
"name": "targetedSelectors_",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "targetSenders",
"outputs": [
{
"internalType": "address[]",
"name": "targetedSenders_",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "testSwap",
"outputs": [],
"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"
}
],
"bytecode": {
"object": "0x6080604052600080546001600160a01b031990811673c36442b4a4522e871399cd717abdd847ab11fe88179091556001805490911673e592427a0aece92de3edee1f18e0157c058615641781556006805460ff60a81b1916600160a81b179055600a805460ff1916909117905534801561007857600080fd5b5061436a806100886000396000f3fe60806040523480156200001157600080fd5b5060043610620001f55760003560e01c806385226c811162000119578063d21220a711620000af578063e1c7392a116200007a578063e1c7392a14620004b4578063e20c9f7114620004be578063e3baf41a14620004c8578063fa7626d414620004df57600080fd5b8063d21220a7146200041c578063d6f13002146200043d578063ddca3f431462000466578063df791e50146200049d57600080fd5b8063a54a72b711620000f0578063a54a72b714620003d0578063b5508aa914620003f1578063ba414fa614620003fb578063c578d91d146200040557600080fd5b806385226c811462000394578063916a17c614620003ad578063a035b1fe14620003b757600080fd5b80633f7286f4116200018f57806366d9a9a0116200016657806366d9a9a0146200031b57806367e368fc14620003345780636e008a0314620003695780637303e913146200037357600080fd5b80633f7286f414620002d45780634a09d3dd14620002de57806353486e2f146200030457600080fd5b80631bf6c21b11620001d05780631bf6c21b146200026f5780631ed7831c14620002905780632b3297f914620002a95780633e5e3c2314620002ca57600080fd5b80630a9254e414620001fa5780630dfe1681146200020657806316f0115b146200023f575b600080fd5b6200020462000506565b005b600554620002279073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002203565b60405180910390f35b600254620002609073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002277565b600454620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000512565b604051620002369190620022e4565b600154620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000583565b6200029a620005f2565b620002f5620002ef36600462002372565b62000661565b604051620002369190620023de565b620002046200031536600462002407565b6200080a565b620003256200086a565b60405162000236919062002575565b6006546200035a9074010000000000000000000000000000000000000000900460ff1681565b60405162000236919062002593565b620002046200097f565b600054620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000a5c565b60405162000236919062002684565b6200032562000b36565b620003c162000c42565b604051620002369190620026b6565b600354620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000ce5565b6200035a62000dbf565b6200020462000416366004620026c6565b62000f79565b600654620002279073ffffffffffffffffffffffffffffffffffffffff1681565b620004546200044e366004620026e9565b620011d3565b6040516200023694939291906200275c565b6002546200048e9074010000000000000000000000000000000000000000900462ffffff1681565b604051620002369190620027ae565b620002f5620004ae366004620027be565b620011f9565b6200020462001317565b6200029a620018c4565b62000204620004d936600462002806565b62001933565b6006546200035a907501000000000000000000000000000000000000000000900460ff1681565b6200051062001317565b565b606060138054806020026020016040519081016040528092919081815260200182805480156200057957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575b5050505050905090565b60606015805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60606014805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b6001546040517f095ea7b300000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff8088169263095ea7b392620006be921690879060040162002844565b6020604051808303816000875af1158015620006de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070491906200287a565b50604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260025474010000000000000000000000000000000000000000900462ffffff168284015233606083015242608083015260a08201869052600060c083015284811660e083015260015492517f414bf3890000000000000000000000000000000000000000000000000000000081529192169063414bf38990620007ba9084906004016200293c565b6020604051808303816000875af1158015620007da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080091906200295b565b9695505050505050565b600060026200082285670de0b6b3a7640000620029ad565b6200082e919062002a02565b9050600060026200084386620f4240620029ad565b6200084f919062002a02565b90506200085f82828686620011d3565b505050505050505050565b60606018805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156200095d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620009095790505b505050505081525050815260200190600101906200088e565b50505050905090565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990620009e1903090670de0b6b3a76400009060040162002a38565b600060405180830381600087803b158015620009fc57600080fd5b505af115801562000a11573d6000803e3d6000fd5b50506003546004546000935062000a4c925073ffffffffffffffffffffffffffffffffffffffff9182169116670de0b6b3a7640000620011f9565b905062000a598162001a07565b50565b60606017805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000aa29062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000ad09062002a86565b801562000b215780601f1062000af55761010080835404028352916020019162000b21565b820191906000526020600020905b81548152906001019060200180831162000b0357829003601f168201915b50505050508152602001906001019062000a80565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801562000c2957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000bd55790505b5050505050815250508152602001906001019062000b5a565b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa15801562000cb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd9919062002b06565b50949695505050505050565b60606016805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000d2b9062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000d599062002a86565b801562000daa5780601f1062000d7e5761010080835404028352916020019162000daa565b820191906000526020600020905b81548152906001019060200180831162000d8c57829003601f168201915b50505050508152602001906001019062000d09565b600654600090760100000000000000000000000000000000000000000000900460ff161562000e0c5750600654760100000000000000000000000000000000000000000000900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000f7457604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49062000e9a9083907f6661696c656400000000000000000000000000000000000000000000000000009060200162002844565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000ed8929160200162002bca565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000f129162002be7565b6000604051808303816000865af19150503d806000811462000f51576040519150601f19603f3d011682016040523d82523d6000602084013e62000f56565b606091505b509150508080602001905181019062000f7091906200287a565b9150505b919050565b62000fb96040518060400160405280600b81526020017f73776170546f507269636500000000000000000000000000000000000000000081525062001a9a565b62000fda8173ffffffffffffffffffffffffffffffffffffffff1662001a07565b600062000fe662000c42565b9050620010098173ffffffffffffffffffffffffffffffffffffffff1662001a07565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362001041575050565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611620010965760065473ffffffffffffffffffffffffffffffffffffffff16620010b0565b60055473ffffffffffffffffffffffffffffffffffffffff165b905060008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620011075760065473ffffffffffffffffffffffffffffffffffffffff1662001121565b60055473ffffffffffffffffffffffffffffffffffffffff165b6040517f40c10f190000000000000000000000000000000000000000000000000000000081529091506c100000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff8416906340c10f199062001189903090859060040162002844565b600060405180830381600087803b158015620011a457600080fd5b505af1158015620011b9573d6000803e3d6000fd5b50505050620011cb8383838862000661565b505050505050565b600080600080620011e78888888862001b2d565b929b919a509850909650945050505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001290919062002c0e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614620012ea57620012e4600173fffd8963efd1fc6a506488495d951d5263988d2662002c31565b620012fc565b620012fc6401000276a3600162002c62565b90506200130c8585858462000661565b9150505b9392505050565b60126040516200132790620021c4565b62001333919062002d14565b604051809103906000f08015801562001350573d6000803e3d6000fd5b50600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f4d454800000000000000000000000000000000000000000000000000000000006020820152620013d49062001a9a565b600354620013f89073ffffffffffffffffffffffffffffffffffffffff1662002110565b60066040516200140890620021c4565b62001414919062002db3565b604051809103906000f08015801562001431573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f55535844000000000000000000000000000000000000000000000000000000006020820152620014b59062001a9a565b600454620014d99073ffffffffffffffffffffffffffffffffffffffff1662002110565b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167501f40000000000000000000000000000000000000000179055600454600354600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff94851694909316939093118202929092179182905560ff910416620015ae5760035473ffffffffffffffffffffffffffffffffffffffff16620015c8565b60045473ffffffffffffffffffffffffffffffffffffffff165b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560065474010000000000000000000000000000000000000000900460ff166200164f5760045473ffffffffffffffffffffffffffffffffffffffff1662001669565b60035473ffffffffffffffffffffffffffffffffffffffff165b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179081905560009074010000000000000000000000000000000000000000900460ff16620016e4576910c6f7a0b5ed8d36b4c7620016f5565b6e0f42400000000000000000000000005b90506200171b604051806080016040528060538152602001620042e26053913962001a9a565b6000546005546006546002546040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff948516946313ead56294620017a294908216939116917401000000000000000000000000000000000000000090910462ffffff1690879060040162002dda565b6020604051808303816000875af1158015620017c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017e8919062002c0e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526200186c9062001a9a565b600254620018909073ffffffffffffffffffffffffffffffffffffffff1662002110565b62000a59629896807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618620003158162002e17565b60606012805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60008160020b136200194457600080fd5b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa158015620019b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019db919062002b06565b505050505091505062001a02838383620019f6919062002e5f565b62000315858562002eb6565b505050565b62000a598160405160240162001a1e9190620023de565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790526200219e565b62000a598160405160240162001ab1919062002f0c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526200219e565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906340c10f199062001b909030908c9060040162002844565b600060405180830381600087803b15801562001bab57600080fd5b505af115801562001bc0573d6000803e3d6000fd5b50506003546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063095ea7b3935062001c2392909116908c9060040162002844565b6020604051808303816000875af115801562001c43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c6991906200287a565b50600480546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916340c10f199162001cc39130918c910162002844565b600060405180830381600087803b15801562001cde57600080fd5b505af115801562001cf3573d6000803e3d6000fd5b5050600480546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316955063095ea7b3945062001d569391909216918c910162002844565b6020604051808303816000875af115801562001d76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d9c91906200287a565b50600254604080517fd0c93a7c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d0c93a7c9160048083019260209291908290030181865afa15801562001e0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e34919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290915073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001e8b908a90859060040162002f4f565b602060405180830381865af415801562001ea9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ecf919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290975073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001f26908990859060040162002f4f565b602060405180830381865af415801562001f44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6a919062002f21565b604080516101608101825260035473ffffffffffffffffffffffffffffffffffffffff908116825260048054821660208401526002805474010000000000000000000000000000000000000000900462ffffff16848601528c810b606085015285900b608084015260a083018e905260c083018d9052600060e08401819052610100840181905233610120850152426101408501525493517f88316456000000000000000000000000000000000000000000000000000000008152949a509193921691638831645691620020419185910162003052565b6080604051808303816000875af115801562002061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200208791906200308a565b60408051808201909152600681527f6d696e7465640000000000000000000000000000000000000000000000000000602082015293995091975095509350620020d09062001a9a565b620020ed856fffffffffffffffffffffffffffffffff1662001a07565b620020f88462001a07565b620021038362001a07565b5050945094509450949050565b62000a598160405160240162002127919062002203565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b62000a598180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6111fd80620030e583390190565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b620021fd81620021d2565b82525050565b60208101620021ec8284620021f2565b6000620021ec73ffffffffffffffffffffffffffffffffffffffff831662002239565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000620021ec8262002213565b6000620021ec8262002252565b620021fd816200225f565b60208101620021ec82846200226c565b620022938282620021f2565b5060200190565b6000620022a5825190565b808452602093840193830160005b82811015620022da57620022c986835162002287565b9550602082019150600101620022b3565b5093949350505050565b6020815260006200131060208301846200229a565b6000620021ec82620021d2565b6200231181620022f9565b811462000a5957600080fd5b8035806200232b8162002306565b5092915050565b8062002311565b8035806200232b8162002332565b73ffffffffffffffffffffffffffffffffffffffff811662002311565b8035806200232b8162002347565b600080600080608085870312156200238d576200238d600080fd5b6200239986866200231d565b9350620023aa86602087016200231d565b9250620023bb866040870162002339565b9150620023cc866060870162002364565b905092959194509250565b80620021fd565b60208101620021ec8284620023d7565b620023118160020b90565b8035806200232b81620023ee565b600080600060608486031215620024215762002421600080fd5b6200242d858562002339565b92506200243e8560208601620023f9565b91506200244f8560408601620023f9565b90509250925092565b7fffffffff000000000000000000000000000000000000000000000000000000008116620021fd565b62002293828262002458565b600062002498825190565b808452602093840193830160005b82811015620022da57620024bc86835162002481565b9550602082019150600101620024a6565b620024da828251620021f2565b6000602082015160406020850152620024f760408501826200248d565b949350505050565b6000620013108383620024cd565b600062002518825190565b808452602084018094508160051b8101620025338560200190565b60005b848110156200256957838303885262002551838351620024ff565b92506020820160209890980197915060010162002536565b50909695505050505050565b6020815260006200131060208301846200250d565b801515620021fd565b60208101620021ec82846200258a565b60005b83811015620025c0578181015183820152602001620025a6565b50506000910152565b6000620025d4825190565b80845260208401620025eb828260208701620025a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000620013108383620025c9565b600062002633825190565b808452602084018094508160051b81016200264e8560200190565b60005b84811015620025695783830388526200266c8383516200261a565b92506020820160209890980197915060010162002651565b60208152600062001310602083018462002628565b73ffffffffffffffffffffffffffffffffffffffff8116620021fd565b60208101620021ec828462002699565b600060208284031215620026dd57620026dd600080fd5b62001310838362002364565b60008060008060808587031215620027045762002704600080fd5b62002710868662002339565b935062002721866020870162002339565b9250620027328660408701620023f9565b9150620023cc8660608701620023f9565b6fffffffffffffffffffffffffffffffff8116620021fd565b608081016200276c8287620023d7565b6200277b602083018662002743565b6200278a6040830185620023d7565b620027996060830184620023d7565b95945050505050565b62ffffff8116620021fd565b60208101620021ec8284620027a2565b600080600060608486031215620027d857620027d8600080fd5b620027e485856200231d565b9250620027f585602086016200231d565b91506200244f856040860162002339565b600080604083850312156200281e576200281e600080fd5b6200282a848462002339565b91506200283b8460208501620023f9565b90509250929050565b60408101620028548285620021f2565b620013106020830184620023d7565b80151562002311565b8051806200232b8162002863565b600060208284031215620028915762002891600080fd5b6200131083836200286c565b620028aa828251620021f2565b6020810151620028be6020840182620021f2565b506040810151620028d36040840182620027a2565b506060810151620028e86060840182620021f2565b506080810151620028fd6080840182620023d7565b5060a08101516200291260a0840182620023d7565b5060c08101516200292760c0840182620023d7565b5060e081015162001a0260e084018262002699565b6101008101620021ec82846200289d565b8051806200232b8162002332565b600060208284031215620029725762002972600080fd5b6200131083836200294d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181028183828215838204831417620029ca57620029ca6200297e565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081838062002a165762002a16620029d3565b90049392505050565b6000620021ec620022368381565b620021fd8162002a1f565b6040810162002a488285620021f2565b62001310602083018462002a2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c90819083168062002a9d57607f821692505b60208310810362002ab25762002ab262002a57565b5050919050565b8051806200232b8162002347565b8051806200232b81620023ee565b61ffff811662002311565b8051806200232b8162002ad5565b60ff811662002311565b8051806200232b8162002aee565b600080600080600080600060e0888a03121562002b265762002b26600080fd5b62002b32898962002ab9565b965062002b438960208a0162002ac7565b955062002b548960408a0162002ae0565b945062002b658960608a0162002ae0565b935062002b768960808a0162002ae0565b925062002b878960a08a0162002af8565b915062002b988960c08a016200286c565b905092959891949750929550565b600062002bb1825190565b8362002bc2828260208701620025a3565b019392505050565b62002bd6818462002458565b6000620024f7600483018462002ba6565b600062001310828462002ba6565b6200231181620021d2565b8051806200232b8162002bf5565b60006020828403121562002c255762002c25600080fd5b62001310838362002c00565b73ffffffffffffffffffffffffffffffffffffffff828116828216039081908111156200232b576200232b6200297e565b73ffffffffffffffffffffffffffffffffffffffff828116828216019081908111156200232b576200232b6200297e565b601681526000602082017f4d6f636b20457468657265756d2048617264666f726b0000000000000000000081525b60200192915050565b600381526000602082017f4d45480000000000000000000000000000000000000000000000000000000000815262002cc1565b600060ff8216620021ec565b620021fd8162002cfd565b60608152600062002d286060830162002c93565b828103602084015262002d3b8162002cca565b915050620021ec604083018462002d09565b601081526000602082017f4a6f6b652043757272656e637920584400000000000000000000000000000000815262002cc1565b600481526000602082017f5553584400000000000000000000000000000000000000000000000000000000815262002cc1565b60608152600062002dc76060830162002d4d565b828103602084015262002d3b8162002d80565b6080810162002dea8287620021f2565b62002df96020830186620021f2565b62002e086040830185620027a2565b62002799606083018462002699565b600062002e248260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810362002e565762002e566200297e565b60000392915050565b600062002e6c8260020b90565b62002e778460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156200232b576200232b6200297e565b600062002ec38260020b90565b62002ece8460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156200232b576200232b6200297e565b602081526000620013106020830184620025c9565b60006020828403121562002f385762002f38600080fd5b62001310838362002ac7565b620021fd8160020b90565b6040810162002f5f828562002f44565b62001310602083018462002f44565b62002f7b828251620021f2565b602081015162002f8f6020840182620021f2565b50604081015162002fa46040840182620027a2565b50606081015162002fb9606084018262002f44565b50608081015162002fce608084018262002f44565b5060a081015162002fe360a0840182620023d7565b5060c081015162002ff860c0840182620023d7565b5060e08101516200300d60e0840182620023d7565b5061010081015162003024610100840182620023d7565b506101208101516200303b610120840182620021f2565b5061014081015162001a02610140840182620023d7565b6101608101620021ec828462002f6e565b6fffffffffffffffffffffffffffffffff811662002311565b8051806200232b8162003063565b60008060008060808587031215620030a557620030a5600080fd5b620030b186866200294d565b9350620030c286602087016200307c565b9250620030d386604087016200294d565b9150620023cc86606087016200294d56fe60806040523480156200001157600080fd5b50604051620011fd380380620011fd8339810160408190526200003491620001c9565b828260036200004483826200035d565b5060046200005382826200035d565b50506005805460ff191660ff9390931692909217909155506200042a915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000b257620000b262000074565b6040525050565b6000620000c560405190565b809150620000d483826200008a565b50919050565b60006001600160401b03821115620000f657620000f662000074565b50601f01601f191660200190565b60005b838110156200012157818101518382015260200162000107565b50506000910152565b6000620001416200013b84620000da565b620000b9565b8091508381528484840111156200015b576200015b600080fd5b6200016b84602083018562000104565b509392505050565b600082601f830112620001895762000189600080fd5b6200019a838351602085016200012a565b9392505050565b60ff81168114620001b157600080fd5b50565b805180620001c281620001a1565b5092915050565b600080600060608486031215620001e357620001e3600080fd5b83516001600160401b03811115620001fe57620001fe600080fd5b6200020c8682870162000173565b602086015190945090506001600160401b038111156200022f576200022f600080fd5b6200023d8682870162000173565b9250506200024f8560408601620001b4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600181811c9081908316806200028557607f821692505b6020831081036200029a576200029a62000258565b5050919050565b6000620002b2620002af8381565b90565b92915050565b620002e1620002cb620002af85620002a1565b8254600385901b91821b60001990921b19161790565b90555050565b620002f560008383620002b8565b5050565b81811015620002f5576200030f600082620002e7565b600101620002f9565b601f8211156200035857600081815260209020601f840160051c81016020851015620003415750805b62000355601f850160051c830182620002f9565b50505b505050565b81516001600160401b0381111562000379576200037962000074565b62000391816200038a84546200026e565b8462000318565b6020601f821160018114620003ca5760008315620003af5750848201515b600019600385901b1c198116600185901b1785555062000355565b600084815260208120601f198516915b82811015620003fc5787850151825560209485019460019092019101620003da565b50848210156200041b5783870151600019600387901b60f8161c191681555b50505050600190811b01905550565b610dc3806200043a6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b4578063a9059cbb146101c7578063dd62ed3e146101da57600080fd5b806340c10f191461016157806370a082311461017657806395d89b41146101ac57600080fd5b806323b872dd116100b257806323b872dd14610128578063313ce5671461013b578063395093511461014e57600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e1610220565b6040516100ee919061084f565b60405180910390f35b61010a6101053660046108c3565b6102b2565b6040516100ee9190610905565b6002545b6040516100ee9190610919565b61010a610136366004610927565b6102cc565b60055460ff166040516100ee9190610979565b61010a61015c3660046108c3565b6102f0565b61017461016f3660046108c3565b61033c565b005b61011b610184366004610987565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e161034a565b61010a6101c23660046108c3565b610359565b61010a6101d53660046108c3565b6103dd565b61011b6101e83660046109a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022f90610a04565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a04565b80156102a85780601f1061027d576101008083540402835291602001916102a8565b820191906000526020600020905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b6000336102c08185856103eb565b60019150505b92915050565b6000336102da8582856104fa565b6102e58585856105a1565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c09082908690610337908790610a62565b6103eb565b6103468282610713565b5050565b60606004805461022f90610a04565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610adc565b60405180910390fd5b6102e582868684036103eb565b6000336102c08185856105a1565b73ffffffffffffffffffffffffffffffffffffffff8316610438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610b46565b73ffffffffffffffffffffffffffffffffffffffff8216610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bb0565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ed908590610919565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461059b578181101561058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bf9565b61059b84848484036103eb565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610c63565b73ffffffffffffffffffffffffffffffffffffffff821661063b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610ccd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d37565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610706908690610919565b60405180910390a361059b565b73ffffffffffffffffffffffffffffffffffffffff8216610760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d7b565b80600260008282546107729190610a62565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107d1908590610919565b60405180910390a35050565b60005b838110156107f85781810151838201526020016107e0565b50506000910152565b600061080b825190565b808452602084016108208282602087016107dd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006108626020830184610801565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102c6565b61089081610869565b811461089b57600080fd5b50565b8035806108aa81610887565b5092915050565b80610890565b8035806108aa816108b1565b600080604083850312156108d9576108d9600080fd5b6108e3848461089e565b91506108f284602085016108b7565b90509250929050565b8015155b82525050565b602081016102c682846108fb565b806108ff565b602081016102c68284610913565b60008060006060848603121561093f5761093f600080fd5b610949858561089e565b9250610958856020860161089e565b915061096785604086016108b7565b90509250925092565b60ff81166108ff565b602081016102c68284610970565b60006020828403121561099c5761099c600080fd5b610862838361089e565b600080604083850312156109bc576109bc600080fd5b6109c6848461089e565b91506108f2846020850161089e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680610a1a57607f821692505b602083108103610a2c57610a2c6109d5565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818101818180821115610a7757610a77610a33565b505092915050565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f00000000000000000000000000000000000000000000000000000060208201525b60400192915050565b6020815260006102c660208301610a7f565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610aee565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f73730000000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610b58565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525b60200192915050565b6020815260006102c660208301610bc2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f64726573730000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c0b565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f65737300000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c75565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e636500000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610cdf565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152610bf0565b6020815260006102c660208301610d4956fea2646970667358221220cd44a198e923f8e5e46b9869f813e11aa59f8930b4361f0f306ac53e161271d264736f6c634300081600336966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726ca2646970667358221220e63bb3ee50a1e4bca5b62995fdc7eb1756375381dbdc6a7ad839e857f345b06364736f6c63430008160033",
"sourceMap": "199:261:67:-:0;;;612:87:63;;;-1:-1:-1;;;;;;612:87:63;;;644:42:50;612:87:63;;;;;705:58;;;;;765:42:50;705:58:63;;;1572:26:0;;;-1:-1:-1;;;;1572:26:0;-1:-1:-1;;;1572:26:0;;;3126:44:4;;;-1:-1:-1;;3126:44:4;;;;;;199:261:67;;;;;;;;;;;;;;;;",
"linkReferences": {
"src/Util.sol": {
"Util": [
{
"start": 7911,
"length": 20
},
{
"start": 8066,
"length": 20
}
]
}
}
},
"deployedBytecode": {
"object": "0x60806040523480156200001157600080fd5b5060043610620001f55760003560e01c806385226c811162000119578063d21220a711620000af578063e1c7392a116200007a578063e1c7392a14620004b4578063e20c9f7114620004be578063e3baf41a14620004c8578063fa7626d414620004df57600080fd5b8063d21220a7146200041c578063d6f13002146200043d578063ddca3f431462000466578063df791e50146200049d57600080fd5b8063a54a72b711620000f0578063a54a72b714620003d0578063b5508aa914620003f1578063ba414fa614620003fb578063c578d91d146200040557600080fd5b806385226c811462000394578063916a17c614620003ad578063a035b1fe14620003b757600080fd5b80633f7286f4116200018f57806366d9a9a0116200016657806366d9a9a0146200031b57806367e368fc14620003345780636e008a0314620003695780637303e913146200037357600080fd5b80633f7286f414620002d45780634a09d3dd14620002de57806353486e2f146200030457600080fd5b80631bf6c21b11620001d05780631bf6c21b146200026f5780631ed7831c14620002905780632b3297f914620002a95780633e5e3c2314620002ca57600080fd5b80630a9254e414620001fa5780630dfe1681146200020657806316f0115b146200023f575b600080fd5b6200020462000506565b005b600554620002279073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002203565b60405180910390f35b600254620002609073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002277565b600454620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000512565b604051620002369190620022e4565b600154620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000583565b6200029a620005f2565b620002f5620002ef36600462002372565b62000661565b604051620002369190620023de565b620002046200031536600462002407565b6200080a565b620003256200086a565b60405162000236919062002575565b6006546200035a9074010000000000000000000000000000000000000000900460ff1681565b60405162000236919062002593565b620002046200097f565b600054620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000a5c565b60405162000236919062002684565b6200032562000b36565b620003c162000c42565b604051620002369190620026b6565b600354620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000ce5565b6200035a62000dbf565b6200020462000416366004620026c6565b62000f79565b600654620002279073ffffffffffffffffffffffffffffffffffffffff1681565b620004546200044e366004620026e9565b620011d3565b6040516200023694939291906200275c565b6002546200048e9074010000000000000000000000000000000000000000900462ffffff1681565b604051620002369190620027ae565b620002f5620004ae366004620027be565b620011f9565b6200020462001317565b6200029a620018c4565b62000204620004d936600462002806565b62001933565b6006546200035a907501000000000000000000000000000000000000000000900460ff1681565b6200051062001317565b565b606060138054806020026020016040519081016040528092919081815260200182805480156200057957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575b5050505050905090565b60606015805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60606014805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b6001546040517f095ea7b300000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff8088169263095ea7b392620006be921690879060040162002844565b6020604051808303816000875af1158015620006de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070491906200287a565b50604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260025474010000000000000000000000000000000000000000900462ffffff168284015233606083015242608083015260a08201869052600060c083015284811660e083015260015492517f414bf3890000000000000000000000000000000000000000000000000000000081529192169063414bf38990620007ba9084906004016200293c565b6020604051808303816000875af1158015620007da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080091906200295b565b9695505050505050565b600060026200082285670de0b6b3a7640000620029ad565b6200082e919062002a02565b9050600060026200084386620f4240620029ad565b6200084f919062002a02565b90506200085f82828686620011d3565b505050505050505050565b60606018805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156200095d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620009095790505b505050505081525050815260200190600101906200088e565b50505050905090565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990620009e1903090670de0b6b3a76400009060040162002a38565b600060405180830381600087803b158015620009fc57600080fd5b505af115801562000a11573d6000803e3d6000fd5b50506003546004546000935062000a4c925073ffffffffffffffffffffffffffffffffffffffff9182169116670de0b6b3a7640000620011f9565b905062000a598162001a07565b50565b60606017805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000aa29062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000ad09062002a86565b801562000b215780601f1062000af55761010080835404028352916020019162000b21565b820191906000526020600020905b81548152906001019060200180831162000b0357829003601f168201915b50505050508152602001906001019062000a80565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801562000c2957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000bd55790505b5050505050815250508152602001906001019062000b5a565b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa15801562000cb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd9919062002b06565b50949695505050505050565b60606016805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000d2b9062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000d599062002a86565b801562000daa5780601f1062000d7e5761010080835404028352916020019162000daa565b820191906000526020600020905b81548152906001019060200180831162000d8c57829003601f168201915b50505050508152602001906001019062000d09565b600654600090760100000000000000000000000000000000000000000000900460ff161562000e0c5750600654760100000000000000000000000000000000000000000000900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000f7457604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49062000e9a9083907f6661696c656400000000000000000000000000000000000000000000000000009060200162002844565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000ed8929160200162002bca565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000f129162002be7565b6000604051808303816000865af19150503d806000811462000f51576040519150601f19603f3d011682016040523d82523d6000602084013e62000f56565b606091505b509150508080602001905181019062000f7091906200287a565b9150505b919050565b62000fb96040518060400160405280600b81526020017f73776170546f507269636500000000000000000000000000000000000000000081525062001a9a565b62000fda8173ffffffffffffffffffffffffffffffffffffffff1662001a07565b600062000fe662000c42565b9050620010098173ffffffffffffffffffffffffffffffffffffffff1662001a07565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362001041575050565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611620010965760065473ffffffffffffffffffffffffffffffffffffffff16620010b0565b60055473ffffffffffffffffffffffffffffffffffffffff165b905060008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620011075760065473ffffffffffffffffffffffffffffffffffffffff1662001121565b60055473ffffffffffffffffffffffffffffffffffffffff165b6040517f40c10f190000000000000000000000000000000000000000000000000000000081529091506c100000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff8416906340c10f199062001189903090859060040162002844565b600060405180830381600087803b158015620011a457600080fd5b505af1158015620011b9573d6000803e3d6000fd5b50505050620011cb8383838862000661565b505050505050565b600080600080620011e78888888862001b2d565b929b919a509850909650945050505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001290919062002c0e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614620012ea57620012e4600173fffd8963efd1fc6a506488495d951d5263988d2662002c31565b620012fc565b620012fc6401000276a3600162002c62565b90506200130c8585858462000661565b9150505b9392505050565b60126040516200132790620021c4565b62001333919062002d14565b604051809103906000f08015801562001350573d6000803e3d6000fd5b50600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f4d454800000000000000000000000000000000000000000000000000000000006020820152620013d49062001a9a565b600354620013f89073ffffffffffffffffffffffffffffffffffffffff1662002110565b60066040516200140890620021c4565b62001414919062002db3565b604051809103906000f08015801562001431573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f55535844000000000000000000000000000000000000000000000000000000006020820152620014b59062001a9a565b600454620014d99073ffffffffffffffffffffffffffffffffffffffff1662002110565b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167501f40000000000000000000000000000000000000000179055600454600354600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff94851694909316939093118202929092179182905560ff910416620015ae5760035473ffffffffffffffffffffffffffffffffffffffff16620015c8565b60045473ffffffffffffffffffffffffffffffffffffffff165b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560065474010000000000000000000000000000000000000000900460ff166200164f5760045473ffffffffffffffffffffffffffffffffffffffff1662001669565b60035473ffffffffffffffffffffffffffffffffffffffff165b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179081905560009074010000000000000000000000000000000000000000900460ff16620016e4576910c6f7a0b5ed8d36b4c7620016f5565b6e0f42400000000000000000000000005b90506200171b604051806080016040528060538152602001620042e26053913962001a9a565b6000546005546006546002546040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff948516946313ead56294620017a294908216939116917401000000000000000000000000000000000000000090910462ffffff1690879060040162002dda565b6020604051808303816000875af1158015620017c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017e8919062002c0e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526200186c9062001a9a565b600254620018909073ffffffffffffffffffffffffffffffffffffffff1662002110565b62000a59629896807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618620003158162002e17565b60606012805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60008160020b136200194457600080fd5b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa158015620019b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019db919062002b06565b505050505091505062001a02838383620019f6919062002e5f565b62000315858562002eb6565b505050565b62000a598160405160240162001a1e9190620023de565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790526200219e565b62000a598160405160240162001ab1919062002f0c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526200219e565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906340c10f199062001b909030908c9060040162002844565b600060405180830381600087803b15801562001bab57600080fd5b505af115801562001bc0573d6000803e3d6000fd5b50506003546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063095ea7b3935062001c2392909116908c9060040162002844565b6020604051808303816000875af115801562001c43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c6991906200287a565b50600480546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916340c10f199162001cc39130918c910162002844565b600060405180830381600087803b15801562001cde57600080fd5b505af115801562001cf3573d6000803e3d6000fd5b5050600480546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316955063095ea7b3945062001d569391909216918c910162002844565b6020604051808303816000875af115801562001d76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d9c91906200287a565b50600254604080517fd0c93a7c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d0c93a7c9160048083019260209291908290030181865afa15801562001e0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e34919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290915073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001e8b908a90859060040162002f4f565b602060405180830381865af415801562001ea9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ecf919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290975073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001f26908990859060040162002f4f565b602060405180830381865af415801562001f44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6a919062002f21565b604080516101608101825260035473ffffffffffffffffffffffffffffffffffffffff908116825260048054821660208401526002805474010000000000000000000000000000000000000000900462ffffff16848601528c810b606085015285900b608084015260a083018e905260c083018d9052600060e08401819052610100840181905233610120850152426101408501525493517f88316456000000000000000000000000000000000000000000000000000000008152949a509193921691638831645691620020419185910162003052565b6080604051808303816000875af115801562002061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200208791906200308a565b60408051808201909152600681527f6d696e7465640000000000000000000000000000000000000000000000000000602082015293995091975095509350620020d09062001a9a565b620020ed856fffffffffffffffffffffffffffffffff1662001a07565b620020f88462001a07565b620021038362001a07565b5050945094509450949050565b62000a598160405160240162002127919062002203565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b62000a598180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6111fd80620030e583390190565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b620021fd81620021d2565b82525050565b60208101620021ec8284620021f2565b6000620021ec73ffffffffffffffffffffffffffffffffffffffff831662002239565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000620021ec8262002213565b6000620021ec8262002252565b620021fd816200225f565b60208101620021ec82846200226c565b620022938282620021f2565b5060200190565b6000620022a5825190565b808452602093840193830160005b82811015620022da57620022c986835162002287565b9550602082019150600101620022b3565b5093949350505050565b6020815260006200131060208301846200229a565b6000620021ec82620021d2565b6200231181620022f9565b811462000a5957600080fd5b8035806200232b8162002306565b5092915050565b8062002311565b8035806200232b8162002332565b73ffffffffffffffffffffffffffffffffffffffff811662002311565b8035806200232b8162002347565b600080600080608085870312156200238d576200238d600080fd5b6200239986866200231d565b9350620023aa86602087016200231d565b9250620023bb866040870162002339565b9150620023cc866060870162002364565b905092959194509250565b80620021fd565b60208101620021ec8284620023d7565b620023118160020b90565b8035806200232b81620023ee565b600080600060608486031215620024215762002421600080fd5b6200242d858562002339565b92506200243e8560208601620023f9565b91506200244f8560408601620023f9565b90509250925092565b7fffffffff000000000000000000000000000000000000000000000000000000008116620021fd565b62002293828262002458565b600062002498825190565b808452602093840193830160005b82811015620022da57620024bc86835162002481565b9550602082019150600101620024a6565b620024da828251620021f2565b6000602082015160406020850152620024f760408501826200248d565b949350505050565b6000620013108383620024cd565b600062002518825190565b808452602084018094508160051b8101620025338560200190565b60005b848110156200256957838303885262002551838351620024ff565b92506020820160209890980197915060010162002536565b50909695505050505050565b6020815260006200131060208301846200250d565b801515620021fd565b60208101620021ec82846200258a565b60005b83811015620025c0578181015183820152602001620025a6565b50506000910152565b6000620025d4825190565b80845260208401620025eb828260208701620025a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000620013108383620025c9565b600062002633825190565b808452602084018094508160051b81016200264e8560200190565b60005b84811015620025695783830388526200266c8383516200261a565b92506020820160209890980197915060010162002651565b60208152600062001310602083018462002628565b73ffffffffffffffffffffffffffffffffffffffff8116620021fd565b60208101620021ec828462002699565b600060208284031215620026dd57620026dd600080fd5b62001310838362002364565b60008060008060808587031215620027045762002704600080fd5b62002710868662002339565b935062002721866020870162002339565b9250620027328660408701620023f9565b9150620023cc8660608701620023f9565b6fffffffffffffffffffffffffffffffff8116620021fd565b608081016200276c8287620023d7565b6200277b602083018662002743565b6200278a6040830185620023d7565b620027996060830184620023d7565b95945050505050565b62ffffff8116620021fd565b60208101620021ec8284620027a2565b600080600060608486031215620027d857620027d8600080fd5b620027e485856200231d565b9250620027f585602086016200231d565b91506200244f856040860162002339565b600080604083850312156200281e576200281e600080fd5b6200282a848462002339565b91506200283b8460208501620023f9565b90509250929050565b60408101620028548285620021f2565b620013106020830184620023d7565b80151562002311565b8051806200232b8162002863565b600060208284031215620028915762002891600080fd5b6200131083836200286c565b620028aa828251620021f2565b6020810151620028be6020840182620021f2565b506040810151620028d36040840182620027a2565b506060810151620028e86060840182620021f2565b506080810151620028fd6080840182620023d7565b5060a08101516200291260a0840182620023d7565b5060c08101516200292760c0840182620023d7565b5060e081015162001a0260e084018262002699565b6101008101620021ec82846200289d565b8051806200232b8162002332565b600060208284031215620029725762002972600080fd5b6200131083836200294d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181028183828215838204831417620029ca57620029ca6200297e565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081838062002a165762002a16620029d3565b90049392505050565b6000620021ec620022368381565b620021fd8162002a1f565b6040810162002a488285620021f2565b62001310602083018462002a2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c90819083168062002a9d57607f821692505b60208310810362002ab25762002ab262002a57565b5050919050565b8051806200232b8162002347565b8051806200232b81620023ee565b61ffff811662002311565b8051806200232b8162002ad5565b60ff811662002311565b8051806200232b8162002aee565b600080600080600080600060e0888a03121562002b265762002b26600080fd5b62002b32898962002ab9565b965062002b438960208a0162002ac7565b955062002b548960408a0162002ae0565b945062002b658960608a0162002ae0565b935062002b768960808a0162002ae0565b925062002b878960a08a0162002af8565b915062002b988960c08a016200286c565b905092959891949750929550565b600062002bb1825190565b8362002bc2828260208701620025a3565b019392505050565b62002bd6818462002458565b6000620024f7600483018462002ba6565b600062001310828462002ba6565b6200231181620021d2565b8051806200232b8162002bf5565b60006020828403121562002c255762002c25600080fd5b62001310838362002c00565b73ffffffffffffffffffffffffffffffffffffffff828116828216039081908111156200232b576200232b6200297e565b73ffffffffffffffffffffffffffffffffffffffff828116828216019081908111156200232b576200232b6200297e565b601681526000602082017f4d6f636b20457468657265756d2048617264666f726b0000000000000000000081525b60200192915050565b600381526000602082017f4d45480000000000000000000000000000000000000000000000000000000000815262002cc1565b600060ff8216620021ec565b620021fd8162002cfd565b60608152600062002d286060830162002c93565b828103602084015262002d3b8162002cca565b915050620021ec604083018462002d09565b601081526000602082017f4a6f6b652043757272656e637920584400000000000000000000000000000000815262002cc1565b600481526000602082017f5553584400000000000000000000000000000000000000000000000000000000815262002cc1565b60608152600062002dc76060830162002d4d565b828103602084015262002d3b8162002d80565b6080810162002dea8287620021f2565b62002df96020830186620021f2565b62002e086040830185620027a2565b62002799606083018462002699565b600062002e248260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810362002e565762002e566200297e565b60000392915050565b600062002e6c8260020b90565b62002e778460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156200232b576200232b6200297e565b600062002ec38260020b90565b62002ece8460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156200232b576200232b6200297e565b602081526000620013106020830184620025c9565b60006020828403121562002f385762002f38600080fd5b62001310838362002ac7565b620021fd8160020b90565b6040810162002f5f828562002f44565b62001310602083018462002f44565b62002f7b828251620021f2565b602081015162002f8f6020840182620021f2565b50604081015162002fa46040840182620027a2565b50606081015162002fb9606084018262002f44565b50608081015162002fce608084018262002f44565b5060a081015162002fe360a0840182620023d7565b5060c081015162002ff860c0840182620023d7565b5060e08101516200300d60e0840182620023d7565b5061010081015162003024610100840182620023d7565b506101208101516200303b610120840182620021f2565b5061014081015162001a02610140840182620023d7565b6101608101620021ec828462002f6e565b6fffffffffffffffffffffffffffffffff811662002311565b8051806200232b8162003063565b60008060008060808587031215620030a557620030a5600080fd5b620030b186866200294d565b9350620030c286602087016200307c565b9250620030d386604087016200294d565b9150620023cc86606087016200294d56fe60806040523480156200001157600080fd5b50604051620011fd380380620011fd8339810160408190526200003491620001c9565b828260036200004483826200035d565b5060046200005382826200035d565b50506005805460ff191660ff9390931692909217909155506200042a915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000b257620000b262000074565b6040525050565b6000620000c560405190565b809150620000d483826200008a565b50919050565b60006001600160401b03821115620000f657620000f662000074565b50601f01601f191660200190565b60005b838110156200012157818101518382015260200162000107565b50506000910152565b6000620001416200013b84620000da565b620000b9565b8091508381528484840111156200015b576200015b600080fd5b6200016b84602083018562000104565b509392505050565b600082601f830112620001895762000189600080fd5b6200019a838351602085016200012a565b9392505050565b60ff81168114620001b157600080fd5b50565b805180620001c281620001a1565b5092915050565b600080600060608486031215620001e357620001e3600080fd5b83516001600160401b03811115620001fe57620001fe600080fd5b6200020c8682870162000173565b602086015190945090506001600160401b038111156200022f576200022f600080fd5b6200023d8682870162000173565b9250506200024f8560408601620001b4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600181811c9081908316806200028557607f821692505b6020831081036200029a576200029a62000258565b5050919050565b6000620002b2620002af8381565b90565b92915050565b620002e1620002cb620002af85620002a1565b8254600385901b91821b60001990921b19161790565b90555050565b620002f560008383620002b8565b5050565b81811015620002f5576200030f600082620002e7565b600101620002f9565b601f8211156200035857600081815260209020601f840160051c81016020851015620003415750805b62000355601f850160051c830182620002f9565b50505b505050565b81516001600160401b0381111562000379576200037962000074565b62000391816200038a84546200026e565b8462000318565b6020601f821160018114620003ca5760008315620003af5750848201515b600019600385901b1c198116600185901b1785555062000355565b600084815260208120601f198516915b82811015620003fc5787850151825560209485019460019092019101620003da565b50848210156200041b5783870151600019600387901b60f8161c191681555b50505050600190811b01905550565b610dc3806200043a6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b4578063a9059cbb146101c7578063dd62ed3e146101da57600080fd5b806340c10f191461016157806370a082311461017657806395d89b41146101ac57600080fd5b806323b872dd116100b257806323b872dd14610128578063313ce5671461013b578063395093511461014e57600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e1610220565b6040516100ee919061084f565b60405180910390f35b61010a6101053660046108c3565b6102b2565b6040516100ee9190610905565b6002545b6040516100ee9190610919565b61010a610136366004610927565b6102cc565b60055460ff166040516100ee9190610979565b61010a61015c3660046108c3565b6102f0565b61017461016f3660046108c3565b61033c565b005b61011b610184366004610987565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e161034a565b61010a6101c23660046108c3565b610359565b61010a6101d53660046108c3565b6103dd565b61011b6101e83660046109a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022f90610a04565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a04565b80156102a85780601f1061027d576101008083540402835291602001916102a8565b820191906000526020600020905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b6000336102c08185856103eb565b60019150505b92915050565b6000336102da8582856104fa565b6102e58585856105a1565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c09082908690610337908790610a62565b6103eb565b6103468282610713565b5050565b60606004805461022f90610a04565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610adc565b60405180910390fd5b6102e582868684036103eb565b6000336102c08185856105a1565b73ffffffffffffffffffffffffffffffffffffffff8316610438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610b46565b73ffffffffffffffffffffffffffffffffffffffff8216610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bb0565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ed908590610919565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461059b578181101561058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bf9565b61059b84848484036103eb565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610c63565b73ffffffffffffffffffffffffffffffffffffffff821661063b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610ccd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d37565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610706908690610919565b60405180910390a361059b565b73ffffffffffffffffffffffffffffffffffffffff8216610760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d7b565b80600260008282546107729190610a62565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107d1908590610919565b60405180910390a35050565b60005b838110156107f85781810151838201526020016107e0565b50506000910152565b600061080b825190565b808452602084016108208282602087016107dd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006108626020830184610801565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102c6565b61089081610869565b811461089b57600080fd5b50565b8035806108aa81610887565b5092915050565b80610890565b8035806108aa816108b1565b600080604083850312156108d9576108d9600080fd5b6108e3848461089e565b91506108f284602085016108b7565b90509250929050565b8015155b82525050565b602081016102c682846108fb565b806108ff565b602081016102c68284610913565b60008060006060848603121561093f5761093f600080fd5b610949858561089e565b9250610958856020860161089e565b915061096785604086016108b7565b90509250925092565b60ff81166108ff565b602081016102c68284610970565b60006020828403121561099c5761099c600080fd5b610862838361089e565b600080604083850312156109bc576109bc600080fd5b6109c6848461089e565b91506108f2846020850161089e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680610a1a57607f821692505b602083108103610a2c57610a2c6109d5565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818101818180821115610a7757610a77610a33565b505092915050565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f00000000000000000000000000000000000000000000000000000060208201525b60400192915050565b6020815260006102c660208301610a7f565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610aee565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f73730000000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610b58565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525b60200192915050565b6020815260006102c660208301610bc2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f64726573730000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c0b565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f65737300000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c75565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e636500000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610cdf565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152610bf0565b6020815260006102c660208301610d4956fea2646970667358221220cd44a198e923f8e5e46b9869f813e11aa59f8930b4361f0f306ac53e161271d264736f6c634300081600336966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726ca2646970667358221220e63bb3ee50a1e4bca5b62995fdc7eb1756375381dbdc6a7ad839e857f345b06364736f6c63430008160033",
"sourceMap": "199:261:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;246:47;;;:::i;:::-;;877:21:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;769:26;;;;;;;;;;;;;;;;:::i;851:20::-;;;;;;;;;2170:134:7;;;:::i;:::-;;;;;;;:::i;705:58:63:-;;;;;;;;;2939:133:7;;;:::i;2640:141::-;;;:::i;5079:824:63:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2667:221::-;;;;;;:::i;:::-;;:::i;2456:178:7:-;;;:::i;:::-;;;;;;;:::i;988:20:63:-;;;;;;;;;;;;;;;;;;;:::i;300:158:67:-;;;:::i;612:87:63:-;;;;;;;;;2310:140:7;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;5909:112:63:-;;;:::i;:::-;;;;;;;:::i;824:21::-;;;;;;;;;1875:141:7;;;:::i;1819:584:0:-;;;:::i;6027:683:63:-;;;;;;:::i;:::-;;:::i;961:21::-;;;;;;;;;2895:279;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;801:17::-;;;;;;;;;;;;;;;;;;;:::i;4784:289::-;;;;;;:::i;:::-;;:::i;1349:1125::-;;;:::i;2022:142:7:-;;;:::i;2481:179:63:-;;;;;;:::i;:::-;;:::i;1572:26:0:-;;;;;;;;;;;;246:47:67;280:6;:4;:6::i;:::-;246:47::o;2170:134:7:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;2939:133::-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;5079:824:63:-;5246:7;;5222:43;;;;;5193:17;;5222:15;;;;;;;:43;;5246:7;;5256:8;;5222:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5688:159:63;;;;;;;;;;;;;;;;;;;;;5773:3;;;;;;;5688:159;;;;5778:10;5688:159;;;;5790:15;5688:159;;;;;;;;;;-1:-1:-1;5688:159:63;;;;;;;;;;;5864:7;;:32;;;;;5688:159;;5864:7;;:24;;:32;;5688:159;;5864:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5857:39;5079:824;-1:-1:-1;;;;;;5079:824:63:o;2667:221::-;2741:18;2780:1;2762:15;:6;2771;2762:15;:::i;:::-;:19;;;;:::i;:::-;2741:40;-1:-1:-1;2791:17:63;2828:1;2811:14;:6;2820:5;2811:14;:::i;:::-;:18;;;;:::i;:::-;2791:38;;2839:42;2845:10;2857:9;2868:5;2875;2839;:42::i;:::-;;;;;2731:157;;2667:221;;;:::o;2456:178:7:-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;300:158:67:-;337:4;;:36;;;;;:4;;;;;:9;;:36;;355:4;;362:10;;337:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;402:4:67;;408:3;;383:11;;-1:-1:-1;397:27:67;;-1:-1:-1;402:4:67;;;;;408:3;413:10;397:4;:27::i;:::-;383:41;;434:17;447:3;434:12;:17::i;:::-;327:131;300:158::o;2310:140:7:-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5909:112:63;6002:4;;:12;;;;;;;;5947:20;;6002:4;;;:10;;:12;;;;;;;;;;;;;;:4;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5979:35:63;;5909:112;-1:-1:-1;;;;;;5909:112:63:o;1875:141:7:-;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:0;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;2023:20;;1671:64;;2135:34;;2196:43;;1671:64;;2221:17;;2196:43;;;:::i;:::-;;;;;;;;;;;;;;;2086:175;;;2196:43;2086:175;;:::i;:::-;;;;;;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;6027:683:63:-;6092:27;;;;;;;;;;;;;;;;;;:12;:27::i;:::-;6129:31;6142:17;6129:31;;:12;:31::i;:::-;6170:16;6189:7;:5;:7::i;:::-;6170:26;;6206:22;6219:8;6206:22;;:12;:22::i;:::-;6254:17;6242:29;;:8;:29;;;6238:55;;6286:7;6027:683;:::o;6238:55::-;6302:17;6333;6322:28;;:8;:28;;;:68;;6383:6;;;;6322:68;;;6363:6;;;;6322:68;6302:88;;6400:18;6432:17;6421:28;;:8;:28;;;:68;;6482:6;;;;6421:68;;;6462:6;;;;6421:68;6612:33;;;;;6400:89;;-1:-1:-1;6596:6:63;;6612:12;;;;;;:33;;6633:4;;6596:6;;6612:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:48;6660:7;6669:8;6679:4;6685:17;6655:4;:48::i;:::-;;6082:628;;;;6027:683;:::o;2895:279::-;3004:15;3029:17;3056:15;3081;3124:43;3131:10;3143:9;3154:5;3161;3124:6;:43::i;:::-;3117:50;;;;-1:-1:-1;3117:50:63;-1:-1:-1;3117:50:63;;-1:-1:-1;2895:279:63;-1:-1:-1;;;;;2895:279:63:o;4784:289::-;4871:17;4900:13;4936:4;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4916:33;;4924:7;4916:33;;;:93;;4982:27;5008:1;997:49:38;4982:27:63;:::i;:::-;4916:93;;;4952:27;817:10:38;4978:1:63;4952:27;:::i;:::-;4900:109;;5026:40;5031:7;5040:8;5050;5060:5;5026:4;:40::i;:::-;5019:47;;;4784:289;;;;;;:::o;1349:1125::-;1436:2;1389:50;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1382:4:63;:57;;;;;;;;;;;;;;;1449:19;;;;;;;;;;;;;;;;;;;:12;:19::i;:::-;1499:4;;1478:27;;1499:4;;1478:12;:27::i;:::-;1563:1;1521:44;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1515:3:63;:50;;;;;;;;;;;;;;;1575:20;;;;;;;;;;;;;;;;;;;:12;:20::i;:::-;1626:3;;1605:26;;1626:3;;1605:12;:26::i;:::-;1641:3;:9;;;;;;;;1695:3;;1679:4;;1660:8;:39;;;;1641:9;1695:3;;;;1679:4;;;;1671:28;;;;1660:39;;;;;;;;;;;1718:8;;;:39;;1752:4;;;;1718:39;;;1737:3;;;;1718:39;1709:6;:48;;;;;;;;;;;;;;;1776:8;;;;;;;:39;;1811:3;;;;1776:39;;;1795:4;;;;1776:39;1767:6;:48;;;;;;;;;;;;;;;;;-1:-1:-1;;1848:8:63;;;;;:90;;1914:23;1848:90;;;1867:35;1848:90;1825:113;;1957:99;;;;;;;;;;;;;;;;;;:12;:99::i;:::-;2188:4;;2228:6;;2236;;2244:3;;2188:74;;;;;:4;;;;;:39;;:74;;2228:6;;;;2236;;;2244:3;;;;;;;2249:12;;2188:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2166:4;:97;;;;;;;;;;;;;;;2273:23;;;;;;;;;;;;;;;;;;;:12;:23::i;:::-;2327:4;;2306:27;;2327:4;;2306:12;:27::i;:::-;2412:55;2418:10;477:7:38;637:9;477:7;637:9;:::i;2022:142:7:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;2481:179:63:-;2556:1;2550:5;:7;;;2542:16;;;;;;2594:4;;:12;;;;;;;;2571:10;;2594:4;;;:10;;:12;;;;;;;;;;;;;;:4;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2568:38;;;;;;;;2616:37;2622:6;2635:5;2630:4;:10;;;;:::i;:::-;2642;2647:5;2642:4;:10;:::i;2616:37::-;2532:128;2481:179;;:::o;6356:116:16:-;6405:60;6461:2;6421:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6405:15;:60::i;6598:121::-;6653:59;6708:2;6669:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6653:15;:59::i;3180:1597:63:-;3516:4;;:36;;;;;3291:15;;;;;;;;3516:4;;;;;:9;;:36;;3534:4;;3541:10;;3516:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3562:4:63;;;3583;3562:39;;;;;:4;;;;;-1:-1:-1;3562:12:63;;-1:-1:-1;3562:39:63;;3583:4;;;;3590:10;;3562:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3650:3:63;;;:34;;;;;:3;;;;;:8;;:34;;3667:4;;3674:9;;3650:34;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3694:3:63;;;;3714:4;3694:37;;;;;:3;;;;;-1:-1:-1;3694:11:63;;-1:-1:-1;3694:37:63;;3714:4;;;;;3721:9;;3694:37;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4240:4:63;;:18;;;;;;;;4229:8;;4240:4;;;:16;;:18;;;;;;;;;;;;;;:4;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4276:25;;;;;4229:29;;-1:-1:-1;4276:4:63;;:14;;:25;;4291:5;;4229:29;;4276:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4319;;;;;4268:33;;-1:-1:-1;4319:4:63;;:14;;:25;;4334:5;;4341:2;;4319:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4409:166;;;;;;;;4469:4;;;;;;4409:166;;4484:3;;;;;4409:166;;;;4490:3;;;;;;;;4409:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4409:166:63;;;;;;4469:4;4409:166;;;;;4538:10;4409:166;;;;4550:15;4409:166;;;;4626:4;:17;;;;;4409:166;;-1:-1:-1;4409:166:63;;4626:4;;;:9;;:17;;4409:166;;4626:17;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4653:22;;;;;;;;;;;;;;;;;4585:58;;-1:-1:-1;4585:58:63;;-1:-1:-1;4585:58:63;-1:-1:-1;4585:58:63;-1:-1:-1;4653:22:63;;:12;:22::i;:::-;4685:23;4698:9;4685:23;;:12;:23::i;:::-;4718:21;4731:7;4718:12;:21::i;:::-;4749;4762:7;4749:12;:21::i;:::-;3394:1383;;3180:1597;;;;;;;;;:::o;6841:116:16:-;6890:60;6946:2;6906:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;868:133;939:55;986:7;1105:14;;591:42;1278:2;1265:16;;1081:21;;1105:14;1265:16;591:42;1314:5;1303:68;1294:77;;1231:150;;1007:380;:::o;-1:-1:-1:-;;;;;;;;:::o;147:96:69:-;182:7;93:42;82:54;;215:22;204:33;147:96;-1:-1:-1;;147:96:69:o;248:95::-;314:22;330:5;314:22;:::i;:::-;309:3;302:35;;;248:95::o;348:189::-;482:2;467:18;;494:37;471:9;513:6;494:37;:::i;599:138::-;645:9;682:49;93:42;82:54;;698:32;542:52;707:22;587:5;542:52;698:32;93:42;82:54;;14:128;742:122;788:9;825:33;852:5;825:33;:::i;869:138::-;931:9;968:33;995:5;968:33;:::i;1012:138::-;1094:49;1137:5;1094:49;:::i;1155:229::-;1313:2;1298:18;;1325:53;1302:9;1360:6;1325:53;:::i;2343:164::-;2422:42;2460:3;2452:6;2422:42;:::i;:::-;-1:-1:-1;2496:4:69;2487:14;;2343:164::o;2605:506::-;2658:3;2690:37;2721:5;1957:12;;1884:87;2690:37;2074:19;;;2126:4;2117:14;;;;2211;;2882:1;2892:194;2906:6;2903:1;2900:13;2892:194;;;2962:48;3006:3;2997:6;2991:13;2962:48;:::i;:::-;2955:55;-1:-1:-1;2220:4:69;2211:14;;3023:53;-1:-1:-1;2928:1:69;2921:9;2892:194;;;-1:-1:-1;3102:3:69;;2605:506;-1:-1:-1;;;;2605:506:69:o;3116:261::-;3295:2;3284:9;3277:21;3258:4;3315:56;3367:2;3356:9;3352:18;3344:6;3315:56;:::i;4001:107::-;4047:7;4080:22;4096:5;4080:22;:::i;4113:144::-;4199:33;4226:5;4199:33;:::i;:::-;4192:5;4189:44;4179:72;;4247:1;4244;4237:12;4262:194;4352:20;;;4406:44;4352:20;4406:44;:::i;:::-;;4262:194;;;;:::o;4533:122::-;4624:5;4608:22;542:52;4660:172;4739:20;;;4793:33;4739:20;4793:33;:::i;4837:122::-;93:42;82:54;;4912:22;14:128;4964:172;5043:20;;;5097:33;5043:20;5097:33;:::i;5141:600::-;5265:6;5273;5281;5289;5342:3;5330:9;5321:7;5317:23;5313:33;5310:148;;;5369:79;199:261:67;;;5369:79:69;5477:49;5518:7;5507:9;5477:49;:::i;:::-;5467:59;;5545:58;5595:7;5590:2;5579:9;5575:18;5545:58;:::i;:::-;5535:68;;5622:47;5661:7;5656:2;5645:9;5641:18;5622:47;:::i;:::-;5612:57;;5688:47;5727:7;5722:2;5711:9;5707:18;5688:47;:::i;:::-;5678:57;;5141:600;;;;;;;:::o;5746:106::-;5839:5;5823:22;542:52;5857:200;5991:2;5976:18;;6003:48;5980:9;6033:6;6003:48;:::i;6159:118::-;6232:20;6246:5;6139:1;6128:20;;6062:92;6282:168;6359:20;;;6413:31;6359:20;6413:31;:::i;6455:448::-;6528:6;6536;6544;6597:2;6585:9;6576:7;6572:23;6568:32;6565:147;;;6623:79;199:261:67;;;6623:79:69;6731:38;6761:7;6750:9;6731:38;:::i;:::-;6721:48;;6788:45;6825:7;6820:2;6809:9;6805:18;6788:45;:::i;:::-;6778:55;;6852:45;6889:7;6884:2;6873:9;6869:18;6852:45;:::i;:::-;6842:55;;6455:448;;;;;:::o;7793:93::-;7715:66;7704:78;;7858:21;7637:151;7891;7969:30;7995:3;7987:6;7969:30;:::i;8139:500::-;8191:3;8223:36;8253:5;1957:12;;1884:87;8223:36;2074:19;;;2126:4;2117:14;;;;2211;;8412:1;8422:192;8436:6;8433:1;8430:13;8422:192;;;8492:47;8535:3;8526:6;8520:13;8492:47;:::i;:::-;8485:54;-1:-1:-1;2220:4:69;2211:14;;8552:52;-1:-1:-1;8458:1:69;8451:9;8422:192;;8644:289;8717:48;8761:3;8753:5;8747:12;8717:48;:::i;:::-;8699:3;8811:4;8804:5;8800:16;8794:23;8849:4;8842;8837:3;8833:14;8826:28;8870:57;8921:4;8916:3;8912:14;8898:12;8870:57;:::i;:::-;8863:64;8644:289;-1:-1:-1;;;;8644:289:69:o;8938:154::-;9004:10;9043:43;9082:3;9074:6;9043:43;:::i;9202:731::-;9267:3;9299:49;9342:5;1957:12;;1884:87;9299:49;2074:19;;;2126:4;2117:14;;9457:5;9450:12;;9501:6;9498:1;9494:14;9487:5;9483:26;9532:51;9577:5;2220:4;2211:14;;2142:85;9532:51;9601:1;9611:296;9625:6;9622:1;9619:13;9611:296;;;9696:5;9690:4;9686:16;9681:3;9674:29;9724:61;9780:4;9771:6;9765:13;9724:61;:::i;:::-;9716:69;-1:-1:-1;2220:4:69;2211:14;;9892:4;9883:14;;;;;9798:65;-1:-1:-1;9647:1:69;9640:9;9611:296;;;-1:-1:-1;9923:4:69;;9202:731;-1:-1:-1;;;;;;9202:731:69:o;9938:333::-;10177:2;10166:9;10159:21;10140:4;10197:68;10261:2;10250:9;10246:18;10238:6;10197:68;:::i;10373:89::-;10348:13;;10341:21;10436:19;10276:92;10467:180;10595:2;10580:18;;10607:34;10584:9;10623:6;10607:34;:::i;11818:250::-;11903:1;11913:113;11927:6;11924:1;11921:13;11913:113;;;12003:11;;;11997:18;11984:11;;;11977:39;11949:2;11942:10;11913:113;;;-1:-1:-1;;12060:1:69;12042:16;;12035:27;11818:250::o;12240:317::-;12293:3;12325:26;12345:5;1957:12;;1884:87;12325:26;2074:19;;;2126:4;2117:14;;12430:67;12490:6;12483:5;12476:4;12469:5;12465:16;12430:67;:::i;:::-;12162:66;12157:2;12146:14;;12142:87;12513:38;;12240:317;-1:-1:-1;;;;12240:317:69:o;12562:139::-;12615:10;12654:41;12691:3;12683:6;12654:41;:::i;12798:653::-;12850:3;12882:36;12912:5;1957:12;;1884:87;12882:36;2074:19;;;2126:4;2117:14;;13014:5;13007:12;;13058:6;13055:1;13051:14;13044:5;13040:26;13089:38;13121:5;2220:4;2211:14;;2142:85;13089:38;13145:1;13155:270;13169:6;13166:1;13163:13;13155:270;;;13240:5;13234:4;13230:16;13225:3;13218:29;13268:48;13311:4;13302:6;13296:13;13268:48;:::i;:::-;13260:56;-1:-1:-1;2220:4:69;2211:14;;13410:4;13401:14;;;;;13329:52;-1:-1:-1;13191:1:69;13184:9;13155:270;;13456:280;13655:2;13644:9;13637:21;13618:4;13675:55;13726:2;13715:9;13711:18;13703:6;13675:55;:::i;13741:106::-;93:42;82:54;;13818:22;14:128;13852:200;13986:2;13971:18;;13998:48;13975:9;14028:6;13998:48;:::i;14057:290::-;14116:6;14169:2;14157:9;14148:7;14144:23;14140:32;14137:147;;;14195:79;199:261:67;;;14195:79:69;14303:38;14333:7;14322:9;14303:38;:::i;14352:532::-;14434:6;14442;14450;14458;14511:3;14499:9;14490:7;14486:23;14482:33;14479:148;;;14538:79;199:261:67;;;14538:79:69;14646:38;14676:7;14665:9;14646:38;:::i;:::-;14636:48;;14703:47;14742:7;14737:2;14726:9;14722:18;14703:47;:::i;:::-;14693:57;;14769:45;14806:7;14801:2;14790:9;14786:18;14769:45;:::i;:::-;14759:55;;14833:45;14870:7;14865:2;14854:9;14850:18;14833:45;:::i;15014:95::-;14968:34;14957:46;;15080:22;14889:120;15114:472;15332:3;15317:19;;15345:48;15321:9;15375:6;15345:48;:::i;:::-;15402:46;15444:2;15433:9;15429:18;15421:6;15402:46;:::i;:::-;15457:57;15510:2;15499:9;15495:18;15487:6;15457:57;:::i;:::-;15523;15576:2;15565:9;15561:18;15553:6;15523:57;:::i;:::-;15114:472;;;;;;;:::o;15689:93::-;15669:8;15658:20;;15754:21;15591:93;15787:186;15919:2;15904:18;;15931:36;15908:9;15949:6;15931:36;:::i;15978:516::-;16093:6;16101;16109;16162:2;16150:9;16141:7;16137:23;16133:32;16130:147;;;16188:79;199:261:67;;;16188:79:69;16296:49;16337:7;16326:9;16296:49;:::i;:::-;16286:59;;16364:58;16414:7;16409:2;16398:9;16394:18;16364:58;:::i;:::-;16354:68;;16441:47;16480:7;16475:2;16464:9;16460:18;16441:47;:::i;16499:369::-;16565:6;16573;16626:2;16614:9;16605:7;16601:23;16597:32;16594:147;;;16652:79;199:261:67;;;16652:79:69;16760:38;16790:7;16779:9;16760:38;:::i;:::-;16750:48;;16817:45;16854:7;16849:2;16838:9;16834:18;16817:45;:::i;:::-;16807:55;;16499:369;;;;;:::o;16873:283::-;17035:2;17020:18;;17047:37;17024:9;17066:6;17047:37;:::i;:::-;17093:57;17146:2;17135:9;17131:18;17123:6;17093:57;:::i;17161:116::-;10348:13;;10341:21;17233:19;10276:92;17282:170;17369:13;;;17416:30;17369:13;17416:30;:::i;17457:306::-;17524:6;17577:2;17565:9;17556:7;17552:23;17548:32;17545:147;;;17603:79;199:261:67;;;17603:79:69;17711:46;17749:7;17738:9;17711:46;:::i;18076:948::-;18152:48;18196:3;18188:5;18182:12;18152:48;:::i;:::-;18246:4;18239:5;18235:16;18229:23;18261:59;18314:4;18309:3;18305:14;18291:12;18261:59;:::i;:::-;;18368:4;18361:5;18357:16;18351:23;18383:59;18436:4;18431:3;18427:14;18411;18383:59;:::i;:::-;;18490:4;18483:5;18479:16;18473:23;18505:61;18560:4;18555:3;18551:14;18535;18505:61;:::i;:::-;;18614:4;18607:5;18603:16;18597:23;18629:50;18673:4;18668:3;18664:14;18648;18629:50;:::i;:::-;;18727:4;18720:5;18716:16;18710:23;18742:50;18786:4;18781:3;18777:14;18761;18742:50;:::i;:::-;;18840:4;18833:5;18829:16;18823:23;18855:50;18899:4;18894:3;18890:14;18874;18855:50;:::i;:::-;;18953:4;18946:5;18942:16;18936:23;18968:50;19012:4;19007:3;19003:14;18987;18968:50;:::i;19029:294::-;19245:3;19230:19;;19258:59;19234:9;19299:6;19258:59;:::i;19328:176::-;19418:13;;;19465:33;19418:13;19465:33;:::i;19509:312::-;19579:6;19632:2;19620:9;19611:7;19607:23;19603:32;19600:147;;;19658:79;199:261:67;;;19658:79:69;19766:49;19807:7;19796:9;19766:49;:::i;19826:184::-;19878:77;19875:1;19868:88;19975:4;19972:1;19965:15;19999:4;19996:1;19989:15;20015:308;20186:13;;;20104:1;20142;20186:13;20251:11;;20272:19;;;20264:28;;20248:45;20238:79;;20297:18;;:::i;:::-;20238:79;;;20015:308;;;;:::o;20328:184::-;20380:77;20377:1;20370:88;20477:4;20474:1;20467:15;20501:4;20498:1;20491:15;20517:202;20557:1;20600;20638;20659:3;20649:37;;20666:18;;:::i;:::-;20700:13;;;20517:202;-1:-1:-1;;;20517:202:69:o;20802:148::-;20852:9;20889:55;20905:38;20936:5;20905:38;542:52;20955:125;21036:37;21067:5;21036:37;:::i;21085:313::-;21273:2;21258:18;;21285:37;21262:9;21304:6;21285:37;:::i;:::-;21331:61;21388:2;21377:9;21373:18;21365:6;21331:61;:::i;21403:184::-;21455:77;21452:1;21445:88;21552:4;21549:1;21542:15;21576:4;21573:1;21566:15;21592:318;21677:1;21673:12;;;;;;21747;;;21768:63;;21824:4;21814:8;21810:19;21800:29;;21768:63;21877:2;21869:6;21866:14;21846:18;21843:38;21840:64;;21884:18;;:::i;:::-;21840:64;;21592:318;;;:::o;21915:176::-;22005:13;;;22052:33;22005:13;22052:33;:::i;22096:172::-;22184:13;;;22231:31;22184:13;22231:31;:::i;22357:120::-;22343:6;22332:18;;22431:21;22273:79;22482:174;22571:13;;;22618:32;22571:13;22618:32;:::i;22742:118::-;22730:4;22719:16;;22815:20;22661:76;22865:172;22953:13;;;23000:31;22953:13;23000:31;:::i;23042:860::-;23156:6;23164;23172;23180;23188;23196;23204;23257:3;23245:9;23236:7;23232:23;23228:33;23225:148;;;23284:79;199:261:67;;;23284:79:69;23392:49;23433:7;23422:9;23392:49;:::i;:::-;23382:59;;23460:56;23508:7;23503:2;23492:9;23488:18;23460:56;:::i;:::-;23450:66;;23535:57;23584:7;23579:2;23568:9;23564:18;23535:57;:::i;:::-;23525:67;;23611:57;23660:7;23655:2;23644:9;23640:18;23611:57;:::i;:::-;23601:67;;23687:58;23737:7;23731:3;23720:9;23716:19;23687:58;:::i;:::-;23677:68;;23764:57;23813:7;23807:3;23796:9;23792:19;23764:57;:::i;:::-;23754:67;;23840:56;23888:7;23882:3;23871:9;23867:19;23840:56;:::i;:::-;23830:66;;23042:860;;;;;;;;;;:::o;24774:301::-;24815:3;24847:25;24866:5;1957:12;;1884:87;24847:25;24947:3;24968:67;25028:6;25021:5;25014:4;25007:5;25003:16;24968:67;:::i;:::-;25051:18;;24774:301;-1:-1:-1;;;24774:301:69:o;25080:290::-;25253:58;25307:3;25299:6;25253:58;:::i;:::-;25235:3;25327:37;25361:1;25356:3;25352:11;25344:6;25327:37;:::i;25375:189::-;25504:3;25529:29;25554:3;25546:6;25529:29;:::i;25569:122::-;25644:22;25660:5;25644:22;:::i;25696:176::-;25786:13;;;25833:33;25786:13;25833:33;:::i;25877:312::-;25947:6;26000:2;25988:9;25979:7;25975:23;25971:32;25968:147;;;26026:79;199:261:67;;;26026:79:69;26134:49;26175:7;26164:9;26134:49;:::i;26194:257::-;93:42;82:54;;;;;;26305:28;;;;26368:54;;26365:80;;;26425:18;;:::i;26456:252::-;93:42;82:54;;;;;;26565:28;;;;26626:53;;26623:79;;;26682:18;;:::i;27049:272::-;27178:2;2074:19;;27096:3;2126:4;2117:14;;27013:24;26998:40;;27190:95;27312:2;27301:14;;27049:272;-1:-1:-1;;27049:272:69:o;27466:271::-;27595:1;2074:19;;27513:3;2126:4;2117:14;;27453:5;27438:21;;27606:95;27326:135;27818:146;27870:9;22730:4;22719:16;;27907:51;22661:76;27969:125;28048:39;28081:5;28048:39;:::i;28099:600::-;28437:2;28426:9;28419:21;28400:4;28463:49;28508:2;28497:9;28493:18;28463:49;:::i;:::-;28560:9;28552:6;28548:22;28543:2;28532:9;28528:18;28521:50;28588:37;28618:6;28588:37;:::i;:::-;28580:45;;;28634:59;28689:2;28678:9;28674:18;28666:6;28634:59;:::i;28869:272::-;28998:2;2074:19;;28916:3;2126:4;2117:14;;28839:18;28824:34;;29010:95;28704:160;29287:271;29416:1;2074:19;;29334:3;2126:4;2117:14;;29273:6;29258:22;;29427:95;29146:136;29907:590;30244:2;30233:9;30226:21;30207:4;30270:49;30315:2;30304:9;30300:18;30270:49;:::i;:::-;30367:9;30359:6;30355:22;30350:2;30339:9;30335:18;30328:50;30395:37;30425:6;30395:37;:::i;30502:447::-;30718:3;30703:19;;30731:37;30707:9;30750:6;30731:37;:::i;:::-;30777:46;30819:2;30808:9;30804:18;30796:6;30777:46;:::i;:::-;30832:45;30873:2;30862:9;30858:18;30850:6;30832:45;:::i;:::-;30886:57;30939:2;30928:9;30924:18;30916:6;30886:57;:::i;30954:238::-;30988:3;31021:20;31035:5;6139:1;6128:20;;6062:92;31021:20;31065:66;31056:7;31053:79;31050:105;;31135:18;;:::i;:::-;31175:1;31171:15;;30954:238;-1:-1:-1;;30954:238:69:o;31197:303::-;31235:4;31265:16;31279:1;6139;6128:20;;6062:92;31265:16;31313;31327:1;6139;6128:20;;6062:92;31313:16;31304:26;;;-1:-1:-1;31304:26:69;31380:66;31368:79;;31461:8;31449:21;;31365:106;31362:132;;;31474:18;;:::i;31505:297::-;31543:3;31572:16;31586:1;6139;6128:20;;6062:92;31572:16;31619;31633:1;6139;6128:20;;6062:92;31619:16;31610:26;;-1:-1:-1;31610:26:69;31683:8;31672:20;;31705:66;31694:78;;31669:104;31666:130;;;31776:18;;:::i;32128:220::-;32277:2;32266:9;32259:21;32240:4;32297:45;32338:2;32327:9;32323:18;32315:6;32297:45;:::i;32353:308::-;32421:6;32474:2;32462:9;32453:7;32449:23;32445:32;32442:147;;;32500:79;199:261:67;;;32500:79:69;32608:47;32647:7;32636:9;32608:47;:::i;32666:91::-;32730:20;32744:5;6139:1;6128:20;;6062:92;32762:268;32924:2;32909:18;;32936:35;32913:9;32953:6;32936:35;:::i;:::-;32980:44;33020:2;33009:9;33005:18;32997:6;32980:44;:::i;33140:1301::-;33204:48;33248:3;33240:5;33234:12;33204:48;:::i;:::-;33298:4;33291:5;33287:16;33281:23;33313:59;33366:4;33361:3;33357:14;33343:12;33313:59;:::i;:::-;;33420:4;33413:5;33409:16;33403:23;33435:59;33488:4;33483:3;33479:14;33463;33435:59;:::i;:::-;;33542:4;33535:5;33531:16;33525:23;33557:57;33608:4;33603:3;33599:14;33583;33557:57;:::i;:::-;;33662:4;33655:5;33651:16;33645:23;33677:57;33728:4;33723:3;33719:14;33703;33677:57;:::i;:::-;;33782:4;33775:5;33771:16;33765:23;33797:50;33841:4;33836:3;33832:14;33816;33797:50;:::i;:::-;;33895:4;33888:5;33884:16;33878:23;33910:50;33954:4;33949:3;33945:14;33929;33910:50;:::i;:::-;;34008:4;34001:5;33997:16;33991:23;34023:50;34067:4;34062:3;34058:14;34042;34023:50;:::i;:::-;;34121:6;34114:5;34110:18;34104:25;34138:52;34182:6;34177:3;34173:16;34157:14;34138:52;:::i;:::-;;34238:6;34231:5;34227:18;34221:25;34255:63;34310:6;34305:3;34301:16;34285:14;34255:63;:::i;:::-;;34366:6;34359:5;34355:18;34349:25;34383:52;34427:6;34422:3;34418:16;34402:14;34383:52;:::i;34446:258::-;34638:3;34623:19;;34651:47;34627:9;34680:6;34651:47;:::i;34709:122::-;14968:34;14957:46;;34784:22;14889:120;34836:176;34926:13;;;34973:33;34926:13;34973:33;:::i;35017:595::-;35114:6;35122;35130;35138;35191:3;35179:9;35170:7;35166:23;35162:33;35159:148;;;35218:79;199:261:67;;;35218:79:69;35326:49;35367:7;35356:9;35326:49;:::i;:::-;35316:59;;35394:58;35444:7;35439:2;35428:9;35424:18;35394:58;:::i;:::-;35384:68;;35471:58;35521:7;35516:2;35505:9;35501:18;35471:58;:::i;:::-;35461:68;;35548:58;35598:7;35593:2;35582:9;35578:18;35548:58;:::i",
"linkReferences": {
"src/Util.sol": {
"Util": [
{
"start": 7775,
"length": 20
},
{
"start": 7930,
"length": 20
}
]
}
}
},
"methodIdentifiers": {
"COIN()": "a54a72b7",
"IS_TEST()": "fa7626d4",
"USD()": "1bf6c21b",
"excludeArtifacts()": "b5508aa9",
"excludeContracts()": "e20c9f71",
"excludeSenders()": "1ed7831c",
"failed()": "ba414fa6",
"fee()": "ddca3f43",
"init()": "e1c7392a",
"inverted()": "67e368fc",
"nfpm()": "7303e913",
"pool()": "16f0115b",
"price()": "a035b1fe",
"setUp()": "0a9254e4",
"stake(uint256,int24)": "e3baf41a",
"stake(uint256,int24,int24)": "53486e2f",
"stake(uint256,uint256,int24,int24)": "d6f13002",
"swap(address,address,uint256)": "df791e50",
"swap(address,address,uint256,uint160)": "4a09d3dd",
"swapToPrice(uint160)": "c578d91d",
"swapper()": "2b3297f9",
"targetArtifactSelectors()": "66d9a9a0",
"targetArtifacts()": "85226c81",
"targetContracts()": "3f7286f4",
"targetSelectors()": "916a17c6",
"targetSenders()": "3e5e3c23",
"testSwap()": "6e008a03",
"token0()": "0dfe1681",
"token1()": "d21220a7"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COIN\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USD\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inverted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nfpm\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"coinAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"width\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swapToPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapper\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwap\",\"outputs\":[],\"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\":{\"test/TestSinglePool.sol\":\"TestSinglePool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/Constants.sol\":{\"keccak256\":\"0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418\",\"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds\"]},\"src/MockERC20.sol\":{\"keccak256\":\"0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089\",\"urls\":[\"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4\",\"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK\"]},\"src/Util.sol\":{\"keccak256\":\"0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80\",\"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368\",\"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V\"]},\"test/TestSinglePool.sol\":{\"keccak256\":\"0xb0d65a3f8eff4b86bfd9951afa86c71e1183702fd0faa34e45ff372fc2466388\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://62f74e787e077710558649ce87444c8a2d3ee7459aa14af31046ed3ca27d89f5\",\"dweb:/ipfs/QmPCerhkT98jauXF55HhoMiS9TVKbD1kpcqwC2sMz2XNrt\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string",
"indexed": false
}
],
"type": "event",
"name": "log",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "log_address",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "val",
"type": "uint256[]",
"indexed": false
}
],
"type": "event",
"name": "log_array",
"anonymous": false
},
{
"inputs": [
{
"internalType": "int256[]",
"name": "val",
"type": "int256[]",
"indexed": false
}
],
"type": "event",
"name": "log_array",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address[]",
"name": "val",
"type": "address[]",
"indexed": false
}
],
"type": "event",
"name": "log_array",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes",
"indexed": false
}
],
"type": "event",
"name": "log_bytes",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32",
"indexed": false
}
],
"type": "event",
"name": "log_bytes32",
"anonymous": false
},
{
"inputs": [
{
"internalType": "int256",
"name": "",
"type": "int256",
"indexed": false
}
],
"type": "event",
"name": "log_int",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "address",
"name": "val",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "log_named_address",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "uint256[]",
"name": "val",
"type": "uint256[]",
"indexed": false
}
],
"type": "event",
"name": "log_named_array",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "int256[]",
"name": "val",
"type": "int256[]",
"indexed": false
}
],
"type": "event",
"name": "log_named_array",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "address[]",
"name": "val",
"type": "address[]",
"indexed": false
}
],
"type": "event",
"name": "log_named_array",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "bytes",
"name": "val",
"type": "bytes",
"indexed": false
}
],
"type": "event",
"name": "log_named_bytes",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "bytes32",
"name": "val",
"type": "bytes32",
"indexed": false
}
],
"type": "event",
"name": "log_named_bytes32",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "int256",
"name": "val",
"type": "int256",
"indexed": false
},
{
"internalType": "uint256",
"name": "decimals",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "log_named_decimal_int",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "uint256",
"name": "val",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "decimals",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "log_named_decimal_uint",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "int256",
"name": "val",
"type": "int256",
"indexed": false
}
],
"type": "event",
"name": "log_named_int",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "string",
"name": "val",
"type": "string",
"indexed": false
}
],
"type": "event",
"name": "log_named_string",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "key",
"type": "string",
"indexed": false
},
{
"internalType": "uint256",
"name": "val",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "log_named_uint",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string",
"indexed": false
}
],
"type": "event",
"name": "log_string",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "log_uint",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes",
"indexed": false
}
],
"type": "event",
"name": "logs",
"anonymous": false
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "COIN",
"outputs": [
{
"internalType": "contract MockERC20",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "IS_TEST",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "USD",
"outputs": [
{
"internalType": "contract MockERC20",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "excludeArtifacts",
"outputs": [
{
"internalType": "string[]",
"name": "excludedArtifacts_",
"type": "string[]"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "excludeContracts",
"outputs": [
{
"internalType": "address[]",
"name": "excludedContracts_",
"type": "address[]"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "excludeSenders",
"outputs": [
{
"internalType": "address[]",
"name": "excludedSenders_",
"type": "address[]"
}
]
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "failed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "fee",
"outputs": [
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
]
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "init"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "inverted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "nfpm",
"outputs": [
{
"internalType": "contract INonfungiblePositionManager",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "pool",
"outputs": [
{
"internalType": "contract IUniswapV3Pool",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "price",
"outputs": [
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
]
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "setUp"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "int24",
"name": "lower",
"type": "int24"
},
{
"internalType": "int24",
"name": "upper",
"type": "int24"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "stake"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "coinAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "usdAmount",
"type": "uint256"
},
{
"internalType": "int24",
"name": "lower",
"type": "int24"
},
{
"internalType": "int24",
"name": "upper",
"type": "int24"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "stake",
"outputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "int24",
"name": "width",
"type": "int24"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "stake"
},
{
"inputs": [
{
"internalType": "contract MockERC20",
"name": "inToken",
"type": "address"
},
{
"internalType": "contract MockERC20",
"name": "outToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "swap",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "contract MockERC20",
"name": "inToken",
"type": "address"
},
{
"internalType": "contract MockERC20",
"name": "outToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "swap",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "swapToPrice"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "swapper",
"outputs": [
{
"internalType": "contract ISwapRouter",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "targetArtifactSelectors",
"outputs": [
{
"internalType": "struct StdInvariant.FuzzSelector[]",
"name": "targetedArtifactSelectors_",
"type": "tuple[]",
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes4[]",
"name": "selectors",
"type": "bytes4[]"
}
]
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "targetArtifacts",
"outputs": [
{
"internalType": "string[]",
"name": "targetedArtifacts_",
"type": "string[]"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "targetContracts",
"outputs": [
{
"internalType": "address[]",
"name": "targetedContracts_",
"type": "address[]"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "targetSelectors",
"outputs": [
{
"internalType": "struct StdInvariant.FuzzSelector[]",
"name": "targetedSelectors_",
"type": "tuple[]",
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes4[]",
"name": "selectors",
"type": "bytes4[]"
}
]
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "targetSenders",
"outputs": [
{
"internalType": "address[]",
"name": "targetedSenders_",
"type": "address[]"
}
]
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "testSwap"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "token0",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "token1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"@uniswap/v3-core/=lib_uniswap/v3-core/",
"@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"v3-core/=lib_uniswap/v3-core/",
"v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
],
"optimizer": {
"runs": 999999999,
"details": {
"peephole": true,
"inliner": true,
"jumpdestRemover": true,
"orderLiterals": true,
"deduplicate": true,
"cse": true,
"constantOptimizer": true,
"yul": true,
"yulDetails": {
"stackAllocation": true,
"optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
}
}
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"test/TestSinglePool.sol": "TestSinglePool"
},
"libraries": {}
},
"sources": {
"lib/forge-std/lib/ds-test/src/test.sol": {
"keccak256": "0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b",
"urls": [
"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240",
"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"
],
"license": "GPL-3.0-or-later"
},
"lib/forge-std/src/Base.sol": {
"keccak256": "0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c",
"urls": [
"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224",
"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"
],
"license": "MIT"
},
"lib/forge-std/src/StdAssertions.sol": {
"keccak256": "0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60",
"urls": [
"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b",
"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"
],
"license": "MIT"
},
"lib/forge-std/src/StdChains.sol": {
"keccak256": "0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6",
"urls": [
"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d",
"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx"
],
"license": "MIT"
},
"lib/forge-std/src/StdCheats.sol": {
"keccak256": "0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5",
"urls": [
"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a",
"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe"
],
"license": "MIT"
},
"lib/forge-std/src/StdError.sol": {
"keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
"urls": [
"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
],
"license": "MIT"
},
"lib/forge-std/src/StdInvariant.sol": {
"keccak256": "0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1",
"urls": [
"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c",
"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss"
],
"license": "MIT"
},
"lib/forge-std/src/StdJson.sol": {
"keccak256": "0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b",
"urls": [
"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c",
"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"
],
"license": "MIT"
},
"lib/forge-std/src/StdMath.sol": {
"keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
"urls": [
"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
],
"license": "MIT"
},
"lib/forge-std/src/StdStorage.sol": {
"keccak256": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d",
"urls": [
"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26",
"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9"
],
"license": "MIT"
},
"lib/forge-std/src/StdStyle.sol": {
"keccak256": "0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d",
"urls": [
"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8",
"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"
],
"license": "MIT"
},
"lib/forge-std/src/StdUtils.sol": {
"keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1",
"urls": [
"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140",
"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi"
],
"license": "MIT"
},
"lib/forge-std/src/Test.sol": {
"keccak256": "0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24",
"urls": [
"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb",
"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x"
],
"license": "MIT"
},
"lib/forge-std/src/Vm.sol": {
"keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5",
"urls": [
"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c",
"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw"
],
"license": "MIT"
},
"lib/forge-std/src/console.sol": {
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
"urls": [
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
],
"license": "MIT"
},
"lib/forge-std/src/console2.sol": {
"keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea",
"urls": [
"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973",
"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"
],
"license": "MIT"
},
"lib/forge-std/src/interfaces/IMulticall3.sol": {
"keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a",
"urls": [
"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0",
"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"
],
"license": "MIT"
},
"lib/forge-std/src/safeconsole.sol": {
"keccak256": "0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381",
"urls": [
"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae",
"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": {
"keccak256": "0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d",
"urls": [
"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d",
"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
"urls": [
"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
"keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca",
"urls": [
"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd",
"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
"keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68",
"urls": [
"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56",
"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": {
"keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf",
"urls": [
"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34",
"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
"keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
"urls": [
"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/Context.sol": {
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
"urls": [
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
],
"license": "MIT"
},
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol": {
"keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489",
"urls": [
"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2",
"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol": {
"keccak256": "0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1",
"urls": [
"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5",
"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": {
"keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69",
"urls": [
"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652",
"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol": {
"keccak256": "0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634",
"urls": [
"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5",
"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": {
"keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5",
"urls": [
"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7",
"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": {
"keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd",
"urls": [
"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03",
"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": {
"keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7",
"urls": [
"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047",
"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": {
"keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235",
"urls": [
"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735",
"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol": {
"keccak256": "0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f",
"urls": [
"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f",
"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol": {
"keccak256": "0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032",
"urls": [
"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d",
"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-core/contracts/libraries/FullMath.sol": {
"keccak256": "0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be",
"urls": [
"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d",
"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"
],
"license": "MIT"
},
"lib_uniswap/v3-core/contracts/libraries/TickMath.sol": {
"keccak256": "0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d",
"urls": [
"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3",
"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol": {
"keccak256": "0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4",
"urls": [
"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471",
"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol": {
"keccak256": "0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984",
"urls": [
"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56",
"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol": {
"keccak256": "0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d",
"urls": [
"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f",
"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": {
"keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274",
"urls": [
"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407",
"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol": {
"keccak256": "0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862",
"urls": [
"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f",
"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol": {
"keccak256": "0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975",
"urls": [
"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53",
"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol": {
"keccak256": "0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24",
"urls": [
"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844",
"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"
],
"license": "GPL-2.0-or-later"
},
"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol": {
"keccak256": "0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4",
"urls": [
"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48",
"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"
],
"license": "GPL-2.0-or-later"
},
"src/Constants.sol": {
"keccak256": "0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f",
"urls": [
"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418",
"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds"
],
"license": "UNLICENSED"
},
"src/MockERC20.sol": {
"keccak256": "0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089",
"urls": [
"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4",
"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK"
],
"license": null
},
"src/Util.sol": {
"keccak256": "0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad",
"urls": [
"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80",
"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr"
],
"license": "UNLICENSED"
},
"test/MockEnv.sol": {
"keccak256": "0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b",
"urls": [
"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368",
"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V"
],
"license": "UNLICENSED"
},
"test/TestSinglePool.sol": {
"keccak256": "0xb0d65a3f8eff4b86bfd9951afa86c71e1183702fd0faa34e45ff372fc2466388",
"urls": [
"bzz-raw://62f74e787e077710558649ce87444c8a2d3ee7459aa14af31046ed3ca27d89f5",
"dweb:/ipfs/QmPCerhkT98jauXF55HhoMiS9TVKbD1kpcqwC2sMz2XNrt"
],
"license": "UNLICENSED"
}
},
"version": 1
},
"ast": {
"absolutePath": "test/TestSinglePool.sol",
"id": 51669,
"exportedSymbols": {
"Constants": [
46264
],
"Context": [
43777
],
"DSTest": [
2291
],
"ERC20": [
43478
],
"FixedPoint96": [
44338
],
"FullMath": [
44519
],
"IERC165": [
43789
],
"IERC20": [
43556
],
"IERC20Metadata": [
43581
],
"IERC721": [
43697
],
"IERC721Enumerable": [
43728
],
"IERC721Metadata": [
43755
],
"IERC721Permit": [
45094
],
"INonfungiblePositionManager": [
45293
],
"IPeripheryImmutableState": [
45309
],
"IPeripheryPayments": [
45335
],
"IPoolInitializer": [
45354
],
"ISwapRouter": [
45454
],
"IUniswapV3Factory": [
43872
],
"IUniswapV3Pool": [
43894
],
"IUniswapV3PoolActions": [
44004
],
"IUniswapV3PoolDerivedState": [
44035
],
"IUniswapV3PoolEvents": [
44154
],
"IUniswapV3PoolImmutables": [
44194
],
"IUniswapV3PoolOwnerActions": [
44220
],
"IUniswapV3PoolState": [
44328
],
"IUniswapV3SwapCallback": [
43908
],
"LiquidityAmounts": [
45794
],
"MockERC20": [
46478
],
"MockEnv": [
50069
],
"PoolAddress": [
45892
],
"StdAssertions": [
3823
],
"StdChains": [
4516
],
"StdCheats": [
7334
],
"StdInvariant": [
7624
],
"StdStorage": [
8374
],
"StdStyle": [
11038
],
"StdUtils": [
11886
],
"Test": [
11937
],
"TestBase": [
2357
],
"TestSinglePool": [
51668
],
"TickMath": [
45059
],
"Util": [
48904
],
"Vm": [
13464
],
"console": [
21528
],
"console2": [
29653
],
"safeconsole": [
42891
],
"stdError": [
7400
],
"stdJson": [
8200
],
"stdMath": [
8342
],
"stdStorage": [
9827
]
},
"nodeType": "SourceUnit",
"src": "65:396:67",
"nodes": [
{
"id": 51616,
"nodeType": "PragmaDirective",
"src": "65:24:67",
"nodes": [],
"literals": [
"solidity",
">=",
"0.8",
".0"
]
},
{
"id": 51617,
"nodeType": "PragmaDirective",
"src": "90:19:67",
"nodes": [],
"literals": [
"abicoder",
"v2"
]
},
{
"id": 51618,
"nodeType": "ImportDirective",
"src": "111:32:67",
"nodes": [],
"absolutePath": "lib/forge-std/src/console2.sol",
"file": "forge-std/console2.sol",
"nameLocation": "-1:-1:-1",
"scope": 51669,
"sourceUnit": 29654,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 51619,
"nodeType": "ImportDirective",
"src": "144:28:67",
"nodes": [],
"absolutePath": "lib/forge-std/src/Test.sol",
"file": "forge-std/Test.sol",
"nameLocation": "-1:-1:-1",
"scope": 51669,
"sourceUnit": 11938,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 51620,
"nodeType": "ImportDirective",
"src": "173:23:67",
"nodes": [],
"absolutePath": "test/MockEnv.sol",
"file": "./MockEnv.sol",
"nameLocation": "-1:-1:-1",
"scope": 51669,
"sourceUnit": 50070,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 51668,
"nodeType": "ContractDefinition",
"src": "199:261:67",
"nodes": [
{
"id": 51631,
"nodeType": "FunctionDefinition",
"src": "246:47:67",
"nodes": [],
"body": {
"id": 51630,
"nodeType": "Block",
"src": "270:23:67",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 51627,
"name": "init",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49634,
"src": "280:4:67",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 51628,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "280:6:67",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51629,
"nodeType": "ExpressionStatement",
"src": "280:6:67"
}
]
},
"functionSelector": "0a9254e4",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "setUp",
"nameLocation": "255:5:67",
"parameters": {
"id": 51625,
"nodeType": "ParameterList",
"parameters": [],
"src": "260:2:67"
},
"returnParameters": {
"id": 51626,
"nodeType": "ParameterList",
"parameters": [],
"src": "270:0:67"
},
"scope": 51668,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 51667,
"nodeType": "FunctionDefinition",
"src": "300:158:67",
"nodes": [],
"body": {
"id": 51666,
"nodeType": "Block",
"src": "327:131:67",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 51639,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "355:4:67",
"typeDescriptions": {
"typeIdentifier": "t_contract$_TestSinglePool_$51668",
"typeString": "contract TestSinglePool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_TestSinglePool_$51668",
"typeString": "contract TestSinglePool"
}
],
"id": 51638,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "347:7:67",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 51637,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "347:7:67",
"typeDescriptions": {}
}
},
"id": 51640,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "347:13:67",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"id": 51645,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "31",
"id": 51641,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "362:1:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"id": 51644,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3130",
"id": 51642,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "366:2:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"hexValue": "3138",
"id": 51643,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "370:2:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"src": "366:6:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
},
"src": "362:10:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
],
"expression": {
"id": 51634,
"name": "COIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49475,
"src": "337:4:67",
"typeDescriptions": {
"typeIdentifier": "t_contract$_MockERC20_$46478",
"typeString": "contract MockERC20"
}
},
"id": 51636,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "342:4:67",
"memberName": "mint",
"nodeType": "MemberAccess",
"referencedDeclaration": 46477,
"src": "337:9:67",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 51646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "337:36:67",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51647,
"nodeType": "ExpressionStatement",
"src": "337:36:67"
},
{
"assignments": [
51649
],
"declarations": [
{
"constant": false,
"id": 51649,
"mutability": "mutable",
"name": "usd",
"nameLocation": "391:3:67",
"nodeType": "VariableDeclaration",
"scope": 51666,
"src": "383:11:67",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 51648,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "383:7:67",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 51659,
"initialValue": {
"arguments": [
{
"id": 51651,
"name": "COIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49475,
"src": "402:4:67",
"typeDescriptions": {
"typeIdentifier": "t_contract$_MockERC20_$46478",
"typeString": "contract MockERC20"
}
},
{
"id": 51652,
"name": "USD",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49478,
"src": "408:3:67",
"typeDescriptions": {
"typeIdentifier": "t_contract$_MockERC20_$46478",
"typeString": "contract MockERC20"
}
},
{
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"id": 51657,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "31",
"id": 51653,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "413:1:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"id": 51656,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3130",
"id": 51654,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "417:2:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"hexValue": "3138",
"id": 51655,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "421:2:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"src": "417:6:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
},
"src": "413:10:67",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_MockERC20_$46478",
"typeString": "contract MockERC20"
},
{
"typeIdentifier": "t_contract$_MockERC20_$46478",
"typeString": "contract MockERC20"
},
{
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
],
"id": 51650,
"name": "swap",
"nodeType": "Identifier",
"overloadedDeclarations": [
49914,
49970
],
"referencedDeclaration": 49914,
"src": "397:4:67",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_MockERC20_$46478_$_t_contract$_MockERC20_$46478_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (contract MockERC20,contract MockERC20,uint256) returns (uint256)"
}
},
"id": 51658,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "397:27:67",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "383:41:67"
},
{
"expression": {
"arguments": [
{
"id": 51663,
"name": "usd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51649,
"src": "447:3:67",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 51660,
"name": "console2",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29653,
"src": "434:8:67",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
"typeString": "type(library console2)"
}
},
"id": 51662,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "443:3:67",
"memberName": "log",
"nodeType": "MemberAccess",
"referencedDeclaration": 22139,
"src": "434:12:67",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$",
"typeString": "function (uint256) pure"
}
},
"id": 51664,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "434:17:67",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51665,
"nodeType": "ExpressionStatement",
"src": "434:17:67"
}
]
},
"functionSelector": "6e008a03",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "testSwap",
"nameLocation": "309:8:67",
"parameters": {
"id": 51632,
"nodeType": "ParameterList",
"parameters": [],
"src": "317:2:67"
},
"returnParameters": {
"id": 51633,
"nodeType": "ParameterList",
"parameters": [],
"src": "327:0:67"
},
"scope": 51668,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 51621,
"name": "MockEnv",
"nameLocations": [
"226:7:67"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 50069,
"src": "226:7:67"
},
"id": 51622,
"nodeType": "InheritanceSpecifier",
"src": "226:7:67"
},
{
"baseName": {
"id": 51623,
"name": "Test",
"nameLocations": [
"235:4:67"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 11937,
"src": "235:4:67"
},
"id": 51624,
"nodeType": "InheritanceSpecifier",
"src": "235:4:67"
}
],
"canonicalName": "TestSinglePool",
"contractDependencies": [
46478
],
"contractKind": "contract",
"fullyImplemented": true,
"internalFunctionIDs": {
"21582": 1
},
"linearizedBaseContracts": [
51668,
11937,
2357,
2354,
11886,
7624,
7334,
6570,
4516,
3823,
2291,
50069
],
"name": "TestSinglePool",
"nameLocation": "208:14:67",
"scope": 51669,
"usedErrors": [],
"usedEvents": [
5,
9,
13,
17,
21,
25,
29,
33,
39,
45,
53,
61,
67,
73,
79,
85,
2418,
2423,
2428,
2435,
2442,
2449
]
}
],
"license": "UNLICENSED"
},
"id": 67
}