{ "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": "IS_TEST", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "setUp", "outputs": [], "stateMutability": "pure", "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": "testFullMath", "outputs": [], "stateMutability": "pure", "type": "function" } ], "bytecode": { "object": "0x608060405260008054600160ff19918216811790925560048054909116909117905534801561002d57600080fd5b506117348061003d6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063916a17c611610081578063ba414fa61161005b578063ba414fa614610153578063e20c9f7114610168578063fa7626d41461017057600080fd5b8063916a17c61461013b57806395d28dde14610143578063b5508aa91461014b57600080fd5b80633f7286f4116100b25780633f7286f41461010957806366d9a9a01461011157806385226c811461012657600080fd5b80630a9254e4146100d95780631ed7831c146100e35780633e5e3c2314610101575b600080fd5b6100e161017d565b005b6100eb6101bd565b6040516100f89190610f2a565b60405180910390f35b6100eb61022c565b6100eb610299565b610119610306565b6040516100f89190611046565b61012e610417565b6040516100f8919061112d565b6101196104e7565b6100e16105ef565b61012e610a5e565b61015b610b2e565b6040516100f89190611148565b6100eb610cb0565b60005461015b9060ff1681565b6101bb6040518060400160405280601081526020017f46756c6c4d617468207365747570282900000000000000000000000000000000815250610d1d565b565b6060600d80548060200260200160405190810160405280929190818152602001828054801561022257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156102225760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156102225760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b8282101561040e57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156103f657602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103a35790505b5050505050815250508152602001906001019061032a565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b8282101561040e57838290600052602060002001805461045a90611185565b80601f016020809104026020016040519081016040528092919081815260200182805461048690611185565b80156104d35780601f106104a8576101008083540402835291602001916104d3565b820191906000526020600020905b8154815290600101906020018083116104b657829003601f168201915b50505050508152602001906001019061043b565b60606013805480602002602001604051908101604052809291908181526020016000905b8282101561040e57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156105d757602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105845790505b5050505050815250508152602001906001019061050b565b61062d6040518060400160405280601781526020017f46756c6c4d617468207465737446756c6c4d6174682829000000000000000000815250610d1d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f80000000000000000000000000000000000000000000000000000000000000007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61069b8160016111e3565b82146106a657600080fd5b60018301156106b457600080fd5b60006106c1838485610daf565b9050828114610705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611237565b60405180910390fd5b610710848586610daf565b905083811461074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc9061127b565b610756828384610daf565b9050818114610791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc906112bf565b61079c828484610daf565b90508281146107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611303565b6107e2828485610daf565b905081811461081d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611347565b610828828584610daf565b9050838114610863576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc9061138b565b61086e838585610daf565b90508381146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc906113cf565b6108b4828586610daf565b90508181146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611413565b6108fa838586610daf565b9050828114610935576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611457565b733783474e4beb1dda0000000000000000000000006c220276b3db05e66d56a4be13dc6e0f4270ad40df2b08be65608f4517e8717bb9554f7ede43d817a015991491a2ef75e980610987858585610daf565b146109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc9061149b565b60ff80806109cd8160026115bd565b96506109da8260026115bd565b95506109e78160026115bd565b9450806109f483856111e3565b6109fe91906115eb565b610a099060026115bd565b9350610a16878787610daf565b9750838814610a51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611632565b5050505050505050505050565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101561040e578382906000526020600020018054610aa190611185565b80601f0160208091040260200160405190810160405280929190818152602001828054610acd90611185565b8015610b1a5780601f10610aef57610100808354040283529160200191610b1a565b820191906000526020600020905b815481529060010190602001808311610afd57829003601f168201915b505050505081526020019060010190610a82565b60008054610100900460ff1615610b4e5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610cab57604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490610bd99083907f6661696c656400000000000000000000000000000000000000000000000000009060200161164a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610c159291602001611686565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610c4d9161169f565b6000604051808303816000865af19150503d8060008114610c8a576040519150601f19603f3d011682016040523d82523d6000602084013e610c8f565b606091505b5091505080806020019051810190610ca791906116cc565b9150505b919050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156102225760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575050505050905090565b610dac81604051602401610d3191906116eb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052610e80565b50565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003610e065760008411610dfb57600080fd5b508290049050610e79565b808411610e1257600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b610dac8180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b610ece81610ea5565b82525050565b610ede8282610ec5565b5060200190565b6000610eef825190565b808452602093840193830160005b82811015610f2057610f10868351610ed4565b9550602082019150600101610efd565b5093949350505050565b602081526000610e796020830184610ee5565b7fffffffff000000000000000000000000000000000000000000000000000000008116610ece565b610ede8282610f3d565b6000610f79825190565b808452602093840193830160005b82811015610f2057610f9a868351610f65565b9550602082019150600101610f87565b610fb5828251610ec5565b6000602082015160406020850152610fd06040850182610f6f565b949350505050565b6000610e798383610faa565b6000610fee825190565b808452602084018094508160051b81016110088560200190565b60005b8481101561103a578383038852611023838351610fd8565b92506020820160209890980197915060010161100b565b50909695505050505050565b602081526000610e796020830184610fe4565b60005b8381101561107457818101518382015260200161105c565b50506000910152565b6000611087825190565b8084526020840161109c828260208701611059565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000610e79838361107d565b60006110e1825190565b808452602084018094508160051b81016110fb8560200190565b60005b8481101561103a5783830388526111168383516110cb565b9250602082016020989098019791506001016110fe565b602081526000610e7960208301846110d7565b801515610ece565b60208101610ebf8284611140565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c90819083168061119b57607f821692505b6020831081036111ad576111ad611156565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181018181808211156111f8576111f86111b4565b505092915050565b600d81526000602082017f636173652031206661696c65640000000000000000000000000000000000000081525b60200192915050565b602081526000610ebf60208301611200565b600d81526000602082017f636173652032206661696c656400000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611249565b600d81526000602082017f636173652033206661696c656400000000000000000000000000000000000000815261122e565b602081526000610ebf6020830161128d565b600e81526000602082017f63617365203461206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf602083016112d1565b600e81526000602082017f63617365203462206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611315565b600e81526000602082017f63617365203463206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611359565b600e81526000602082017f63617365203464206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf6020830161139d565b600e81526000602082017f63617365203465206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf602083016113e1565b600e81526000602082017f63617365203466206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611425565b600d81526000602082017f436173652035206661696c656400000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611469565b80825b60018511156114ec578086048111156114cb576114cb6111b4565b60018516156114d957908102905b80026114e58560011c90565b94506114b0565b94509492505050565b60008261150457506001610e79565b8161151157506000610e79565b8160018114611527576002811461153157611560565b6001915050610e79565b60ff841115611542576115426111b4565b6001841b80925085811115611559576115596111b4565b5050610e79565b5060208310610133831016604e8410600b8410161715611595575081810a808481111561158f5761158f6111b4565b50610e79565b6115a284848460016114ad565b8086048211156115b4576115b46111b4565b02949350505050565b600081610fd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85836114f5565b8181038181818111156111f8576111f86111b4565b600e81526000602082017f63617365203130206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611600565b80610ece565b604081016116588285610ec5565b610e796020830184611644565b600061166f825190565b8361167e828260208701611059565b019392505050565b6116908184610f3d565b6000610fd06004830184611665565b6000610e798284611665565b8015158114610dac57600080fd5b8051806116c5816116ab565b5092915050565b6000602082840312156116e1576116e1600080fd5b610e7983836116b9565b602081526000610e79602083018461107d56fea26469706673582212204deb5b3f0c68cbd803806e7bb2444265e121f6708f338a042dddfc2af88220a464736f6c63430008160033", "sourceMap": "411:2531:64:-:0;;;1572:26:0;;;1594:4;-1:-1:-1;;1572:26:0;;;;;;;;3126:44:4;;;;;;;;;;;411:2531:64;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063916a17c611610081578063ba414fa61161005b578063ba414fa614610153578063e20c9f7114610168578063fa7626d41461017057600080fd5b8063916a17c61461013b57806395d28dde14610143578063b5508aa91461014b57600080fd5b80633f7286f4116100b25780633f7286f41461010957806366d9a9a01461011157806385226c811461012657600080fd5b80630a9254e4146100d95780631ed7831c146100e35780633e5e3c2314610101575b600080fd5b6100e161017d565b005b6100eb6101bd565b6040516100f89190610f2a565b60405180910390f35b6100eb61022c565b6100eb610299565b610119610306565b6040516100f89190611046565b61012e610417565b6040516100f8919061112d565b6101196104e7565b6100e16105ef565b61012e610a5e565b61015b610b2e565b6040516100f89190611148565b6100eb610cb0565b60005461015b9060ff1681565b6101bb6040518060400160405280601081526020017f46756c6c4d617468207365747570282900000000000000000000000000000000815250610d1d565b565b6060600d80548060200260200160405190810160405280929190818152602001828054801561022257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156102225760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156102225760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b8282101561040e57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156103f657602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103a35790505b5050505050815250508152602001906001019061032a565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b8282101561040e57838290600052602060002001805461045a90611185565b80601f016020809104026020016040519081016040528092919081815260200182805461048690611185565b80156104d35780601f106104a8576101008083540402835291602001916104d3565b820191906000526020600020905b8154815290600101906020018083116104b657829003601f168201915b50505050508152602001906001019061043b565b60606013805480602002602001604051908101604052809291908181526020016000905b8282101561040e57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156105d757602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105845790505b5050505050815250508152602001906001019061050b565b61062d6040518060400160405280601781526020017f46756c6c4d617468207465737446756c6c4d6174682829000000000000000000815250610d1d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f80000000000000000000000000000000000000000000000000000000000000007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61069b8160016111e3565b82146106a657600080fd5b60018301156106b457600080fd5b60006106c1838485610daf565b9050828114610705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611237565b60405180910390fd5b610710848586610daf565b905083811461074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc9061127b565b610756828384610daf565b9050818114610791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc906112bf565b61079c828484610daf565b90508281146107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611303565b6107e2828485610daf565b905081811461081d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611347565b610828828584610daf565b9050838114610863576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc9061138b565b61086e838585610daf565b90508381146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc906113cf565b6108b4828586610daf565b90508181146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611413565b6108fa838586610daf565b9050828114610935576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611457565b733783474e4beb1dda0000000000000000000000006c220276b3db05e66d56a4be13dc6e0f4270ad40df2b08be65608f4517e8717bb9554f7ede43d817a015991491a2ef75e980610987858585610daf565b146109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc9061149b565b60ff80806109cd8160026115bd565b96506109da8260026115bd565b95506109e78160026115bd565b9450806109f483856111e3565b6109fe91906115eb565b610a099060026115bd565b9350610a16878787610daf565b9750838814610a51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fc90611632565b5050505050505050505050565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101561040e578382906000526020600020018054610aa190611185565b80601f0160208091040260200160405190810160405280929190818152602001828054610acd90611185565b8015610b1a5780601f10610aef57610100808354040283529160200191610b1a565b820191906000526020600020905b815481529060010190602001808311610afd57829003601f168201915b505050505081526020019060010190610a82565b60008054610100900460ff1615610b4e5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610cab57604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490610bd99083907f6661696c656400000000000000000000000000000000000000000000000000009060200161164a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610c159291602001611686565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610c4d9161169f565b6000604051808303816000865af19150503d8060008114610c8a576040519150601f19603f3d011682016040523d82523d6000602084013e610c8f565b606091505b5091505080806020019051810190610ca791906116cc565b9150505b919050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156102225760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101f7575050505050905090565b610dac81604051602401610d3191906116eb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052610e80565b50565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003610e065760008411610dfb57600080fd5b508290049050610e79565b808411610e1257600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b610dac8180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b610ece81610ea5565b82525050565b610ede8282610ec5565b5060200190565b6000610eef825190565b808452602093840193830160005b82811015610f2057610f10868351610ed4565b9550602082019150600101610efd565b5093949350505050565b602081526000610e796020830184610ee5565b7fffffffff000000000000000000000000000000000000000000000000000000008116610ece565b610ede8282610f3d565b6000610f79825190565b808452602093840193830160005b82811015610f2057610f9a868351610f65565b9550602082019150600101610f87565b610fb5828251610ec5565b6000602082015160406020850152610fd06040850182610f6f565b949350505050565b6000610e798383610faa565b6000610fee825190565b808452602084018094508160051b81016110088560200190565b60005b8481101561103a578383038852611023838351610fd8565b92506020820160209890980197915060010161100b565b50909695505050505050565b602081526000610e796020830184610fe4565b60005b8381101561107457818101518382015260200161105c565b50506000910152565b6000611087825190565b8084526020840161109c828260208701611059565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000610e79838361107d565b60006110e1825190565b808452602084018094508160051b81016110fb8560200190565b60005b8481101561103a5783830388526111168383516110cb565b9250602082016020989098019791506001016110fe565b602081526000610e7960208301846110d7565b801515610ece565b60208101610ebf8284611140565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c90819083168061119b57607f821692505b6020831081036111ad576111ad611156565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181018181808211156111f8576111f86111b4565b505092915050565b600d81526000602082017f636173652031206661696c65640000000000000000000000000000000000000081525b60200192915050565b602081526000610ebf60208301611200565b600d81526000602082017f636173652032206661696c656400000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611249565b600d81526000602082017f636173652033206661696c656400000000000000000000000000000000000000815261122e565b602081526000610ebf6020830161128d565b600e81526000602082017f63617365203461206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf602083016112d1565b600e81526000602082017f63617365203462206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611315565b600e81526000602082017f63617365203463206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611359565b600e81526000602082017f63617365203464206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf6020830161139d565b600e81526000602082017f63617365203465206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf602083016113e1565b600e81526000602082017f63617365203466206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611425565b600d81526000602082017f436173652035206661696c656400000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611469565b80825b60018511156114ec578086048111156114cb576114cb6111b4565b60018516156114d957908102905b80026114e58560011c90565b94506114b0565b94509492505050565b60008261150457506001610e79565b8161151157506000610e79565b8160018114611527576002811461153157611560565b6001915050610e79565b60ff841115611542576115426111b4565b6001841b80925085811115611559576115596111b4565b5050610e79565b5060208310610133831016604e8410600b8410161715611595575081810a808481111561158f5761158f6111b4565b50610e79565b6115a284848460016114ad565b8086048211156115b4576115b46111b4565b02949350505050565b600081610fd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85836114f5565b8181038181818111156111f8576111f86111b4565b600e81526000602082017f63617365203130206661696c6564000000000000000000000000000000000000815261122e565b602081526000610ebf60208301611600565b80610ece565b604081016116588285610ec5565b610e796020830184611644565b600061166f825190565b8361167e828260208701611059565b019392505050565b6116908184610f3d565b6000610fd06004830184611665565b6000610e798284611665565b8015158114610dac57600080fd5b8051806116c5816116ab565b5092915050565b6000602082840312156116e1576116e1600080fd5b610e7983836116b9565b602081526000610e79602083018461107d56fea26469706673582212204deb5b3f0c68cbd803806e7bb2444265e121f6708f338a042dddfc2af88220a464736f6c63430008160033", "sourceMap": "411:2531:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:78;;;:::i;:::-;;2170:134:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2939:133;;;:::i;2640:141::-;;;:::i;2456:178::-;;;:::i;:::-;;;;;;;:::i;2310:140::-;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;532:2408:64:-;;;:::i;1875:141:7:-;;;:::i;1819:584:0:-;;;:::i;:::-;;;;;;;:::i;2022:142:7:-;;;:::i;1572:26:0:-;;;;;;;;;448:78:64;487:32;;;;;;;;;;;;;;;;;;:12;:32::i;:::-;448:78::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;2456:178::-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;2310:140::-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;532:2408:64;579:39;;;;;;;;;;;;;;;;;;:12;:39::i;:::-;685:2;716:6;749:7;852:8;:6;859:1;852:8;:::i;:::-;842:6;:18;834:27;;;;;;911:1;902:10;;:15;894:24;;;;;;981:9;993:39;1009:6;1017;1025;993:15;:39::i;:::-;981:51;;1062:6;1057:1;:11;1049:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;1151:45;1167:8;1177;1187;1151:15;:45::i;:::-;1147:49;;1219:8;1214:1;:13;1206:39;;;;;;;;;;;;:::i;:::-;1311;1327:6;1335;1343;1311:15;:39::i;:::-;1307:43;;1373:6;1368:1;:11;1360:37;;;;;;;;;;;;:::i;:::-;1452:39;1468:6;1476;1484;1452:15;:39::i;:::-;1448:43;;1514:6;1509:1;:11;1501:38;;;;;;;;;;;;:::i;:::-;1553:39;1569:6;1577;1585;1553:15;:39::i;:::-;1549:43;;1615:6;1610:1;:11;1602:38;;;;;;;;;;;;:::i;:::-;1654:41;1670:6;1678:8;1688:6;1654:15;:41::i;:::-;1650:45;;1718:8;1713:1;:13;1705:40;;;;;;;;;;;;:::i;:::-;1759:41;1775:6;1783:8;1793:6;1759:15;:41::i;:::-;1755:45;;1823:8;1818:1;:13;1810:40;;;;;;;;;;;;:::i;:::-;1864:43;1880:6;1888:8;1898;1864:15;:43::i;:::-;1860:47;;1930:6;1925:1;:11;1917:38;;;;;;;;;;;;:::i;:::-;1969:43;1985:6;1993:8;2003;1969:15;:43::i;:::-;1965:47;;2035:6;2030:1;:11;2022:38;;;;;;;;;;;;:::i;:::-;2235:48;2307:31;2362:35;2428:44;;2502:24;2235:48;2307:31;2362:35;2502:15;:24::i;:::-;:36;2493:63;;;;;;;;;;;;:::i;:::-;2682:3;;;2740:7;2682:3;2740:1;:7;:::i;:::-;2736:11;-1:-1:-1;2761:7:64;2764:4;2761:1;:7;:::i;:::-;2757:11;-1:-1:-1;2782:7:64;2785:4;2782:1;:7;:::i;:::-;2778:11;-1:-1:-1;2824:4:64;2814:9;2819:4;2814;:9;:::i;:::-;:14;;;;:::i;:::-;2810:19;;:1;:19;:::i;:::-;2799:30;;2844:22;2860:1;2862;2864;2844:15;:22::i;:::-;2840:26;;2896:8;2891:1;:13;2883:40;;;;;;;;;;;;:::i;:::-;568:2372;;;;;;;;;;;532:2408::o;1875:141:7:-;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:0;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;2022:142:7:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;6598:121:16:-;6653:59;6708:2;6669:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6653:15;:59::i;:::-;6598:121;:::o;834:3804:37:-;946:14;;;1466:6;1463:1;1460;1453:20;1502:1;1499;1495:9;1486:18;;1553:5;1549:2;1546:13;1538:5;1534:2;1530:14;1526:34;1517:43;;;1642:5;1651:1;1642:10;1638:179;;1690:1;1676:11;:15;1668:24;;;;;;-1:-1:-1;1743:23:37;;;;-1:-1:-1;1793:13:37;;1638:179;1944:5;1930:11;:19;1922:28;;;;;;2227:17;2303:11;2300:1;2297;2290:25;2655:12;2678:20;;;2670:43;;2807:22;;;;;3610:1;3591;:15;;3590:21;;3837:17;;;3833:21;;3826:28;3895:17;;;3891:21;;3884:28;3954:17;;;3950:21;;3943:28;4013:17;;;4009:21;;4002:28;4072:17;;;4068:21;;4061:28;4132:17;;;4128:21;;;4121:28;3179:12;;;;3175:23;;;3200:1;3171:31;2432:20;;;2421:32;;;3230:12;;;;2475:21;;;;2935:16;;;;3221:21;;;;4596:11;;;;;-1:-1:-1;;834:3804:37;;;;;;:::o;868:133:16:-;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;495:96:69:-;530:7;441:42;430:54;;563:22;552:33;495:96;-1:-1:-1;;495:96:69:o;596:106::-;673:22;689:5;673:22;:::i;:::-;668:3;661:35;;;596:106::o;707:164::-;786:42;824:3;816:6;786:42;:::i;:::-;-1:-1:-1;860:4:69;851:14;;707:164::o;969:506::-;1022:3;1054:37;1085:5;87:12;;14:87;1054:37;204:19;;;256:4;247:14;;;;341;;1246:1;1256:194;1270:6;1267:1;1264:13;1256:194;;;1326:48;1370:3;1361:6;1355:13;1326:48;:::i;:::-;1319:55;-1:-1:-1;350:4:69;341:14;;1387:53;-1:-1:-1;1292:1:69;1285:9;1256:194;;;-1:-1:-1;1466:3:69;;969:506;-1:-1:-1;;;;969:506:69:o;1480:261::-;1659:2;1648:9;1641:21;1622:4;1679:56;1731:2;1720:9;1716:18;1708:6;1679:56;:::i;2631:93::-;2553:66;2542:78;;2696:21;2475:151;2729;2807:30;2833:3;2825:6;2807:30;:::i;2977:500::-;3029:3;3061:36;3091:5;87:12;;14:87;3061:36;204:19;;;256:4;247:14;;;;341;;3250:1;3260:192;3274:6;3271:1;3268:13;3260:192;;;3330:47;3373:3;3364:6;3358:13;3330:47;:::i;:::-;3323:54;-1:-1:-1;350:4:69;341:14;;3390:52;-1:-1:-1;3296:1:69;3289:9;3260:192;;3482:289;3555:48;3599:3;3591:5;3585:12;3555:48;:::i;:::-;3537:3;3649:4;3642:5;3638:16;3632:23;3687:4;3680;3675:3;3671:14;3664:28;3708:57;3759:4;3754:3;3750:14;3736:12;3708:57;:::i;:::-;3701:64;3482:289;-1:-1:-1;;;;3482:289:69:o;3776:154::-;3842:10;3881:43;3920:3;3912:6;3881:43;:::i;4040:731::-;4105:3;4137:49;4180:5;87:12;;14:87;4137:49;204:19;;;256:4;247:14;;4295:5;4288:12;;4339:6;4336:1;4332:14;4325:5;4321:26;4370:51;4415:5;350:4;341:14;;272:85;4370:51;4439:1;4449:296;4463:6;4460:1;4457:13;4449:296;;;4534:5;4528:4;4524:16;4519:3;4512:29;4562:61;4618:4;4609:6;4603:13;4562:61;:::i;:::-;4554:69;-1:-1:-1;350:4:69;341:14;;4730:4;4721:14;;;;;4636:65;-1:-1:-1;4485:1:69;4478:9;4449:296;;;-1:-1:-1;4761:4:69;;4040:731;-1:-1:-1;;;;;;4040:731:69:o;4776:333::-;5015:2;5004:9;4997:21;4978:4;5035:68;5099:2;5088:9;5084:18;5076:6;5035:68;:::i;5695:250::-;5780:1;5790:113;5804:6;5801:1;5798:13;5790:113;;;5880:11;;;5874:18;5861:11;;;5854:39;5826:2;5819:10;5790:113;;;-1:-1:-1;;5937:1:69;5919:16;;5912:27;5695:250::o;6117:317::-;6170:3;6202:26;6222:5;87:12;;14:87;6202:26;204:19;;;256:4;247:14;;6307:67;6367:6;6360:5;6353:4;6346:5;6342:16;6307:67;:::i;:::-;6039:66;6034:2;6023:14;;6019:87;6390:38;;6117:317;-1:-1:-1;;;;6117:317:69:o;6439:139::-;6492:10;6531:41;6568:3;6560:6;6531:41;:::i;6675:653::-;6727:3;6759:36;6789:5;87:12;;14:87;6759:36;204:19;;;256:4;247:14;;6891:5;6884:12;;6935:6;6932:1;6928:14;6921:5;6917:26;6966:38;6998:5;350:4;341:14;;272:85;6966:38;7022:1;7032:270;7046:6;7043:1;7040:13;7032:270;;;7117:5;7111:4;7107:16;7102:3;7095:29;7145:48;7188:4;7179:6;7173:13;7145:48;:::i;:::-;7137:56;-1:-1:-1;350:4:69;341:14;;7287:4;7278:14;;;;;7206:52;-1:-1:-1;7068:1:69;7061:9;7032:270;;7333:280;7532:2;7521:9;7514:21;7495:4;7552:55;7603:2;7592:9;7588:18;7580:6;7552:55;:::i;7715:89::-;7690:13;;7683:21;7778:19;7618:92;7809:180;7937:2;7922:18;;7949:34;7926:9;7965:6;7949:34;:::i;7994:184::-;8046:77;8043:1;8036:88;8143:4;8140:1;8133:15;8167:4;8164:1;8157:15;8183:318;8268:1;8264:12;;;;;;8338;;;8359:63;;8415:4;8405:8;8401:19;8391:29;;8359:63;8468:2;8460:6;8457:14;8437:18;8434:38;8431:64;;8475:18;;:::i;:::-;8431:64;;8183:318;;;:::o;8578:184::-;8630:77;8627:1;8620:88;8727:4;8724:1;8717:15;8751:4;8748:1;8741:15;8767:213;8876:28;;;8852:1;8876:28;8937:14;;;8934:40;;;8954:18;;:::i;:::-;8934:40;;8767:213;;;;:::o;9312:272::-;9441:2;204:19;;9359:3;256:4;247:14;;9285:15;9270:31;;9453:95;9575:2;9564:14;;9312:272;-1:-1:-1;;9312:272:69:o;9589:277::-;9791:2;9780:9;9773:21;9754:4;9811:49;9856:2;9845:9;9841:18;9811:49;:::i;10033:272::-;10162:2;204:19;;10080:3;256:4;247:14;;10006:15;9991:31;;10174:95;9871:157;10310:277;10512:2;10501:9;10494:21;10475:4;10532:49;10577:2;10566:9;10562:18;10532:49;:::i;10754:272::-;10883:2;204:19;;10801:3;256:4;247:14;;10727:15;10712:31;;10895:95;10592:157;11031:277;11233:2;11222:9;11215:21;11196:4;11253:49;11298:2;11287:9;11283:18;11253:49;:::i;11476:272::-;11605:2;204:19;;11523:3;256:4;247:14;;11448:16;11433:32;;11617:95;11313:158;11753:277;11955:2;11944:9;11937:21;11918:4;11975:49;12020:2;12009:9;12005:18;11975:49;:::i;12198:272::-;12327:2;204:19;;12245:3;256:4;247:14;;12170:16;12155:32;;12339:95;12035:158;12475:277;12677:2;12666:9;12659:21;12640:4;12697:49;12742:2;12731:9;12727:18;12697:49;:::i;12920:272::-;13049:2;204:19;;12967:3;256:4;247:14;;12892:16;12877:32;;13061:95;12757:158;13197:277;13399:2;13388:9;13381:21;13362:4;13419:49;13464:2;13453:9;13449:18;13419:49;:::i;13642:272::-;13771:2;204:19;;13689:3;256:4;247:14;;13614:16;13599:32;;13783:95;13479:158;13919:277;14121:2;14110:9;14103:21;14084:4;14141:49;14186:2;14175:9;14171:18;14141:49;:::i;14364:272::-;14493:2;204:19;;14411:3;256:4;247:14;;14336:16;14321:32;;14505:95;14201:158;14641:277;14843:2;14832:9;14825:21;14806:4;14863:49;14908:2;14897:9;14893:18;14863:49;:::i;15086:267::-;15210:2;204:19;;15128:3;256:4;247:14;;15058:16;15043:32;;15222:95;14923:158;15358:272;15560:2;15549:9;15542:21;15523:4;15580:44;15620:2;15609:9;15605:18;15580:44;:::i;15797:272::-;15926:2;204:19;;15844:3;256:4;247:14;;15770:15;15755:31;;15938:95;15635:157;16074:277;16276:2;16265:9;16258:21;16239:4;16296:49;16341:2;16330:9;16326:18;16296:49;:::i;16443:402::-;16539:6;16562:5;16576:263;16597:1;16587:8;16584:15;16576:263;;;16647:4;16642:3;16638:14;16632:4;16629:24;16626:50;;;16656:18;;:::i;:::-;16706:1;16696:8;16692:16;16689:49;;;16720:16;;;;16689:49;16759:15;;16799:30;16820:8;16427:1;16423:13;;16356:82;16799:30;16787:42;;16576:263;;;16443:402;;;;;;;:::o;16850:996::-;16904:5;16934:8;16924:80;;-1:-1:-1;16975:1:69;16989:5;;16924:80;17023:4;17013:76;;-1:-1:-1;17060:1:69;17074:5;;17013:76;17105:4;17123:1;17118:59;;;;17191:1;17186:220;;;;17098:308;;17118:59;17148:1;17139:10;;17162:5;;;17186:220;17223:3;17213:8;17210:17;17207:43;;;17230:18;;:::i;:::-;17292:1;17282:8;17278:16;17316:7;17307:16;;17351:3;17342:7;17339:16;17336:42;;;17358:18;;:::i;:::-;17336:42;17391:5;;;17098:308;;17490:2;17480:8;17477:16;17471:3;17465:4;17462:13;17458:36;17452:2;17442:8;17439:16;17434:2;17428:4;17425:12;17421:35;17418:77;17415:249;;;-1:-1:-1;17533:19:69;;;;17597:16;;;17594:42;;;17616:18;;:::i;:::-;17594:42;17649:5;;17415:249;17696:42;17734:3;17724:8;17718:4;17715:1;17696:42;:::i;:::-;17771:6;17766:3;17762:16;17753:7;17750:29;17747:55;;;17782:18;;:::i;:::-;17820:20;;16850:996;-1:-1:-1;;;;16850:996:69:o;17851:262::-;17911:5;17961:4;17984:123;18040:66;18029:8;18005:6;17984:123;:::i;18118:218::-;18229:28;;;18204:1;18229:28;18292:15;;;18289:41;;;18310:18;;:::i;18504:272::-;18633:2;204:19;;18551:3;256:4;247:14;;18476:16;18461:32;;18645:95;18341:158;18781:277;18983:2;18972:9;18965:21;18946:4;19003:49;19048:2;19037:9;19033:18;19003:49;:::i;19235:95::-;19317:5;19301:22;8506:67;19335:272;19497:2;19482:18;;19509:37;19486:9;19528:6;19509:37;:::i;:::-;19555:46;19597:2;19586:9;19582:18;19574:6;19555:46;:::i;20030:301::-;20071:3;20103:25;20122:5;87:12;;14:87;20103:25;20203:3;20224:67;20284:6;20277:5;20270:4;20263:5;20259:16;20224:67;:::i;:::-;20307:18;;20030:301;-1:-1:-1;;;20030:301:69:o;20336:290::-;20509:58;20563:3;20555:6;20509:58;:::i;:::-;20491:3;20583:37;20617:1;20612:3;20608:11;20600:6;20583:37;:::i;20631:189::-;20760:3;20785:29;20810:3;20802:6;20785:29;:::i;20939:116::-;7690:13;;7683:21;21004:5;21001:30;20991:58;;21045:1;21042;21035:12;21060:170;21147:13;;;21194:30;21147:13;21194:30;:::i;:::-;;21060:170;;;;:::o;21235:306::-;21302:6;21355:2;21343:9;21334:7;21330:23;21326:32;21323:147;;;21381:79;411:2531:64;;;21381:79:69;21489:46;21527:7;21516:9;21489:46;:::i;21867:220::-;22016:2;22005:9;21998:21;21979:4;22036:45;22077:2;22066:9;22062:18;22054:6;22036:45;:::i", "linkReferences": {} }, "methodIdentifiers": { "IS_TEST()": "fa7626d4", "excludeArtifacts()": "b5508aa9", "excludeContracts()": "e20c9f71", "excludeSenders()": "1ed7831c", "failed()": "ba414fa6", "setUp()": "0a9254e4", "targetArtifactSelectors()": "66d9a9a0", "targetArtifacts()": "85226c81", "targetContracts()": "3f7286f4", "targetSelectors()": "916a17c6", "targetSenders()": "3e5e3c23", "testFullMath()": "95d28dde" }, "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\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"setUp\",\"outputs\":[],\"stateMutability\":\"pure\",\"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\":\"testFullMath\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestFullMath.sol\":\"TestFullMath\"},\"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_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"test/TestFullMath.sol\":{\"keccak256\":\"0xf5c777b70ca6f914c5b409e5d93459f3466e60967603b8d547854cb9452dde2c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6d29e77450d02fee8e4673a0f3c3ae7867106237a700ca4be67f44c382561dc\",\"dweb:/ipfs/QmfUCkunhHnQCWJNnRq1DXQR7osqrScuHsxBozedT2rW7G\"]}},\"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": "IS_TEST", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "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": "pure", "type": "function", "name": "setUp" }, { "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": "pure", "type": "function", "name": "testFullMath" } ], "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/TestFullMath.sol": "TestFullMath" }, "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_uniswap/v3-core/contracts/libraries/FullMath.sol": { "keccak256": "0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be", "urls": [ "bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d", "dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2" ], "license": "MIT" }, "test/TestFullMath.sol": { "keccak256": "0xf5c777b70ca6f914c5b409e5d93459f3466e60967603b8d547854cb9452dde2c", "urls": [ "bzz-raw://d6d29e77450d02fee8e4673a0f3c3ae7867106237a700ca4be67f44c382561dc", "dweb:/ipfs/QmfUCkunhHnQCWJNnRq1DXQR7osqrScuHsxBozedT2rW7G" ], "license": "UNLICENSED" } }, "version": 1 }, "ast": { "absolutePath": "test/TestFullMath.sol", "id": 50392, "exportedSymbols": { "DSTest": [ 2291 ], "FullMath": [ 44519 ], "StdAssertions": [ 3823 ], "StdChains": [ 4516 ], "StdCheats": [ 7334 ], "StdInvariant": [ 7624 ], "StdStorage": [ 8374 ], "StdStyle": [ 11038 ], "StdUtils": [ 11886 ], "Test": [ 11937 ], "TestBase": [ 2357 ], "TestFullMath": [ 50391 ], "Vm": [ 13464 ], "console": [ 21528 ], "console2": [ 29653 ], "safeconsole": [ 42891 ], "stdError": [ 7400 ], "stdJson": [ 8200 ], "stdMath": [ 8342 ], "stdStorage": [ 9827 ] }, "nodeType": "SourceUnit", "src": "39:2904:64", "nodes": [ { "id": 50068, "nodeType": "PragmaDirective", "src": "39:24:64", "nodes": [], "literals": [ "solidity", ">=", "0.8", ".0" ] }, { "id": 50069, "nodeType": "PragmaDirective", "src": "64:19:64", "nodes": [], "literals": [ "abicoder", "v2" ] }, { "id": 50070, "nodeType": "ImportDirective", "src": "85:28:64", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "forge-std/Test.sol", "nameLocation": "-1:-1:-1", "scope": 50392, "sourceUnit": 11938, "symbolAliases": [], "unitAlias": "" }, { "id": 50071, "nodeType": "ImportDirective", "src": "114:59:64", "nodes": [], "absolutePath": "lib_uniswap/v3-core/contracts/libraries/FullMath.sol", "file": "@uniswap/v3-core/contracts/libraries/FullMath.sol", "nameLocation": "-1:-1:-1", "scope": 50392, "sourceUnit": 44520, "symbolAliases": [], "unitAlias": "" }, { "id": 50391, "nodeType": "ContractDefinition", "src": "411:2531:64", "nodes": [ { "id": 50083, "nodeType": "FunctionDefinition", "src": "448:78:64", "nodes": [], "body": { "id": 50082, "nodeType": "Block", "src": "477:49:64", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "46756c6c4d6174682073657475702829", "id": 50079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "500:18:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8afedb989039003b0376cd1dbc850e57e440163d8be8a50c0f75285c48de4817", "typeString": "literal_string \"FullMath setup()\"" }, "value": "FullMath setup()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_8afedb989039003b0376cd1dbc850e57e440163d8be8a50c0f75285c48de4817", "typeString": "literal_string \"FullMath setup()\"" } ], "expression": { "id": 50076, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "487:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "496:3:64", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "487:12:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50080, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "487:32:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50081, "nodeType": "ExpressionStatement", "src": "487:32:64" } ] }, "functionSelector": "0a9254e4", "implemented": true, "kind": "function", "modifiers": [], "name": "setUp", "nameLocation": "457:5:64", "parameters": { "id": 50074, "nodeType": "ParameterList", "parameters": [], "src": "462:2:64" }, "returnParameters": { "id": 50075, "nodeType": "ParameterList", "parameters": [], "src": "477:0:64" }, "scope": 50391, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 50390, "nodeType": "FunctionDefinition", "src": "532:2408:64", "nodes": [], "body": { "id": 50389, "nodeType": "Block", "src": "568:2372:64", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "46756c6c4d617468207465737446756c6c4d6174682829", "id": 50089, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "592:25:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_eec2f0dbfaf31ab996b148b23998e3d9fe9dc0948e1b13fb22fe19c2bc75a0d3", "typeString": "literal_string \"FullMath testFullMath()\"" }, "value": "FullMath testFullMath()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_eec2f0dbfaf31ab996b148b23998e3d9fe9dc0948e1b13fb22fe19c2bc75a0d3", "typeString": "literal_string \"FullMath testFullMath()\"" } ], "expression": { "id": 50086, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "579:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "588:3:64", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "579:12:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50090, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "579:39:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50091, "nodeType": "ExpressionStatement", "src": "579:39:64" }, { "assignments": [ 50093 ], "declarations": [ { "constant": false, "id": 50093, "mutability": "mutable", "name": "MinusOne", "nameLocation": "659:8:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "651:16:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50092, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "651:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50102, "initialValue": { "arguments": [ { "arguments": [ { "id": 50099, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "685:2:64", "subExpression": { "hexValue": "31", "id": 50098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "686:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_1_by_1", "typeString": "int_const -1" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_minus_1_by_1", "typeString": "int_const -1" } ], "id": 50097, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "678:6:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 50096, "name": "int256", "nodeType": "ElementaryTypeName", "src": "678:6:64", "typeDescriptions": {} } }, "id": 50100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "678:10:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 50095, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "670:7:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 50094, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "670:7:64", "typeDescriptions": {} } }, "id": 50101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "670:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "651:38:64" }, { "assignments": [ 50104 ], "declarations": [ { "constant": false, "id": 50104, "mutability": "mutable", "name": "MAXneg", "nameLocation": "707:6:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "699:14:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50103, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "699:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50108, "initialValue": { "commonType": { "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const 5789...(69 digits omitted)...9968" }, "id": 50107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50105, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "716:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "323535", "id": 50106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "719:3:64", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, "src": "716:6:64", "typeDescriptions": { "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const 5789...(69 digits omitted)...9968" } }, "nodeType": "VariableDeclarationStatement", "src": "699:23:64" }, { "assignments": [ 50110 ], "declarations": [ { "constant": false, "id": 50110, "mutability": "mutable", "name": "MAXpos", "nameLocation": "740:6:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "732:14:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50109, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "732:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50113, "initialValue": { "id": 50112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "749:7:64", "subExpression": { "id": 50111, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "750:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "732:24:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50115, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "802:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50116, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "812:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "hexValue": "31", "id": 50117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "822:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "812:11:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "802:21:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 50114, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "794:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 50120, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "794:30:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50121, "nodeType": "ExpressionStatement", "src": "794:30:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50123, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "842:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50124, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "852:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 50125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "859:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "852:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "842:18:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 50122, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "834:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 50128, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "834:27:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50129, "nodeType": "ExpressionStatement", "src": "834:27:64" }, { "id": 50138, "nodeType": "UncheckedBlock", "src": "871:58:64", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50131, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "902:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 50132, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "911:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "902:10:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 50134, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "916:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "902:15:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 50130, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "894:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 50136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "894:24:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50137, "nodeType": "ExpressionStatement", "src": "894:24:64" } ] }, { "assignments": [ 50140 ], "declarations": [ { "constant": false, "id": 50140, "mutability": "mutable", "name": "q", "nameLocation": "989:1:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "981:9:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50139, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "981:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50147, "initialValue": { "arguments": [ { "id": 50143, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1009:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50144, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1017:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50145, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1025:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50141, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "993:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1002:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "993:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "993:39:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "981:51:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50149, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1057:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50150, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1062:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1057:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "636173652031206661696c6564", "id": 50152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1070:15:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3ddcea50fc5ef33e45642ded380c51f36ea1621e33b4388bd460701893300640", "typeString": "literal_string \"case 1 failed\"" }, "value": "case 1 failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3ddcea50fc5ef33e45642ded380c51f36ea1621e33b4388bd460701893300640", "typeString": "literal_string \"case 1 failed\"" } ], "id": 50148, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1049:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50153, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1049:37:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50154, "nodeType": "ExpressionStatement", "src": "1049:37:64" }, { "expression": { "id": 50162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50155, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1147:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50158, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1167:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50159, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1177:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50160, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1187:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50156, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1151:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1160:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1151:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50161, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1151:45:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1147:49:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50163, "nodeType": "ExpressionStatement", "src": "1147:49:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50165, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1214:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50166, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1219:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1214:13:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "636173652032206661696c6564", "id": 50168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1229:15:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d5216c154e245ea5c181bcf7b7f7e626d9a8419a6725359dd4e53d6fb08cf0ba", "typeString": "literal_string \"case 2 failed\"" }, "value": "case 2 failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d5216c154e245ea5c181bcf7b7f7e626d9a8419a6725359dd4e53d6fb08cf0ba", "typeString": "literal_string \"case 2 failed\"" } ], "id": 50164, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1206:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50169, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1206:39:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50170, "nodeType": "ExpressionStatement", "src": "1206:39:64" }, { "expression": { "id": 50178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50171, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1307:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50174, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1327:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50175, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1335:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50176, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1343:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50172, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1311:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1320:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1311:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50177, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1311:39:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1307:43:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50179, "nodeType": "ExpressionStatement", "src": "1307:43:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50181, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1368:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50182, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1373:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1368:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "636173652033206661696c6564", "id": 50184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1381:15:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fc9505b9d94b88cf27b7445eb7b862caf485fdca567e161c7a91789fdf432953", "typeString": "literal_string \"case 3 failed\"" }, "value": "case 3 failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_fc9505b9d94b88cf27b7445eb7b862caf485fdca567e161c7a91789fdf432953", "typeString": "literal_string \"case 3 failed\"" } ], "id": 50180, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1360:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50185, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1360:37:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50186, "nodeType": "ExpressionStatement", "src": "1360:37:64" }, { "expression": { "id": 50194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50187, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1448:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50190, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1468:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50191, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1476:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50192, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1484:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50188, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1452:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1461:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1452:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1452:39:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1448:43:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50195, "nodeType": "ExpressionStatement", "src": "1448:43:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50197, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1509:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50198, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1514:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1509:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203461206661696c6564", "id": 50200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1522:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bcc74364cfcf9b6bc59e07bac2579d86a2ec48c31ebc343f15bfe16d64026937", "typeString": "literal_string \"case 4a failed\"" }, "value": "case 4a failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_bcc74364cfcf9b6bc59e07bac2579d86a2ec48c31ebc343f15bfe16d64026937", "typeString": "literal_string \"case 4a failed\"" } ], "id": 50196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1501:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1501:38:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50202, "nodeType": "ExpressionStatement", "src": "1501:38:64" }, { "expression": { "id": 50210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50203, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1549:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50206, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1569:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50207, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1577:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50208, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1585:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50204, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1553:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1562:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1553:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50209, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1553:39:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1549:43:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50211, "nodeType": "ExpressionStatement", "src": "1549:43:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50213, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1610:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50214, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1615:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1610:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203462206661696c6564", "id": 50216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1623:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_697e122b09d93ae3a6bef89775cdc3e8ffb6167d75aa91de6d73ab631f0d565a", "typeString": "literal_string \"case 4b failed\"" }, "value": "case 4b failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_697e122b09d93ae3a6bef89775cdc3e8ffb6167d75aa91de6d73ab631f0d565a", "typeString": "literal_string \"case 4b failed\"" } ], "id": 50212, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1602:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50217, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1602:38:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50218, "nodeType": "ExpressionStatement", "src": "1602:38:64" }, { "expression": { "id": 50226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50219, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1650:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50222, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1670:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50223, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1678:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50224, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1688:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50220, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1654:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1663:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1654:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50225, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1654:41:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1650:45:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50227, "nodeType": "ExpressionStatement", "src": "1650:45:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50229, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1713:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50230, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1718:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1713:13:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203463206661696c6564", "id": 50232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1728:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84b646916d2b2e04274c4975403f09d9b74eeaccf973461ffe7bdcfb0ce2f6e4", "typeString": "literal_string \"case 4c failed\"" }, "value": "case 4c failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_84b646916d2b2e04274c4975403f09d9b74eeaccf973461ffe7bdcfb0ce2f6e4", "typeString": "literal_string \"case 4c failed\"" } ], "id": 50228, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1705:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1705:40:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50234, "nodeType": "ExpressionStatement", "src": "1705:40:64" }, { "expression": { "id": 50242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50235, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1755:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50238, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1775:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50239, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1783:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50240, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1793:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50236, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1759:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1768:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1759:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1759:41:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1755:45:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50243, "nodeType": "ExpressionStatement", "src": "1755:45:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50245, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1818:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50246, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1823:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1818:13:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203464206661696c6564", "id": 50248, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1833:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_79b9954a1dd2e68f7e6082e9885fb8a02b8302fd9f586c5ad6bf7ebc3195bbc6", "typeString": "literal_string \"case 4d failed\"" }, "value": "case 4d failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_79b9954a1dd2e68f7e6082e9885fb8a02b8302fd9f586c5ad6bf7ebc3195bbc6", "typeString": "literal_string \"case 4d failed\"" } ], "id": 50244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1810:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50249, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1810:40:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50250, "nodeType": "ExpressionStatement", "src": "1810:40:64" }, { "expression": { "id": 50258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50251, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1860:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50254, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1880:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50255, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1888:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50256, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1898:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50252, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1864:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1873:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1864:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50257, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1864:43:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1860:47:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50259, "nodeType": "ExpressionStatement", "src": "1860:47:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50261, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1925:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50262, "name": "MAXpos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50110, "src": "1930:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1925:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203465206661696c6564", "id": 50264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1938:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e8772dac87c4cb3f3d254026d952404dea24e51dc5e874825b96ff3eb8e8a936", "typeString": "literal_string \"case 4e failed\"" }, "value": "case 4e failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e8772dac87c4cb3f3d254026d952404dea24e51dc5e874825b96ff3eb8e8a936", "typeString": "literal_string \"case 4e failed\"" } ], "id": 50260, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1917:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50265, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1917:38:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50266, "nodeType": "ExpressionStatement", "src": "1917:38:64" }, { "expression": { "id": 50274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50267, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "1965:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50270, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "1985:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50271, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "1993:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50272, "name": "MinusOne", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50093, "src": "2003:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50268, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "1969:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1978:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "1969:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1969:43:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1965:47:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50275, "nodeType": "ExpressionStatement", "src": "1965:47:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50277, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "2030:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50278, "name": "MAXneg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50104, "src": "2035:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2030:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203466206661696c6564", "id": 50280, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2043:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_940276a936d3d17ab9e35739f4e5e11a964ab258548eaff0bfa6376ea8fa656c", "typeString": "literal_string \"case 4f failed\"" }, "value": "case 4f failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_940276a936d3d17ab9e35739f4e5e11a964ab258548eaff0bfa6376ea8fa656c", "typeString": "literal_string \"case 4f failed\"" } ], "id": 50276, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2022:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50281, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2022:38:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50282, "nodeType": "ExpressionStatement", "src": "2022:38:64" }, { "assignments": [ 50284 ], "declarations": [ { "constant": false, "id": 50284, "mutability": "mutable", "name": "a", "nameLocation": "2155:1:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2147:9:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50283, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2147:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50285, "nodeType": "VariableDeclarationStatement", "src": "2147:9:64" }, { "assignments": [ 50287 ], "declarations": [ { "constant": false, "id": 50287, "mutability": "mutable", "name": "b", "nameLocation": "2174:1:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2166:9:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2166:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50288, "nodeType": "VariableDeclarationStatement", "src": "2166:9:64" }, { "assignments": [ 50290 ], "declarations": [ { "constant": false, "id": 50290, "mutability": "mutable", "name": "d", "nameLocation": "2193:1:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2185:9:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50289, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2185:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50291, "nodeType": "VariableDeclarationStatement", "src": "2185:9:64" }, { "assignments": [ 50293 ], "declarations": [ { "constant": false, "id": 50293, "mutability": "mutable", "name": "expected", "nameLocation": "2212:8:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2204:16:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50292, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2204:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50294, "nodeType": "VariableDeclarationStatement", "src": "2204:16:64" }, { "expression": { "id": 50297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50295, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50284, "src": "2231:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "333136393232313031363331353537333535313832333138343631373831323438303130383739363830363433303732", "id": 50296, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2235:48:64", "typeDescriptions": { "typeIdentifier": "t_rational_316922101631557355182318461781248010879680643072_by_1", "typeString": "int_const 3169...(40 digits omitted)...3072" }, "value": "316922101631557355182318461781248010879680643072" }, "src": "2231:52:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50298, "nodeType": "ExpressionStatement", "src": "2231:52:64" }, { "expression": { "id": 50301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50299, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50287, "src": "2303:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "32363934353139393938303935323037323237383033313735383833373430", "id": 50300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2307:31:64", "typeDescriptions": { "typeIdentifier": "t_rational_2694519998095207227803175883740_by_1", "typeString": "int_const 2694519998095207227803175883740" }, "value": "2694519998095207227803175883740" }, "src": "2303:35:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50302, "nodeType": "ExpressionStatement", "src": "2303:35:64" }, { "expression": { "id": 50305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50303, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50290, "src": "2358:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "3739323332303139303835333936383535333935353039313630363830363931363838", "id": 50304, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2362:35:64", "typeDescriptions": { "typeIdentifier": "t_rational_79232019085396855395509160680691688_by_1", "typeString": "int_const 7923...(27 digits omitted)...1688" }, "value": "79232019085396855395509160680691688" }, "src": "2358:39:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50306, "nodeType": "ExpressionStatement", "src": "2358:39:64" }, { "expression": { "id": 50309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50307, "name": "expected", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50293, "src": "2417:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "3130373737383736383034363331313730373534323439353233313036333933393132343532383036313231", "id": 50308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2428:44:64", "typeDescriptions": { "typeIdentifier": "t_rational_10777876804631170754249523106393912452806121_by_1", "typeString": "int_const 1077...(36 digits omitted)...6121" }, "value": "10777876804631170754249523106393912452806121" }, "src": "2417:55:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50310, "nodeType": "ExpressionStatement", "src": "2417:55:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 50314, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50284, "src": "2518:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50315, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50287, "src": "2521:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50316, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50290, "src": "2524:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50312, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "2502:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2511:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "2502:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50317, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2502:24:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50318, "name": "expected", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50293, "src": "2530:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2502:36:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "436173652035206661696c6564", "id": 50320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2540:15:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4eb7719bdac677452ce23a381b5138b31aa57999011d66f682d39ae4354761a1", "typeString": "literal_string \"Case 5 failed\"" }, "value": "Case 5 failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4eb7719bdac677452ce23a381b5138b31aa57999011d66f682d39ae4354761a1", "typeString": "literal_string \"Case 5 failed\"" } ], "id": 50311, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2493:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50321, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2493:63:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50322, "nodeType": "ExpressionStatement", "src": "2493:63:64" }, { "assignments": [ 50324 ], "declarations": [ { "constant": false, "id": 50324, "mutability": "mutable", "name": "aExp", "nameLocation": "2616:4:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2608:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50323, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2608:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50325, "nodeType": "VariableDeclarationStatement", "src": "2608:12:64" }, { "assignments": [ 50327 ], "declarations": [ { "constant": false, "id": 50327, "mutability": "mutable", "name": "bExp", "nameLocation": "2638:4:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2630:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50326, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2630:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50328, "nodeType": "VariableDeclarationStatement", "src": "2630:12:64" }, { "assignments": [ 50330 ], "declarations": [ { "constant": false, "id": 50330, "mutability": "mutable", "name": "dExp", "nameLocation": "2660:4:64", "nodeType": "VariableDeclaration", "scope": 50389, "src": "2652:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50329, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2652:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50331, "nodeType": "VariableDeclarationStatement", "src": "2652:12:64" }, { "expression": { "id": 50334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50332, "name": "aExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50324, "src": "2675:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "323535", "id": 50333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2682:3:64", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, "src": "2675:10:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50335, "nodeType": "ExpressionStatement", "src": "2675:10:64" }, { "expression": { "id": 50338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50336, "name": "bExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50327, "src": "2695:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "323535", "id": 50337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2702:3:64", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, "src": "2695:10:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50339, "nodeType": "ExpressionStatement", "src": "2695:10:64" }, { "expression": { "id": 50342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50340, "name": "dExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50330, "src": "2715:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "323535", "id": 50341, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2722:3:64", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, "src": "2715:10:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50343, "nodeType": "ExpressionStatement", "src": "2715:10:64" }, { "expression": { "id": 50348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50344, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50284, "src": "2736:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2740:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "id": 50346, "name": "aExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50324, "src": "2743:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2740:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2736:11:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50349, "nodeType": "ExpressionStatement", "src": "2736:11:64" }, { "expression": { "id": 50354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50350, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50287, "src": "2757:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2761:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "id": 50352, "name": "bExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50327, "src": "2764:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2761:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2757:11:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50355, "nodeType": "ExpressionStatement", "src": "2757:11:64" }, { "expression": { "id": 50360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50356, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50290, "src": "2778:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2782:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "id": 50358, "name": "dExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50330, "src": "2785:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2782:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2778:11:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50361, "nodeType": "ExpressionStatement", "src": "2778:11:64" }, { "expression": { "id": 50371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50362, "name": "expected", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50293, "src": "2799:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2810:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50364, "name": "aExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50324, "src": "2814:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 50365, "name": "bExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50327, "src": "2819:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2814:9:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50367, "name": "dExp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50330, "src": "2824:4:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2814:14:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 50369, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "2813:16:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2810:19:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2799:30:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50372, "nodeType": "ExpressionStatement", "src": "2799:30:64" }, { "expression": { "id": 50380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50373, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "2840:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 50376, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50284, "src": "2860:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50377, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50287, "src": "2862:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 50378, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50290, "src": "2864:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 50374, "name": "FullMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44519, "src": "2844:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FullMath_$44519_$", "typeString": "type(library FullMath)" } }, "id": 50375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2853:6:64", "memberName": "mulDiv", "nodeType": "MemberAccess", "referencedDeclaration": 44474, "src": "2844:15:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 50379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2844:22:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2840:26:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50381, "nodeType": "ExpressionStatement", "src": "2840:26:64" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50383, "name": "q", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50140, "src": "2891:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 50384, "name": "expected", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50293, "src": "2896:8:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2891:13:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "63617365203130206661696c6564", "id": 50386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2906:16:64", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c42564ac746edea2615e8a1eca6d242d8d7d1f4ad6aa44eafc8c3dfa2923ea3c", "typeString": "literal_string \"case 10 failed\"" }, "value": "case 10 failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c42564ac746edea2615e8a1eca6d242d8d7d1f4ad6aa44eafc8c3dfa2923ea3c", "typeString": "literal_string \"case 10 failed\"" } ], "id": 50382, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2883:7:64", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50387, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2883:40:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50388, "nodeType": "ExpressionStatement", "src": "2883:40:64" } ] }, "functionSelector": "95d28dde", "implemented": true, "kind": "function", "modifiers": [], "name": "testFullMath", "nameLocation": "541:12:64", "parameters": { "id": 50084, "nodeType": "ParameterList", "parameters": [], "src": "553:2:64" }, "returnParameters": { "id": 50085, "nodeType": "ParameterList", "parameters": [], "src": "568:0:64" }, "scope": 50391, "stateMutability": "pure", "virtual": false, "visibility": "public" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 50072, "name": "Test", "nameLocations": [ "436:4:64" ], "nodeType": "IdentifierPath", "referencedDeclaration": 11937, "src": "436:4:64" }, "id": 50073, "nodeType": "InheritanceSpecifier", "src": "436:4:64" } ], "canonicalName": "TestFullMath", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "internalFunctionIDs": { "21582": 1 }, "linearizedBaseContracts": [ 50391, 11937, 2357, 2354, 11886, 7624, 7334, 6570, 4516, 3823, 2291 ], "name": "TestFullMath", "nameLocation": "420:12:64", "scope": 50392, "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": 64 }