diff --git a/test/regression/addliquidity.ref b/test/regression/addliquidity.ref new file mode 100644 index 0000000..c39e0e7 --- /dev/null +++ b/test/regression/addliquidity.ref @@ -0,0 +1,2477 @@ + + + .K + + + false + + + + UniswapV2SwapTest + + + + + IERC20 + + + + + approve + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( bool ) + + + + balanceOf + + + ListItem ( address ) + + + ListItem ( uint256 ) + + + + transfer + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( bool ) + + + + transferFrom + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( bool ) + + + + + + + + + DAIMock + + + UINT_MAX |-> uint256 + allowance |-> mapping ( address => mapping ( address => uint256 ) ) + balanceOf |-> mapping ( address => uint256 ) + totalSupply |-> uint256 + + + ListItem ( UINT_MAX = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ; ) + + + + + allowance + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( $0 ) + ListItem ( $1 ) + + + ListItem ( mapping ( address => mapping ( address => uint256 ) ) ) + + + ListItem ( noId ) + + + false + + + return allowance [ $0 ] [ $1 ] ; .Statements + + + + approve + + + external + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( usr ) + ListItem ( wad ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + allowance [ msg . sender ] [ usr ] = wad ; emit Approval ( msg . sender , usr , wad , .TypedVals ) ; return true ; .Statements + + + + balanceOf + + + public + + + ListItem ( address ) + + + ListItem ( $0 ) + + + ListItem ( mapping ( address => uint256 ) ) + + + ListItem ( noId ) + + + false + + + return balanceOf [ $0 ] ; .Statements + + + + burn + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( usr ) + ListItem ( wad ) + + + .List + + + .List + + + false + + + if ( balanceOf [ usr ] >= wad ) { balanceOf [ usr ] = balanceOf [ usr ] - wad ; totalSupply = totalSupply - wad ; .Statements } .Statements + + + + decimals + + + external + + + .List + + + .List + + + ListItem ( uint8 ) + + + ListItem ( noId ) + + + false + + + return 18 ; .Statements + + + + mint + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( usr ) + ListItem ( wad ) + + + .List + + + .List + + + false + + + balanceOf [ usr ] = balanceOf [ usr ] + wad ; totalSupply = totalSupply + wad ; emit Transfer ( address ( 0 , .TypedVals ) , usr , wad , .TypedVals ) ; .Statements + + + + mintOnDeposit + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( usr ) + ListItem ( wad ) + + + .List + + + .List + + + false + + + mint ( usr , wad , .TypedVals ) ; .Statements + + + + safeTransferFrom + + + external + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + .List + + + .List + + + false + + + transferFrom ( from , to , value , .TypedVals ) ; .Statements + + + + totalSupply + + + public + + + .List + + + .List + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return totalSupply ; .Statements + + + + transfer + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( dst ) + ListItem ( wad ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + return transferFrom ( msg . sender , dst , wad , .TypedVals ) ; .Statements + + + + transferFrom + + + public + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( src ) + ListItem ( dst ) + ListItem ( wad ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + require ( balanceOf [ src ] >= wad , "Dai/insufficient-balance" , .TypedVals ) ; if ( src != msg . sender && allowance [ src ] [ msg . sender ] != UINT_MAX ) { require ( allowance [ src ] [ msg . sender ] >= wad , "Dai/insufficient-allowance" , .TypedVals ) ; allowance [ src ] [ msg . sender ] = allowance [ src ] [ msg . sender ] - wad ; .Statements } balanceOf [ src ] = balanceOf [ src ] - wad ; balanceOf [ dst ] = balanceOf [ dst ] + wad ; emit Transfer ( src , dst , wad , .TypedVals ) ; return true ; .Statements + + + + + + + Approval + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( src ) + ListItem ( guy ) + ListItem ( wad ) + + + SetItem ( 0 ) + SetItem ( 1 ) + + + + Transfer + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( src ) + ListItem ( dst ) + ListItem ( wad ) + + + SetItem ( 0 ) + SetItem ( 1 ) + + + + + + USDCMock + + + UINT256_MAX |-> uint256 + _allowances |-> mapping ( address account => mapping ( address spender => uint256 ) ) + _balances |-> mapping ( address account => uint256 ) + _totalSupply |-> uint256 + + + ListItem ( UINT256_MAX = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ; ) + + + + + _approve + + + private + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + ListItem ( bool ) + + + ListItem ( owner ) + ListItem ( spender ) + ListItem ( value ) + ListItem ( emitEvent ) + + + .List + + + .List + + + false + + + require ( owner != address ( 0 , .TypedVals ) , "USDC: invalid approver" , .TypedVals ) ; require ( spender != address ( 0 , .TypedVals ) , "USDC: invalid spender" , .TypedVals ) ; _allowances [ owner ] [ spender ] = value ; if ( emitEvent ) { emit Approval ( owner , spender , value , .TypedVals ) ; .Statements } .Statements + + + + _spendAllowance + + + private + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( owner ) + ListItem ( spender ) + ListItem ( value ) + + + .List + + + .List + + + false + + + uint256 currentAllowance = allowance ( owner , spender , .TypedVals ) ; if ( currentAllowance != UINT256_MAX ) { require ( currentAllowance >= value , "USDC: insufficient allowance" , .TypedVals ) ; _approve ( owner , spender , currentAllowance - value , false , .TypedVals ) ; .Statements } .Statements + + + + _transfer + + + private + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + .List + + + .List + + + false + + + require ( from != address ( 0 , .TypedVals ) , "USDC: invalid sender" , .TypedVals ) ; require ( to != address ( 0 , .TypedVals ) , "USDC: invalid receiver" , .TypedVals ) ; _update ( from , to , value , .TypedVals ) ; .Statements + + + + _update + + + private + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + .List + + + .List + + + false + + + if ( from == address ( 0 , .TypedVals ) ) { _totalSupply = _totalSupply + value ; .Statements } else { uint256 fromBalance = _balances [ from ] ; require ( fromBalance >= value , "USDC: insufficient balance" , .TypedVals ) ; _balances [ from ] = fromBalance - value ; .Statements } if ( to == address ( 0 , .TypedVals ) ) { _totalSupply = _totalSupply - value ; .Statements } else { _balances [ to ] = _balances [ to ] + value ; .Statements } emit Transfer ( from , to , value , .TypedVals ) ; .Statements + + + + allowance + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( owner ) + ListItem ( spender ) + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return _allowances [ owner ] [ spender ] ; .Statements + + + + approve + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( spender ) + ListItem ( value ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + address owner = msg . sender ; _approve ( owner , spender , value , true , .TypedVals ) ; return true ; .Statements + + + + balanceOf + + + public + + + ListItem ( address ) + + + ListItem ( account ) + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return _balances [ account ] ; .Statements + + + + decimals + + + external + + + .List + + + .List + + + ListItem ( uint8 ) + + + ListItem ( noId ) + + + false + + + return 18 ; .Statements + + + + mint + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( account ) + ListItem ( value ) + + + .List + + + .List + + + false + + + require ( account != address ( 0 , .TypedVals ) , "USDC: invalid receiver" , .TypedVals ) ; _update ( address ( 0 , .TypedVals ) , account , value , .TypedVals ) ; .Statements + + + + transfer + + + public + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( to ) + ListItem ( value ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + address owner = msg . sender ; _transfer ( owner , to , value , .TypedVals ) ; return true ; .Statements + + + + transferFrom + + + public + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + address spender = msg . sender ; _spendAllowance ( from , spender , value , .TypedVals ) ; _transfer ( from , to , value , .TypedVals ) ; return true ; .Statements + + + + + + + Approval + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( owner ) + ListItem ( spender ) + ListItem ( value ) + + + SetItem ( 0 ) + SetItem ( 1 ) + + + + Transfer + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + SetItem ( 0 ) + SetItem ( 1 ) + + + + + + UniswapV2Pair + + + MINIMUM_LIQUIDITY |-> uint256 + UINT112_MAX |-> uint256 + balanceOf |-> mapping ( address => uint256 ) + blockTimestampLast |-> uint32 + kLast |-> uint256 + price0CumulativeLast |-> uint256 + price1CumulativeLast |-> uint256 + reserve0 |-> uint112 + reserve1 |-> uint112 + token0 |-> address + token1 |-> address + totalSupply |-> uint256 + + + ListItem ( UINT112_MAX = 0xffffffffffffffffffffffffffff ; ) + ListItem ( MINIMUM_LIQUIDITY = 10 ** 3 ; ) + + + + + MINIMUM_LIQUIDITY + + + public + + + .List + + + .List + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return MINIMUM_LIQUIDITY ; .Statements + + + + _update + + + private + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint112 ) + ListItem ( uint112 ) + + + ListItem ( balance0 ) + ListItem ( balance1 ) + ListItem ( _reserve0 ) + ListItem ( _reserve1 ) + + + .List + + + .List + + + false + + + require ( balance0 <= UINT112_MAX && balance1 <= UINT112_MAX , "UniswapV2: OVERFLOW" , .TypedVals ) ; uint32 blockTimestamp = uint32 ( block . timestamp % 2 ** 32 , .TypedVals ) ; uint32 timeElapsed = blockTimestamp - blockTimestampLast ; if ( timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0 ) { price0CumulativeLast = price0CumulativeLast + _reserve1 / _reserve0 * timeElapsed ; price1CumulativeLast = price1CumulativeLast + _reserve0 / _reserve1 * timeElapsed ; .Statements } reserve0 = uint112 ( balance0 , .TypedVals ) ; reserve1 = uint112 ( balance1 , .TypedVals ) ; blockTimestampLast = blockTimestamp ; emit Sync ( reserve0 , reserve1 , .TypedVals ) ; .Statements + + + + balanceOf + + + public + + + ListItem ( address ) + + + ListItem ( $0 ) + + + ListItem ( mapping ( address => uint256 ) ) + + + ListItem ( noId ) + + + false + + + return balanceOf [ $0 ] ; .Statements + + + + constructor + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( _token0 ) + ListItem ( _token1 ) + + + .List + + + .List + + + false + + + token0 = _token0 ; token1 = _token1 ; .Statements + + + + getReserves + + + public + + + .List + + + .List + + + ListItem ( uint112 [ ] ) + + + ListItem ( reserves ) + + + false + + + reserves = new uint112 [ ] ( 3 , .TypedVals ) ; reserves [ 0 ] = reserve0 ; reserves [ 1 ] = reserve1 ; reserves [ 2 ] = blockTimestampLast ; .Statements + + + + kLast + + + public + + + .List + + + .List + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return kLast ; .Statements + + + + math_min + + + internal + + + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( x ) + ListItem ( y ) + + + ListItem ( uint256 ) + + + ListItem ( z ) + + + false + + + z = x < y ? x : y ; .Statements + + + + math_sqrt + + + internal + + + ListItem ( uint256 ) + + + ListItem ( y ) + + + ListItem ( uint256 ) + + + ListItem ( z ) + + + false + + + if ( y > 3 ) { z = y ; uint256 x = y / 2 + 1 ; while ( x < z ) { z = x ; x = ( y / x + x ) / 2 ; .Statements } .Statements } else if ( y != 0 ) { z = 1 ; .Statements } .Statements + + + + mint + + + external + + + ListItem ( address ) + + + ListItem ( to ) + + + ListItem ( uint256 ) + + + ListItem ( liquidity ) + + + false + + + uint112 [ ] memory pair_reserves = getReserves ( .TypedVals ) ; uint256 balance0 = IERC20 ( token0 , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) ; uint256 balance1 = IERC20 ( token1 , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) ; uint256 amount0 = balance0 - pair_reserves [ 0 ] ; uint256 amount1 = balance1 - pair_reserves [ 1 ] ; uint256 _totalSupply = totalSupply ; if ( _totalSupply == 0 ) { liquidity = math_sqrt ( amount0 * amount1 , .TypedVals ) - MINIMUM_LIQUIDITY ; totalSupply = totalSupply + MINIMUM_LIQUIDITY ; balanceOf [ address ( 0 , .TypedVals ) ] = balanceOf [ address ( 0 , .TypedVals ) ] + MINIMUM_LIQUIDITY ; .Statements } else { liquidity = math_min ( amount0 * _totalSupply / pair_reserves [ 0 ] , amount1 * _totalSupply / pair_reserves [ 1 ] , .TypedVals ) ; .Statements } require ( liquidity > 0 , "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" , .TypedVals ) ; totalSupply = totalSupply + liquidity ; balanceOf [ to ] = balanceOf [ to ] + liquidity ; _update ( balance0 , balance1 , pair_reserves [ 0 ] , pair_reserves [ 1 ] , .TypedVals ) ; emit Mint ( msg . sender , amount0 , amount1 , .TypedVals ) ; .Statements + + + + price0CumulativeLast + + + public + + + .List + + + .List + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return price0CumulativeLast ; .Statements + + + + price1CumulativeLast + + + public + + + .List + + + .List + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return price1CumulativeLast ; .Statements + + + + swap + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( address ) + + + ListItem ( amount0Out ) + ListItem ( amount1Out ) + ListItem ( to ) + + + .List + + + .List + + + false + + + require ( amount0Out > 0 || amount1Out > 0 , "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" , .TypedVals ) ; uint112 [ ] memory reserves = getReserves ( .TypedVals ) ; require ( amount0Out < reserves [ 0 ] && amount1Out < reserves [ 1 ] , "UniswapV2: INSUFFICIENT_LIQUIDITY" , .TypedVals ) ; uint256 balance0 ; uint256 balance1 ; { address _token0 = token0 ; address _token1 = token1 ; require ( to != _token0 && to != _token1 , "UniswapV2: INVALID_TO" , .TypedVals ) ; if ( amount0Out > 0 ) IERC20 ( _token0 , .TypedVals ) . transfer ( to , amount0Out , .TypedVals ) ; if ( amount1Out > 0 ) IERC20 ( _token1 , .TypedVals ) . transfer ( to , amount1Out , .TypedVals ) ; balance0 = IERC20 ( _token0 , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) ; balance1 = IERC20 ( _token1 , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) ; .Statements } uint256 amount0In = balance0 > reserves [ 0 ] - amount0Out ? balance0 - ( reserves [ 0 ] - amount0Out ) : 0 ; uint256 amount1In = balance1 > reserves [ 1 ] - amount1Out ? balance1 - ( reserves [ 1 ] - amount1Out ) : 0 ; require ( amount0In > 0 || amount1In > 0 , "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" , .TypedVals ) ; { uint256 balance0Adjusted = balance0 * 1000 - amount0In * 3 ; uint256 balance1Adjusted = balance1 * 1000 - amount1In * 3 ; require ( balance0Adjusted * balance1Adjusted >= uint256 ( reserves [ 0 ] , .TypedVals ) * reserves [ 1 ] * 1000 ** 2 , "UniswapV2: K" , .TypedVals ) ; .Statements } _update ( balance0 , balance1 , reserves [ 0 ] , reserves [ 1 ] , .TypedVals ) ; emit Swap ( msg . sender , amount0In , amount1In , amount0Out , amount1Out , to , .TypedVals ) ; .Statements + + + + sync + + + external + + + .List + + + .List + + + .List + + + .List + + + false + + + _update ( IERC20 ( token0 , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) , IERC20 ( token1 , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) , reserve0 , reserve1 , .TypedVals ) ; .Statements + + + + token0 + + + public + + + .List + + + .List + + + ListItem ( address ) + + + ListItem ( noId ) + + + false + + + return token0 ; .Statements + + + + token1 + + + public + + + .List + + + .List + + + ListItem ( address ) + + + ListItem ( noId ) + + + false + + + return token1 ; .Statements + + + + totalSupply + + + public + + + .List + + + .List + + + ListItem ( uint256 ) + + + ListItem ( noId ) + + + false + + + return totalSupply ; .Statements + + + + + + + Mint + + + ListItem ( address ) + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( sender ) + ListItem ( amount0 ) + ListItem ( amount1 ) + + + SetItem ( 0 ) + + + + Swap + + + ListItem ( address ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( address ) + + + ListItem ( sender ) + ListItem ( amount0In ) + ListItem ( amount1In ) + ListItem ( amount0Out ) + ListItem ( amount1Out ) + ListItem ( to ) + + + SetItem ( 0 ) + SetItem ( 5 ) + + + + Sync + + + ListItem ( uint112 ) + ListItem ( uint112 ) + + + ListItem ( reserve0 ) + ListItem ( reserve1 ) + + + .Set + + + + + + UniswapV2Router02 + + + local_pairs |-> mapping ( address => mapping ( address => address ) ) + + + .List + + + + + _addLiquidity + + + internal + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + ListItem ( amountADesired ) + ListItem ( amountBDesired ) + ListItem ( amountAMin ) + ListItem ( amountBMin ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( amounts ) + + + false + + + amounts = new uint256 [ ] ( 2 , .TypedVals ) ; require ( get_local_pair ( tokenA , tokenB , .TypedVals ) != address ( 0 , .TypedVals ) , .TypedVals ) ; uint256 [ ] memory reserves = uniswapV2Library_getReserves ( tokenA , tokenB , .TypedVals ) ; if ( reserves [ 0 ] == 0 && reserves [ 1 ] == 0 ) { amounts [ 0 ] = amountADesired ; amounts [ 1 ] = amountBDesired ; .Statements } else { uint256 amountBOptimal = uniswapV2Library_quote ( amountADesired , reserves [ 0 ] , reserves [ 1 ] , .TypedVals ) ; if ( amountBOptimal <= amountBDesired ) { require ( amountBOptimal >= amountBMin , "UniswapV2Router: INSUFFICIENT_B_AMOUNT" , .TypedVals ) ; amounts [ 0 ] = amountADesired ; amounts [ 1 ] = amountBOptimal ; .Statements } else { uint256 amountAOptimal = uniswapV2Library_quote ( amountBDesired , reserves [ 1 ] , reserves [ 0 ] , .TypedVals ) ; assert ( amountAOptimal <= amountADesired , .TypedVals ) ; require ( amountAOptimal >= amountAMin , "UniswapV2Router: INSUFFICIENT_A_AMOUNT" , .TypedVals ) ; amounts [ 0 ] = amountAOptimal ; amounts [ 1 ] = amountBDesired ; .Statements } .Statements } .Statements + + + + _swap + + + private + + + ListItem ( uint256 [ ] ) + ListItem ( address [ ] ) + ListItem ( address ) + + + ListItem ( amounts ) + ListItem ( path ) + ListItem ( _to ) + + + .List + + + .List + + + false + + + { uint256 i ; while ( i < path . length - 1 ) { { address input = path [ i ] ; address output = path [ i + 1 ] ; address [ ] memory tokens = uniswapV2Library_sortTokens ( input , output , .TypedVals ) ; uint256 amountOut = amounts [ i + 1 ] ; uint256 amount0Out = input == tokens [ 0 ] ? uint256 ( 0 , .TypedVals ) : amountOut ; uint256 amount1Out = input == tokens [ 0 ] ? amountOut : uint256 ( 0 , .TypedVals ) ; address to = i < path . length - 2 ? uniswapV2Library_pairFor ( output , path [ i + 2 ] , .TypedVals ) : _to ; UniswapV2Pair ( uniswapV2Library_pairFor ( input , output , .TypedVals ) , .TypedVals ) . swap ( amount0Out , amount1Out , to , .TypedVals ) ; .Statements } i ++ ; .Statements } .Statements } .Statements + + + + addLiquidity + + + external + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + ListItem ( amountADesired ) + ListItem ( amountBDesired ) + ListItem ( amountAMin ) + ListItem ( amountBMin ) + ListItem ( to ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( amounts_liq ) + + + false + + + amounts_liq = new uint256 [ ] ( 3 , .TypedVals ) ; uint256 [ ] memory amounts = _addLiquidity ( tokenA , tokenB , amountADesired , amountBDesired , amountAMin , amountBMin , .TypedVals ) ; amounts_liq [ 0 ] = amounts [ 0 ] ; amounts_liq [ 1 ] = amounts [ 1 ] ; address pair = uniswapV2Library_pairFor ( tokenA , tokenB , .TypedVals ) ; IERC20 ( tokenA , .TypedVals ) . transferFrom ( msg . sender , pair , amounts [ 0 ] , .TypedVals ) ; IERC20 ( tokenB , .TypedVals ) . transferFrom ( msg . sender , pair , amounts [ 1 ] , .TypedVals ) ; amounts_liq [ 2 ] = UniswapV2Pair ( pair , .TypedVals ) . mint ( to , .TypedVals ) ; .Statements + + + + get_local_pair + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + + + ListItem ( address ) + + + ListItem ( pair ) + + + false + + + address [ ] memory tokens = uniswapV2Library_sortTokens ( tokenA , tokenB , .TypedVals ) ; pair = local_pairs [ tokens [ 0 ] ] [ tokens [ 1 ] ] ; .Statements + + + + local_pairs + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( $0 ) + ListItem ( $1 ) + + + ListItem ( mapping ( address => mapping ( address => address ) ) ) + + + ListItem ( noId ) + + + false + + + return local_pairs [ $0 ] [ $1 ] ; .Statements + + + + set_local_pair + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + + + .List + + + .List + + + false + + + address [ ] memory tokens = uniswapV2Library_sortTokens ( tokenA , tokenB , .TypedVals ) ; local_pairs [ tokens [ 0 ] ] [ tokens [ 1 ] ] = address ( new UniswapV2Pair ( address ( tokens [ 0 ] , .TypedVals ) , address ( tokens [ 1 ] , .TypedVals ) , .TypedVals ) , .TypedVals ) ; .Statements + + + + swapExactTokensForTokens + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( address [ ] ) + ListItem ( address ) + + + ListItem ( amountIn ) + ListItem ( amountOutMin ) + ListItem ( path ) + ListItem ( to ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( amounts ) + + + false + + + amounts = uniswapV2Library_getAmountsOut ( amountIn , path , .TypedVals ) ; require ( amounts [ amounts . length - 1 ] >= amountOutMin , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" , .TypedVals ) ; IERC20 ( path [ 0 ] , .TypedVals ) . transferFrom ( msg . sender , uniswapV2Library_pairFor ( path [ 0 ] , path [ 1 ] , .TypedVals ) , amounts [ 0 ] , .TypedVals ) ; _swap ( amounts , path , to , .TypedVals ) ; .Statements + + + + swapTokensForExactTokens + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( address [ ] ) + ListItem ( address ) + + + ListItem ( amountOut ) + ListItem ( amountInMax ) + ListItem ( path ) + ListItem ( to ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( amounts ) + + + false + + + amounts = uniswapV2Library_getAmountsIn ( amountOut , path , .TypedVals ) ; require ( amounts [ 0 ] <= amountInMax , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" , .TypedVals ) ; IERC20 ( path [ 0 ] , .TypedVals ) . transferFrom ( msg . sender , uniswapV2Library_pairFor ( path [ 0 ] , path [ 1 ] , .TypedVals ) , amounts [ 0 ] , .TypedVals ) ; _swap ( amounts , path , to , .TypedVals ) ; .Statements + + + + sync_local_pair + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + + + .List + + + .List + + + false + + + address [ ] memory tokens = uniswapV2Library_sortTokens ( tokenA , tokenB , .TypedVals ) ; UniswapV2Pair ( local_pairs [ tokens [ 0 ] ] [ tokens [ 1 ] ] , .TypedVals ) . sync ( .TypedVals ) ; .Statements + + + + uniswapV2Library_getAmountIn + + + private + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountOut ) + ListItem ( reserveIn ) + ListItem ( reserveOut ) + + + ListItem ( uint256 ) + + + ListItem ( amountIn ) + + + false + + + require ( amountOut > 0 , "UniswapV2Library: INSUFFICIENT_OUTPUT_AMOUNT" , .TypedVals ) ; require ( reserveIn > 0 && reserveOut > 0 , "UniswapV2Library: INSUFFICIENT_LIQUIDITY" , .TypedVals ) ; uint256 numerator = reserveIn * amountOut * 1000 ; uint256 denominator = ( reserveOut - amountOut ) * 997 ; amountIn = denominator != 0 ? numerator / denominator + 1 : 1 ; .Statements + + + + uniswapV2Library_getAmountOut + + + private + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountIn ) + ListItem ( reserveIn ) + ListItem ( reserveOut ) + + + ListItem ( uint256 ) + + + ListItem ( amountOut ) + + + false + + + require ( amountIn > 0 , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" , .TypedVals ) ; require ( reserveIn > 0 && reserveOut > 0 , "UniswapV2Library: INSUFFICIENT_LIQUIDITY" , .TypedVals ) ; uint256 amountInWithFee = amountIn * 997 ; uint256 numerator = amountInWithFee * reserveOut ; uint256 denominator = reserveIn * 1000 + amountInWithFee ; amountOut = numerator / denominator ; .Statements + + + + uniswapV2Library_getAmountsIn + + + private + + + ListItem ( uint256 ) + ListItem ( address [ ] ) + + + ListItem ( amountOut ) + ListItem ( path ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( amounts ) + + + false + + + require ( path . length >= 2 , "UniswapV2Library: INVALID_PATH" , .TypedVals ) ; amounts = new uint256 [ ] ( path . length , .TypedVals ) ; amounts [ amounts . length - 1 ] = amountOut ; { uint256 i = path . length - 1 ; while ( i > 0 ) { { uint256 [ ] memory reserves = uniswapV2Library_getReserves ( path [ i - 1 ] , path [ i ] , .TypedVals ) ; amounts [ i - 1 ] = uniswapV2Library_getAmountIn ( amounts [ i ] , reserves [ 0 ] , reserves [ 1 ] , .TypedVals ) ; .Statements } i -- ; .Statements } .Statements } .Statements + + + + uniswapV2Library_getAmountsOut + + + private + + + ListItem ( uint256 ) + ListItem ( address [ ] ) + + + ListItem ( amountIn ) + ListItem ( path ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( amounts ) + + + false + + + require ( path . length >= 2 , "UniswapV2Library: INVALID_PATH" , .TypedVals ) ; amounts = new uint256 [ ] ( path . length , .TypedVals ) ; amounts [ 0 ] = amountIn ; { uint256 i ; while ( i < path . length - 1 ) { { uint256 [ ] memory reserves = uniswapV2Library_getReserves ( path [ i ] , path [ i + 1 ] , .TypedVals ) ; amounts [ i + 1 ] = uniswapV2Library_getAmountOut ( amounts [ i ] , reserves [ 0 ] , reserves [ 1 ] , .TypedVals ) ; .Statements } i ++ ; .Statements } .Statements } .Statements + + + + uniswapV2Library_getReserves + + + private + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + + + ListItem ( uint256 [ ] ) + + + ListItem ( reserves ) + + + false + + + reserves = new uint256 [ ] ( 2 , .TypedVals ) ; address [ ] memory tokens = uniswapV2Library_sortTokens ( tokenA , tokenB , .TypedVals ) ; uint112 [ ] memory pair_reserves = UniswapV2Pair ( uniswapV2Library_pairFor ( tokenA , tokenB , .TypedVals ) , .TypedVals ) . getReserves ( .TypedVals ) ; reserves [ 0 ] = tokenA == tokens [ 0 ] ? pair_reserves [ 0 ] : pair_reserves [ 1 ] ; reserves [ 1 ] = tokenA == tokens [ 0 ] ? pair_reserves [ 1 ] : pair_reserves [ 0 ] ; .Statements + + + + uniswapV2Library_pairFor + + + private + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + + + ListItem ( address ) + + + ListItem ( pair ) + + + false + + + address [ ] memory tokens = uniswapV2Library_sortTokens ( tokenA , tokenB , .TypedVals ) ; pair = local_pairs [ tokens [ 0 ] ] [ tokens [ 1 ] ] ; .Statements + + + + uniswapV2Library_quote + + + internal + + + ListItem ( uint256 ) + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountA ) + ListItem ( reserveA ) + ListItem ( reserveB ) + + + ListItem ( uint256 ) + + + ListItem ( amountB ) + + + false + + + require ( amountA > 0 , "UniswapV2Library: INSUFFICIENT_AMOUNT" , .TypedVals ) ; require ( reserveA > 0 && reserveB > 0 , "UniswapV2Library: INSUFFICIENT_LIQUIDITY" , .TypedVals ) ; amountB = amountA * reserveB / reserveA ; .Statements + + + + uniswapV2Library_sortTokens + + + private + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( tokenA ) + ListItem ( tokenB ) + + + ListItem ( address [ ] ) + + + ListItem ( tokens ) + + + false + + + tokens = new address [ ] ( 2 , .TypedVals ) ; require ( tokenA != tokenB , "UniswapV2Library: IDENTICAL_ADDRESSES" , .TypedVals ) ; tokens [ 0 ] = tokenA < tokenB ? tokenA : tokenB ; tokens [ 1 ] = tokenA < tokenB ? tokenB : tokenA ; require ( tokens [ 0 ] != address ( 0 , .TypedVals ) , "UniswapV2Library: ZERO_ADDRESS" , .TypedVals ) ; .Statements + + + + + .ContractEventCellMap + + + + UniswapV2Swap + + + dai |-> IERC20 + router |-> UniswapV2Router02 + usdc |-> IERC20 + weth |-> IERC20 + + + .List + + + + + constructor + + + public + + + ListItem ( address ) + ListItem ( address ) + ListItem ( address ) + + + ListItem ( _weth ) + ListItem ( _dai ) + ListItem ( _usdc ) + + + .List + + + .List + + + false + + + weth = IERC20 ( _weth , .TypedVals ) ; dai = IERC20 ( _dai , .TypedVals ) ; usdc = IERC20 ( _usdc , .TypedVals ) ; router = new UniswapV2Router02 ( .TypedVals ) ; router . set_local_pair ( _weth , _dai , .TypedVals ) ; router . set_local_pair ( _weth , _usdc , .TypedVals ) ; router . set_local_pair ( _usdc , _dai , .TypedVals ) ; .Statements + + + + dai + + + public + + + .List + + + .List + + + ListItem ( IERC20 ) + + + ListItem ( noId ) + + + false + + + return dai ; .Statements + + + + router + + + public + + + .List + + + .List + + + ListItem ( UniswapV2Router02 ) + + + ListItem ( noId ) + + + false + + + return router ; .Statements + + + + swapMultiHopExactAmountIn + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountIn ) + ListItem ( amountOutMin ) + + + ListItem ( uint256 ) + + + ListItem ( amountOut ) + + + false + + + dai . transferFrom ( msg . sender , address ( this , .TypedVals ) , amountIn , .TypedVals ) ; dai . approve ( address ( router , .TypedVals ) , amountIn , .TypedVals ) ; address [ ] memory path = new address [ ] ( 3 , .TypedVals ) ; path [ 0 ] = address ( dai , .TypedVals ) ; path [ 1 ] = address ( weth , .TypedVals ) ; path [ 2 ] = address ( usdc , .TypedVals ) ; uint256 [ ] memory amounts = router . swapExactTokensForTokens ( amountIn , amountOutMin , path , msg . sender , .TypedVals ) ; return amounts [ 2 ] ; .Statements + + + + swapMultiHopExactAmountOut + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountOutDesired ) + ListItem ( amountInMax ) + + + ListItem ( uint256 ) + + + ListItem ( amountOut ) + + + false + + + dai . transferFrom ( msg . sender , address ( this , .TypedVals ) , amountInMax , .TypedVals ) ; dai . approve ( address ( router , .TypedVals ) , amountInMax , .TypedVals ) ; address [ ] memory path = new address [ ] ( 3 , .TypedVals ) ; path [ 0 ] = address ( dai , .TypedVals ) ; path [ 1 ] = address ( weth , .TypedVals ) ; path [ 2 ] = address ( usdc , .TypedVals ) ; uint256 [ ] memory amounts = router . swapTokensForExactTokens ( amountOutDesired , amountInMax , path , msg . sender , .TypedVals ) ; if ( amounts [ 0 ] < amountInMax ) { dai . transfer ( msg . sender , amountInMax - amounts [ 0 ] , .TypedVals ) ; .Statements } return amounts [ 2 ] ; .Statements + + + + swapSingleHopExactAmountIn + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountIn ) + ListItem ( amountOutMin ) + + + ListItem ( uint256 ) + + + ListItem ( amountOut ) + + + false + + + weth . transferFrom ( msg . sender , address ( this , .TypedVals ) , amountIn , .TypedVals ) ; weth . approve ( address ( router , .TypedVals ) , amountIn , .TypedVals ) ; address [ ] memory path = new address [ ] ( 2 , .TypedVals ) ; path [ 0 ] = address ( weth , .TypedVals ) ; path [ 1 ] = address ( dai , .TypedVals ) ; uint256 [ ] memory amounts = router . swapExactTokensForTokens ( amountIn , amountOutMin , path , msg . sender , .TypedVals ) ; return amounts [ 1 ] ; .Statements + + + + swapSingleHopExactAmountOut + + + external + + + ListItem ( uint256 ) + ListItem ( uint256 ) + + + ListItem ( amountOutDesired ) + ListItem ( amountInMax ) + + + ListItem ( uint256 ) + + + ListItem ( amountOut ) + + + false + + + weth . transferFrom ( msg . sender , address ( this , .TypedVals ) , amountInMax , .TypedVals ) ; weth . approve ( address ( router , .TypedVals ) , amountInMax , .TypedVals ) ; address [ ] memory path = new address [ ] ( 2 , .TypedVals ) ; path [ 0 ] = address ( weth , .TypedVals ) ; path [ 1 ] = address ( dai , .TypedVals ) ; uint256 [ ] memory amounts = router . swapTokensForExactTokens ( amountOutDesired , amountInMax , path , msg . sender , .TypedVals ) ; if ( amounts [ 0 ] < amountInMax ) { weth . transfer ( msg . sender , amountInMax - amounts [ 0 ] , .TypedVals ) ; .Statements } return amounts [ 1 ] ; .Statements + + + + usdc + + + public + + + .List + + + .List + + + ListItem ( IERC20 ) + + + ListItem ( noId ) + + + false + + + return usdc ; .Statements + + + + weth + + + public + + + .List + + + .List + + + ListItem ( IERC20 ) + + + ListItem ( noId ) + + + false + + + return weth ; .Statements + + + + + .ContractEventCellMap + + + + UniswapV2SwapTest + + + _dai |-> DAIMock + _router |-> UniswapV2Router02 + _usdc |-> USDCMock + _weth |-> WETHMock + + + .List + + + + + testRouterAddLiquidity + + + public + + + .List + + + .List + + + .List + + + .List + + + false + + + uint256 testAmount = 131072 ; uint256 desiredA = 10000 ; uint256 desiredB = 10000 ; uint256 minA = 0 ; uint256 minB = 0 ; _weth = new WETHMock ( .TypedVals ) ; _dai = new DAIMock ( .TypedVals ) ; _usdc = new USDCMock ( .TypedVals ) ; _router = new UniswapV2Router02 ( .TypedVals ) ; _router . set_local_pair ( address ( _weth , .TypedVals ) , address ( _dai , .TypedVals ) , .TypedVals ) ; _router . set_local_pair ( address ( _weth , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) ; _router . set_local_pair ( address ( _usdc , .TypedVals ) , address ( _dai , .TypedVals ) , .TypedVals ) ; _dai . mint ( address ( this , .TypedVals ) , testAmount , .TypedVals ) ; _dai . approve ( address ( _router , .TypedVals ) , testAmount , .TypedVals ) ; _usdc . mint ( address ( this , .TypedVals ) , testAmount , .TypedVals ) ; _usdc . approve ( address ( _router , .TypedVals ) , testAmount , .TypedVals ) ; _router . addLiquidity ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , desiredA , desiredB , minA , minB , address ( this , .TypedVals ) , .TypedVals ) ; assert ( _dai . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) == 121072 , .TypedVals ) ; assert ( _usdc . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) == 121072 , .TypedVals ) ; assert ( _dai . balanceOf ( _router . get_local_pair ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) , .TypedVals ) == 10000 , .TypedVals ) ; assert ( _usdc . balanceOf ( _router . get_local_pair ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) , .TypedVals ) == 10000 , .TypedVals ) ; assert ( UniswapV2Pair ( _router . get_local_pair ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) == 9000 , .TypedVals ) ; .Statements + + + + + .ContractEventCellMap + + + + WETHMock + + + UINT256_MAX |-> uint256 + allowance |-> mapping ( address => mapping ( address => uint256 ) ) + balanceOf |-> mapping ( address => uint256 ) + + + ListItem ( UINT256_MAX = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ; ) + + + + + allowance + + + public + + + ListItem ( address ) + ListItem ( address ) + + + ListItem ( $0 ) + ListItem ( $1 ) + + + ListItem ( mapping ( address => mapping ( address => uint256 ) ) ) + + + ListItem ( noId ) + + + false + + + return allowance [ $0 ] [ $1 ] ; .Statements + + + + approve + + + external + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( spender ) + ListItem ( value ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + allowance [ msg . sender ] [ spender ] = value ; emit Approval ( msg . sender , spender , value , .TypedVals ) ; return true ; .Statements + + + + balanceOf + + + public + + + ListItem ( address ) + + + ListItem ( $0 ) + + + ListItem ( mapping ( address => uint256 ) ) + + + ListItem ( noId ) + + + false + + + return balanceOf [ $0 ] ; .Statements + + + + decimals + + + external + + + .List + + + .List + + + ListItem ( uint8 ) + + + ListItem ( noId ) + + + false + + + return 18 ; .Statements + + + + deposit + + + external + + + .List + + + .List + + + .List + + + .List + + + true + + + balanceOf [ msg . sender ] = balanceOf [ msg . sender ] + msg . value ; emit Transfer ( address ( 0 , .TypedVals ) , msg . sender , msg . value , .TypedVals ) ; .Statements + + + + transfer + + + external + + + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( to ) + ListItem ( value ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + if ( to != address ( 0 , .TypedVals ) && to != address ( this , .TypedVals ) ) { uint256 balance = balanceOf [ msg . sender ] ; require ( balance >= value , "WETH: transfer amount exceeds balance" , .TypedVals ) ; balanceOf [ msg . sender ] = balance - value ; balanceOf [ to ] = balanceOf [ to ] + value ; emit Transfer ( msg . sender , to , value , .TypedVals ) ; .Statements } else { uint256 balance = balanceOf [ msg . sender ] ; require ( balance >= value , "WETH: burn amount exceeds balance" , .TypedVals ) ; balanceOf [ msg . sender ] = balance - value ; emit Transfer ( msg . sender , address ( 0 , .TypedVals ) , value , .TypedVals ) ; ( bool success , ) = msg . sender . call { value : value , .KeyValues } ( "" , .TypedVals ) ; require ( success , "WETH: ETH transfer failed" , .TypedVals ) ; .Statements } return true ; .Statements + + + + transferFrom + + + external + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + ListItem ( bool ) + + + ListItem ( noId ) + + + false + + + if ( from != msg . sender ) { uint256 allowed = allowance [ from ] [ msg . sender ] ; if ( allowed != UINT256_MAX ) { require ( allowed >= value , "WETH: request exceeds allowance" , .TypedVals ) ; uint256 reduced = allowed - value ; allowance [ from ] [ msg . sender ] = reduced ; emit Approval ( from , msg . sender , reduced , .TypedVals ) ; .Statements } .Statements } if ( to != address ( 0 , .TypedVals ) && to != address ( this , .TypedVals ) ) { uint256 balance = balanceOf [ from ] ; require ( balance >= value , "WETH: transfer amount exceeds balance" , .TypedVals ) ; balanceOf [ from ] = balance - value ; balanceOf [ to ] = balanceOf [ to ] + value ; emit Transfer ( from , to , value , .TypedVals ) ; .Statements } else { uint256 balance = balanceOf [ from ] ; require ( balance >= value , "WETH: burn amount exceeds balance" , .TypedVals ) ; balanceOf [ from ] = balance - value ; emit Transfer ( from , address ( 0 , .TypedVals ) , value , .TypedVals ) ; ( bool success , ) = msg . sender . call { value : value , .KeyValues } ( "" , .TypedVals ) ; require ( success , "WETH: ETH transfer failed" , .TypedVals ) ; .Statements } return true ; .Statements + + + + + + + Approval + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( owner ) + ListItem ( spender ) + ListItem ( value ) + + + SetItem ( 0 ) + SetItem ( 1 ) + + + + Transfer + + + ListItem ( address ) + ListItem ( address ) + ListItem ( uint256 ) + + + ListItem ( from ) + ListItem ( to ) + ListItem ( value ) + + + SetItem ( 0 ) + SetItem ( 1 ) + + + + + + + + + 1p160 + + + 0p256 + + + 1p160 + + + 1724300000p256 + + + 2p160 + + + UniswapV2SwapTest + + + desiredA |-> var ( 1 , uint256 ) + desiredB |-> var ( 2 , uint256 ) + minA |-> var ( 3 , uint256 ) + minB |-> var ( 4 , uint256 ) + testAmount |-> var ( 0 , uint256 ) + + + 0 |-> 131072p256 + 1 |-> 10000p256 + 2 |-> 10000p256 + 3 |-> 0p256 + 4 |-> 0p256 + + + .List + + + + + 2p160 + + + UniswapV2SwapTest + + + _dai |-> 4p160 + _router |-> 6p160 + _usdc |-> 5p160 + _weth |-> 3p160 + + + + 3p160 + + + WETHMock + + + UINT256_MAX |-> 115792089237316195423570985008687907853269984665640564039457584007913129639935p256 + + + + 4p160 + + + DAIMock + + + UINT_MAX |-> 115792089237316195423570985008687907853269984665640564039457584007913129639935p256 + allowance |-> ( 2p160 |-> ( 6p160 |-> 121072p256 ) ) + balanceOf |-> ( 2p160 |-> 121072p256 + 9p160 |-> 10000p256 ) + totalSupply |-> 131072p256 + + + + 5p160 + + + USDCMock + + + UINT256_MAX |-> 115792089237316195423570985008687907853269984665640564039457584007913129639935p256 + _allowances |-> ( 2p160 |-> ( 6p160 |-> 121072p256 ) ) + _balances |-> ( 2p160 |-> 121072p256 + 9p160 |-> 10000p256 ) + _totalSupply |-> 131072p256 + + + + 6p160 + + + UniswapV2Router02 + + + local_pairs |-> ( 3p160 |-> ( 4p160 |-> 7p160 + 5p160 |-> 8p160 ) + 4p160 |-> ( 5p160 |-> 9p160 ) ) + + + + 7p160 + + + UniswapV2Pair + + + MINIMUM_LIQUIDITY |-> 1000p256 + UINT112_MAX |-> 5192296858534827628530496329220095p256 + token0 |-> 3p160 + token1 |-> 4p160 + + + + 8p160 + + + UniswapV2Pair + + + MINIMUM_LIQUIDITY |-> 1000p256 + UINT112_MAX |-> 5192296858534827628530496329220095p256 + token0 |-> 3p160 + token1 |-> 5p160 + + + + 9p160 + + + UniswapV2Pair + + + MINIMUM_LIQUIDITY |-> 1000p256 + UINT112_MAX |-> 5192296858534827628530496329220095p256 + balanceOf |-> ( 0p160 |-> 1000p256 + 2p160 |-> 9000p256 ) + blockTimestampLast |-> 1724300000p32 + reserve0 |-> 10000p112 + reserve1 |-> 10000p112 + token0 |-> 4p160 + token1 |-> 5p160 + totalSupply |-> 10000p256 + + + + + 10p160 + + + diff --git a/test/regression/addliquidity.sol b/test/regression/addliquidity.sol new file mode 100644 index 0000000..15f90ed --- /dev/null +++ b/test/regression/addliquidity.sol @@ -0,0 +1,726 @@ +// SPDX-License-Identifier: MIT + +// The source code of this contract uses the following contracts +// UniswapV2SwapExamples: https://solidity-by-example.org/defi/uniswap-v2/ +// For the Router: https://github.com/Uniswap/v2-periphery/blob/master/contracts/UniswapV2Router02.sol +// For the Pairs: https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol + +pragma solidity ^0.8.24; + +interface IERC20 { + function balanceOf(address owner) external returns (uint); + function transfer(address to, uint value) external returns (bool); + function transferFrom(address from, address to, uint value) external returns (bool); + function approve(address spender, uint256 value) external returns (bool); +} + +contract UniswapV2Swap { + + IERC20 public weth; + IERC20 public dai; + IERC20 public usdc; + UniswapV2Router02 public router; + + constructor(address _weth, address _dai, address _usdc){ + weth = IERC20(_weth); + dai = IERC20(_dai); + usdc = IERC20(_usdc); + router = new UniswapV2Router02(); + router.set_local_pair(_weth, _dai); + router.set_local_pair(_weth, _usdc); + router.set_local_pair(_usdc, _dai); + } + + function swapSingleHopExactAmountIn(uint256 amountIn, uint256 amountOutMin) + external + returns (uint256 amountOut) + { + weth.transferFrom(msg.sender, address(this), amountIn); + weth.approve(address(router), amountIn); + + address[] memory path = new address[](2); + path[0] = address(weth); + path[1] = address(dai); + + uint256[] memory amounts = router.swapExactTokensForTokens(amountIn, amountOutMin, path, msg.sender); + + return amounts[1]; + } + + function swapMultiHopExactAmountIn(uint256 amountIn, uint256 amountOutMin) + external + returns (uint256 amountOut) + { + dai.transferFrom(msg.sender, address(this), amountIn); + dai.approve(address(router), amountIn); + + address[] memory path = new address[](3); + path[0] = address(dai); + path[1] = address(weth); + path[2] = address(usdc); + + uint256[] memory amounts = router.swapExactTokensForTokens(amountIn, amountOutMin, path, msg.sender); + + return amounts[2]; + } + + function swapSingleHopExactAmountOut( + uint256 amountOutDesired, + uint256 amountInMax + ) external returns (uint256 amountOut) { + weth.transferFrom(msg.sender, address(this), amountInMax); + weth.approve(address(router), amountInMax); + + address[] memory path = new address[](2); + path[0] = address(weth); + path[1] = address(dai); + + uint256[] memory amounts = router.swapTokensForExactTokens(amountOutDesired, amountInMax, path, msg.sender); + + if (amounts[0] < amountInMax) { + weth.transfer(msg.sender, amountInMax - amounts[0]); + } + + return amounts[1]; + } + + function swapMultiHopExactAmountOut( + uint256 amountOutDesired, + uint256 amountInMax + ) external returns (uint256 amountOut) { + dai.transferFrom(msg.sender, address(this), amountInMax); + dai.approve(address(router), amountInMax); + + address[] memory path = new address[](3); + path[0] = address(dai); + path[1] = address(weth); + path[2] = address(usdc); + + uint256[] memory amounts = router.swapTokensForExactTokens(amountOutDesired, amountInMax, path, msg.sender); + + if (amounts[0] < amountInMax) { + dai.transfer(msg.sender, amountInMax - amounts[0]); + } + + return amounts[2]; + } +} + +contract UniswapV2Router02 { + + mapping (address => mapping (address => address)) public local_pairs; + + function swapExactTokensForTokens( + uint amountIn, + uint amountOutMin, + address[] calldata path, + address to + ) external returns (uint[] memory amounts) { + amounts = uniswapV2Library_getAmountsOut(amountIn, path); + require(amounts[amounts.length - 1] >= amountOutMin, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT"); + IERC20(path[0]).transferFrom(msg.sender, uniswapV2Library_pairFor(path[0], path[1]), amounts[0]); + _swap(amounts, path, to); + } + + function swapTokensForExactTokens( + uint amountOut, + uint amountInMax, + address[] calldata path, + address to + ) external returns (uint[] memory amounts) { + amounts = uniswapV2Library_getAmountsIn(amountOut, path); + require(amounts[0] <= amountInMax, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT"); + IERC20(path[0]).transferFrom(msg.sender, uniswapV2Library_pairFor(path[0], path[1]), amounts[0]); + _swap(amounts, path, to); + } + + function addLiquidity( + address tokenA, + address tokenB, + uint256 amountADesired, + uint256 amountBDesired, + uint256 amountAMin, + uint256 amountBMin, + address to + ) external returns (uint[] memory amounts_liq) { + amounts_liq = new uint[](3); + + uint[] memory amounts = _addLiquidity( + tokenA, + tokenB, + amountADesired, + amountBDesired, + amountAMin, + amountBMin + ); + + amounts_liq[0] = amounts[0]; + amounts_liq[1] = amounts[1]; + + address pair = uniswapV2Library_pairFor(tokenA, tokenB); + IERC20(tokenA).transferFrom(msg.sender, pair, amounts[0]); + IERC20(tokenB).transferFrom(msg.sender, pair, amounts[1]); + amounts_liq[2] = UniswapV2Pair(pair).mint(to); + } + + function _addLiquidity( + address tokenA, + address tokenB, + uint amountADesired, + uint amountBDesired, + uint amountAMin, + uint amountBMin + ) internal returns (uint[] memory amounts) { + amounts = new uint[](2); + + require(get_local_pair(tokenA, tokenB) != address(0)); + + uint[] memory reserves = uniswapV2Library_getReserves(tokenA, tokenB); + if (reserves[0] == 0 && reserves[1] == 0) { + amounts[0] = amountADesired; + amounts[1] = amountBDesired; + } else { + uint amountBOptimal = uniswapV2Library_quote( + amountADesired, + reserves[0], + reserves[1] + ); + if (amountBOptimal <= amountBDesired) { + require( + amountBOptimal >= amountBMin, + "UniswapV2Router: INSUFFICIENT_B_AMOUNT" + ); + amounts[0] = amountADesired; + amounts[1] = amountBOptimal; + } else { + uint amountAOptimal = uniswapV2Library_quote( + amountBDesired, + reserves[1], + reserves[0] + ); + assert(amountAOptimal <= amountADesired); + require( + amountAOptimal >= amountAMin, + "UniswapV2Router: INSUFFICIENT_A_AMOUNT" + ); + amounts[0] = amountAOptimal; + amounts[1] = amountBDesired; + } + } + } + + + function set_local_pair(address tokenA, address tokenB) public{ + address[] memory tokens = uniswapV2Library_sortTokens(tokenA, tokenB); + local_pairs[tokens[0]][tokens[1]] = address(new UniswapV2Pair(address(tokens[0]), address(tokens[1]))); + } + + function get_local_pair(address tokenA, address tokenB) public returns(address pair){ + address[] memory tokens = uniswapV2Library_sortTokens(tokenA, tokenB); + pair = local_pairs[tokens[0]][tokens[1]]; + } + + function sync_local_pair(address tokenA, address tokenB) public{ + address[] memory tokens = uniswapV2Library_sortTokens(tokenA, tokenB); + UniswapV2Pair(local_pairs[tokens[0]][tokens[1]]).sync(); + } + + function _swap(uint[] memory amounts, address[] memory path, address _to) private { + for (uint i; i < path.length - 1; i++) { + address input = path[i]; + address output = path[i + 1]; + address[] memory tokens = uniswapV2Library_sortTokens(input, output); + uint amountOut = amounts[i + 1]; + + uint amount0Out = input == tokens[0] ? uint(0) : amountOut; + uint amount1Out = input == tokens[0] ? amountOut : uint(0); + address to = i < path.length - 2 ? uniswapV2Library_pairFor(output, path[i + 2]) : _to; + UniswapV2Pair(uniswapV2Library_pairFor(input, output)).swap( + amount0Out, amount1Out, to); + } + } + + function uniswapV2Library_pairFor(address tokenA, address tokenB) private returns (address pair) { + address[] memory tokens = uniswapV2Library_sortTokens(tokenA, tokenB); + pair = local_pairs[tokens[0]][tokens[1]]; + } + + function uniswapV2Library_sortTokens(address tokenA, address tokenB) private returns (address[] memory tokens) { + tokens = new address[](2); + require(tokenA != tokenB, "UniswapV2Library: IDENTICAL_ADDRESSES"); + tokens[0] = tokenA < tokenB ? tokenA : tokenB; + tokens[1] = tokenA < tokenB ? tokenB : tokenA; + require(tokens[0] != address(0), "UniswapV2Library: ZERO_ADDRESS"); + } + + function uniswapV2Library_getAmountsOut(uint amountIn, address[] memory path) private returns (uint[] memory amounts) { + require(path.length >= 2, "UniswapV2Library: INVALID_PATH"); + amounts = new uint[](path.length); + amounts[0] = amountIn; + for (uint i; i < path.length - 1; i++) { + uint[] memory reserves = uniswapV2Library_getReserves(path[i], path[i + 1]); + amounts[i + 1] = uniswapV2Library_getAmountOut(amounts[i], reserves[0], reserves[1]); + } + } + + function uniswapV2Library_getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) private returns (uint amountOut) { + require(amountIn > 0, "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT"); + require(reserveIn > 0 && reserveOut > 0, "UniswapV2Library: INSUFFICIENT_LIQUIDITY"); + uint amountInWithFee = amountIn*997; + uint numerator = amountInWithFee*reserveOut; + uint denominator = reserveIn*1000 + amountInWithFee; + amountOut = numerator / denominator; + } + + function uniswapV2Library_getReserves(address tokenA, address tokenB) private returns (uint[] memory reserves) { + reserves = new uint[](2); + address[] memory tokens = uniswapV2Library_sortTokens(tokenA, tokenB); + uint112[] memory pair_reserves = UniswapV2Pair(uniswapV2Library_pairFor(tokenA, tokenB)).getReserves(); + reserves[0] = tokenA == tokens[0] ? pair_reserves[0] : pair_reserves[1]; + reserves[1] = tokenA == tokens[0] ? pair_reserves[1] : pair_reserves[0]; + } + + function uniswapV2Library_getAmountsIn(uint amountOut, address[] memory path) private returns (uint[] memory amounts) { + require(path.length >= 2, "UniswapV2Library: INVALID_PATH"); + amounts = new uint[](path.length); + amounts[amounts.length - 1] = amountOut; + for (uint i = path.length - 1; i > 0; i--) { + uint[] memory reserves = uniswapV2Library_getReserves(path[i - 1], path[i]); + amounts[i - 1] = uniswapV2Library_getAmountIn(amounts[i], reserves[0], reserves[1]); + } + } + + function uniswapV2Library_getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) private returns (uint amountIn) { + require(amountOut > 0, "UniswapV2Library: INSUFFICIENT_OUTPUT_AMOUNT"); + require(reserveIn > 0 && reserveOut > 0, "UniswapV2Library: INSUFFICIENT_LIQUIDITY"); + uint numerator = reserveIn*amountOut*1000; + uint denominator = (reserveOut-amountOut)*997; + amountIn = denominator != 0 ? (numerator / denominator) + 1 : 1; + } + + function uniswapV2Library_quote( + uint amountA, + uint reserveA, + uint reserveB + ) internal returns (uint amountB) { + require(amountA > 0, "UniswapV2Library: INSUFFICIENT_AMOUNT"); + require( + reserveA > 0 && reserveB > 0, + "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + ); + amountB = (amountA * reserveB) / reserveA; + } +} + +contract UniswapV2Pair{ + + uint256 private UINT112_MAX = 0xffffffffffffffffffffffffffff; + + address public token0; + address public token1; + + uint112 private reserve0; + uint112 private reserve1; + uint32 private blockTimestampLast; + + uint public MINIMUM_LIQUIDITY = 10**3; + uint public price0CumulativeLast; + uint public price1CumulativeLast; + uint public totalSupply; + uint public kLast; + + mapping(address => uint) public balanceOf; + + event Sync(uint112 reserve0, uint112 reserve1); + event Swap( + address indexed sender, + uint amount0In, + uint amount1In, + uint amount0Out, + uint amount1Out, + address indexed to + ); + event Mint(address indexed sender, uint amount0, uint amount1); + + constructor(address _token0, address _token1) { + token0 = _token0; + token1 = _token1; + } + + function swap(uint amount0Out, uint amount1Out, address to) external { + require(amount0Out > 0 || amount1Out > 0, "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT"); + uint112[] memory reserves = getReserves(); // gas savings + require(amount0Out < reserves[0] && amount1Out < reserves[1], "UniswapV2: INSUFFICIENT_LIQUIDITY"); + + uint balance0; + uint balance1; + { // scope for _token{0,1}, avoids stack too deep errors + address _token0 = token0; + address _token1 = token1; + require(to != _token0 && to != _token1, "UniswapV2: INVALID_TO"); + if (amount0Out > 0) IERC20(_token0).transfer(to, amount0Out); // optimistically transfer tokens + if (amount1Out > 0) IERC20(_token1).transfer(to, amount1Out); // optimistically transfer tokens + balance0 = IERC20(_token0).balanceOf(address(this)); + balance1 = IERC20(_token1).balanceOf(address(this)); + } + uint amount0In = balance0 > reserves[0] - amount0Out ? balance0 - (reserves[0] - amount0Out) : 0; + uint amount1In = balance1 > reserves[1] - amount1Out ? balance1 - (reserves[1] - amount1Out) : 0; + require(amount0In > 0 || amount1In > 0, "UniswapV2: INSUFFICIENT_INPUT_AMOUNT"); + { // scope for reserve{0,1}Adjusted, avoids stack too deep errors + uint balance0Adjusted = (balance0*1000)-(amount0In*3); + uint balance1Adjusted = (balance1*1000)-(amount1In*3); + require(balance0Adjusted*balance1Adjusted >= uint(reserves[0])*reserves[1]*(1000**2), "UniswapV2: K"); + } + + _update(balance0, balance1, reserves[0], reserves[1]); + emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to); + } + + function mint(address to) external returns (uint liquidity) { + uint112[] memory pair_reserves = getReserves(); + uint balance0 = IERC20(token0).balanceOf(address(this)); + uint balance1 = IERC20(token1).balanceOf(address(this)); + uint amount0 = balance0 - pair_reserves[0]; + uint amount1 = balance1 - pair_reserves[1]; + + //bool feeOn = _mintFee(pair_reserves[0], pair_reserves[1]); + uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee + if (_totalSupply == 0) { + liquidity = math_sqrt(amount0 * amount1) - MINIMUM_LIQUIDITY; + totalSupply = totalSupply + MINIMUM_LIQUIDITY; + balanceOf[address(0)] = balanceOf[address(0)] + MINIMUM_LIQUIDITY; + } else { + liquidity = math_min( + (amount0 * _totalSupply) / pair_reserves[0], + (amount1 * _totalSupply) / pair_reserves[1] + ); + } + require(liquidity > 0, "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED"); + totalSupply = totalSupply + liquidity; + balanceOf[to] = balanceOf[to] + liquidity; + + _update(balance0, balance1, pair_reserves[0], pair_reserves[1]); + //if (feeOn) kLast = uint(reserve0) * reserve1; // reserve0 and reserve1 are up-to-date + emit Mint(msg.sender, amount0, amount1); + } + + function sync() external { + _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1); + } + + function getReserves() public returns (uint112[] memory reserves) { + reserves = new uint112[](3); + reserves[0] = reserve0; + reserves[1] = reserve1; + reserves[2] = blockTimestampLast; + } + + function math_min(uint x, uint y) internal returns (uint z) { + z = x < y ? x : y; + } + + function math_sqrt(uint y) internal returns (uint z) { + if (y > 3) { + z = y; + uint x = y / 2 + 1; + while (x < z) { + z = x; + x = (y / x + x) / 2; + } + } else if (y != 0) { + z = 1; + } + } + + function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private { + require(balance0 <= UINT112_MAX && balance1 <= UINT112_MAX, "UniswapV2: OVERFLOW"); + uint32 blockTimestamp = uint32(block.timestamp % 2**32); + uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired + if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) { + price0CumulativeLast = price0CumulativeLast + (_reserve1/_reserve0) * timeElapsed; + price1CumulativeLast = price1CumulativeLast + (_reserve0/_reserve1) * timeElapsed; + } + reserve0 = uint112(balance0); + reserve1 = uint112(balance1); + blockTimestampLast = blockTimestamp; + emit Sync(reserve0, reserve1); + } +} + +contract WETHMock { + + uint256 private UINT256_MAX = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; + + mapping (address => uint256) public balanceOf; + mapping (address => mapping (address => uint256)) public allowance; + + event Approval(address indexed owner, address indexed spender, uint256 value); + event Transfer(address indexed from, address indexed to, uint256 value); + + function decimals() external returns (uint8) { + return 18; + } + + function deposit() external payable { + balanceOf[msg.sender] = balanceOf[msg.sender] + msg.value; + emit Transfer(address(0), msg.sender, msg.value); + } + + function approve(address spender, uint256 value) external returns (bool) { + allowance[msg.sender][spender] = value; + emit Approval(msg.sender, spender, value); + + return true; + } + + function transfer(address to, uint256 value) external returns (bool) { + if (to != address(0) && to != address(this)) { // Transfer + uint256 balance = balanceOf[msg.sender]; + require(balance >= value, "WETH: transfer amount exceeds balance"); + + balanceOf[msg.sender] = balance - value; + balanceOf[to] = balanceOf[to] + value; + emit Transfer(msg.sender, to, value); + } else { // Withdraw + uint256 balance = balanceOf[msg.sender]; + require(balance >= value, "WETH: burn amount exceeds balance"); + balanceOf[msg.sender] = balance - value; + emit Transfer(msg.sender, address(0), value); + + (bool success, ) = msg.sender.call{value: value}(""); + require(success, "WETH: ETH transfer failed"); + } + + return true; + } + + function transferFrom(address from, address to, uint256 value) external returns (bool) { + if (from != msg.sender) { + uint256 allowed = allowance[from][msg.sender]; + if (allowed != UINT256_MAX) { + require(allowed >= value, "WETH: request exceeds allowance"); + uint256 reduced = allowed - value; + allowance[from][msg.sender] = reduced; + emit Approval(from, msg.sender, reduced); + } + } + + if (to != address(0) && to != address(this)) { + uint256 balance = balanceOf[from]; + require(balance >= value, "WETH: transfer amount exceeds balance"); + + balanceOf[from] = balance - value; + balanceOf[to] = balanceOf[to] + value; + emit Transfer(from, to, value); + } else { + uint256 balance = balanceOf[from]; + require(balance >= value, "WETH: burn amount exceeds balance"); + balanceOf[from] = balance - value; + emit Transfer(from, address(0), value); + + (bool success, ) = msg.sender.call{value: value}(""); + require(success, "WETH: ETH transfer failed"); + } + + return true; + } +} + +contract DAIMock { + + uint private UINT_MAX = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; + + uint256 public totalSupply; + + mapping (address => uint) public balanceOf; + mapping (address => mapping (address => uint)) public allowance; + + event Approval(address indexed src, address indexed guy, uint wad); + event Transfer(address indexed src, address indexed dst, uint wad); + + function decimals() external returns (uint8) { + return 18; + } + + function mint(address usr, uint wad) public { + balanceOf[usr] = balanceOf[usr] + wad; + totalSupply = totalSupply + wad; + emit Transfer(address(0), usr, wad); + } + + function mintOnDeposit(address usr, uint wad) public { + mint(usr, wad); + } + + function burn(address usr, uint wad) public { + if(balanceOf[usr] >= wad){ + balanceOf[usr] = balanceOf[usr] - wad; + totalSupply = totalSupply - wad; + } + } + + function approve(address usr, uint wad) external returns (bool) { + allowance[msg.sender][usr] = wad; + emit Approval(msg.sender, usr, wad); + return true; + } + + + function transfer(address dst, uint wad) public returns (bool) { + return transferFrom(msg.sender, dst, wad); + } + + function transferFrom(address src, address dst, uint wad) + public returns (bool) + { + require(balanceOf[src] >= wad, "Dai/insufficient-balance"); + if (src != msg.sender && allowance[src][msg.sender] != UINT_MAX) { + require(allowance[src][msg.sender] >= wad, "Dai/insufficient-allowance"); + allowance[src][msg.sender] = allowance[src][msg.sender] - wad; + } + balanceOf[src] = balanceOf[src] - wad; + balanceOf[dst] = balanceOf[dst] + wad; + emit Transfer(src, dst, wad); + return true; + } + + function safeTransferFrom(address from, address to, uint256 value) external{ + transferFrom(from, to, value); + } + + +} + +contract USDCMock { + uint256 private UINT256_MAX = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; + + uint256 private _totalSupply; + + mapping(address account => uint256) private _balances; + mapping(address account => mapping(address spender => uint256)) private _allowances; + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); + + function decimals() external returns (uint8) { + return 18; + } + + function mint(address account, uint256 value) public { + require(account != address(0), "USDC: invalid receiver"); + _update(address(0), account, value); + } + + function balanceOf(address account) public returns (uint256) { + return _balances[account]; + } + + function transfer(address to, uint256 value) public returns (bool) { + address owner = msg.sender; + _transfer(owner, to, value); + return true; + } + + function allowance(address owner, address spender) public returns (uint256) { + return _allowances[owner][spender]; + } + + function approve(address spender, uint256 value) public returns (bool) { + address owner = msg.sender; + _approve(owner, spender, value, true); + return true; + } + + function transferFrom(address from, address to, uint256 value) public returns (bool) { + address spender = msg.sender; + _spendAllowance(from, spender, value); + _transfer(from, to, value); + return true; + } + + function _transfer(address from, address to, uint256 value) private { + require(from != address(0), "USDC: invalid sender"); + require(to != address(0), "USDC: invalid receiver"); + _update(from, to, value); + } + + function _update(address from, address to, uint256 value) private { + if (from == address(0)) { + _totalSupply = _totalSupply + value; + } else { + uint256 fromBalance = _balances[from]; + require(fromBalance >= value, "USDC: insufficient balance"); + _balances[from] = fromBalance - value; + + } + + if (to == address(0)) { + _totalSupply = _totalSupply - value; + + } else { + _balances[to] = _balances[to] + value; + } + + emit Transfer(from, to, value); + } + + + function _approve(address owner, address spender, uint256 value, bool emitEvent) private { + require(owner != address(0), "USDC: invalid approver"); + require(spender != address(0), "USDC: invalid spender"); + _allowances[owner][spender] = value; + if (emitEvent) { + emit Approval(owner, spender, value); + } + } + + function _spendAllowance(address owner, address spender, uint256 value) private { + uint256 currentAllowance = allowance(owner, spender); + if (currentAllowance != UINT256_MAX) { + require(currentAllowance >= value, "USDC: insufficient allowance"); + _approve(owner, spender, currentAllowance - value, false); + + } + } + + +} + +contract UniswapV2SwapTest { + + UniswapV2Router02 private _router; + WETHMock private _weth; + DAIMock private _dai; + USDCMock private _usdc; + + function testRouterAddLiquidity() public { + uint256 testAmount = 131072; // Hex: 0x20000 + uint desiredA = 10000; + uint desiredB = 10000; + uint minA = 0; + uint minB = 0; + + _weth = new WETHMock(); + _dai = new DAIMock(); + _usdc = new USDCMock(); + + _router = new UniswapV2Router02(); + + _router.set_local_pair(address(_weth), address(_dai)); + _router.set_local_pair(address(_weth), address(_usdc)); + _router.set_local_pair(address(_usdc), address(_dai)); + + _dai.mint(address(this), testAmount); + _dai.approve(address(_router), testAmount); + _usdc.mint(address(this), testAmount); + _usdc.approve(address(_router), testAmount); + + _router.addLiquidity(address(_dai), address(_usdc), desiredA, desiredB, minA, minB, address(this)); + + assert(_dai.balanceOf(address(this)) == 121072); + assert(_usdc.balanceOf(address(this)) == 121072); + assert(_dai.balanceOf(_router.get_local_pair(address(_dai), address(_usdc))) == 10000); + assert(_usdc.balanceOf(_router.get_local_pair(address(_dai), address(_usdc))) == 10000); + assert(UniswapV2Pair(_router.get_local_pair(address(_dai), address(_usdc))).balanceOf(address(this)) == 9000); + } +} diff --git a/test/regression/addliquidity.txn b/test/regression/addliquidity.txn new file mode 100644 index 0000000..6c9f62f --- /dev/null +++ b/test/regression/addliquidity.txn @@ -0,0 +1,2 @@ +create(1, 0, 1724300000, UniswapV2SwapTest, ), +txn(1, 2, 0, 1724300000, testRouterAddLiquidity, ) \ No newline at end of file diff --git a/test/regression/swaps.ref b/test/regression/swaps.ref index 89406e0..1c1a11d 100644 --- a/test/regression/swaps.ref +++ b/test/regression/swaps.ref @@ -2043,7 +2043,6 @@ _dai |-> DAIMock - _router |-> UniswapV2Router02 _uni |-> UniswapV2Swap _usdc |-> USDCMock _weth |-> WETHMock @@ -2053,31 +2052,6 @@ - - testRouterAddLiquidity - - - public - - - .List - - - .List - - - .List - - - .List - - - false - - - uint256 testAmount = 131072 ; uint256 desiredA = 10000 ; uint256 desiredB = 10000 ; uint256 minA = 0 ; uint256 minB = 0 ; _weth = new WETHMock ( .TypedVals ) ; _dai = new DAIMock ( .TypedVals ) ; _usdc = new USDCMock ( .TypedVals ) ; _router = new UniswapV2Router02 ( .TypedVals ) ; _router . set_local_pair ( address ( _weth , .TypedVals ) , address ( _dai , .TypedVals ) , .TypedVals ) ; _router . set_local_pair ( address ( _weth , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) ; _router . set_local_pair ( address ( _usdc , .TypedVals ) , address ( _dai , .TypedVals ) , .TypedVals ) ; _dai . mint ( address ( this , .TypedVals ) , testAmount , .TypedVals ) ; _dai . approve ( address ( _router , .TypedVals ) , testAmount , .TypedVals ) ; _usdc . mint ( address ( this , .TypedVals ) , testAmount , .TypedVals ) ; _usdc . approve ( address ( _router , .TypedVals ) , testAmount , .TypedVals ) ; _router . addLiquidity ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , desiredA , desiredB , minA , minB , address ( this , .TypedVals ) , .TypedVals ) ; assert ( _dai . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) == 121072 , .TypedVals ) ; assert ( _usdc . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) == 121072 , .TypedVals ) ; assert ( _dai . balanceOf ( _router . get_local_pair ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) , .TypedVals ) == 10000 , .TypedVals ) ; assert ( _usdc . balanceOf ( _router . get_local_pair ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) , .TypedVals ) == 10000 , .TypedVals ) ; assert ( UniswapV2Pair ( _router . get_local_pair ( address ( _dai , .TypedVals ) , address ( _usdc , .TypedVals ) , .TypedVals ) , .TypedVals ) . balanceOf ( address ( this , .TypedVals ) , .TypedVals ) == 9000 , .TypedVals ) ; .Statements - - testSwapLoop @@ -2394,3014 +2368,3010 @@ UniswapV2SwapTest - desiredA |-> var ( 180029 , uint256 ) - desiredB |-> var ( 180030 , uint256 ) - minA |-> var ( 180031 , uint256 ) - minB |-> var ( 180032 , uint256 ) - testAmount |-> var ( 180028 , uint256 ) + .Map 30 |-> 1000p256 31 |-> 1000000000000000000p256 - 77 |-> 1p256 - 193 |-> 499248873309964947p256 - 194 |-> 1000000000000000000p256 - 240 |-> 1p256 - 356 |-> 374342975559160607p256 - 357 |-> 1000000000000000000p256 - 403 |-> 1p256 - 519 |-> 353514911902198069p256 - 520 |-> 1000000000000000000p256 - 566 |-> 1p256 - 682 |-> 345701457985618400p256 - 683 |-> 1000000000000000000p256 - 729 |-> 1p256 - 845 |-> 341793558657530139p256 - 846 |-> 1000000000000000000p256 - 892 |-> 1p256 - 1008 |-> 339513380671648850p256 - 1009 |-> 1000000000000000000p256 - 1055 |-> 1p256 - 1171 |-> 338047237792965446p256 - 1172 |-> 1000000000000000000p256 - 1218 |-> 1p256 - 1334 |-> 337039075533446946p256 - 1335 |-> 1000000000000000000p256 - 1381 |-> 1p256 - 1497 |-> 336310836972923498p256 - 1498 |-> 1000000000000000000p256 - 1544 |-> 1p256 - 1660 |-> 335764576113401983p256 - 1661 |-> 1000000000000000000p256 - 1707 |-> 1p256 - 1823 |-> 335342407880830917p256 - 1824 |-> 1000000000000000000p256 - 1870 |-> 1p256 - 1986 |-> 335008149581091355p256 - 1987 |-> 1000000000000000000p256 - 2033 |-> 1p256 - 2149 |-> 334738140568723359p256 - 2150 |-> 1000000000000000000p256 - 2196 |-> 1p256 - 2312 |-> 334516323685326427p256 - 2313 |-> 1000000000000000000p256 - 2359 |-> 1p256 - 2475 |-> 334331457795906708p256 - 2476 |-> 1000000000000000000p256 - 2522 |-> 1p256 - 2638 |-> 334175462577157063p256 - 2639 |-> 1000000000000000000p256 - 2685 |-> 1p256 - 2801 |-> 334042396090592374p256 - 2802 |-> 1000000000000000000p256 - 2848 |-> 1p256 - 2964 |-> 333927801510946700p256 - 2965 |-> 1000000000000000000p256 - 3011 |-> 1p256 - 3127 |-> 333828277308291036p256 - 3128 |-> 1000000000000000000p256 - 3174 |-> 1p256 - 3290 |-> 333741187099201648p256 - 3291 |-> 1000000000000000000p256 - 3337 |-> 1p256 - 3453 |-> 333664459291589025p256 - 3454 |-> 1000000000000000000p256 - 3500 |-> 1p256 - 3616 |-> 333596445915747665p256 - 3617 |-> 1000000000000000000p256 - 3663 |-> 1p256 - 3779 |-> 333535821344373538p256 - 3780 |-> 1000000000000000000p256 - 3826 |-> 1p256 - 3942 |-> 333481508437960897p256 - 3943 |-> 1000000000000000000p256 - 3989 |-> 1p256 - 4105 |-> 333432623889116590p256 - 4106 |-> 1000000000000000000p256 - 4152 |-> 1p256 - 4268 |-> 333388437228430735p256 - 4269 |-> 1000000000000000000p256 - 4315 |-> 1p256 - 4431 |-> 333348339697575189p256 - 4432 |-> 1000000000000000000p256 - 4478 |-> 1p256 - 4594 |-> 333311820347009394p256 - 4595 |-> 1000000000000000000p256 - 4641 |-> 1p256 - 4757 |-> 333278447490137708p256 - 4758 |-> 1000000000000000000p256 - 4804 |-> 1p256 - 4920 |-> 333247854175006240p256 - 4921 |-> 1000000000000000000p256 - 4967 |-> 1p256 - 5083 |-> 333219726701701181p256 - 5084 |-> 1000000000000000000p256 - 5130 |-> 1p256 - 5246 |-> 333193795471721675p256 - 5247 |-> 1000000000000000000p256 - 5293 |-> 1p256 - 5409 |-> 333169827639414906p256 - 5410 |-> 1000000000000000000p256 - 5456 |-> 1p256 - 5572 |-> 333147621168021661p256 - 5573 |-> 1000000000000000000p256 - 5619 |-> 1p256 - 5735 |-> 333126999989391707p256 - 5736 |-> 1000000000000000000p256 - 5782 |-> 1p256 - 5898 |-> 333107810037474169p256 - 5899 |-> 1000000000000000000p256 - 5945 |-> 1p256 - 6061 |-> 333089915978494615p256 - 6062 |-> 1000000000000000000p256 - 6108 |-> 1p256 - 6224 |-> 333073198500336946p256 - 6225 |-> 1000000000000000000p256 - 6271 |-> 1p256 - 6387 |-> 333057552053608100p256 - 6388 |-> 1000000000000000000p256 - 6434 |-> 1p256 - 6550 |-> 333042882959708785p256 - 6551 |-> 1000000000000000000p256 - 6597 |-> 1p256 - 6713 |-> 333029107818785980p256 - 6714 |-> 1000000000000000000p256 - 6760 |-> 1p256 - 6876 |-> 333016152164025672p256 - 6877 |-> 1000000000000000000p256 - 6923 |-> 1p256 - 7039 |-> 333003949319326614p256 - 7040 |-> 1000000000000000000p256 - 7086 |-> 1p256 - 7202 |-> 332992439425693628p256 - 7203 |-> 1000000000000000000p256 - 7249 |-> 1p256 - 7365 |-> 332981568608235226p256 - 7366 |-> 1000000000000000000p256 - 7412 |-> 1p256 - 7528 |-> 332971288260844757p256 - 7529 |-> 1000000000000000000p256 - 7575 |-> 1p256 - 7691 |-> 332961554429788960p256 - 7692 |-> 1000000000000000000p256 - 7738 |-> 1p256 - 7854 |-> 332952327280752245p256 - 7855 |-> 1000000000000000000p256 - 7901 |-> 1p256 - 8017 |-> 332943570636565030p256 - 8018 |-> 1000000000000000000p256 - 8064 |-> 1p256 - 8180 |-> 332935251575015330p256 - 8181 |-> 1000000000000000000p256 - 8227 |-> 1p256 - 8343 |-> 332927340077909327p256 - 8344 |-> 1000000000000000000p256 - 8390 |-> 1p256 - 8506 |-> 332919808723990519p256 - 8507 |-> 1000000000000000000p256 - 8553 |-> 1p256 - 8669 |-> 332912632419512095p256 - 8670 |-> 1000000000000000000p256 - 8716 |-> 1p256 - 8832 |-> 332905788161233830p256 - 8833 |-> 1000000000000000000p256 - 8879 |-> 1p256 - 8995 |-> 332899254827422746p256 - 8996 |-> 1000000000000000000p256 - 9042 |-> 1p256 - 9158 |-> 332893012993107667p256 - 9159 |-> 1000000000000000000p256 - 9205 |-> 1p256 - 9321 |-> 332887044766396931p256 - 9322 |-> 1000000000000000000p256 - 9368 |-> 1p256 - 9484 |-> 332881333643136057p256 - 9485 |-> 1000000000000000000p256 - 9531 |-> 1p256 - 9647 |-> 332875864377574401p256 - 9648 |-> 1000000000000000000p256 - 9694 |-> 1p256 - 9810 |-> 332870622867040050p256 - 9811 |-> 1000000000000000000p256 - 9857 |-> 1p256 - 9973 |-> 332865596048900924p256 - 9974 |-> 1000000000000000000p256 - 10020 |-> 1p256 - 10136 |-> 332860771808326103p256 - 10137 |-> 1000000000000000000p256 - 10183 |-> 1p256 - 10299 |-> 332856138895561884p256 - 10300 |-> 1000000000000000000p256 - 10346 |-> 1p256 - 10462 |-> 332851686851607736p256 - 10463 |-> 1000000000000000000p256 - 10509 |-> 1p256 - 10625 |-> 332847405941323127p256 - 10626 |-> 1000000000000000000p256 - 10672 |-> 1p256 - 10788 |-> 332843287093120930p256 - 10789 |-> 1000000000000000000p256 - 10835 |-> 1p256 - 10951 |-> 332839321844510264p256 - 10952 |-> 1000000000000000000p256 - 10998 |-> 1p256 - 11114 |-> 332835502292843703p256 - 11115 |-> 1000000000000000000p256 - 11161 |-> 1p256 - 11277 |-> 332831821050703275p256 - 11278 |-> 1000000000000000000p256 - 11324 |-> 1p256 - 11440 |-> 332828271205428322p256 - 11441 |-> 1000000000000000000p256 - 11487 |-> 1p256 - 11603 |-> 332824846282347773p256 - 11604 |-> 1000000000000000000p256 - 11650 |-> 1p256 - 11766 |-> 332821540211331041p256 - 11767 |-> 1000000000000000000p256 - 11813 |-> 1p256 - 11929 |-> 332818347296316629p256 - 11930 |-> 1000000000000000000p256 - 11976 |-> 1p256 - 12092 |-> 332815262187516715p256 - 12093 |-> 1000000000000000000p256 - 12139 |-> 1p256 - 12255 |-> 332812279856030168p256 - 12256 |-> 1000000000000000000p256 - 12302 |-> 1p256 - 12418 |-> 332809395570626361p256 - 12419 |-> 1000000000000000000p256 - 12465 |-> 1p256 - 12581 |-> 332806604876488376p256 - 12582 |-> 1000000000000000000p256 - 12628 |-> 1p256 - 12744 |-> 332803903575727236p256 - 12745 |-> 1000000000000000000p256 - 12791 |-> 1p256 - 12907 |-> 332801287709499051p256 - 12908 |-> 1000000000000000000p256 - 12954 |-> 1p256 - 13070 |-> 332798753541574848p256 - 13071 |-> 1000000000000000000p256 - 13117 |-> 1p256 - 13233 |-> 332796297543228584p256 - 13234 |-> 1000000000000000000p256 - 13280 |-> 1p256 - 13396 |-> 332793916379322804p256 - 13397 |-> 1000000000000000000p256 - 13443 |-> 1p256 - 13559 |-> 332791606895483756p256 - 13560 |-> 1000000000000000000p256 - 13606 |-> 1p256 - 13722 |-> 332789366106268682p256 - 13723 |-> 1000000000000000000p256 - 13769 |-> 1p256 - 13885 |-> 332787191184237780p256 - 13886 |-> 1000000000000000000p256 - 13932 |-> 1p256 - 14048 |-> 332785079449851944p256 - 14049 |-> 1000000000000000000p256 - 14095 |-> 1p256 - 14211 |-> 332783028362125108p256 - 14212 |-> 1000000000000000000p256 - 14258 |-> 1p256 - 14374 |-> 332781035509966896p256 - 14375 |-> 1000000000000000000p256 - 14421 |-> 1p256 - 14537 |-> 332779098604157411p256 - 14538 |-> 1000000000000000000p256 - 14584 |-> 1p256 - 14700 |-> 332777215469901508p256 - 14701 |-> 1000000000000000000p256 - 14747 |-> 1p256 - 14863 |-> 332775384039914779p256 - 14864 |-> 1000000000000000000p256 - 14910 |-> 1p256 - 15026 |-> 332773602347997929p256 - 15027 |-> 1000000000000000000p256 - 15073 |-> 1p256 - 15189 |-> 332771868523060162p256 - 15190 |-> 1000000000000000000p256 - 15236 |-> 1p256 - 15352 |-> 332770180783555749p256 - 15353 |-> 1000000000000000000p256 - 15399 |-> 1p256 - 15515 |-> 332768537432301168p256 - 15516 |-> 1000000000000000000p256 - 15562 |-> 1p256 - 15678 |-> 332766936851643102p256 - 15679 |-> 1000000000000000000p256 - 15725 |-> 1p256 - 15841 |-> 332765377498950151p256 - 15842 |-> 1000000000000000000p256 - 15888 |-> 1p256 - 16004 |-> 332763857902403502p256 - 16005 |-> 1000000000000000000p256 - 16051 |-> 1p256 - 16167 |-> 332762376657063910p256 - 16168 |-> 1000000000000000000p256 - 16214 |-> 1p256 - 16330 |-> 332760932421194269p256 - 16331 |-> 1000000000000000000p256 - 16377 |-> 1p256 - 16493 |-> 332759523912818802p256 - 16494 |-> 1000000000000000000p256 - 16540 |-> 1p256 - 16656 |-> 332758149906501464p256 - 16657 |-> 1000000000000000000p256 - 16703 |-> 1p256 - 16819 |-> 332756809230327613p256 - 16820 |-> 1000000000000000000p256 - 16866 |-> 1p256 - 16982 |-> 332755500763074278p256 - 16983 |-> 1000000000000000000p256 - 17029 |-> 1p256 - 17145 |-> 332754223431555572p256 - 17146 |-> 1000000000000000000p256 - 17192 |-> 1p256 - 17308 |-> 332752976208130844p256 - 17309 |-> 1000000000000000000p256 - 17355 |-> 1p256 - 17471 |-> 332751758108364174p256 - 17472 |-> 1000000000000000000p256 - 17518 |-> 1p256 - 17634 |-> 332750568188824702p256 - 17635 |-> 1000000000000000000p256 - 17681 |-> 1p256 - 17797 |-> 332749405545018101p256 - 17798 |-> 1000000000000000000p256 - 17844 |-> 1p256 - 17960 |-> 332748269309440255p256 - 17961 |-> 1000000000000000000p256 - 18007 |-> 1p256 - 18123 |-> 332747158649744888p256 - 18124 |-> 1000000000000000000p256 - 18170 |-> 1p256 - 18286 |-> 332746072767017506p256 - 18287 |-> 1000000000000000000p256 - 18333 |-> 1p256 - 18449 |-> 332745010894148612p256 - 18450 |-> 1000000000000000000p256 - 18496 |-> 1p256 - 18612 |-> 332743972294299651p256 - 18613 |-> 1000000000000000000p256 - 18659 |-> 1p256 - 18775 |-> 332742956259455649p256 - 18776 |-> 1000000000000000000p256 - 18822 |-> 1p256 - 18938 |-> 332741962109058926p256 - 18939 |-> 1000000000000000000p256 - 18985 |-> 1p256 - 19101 |-> 332740989188718709p256 - 19102 |-> 1000000000000000000p256 - 19148 |-> 1p256 - 19264 |-> 332740036868991806p256 - 19265 |-> 1000000000000000000p256 - 19311 |-> 1p256 - 19427 |-> 332739104544229862p256 - 19428 |-> 1000000000000000000p256 - 19474 |-> 1p256 - 19590 |-> 332738191631489049p256 - 19591 |-> 1000000000000000000p256 - 19637 |-> 1p256 - 19753 |-> 332737297569498311p256 - 19754 |-> 1000000000000000000p256 - 19800 |-> 1p256 - 19916 |-> 332736421817682565p256 - 19917 |-> 1000000000000000000p256 - 19963 |-> 1p256 - 20079 |-> 332735563855237516p256 - 20080 |-> 1000000000000000000p256 - 20126 |-> 1p256 - 20242 |-> 332734723180252953p256 - 20243 |-> 1000000000000000000p256 - 20289 |-> 1p256 - 20405 |-> 332733899308881624p256 - 20406 |-> 1000000000000000000p256 - 20452 |-> 1p256 - 20568 |-> 332733091774550984p256 - 20569 |-> 1000000000000000000p256 - 20615 |-> 1p256 - 20731 |-> 332732300127215270p256 - 20732 |-> 1000000000000000000p256 - 20778 |-> 1p256 - 20894 |-> 332731523932645552p256 - 20895 |-> 1000000000000000000p256 - 20941 |-> 1p256 - 21057 |-> 332730762771755547p256 - 21058 |-> 1000000000000000000p256 - 21104 |-> 1p256 - 21220 |-> 332730016239961136p256 - 21221 |-> 1000000000000000000p256 - 21267 |-> 1p256 - 21383 |-> 332729283946571656p256 - 21384 |-> 1000000000000000000p256 - 21430 |-> 1p256 - 21546 |-> 332728565514211155p256 - 21547 |-> 1000000000000000000p256 - 21593 |-> 1p256 - 21709 |-> 332727860578267927p256 - 21710 |-> 1000000000000000000p256 - 21756 |-> 1p256 - 21872 |-> 332727168786370745p256 - 21873 |-> 1000000000000000000p256 - 21919 |-> 1p256 - 22035 |-> 332726489797890306p256 - 22036 |-> 1000000000000000000p256 - 22082 |-> 1p256 - 22198 |-> 332725823283464496p256 - 22199 |-> 1000000000000000000p256 - 22245 |-> 1p256 - 22361 |-> 332725168924546175p256 - 22362 |-> 1000000000000000000p256 - 22408 |-> 1p256 - 22524 |-> 332724526412972263p256 - 22525 |-> 1000000000000000000p256 - 22571 |-> 1p256 - 22687 |-> 332723895450552964p256 - 22688 |-> 1000000000000000000p256 - 22734 |-> 1p256 - 22850 |-> 332723275748680061p256 - 22851 |-> 1000000000000000000p256 - 22897 |-> 1p256 - 23013 |-> 332722667027953266p256 - 23014 |-> 1000000000000000000p256 - 23060 |-> 1p256 - 23176 |-> 332722069017823666p256 - 23177 |-> 1000000000000000000p256 - 23223 |-> 1p256 - 23339 |-> 332721481456253378p256 - 23340 |-> 1000000000000000000p256 - 23386 |-> 1p256 - 23502 |-> 332720904089390559p256 - 23503 |-> 1000000000000000000p256 - 23549 |-> 1p256 - 23665 |-> 332720336671258980p256 - 23666 |-> 1000000000000000000p256 - 23712 |-> 1p256 - 23828 |-> 332719778963461423p256 - 23829 |-> 1000000000000000000p256 - 23875 |-> 1p256 - 23991 |-> 332719230734896187p256 - 23992 |-> 1000000000000000000p256 - 24038 |-> 1p256 - 24154 |-> 332718691761486038p256 - 24155 |-> 1000000000000000000p256 - 24201 |-> 1p256 - 24317 |-> 332718161825918990p256 - 24318 |-> 1000000000000000000p256 - 24364 |-> 1p256 - 24480 |-> 332717640717400307p256 - 24481 |-> 1000000000000000000p256 - 24527 |-> 1p256 - 24643 |-> 332717128231415186p256 - 24644 |-> 1000000000000000000p256 - 24690 |-> 1p256 - 24806 |-> 332716624169501577p256 - 24807 |-> 1000000000000000000p256 - 24853 |-> 1p256 - 24969 |-> 332716128339032663p256 - 24970 |-> 1000000000000000000p256 - 25016 |-> 1p256 - 25132 |-> 332715640553008511p256 - 25133 |-> 1000000000000000000p256 - 25179 |-> 1p256 - 25295 |-> 332715160629856459p256 - 25296 |-> 1000000000000000000p256 - 25342 |-> 1p256 - 25458 |-> 332714688393239826p256 - 25459 |-> 1000000000000000000p256 - 25505 |-> 1p256 - 25621 |-> 332714223671874527p256 - 25622 |-> 1000000000000000000p256 - 25668 |-> 1p256 - 25784 |-> 332713766299353243p256 - 25785 |-> 1000000000000000000p256 - 25831 |-> 1p256 - 25947 |-> 332713316113976772p256 - 25948 |-> 1000000000000000000p256 - 25994 |-> 1p256 - 26110 |-> 332712872958592227p256 - 26111 |-> 1000000000000000000p256 - 26157 |-> 1p256 - 26273 |-> 332712436680437769p256 - 26274 |-> 1000000000000000000p256 - 26320 |-> 1p256 - 26436 |-> 332712007130993571p256 - 26437 |-> 1000000000000000000p256 - 26483 |-> 1p256 - 26599 |-> 332711584165838714p256 - 26600 |-> 1000000000000000000p256 - 26646 |-> 1p256 - 26762 |-> 332711167644513767p256 - 26763 |-> 1000000000000000000p256 - 26809 |-> 1p256 - 26925 |-> 332710757430388767p256 - 26926 |-> 1000000000000000000p256 - 26972 |-> 1p256 - 27088 |-> 332710353390536373p256 - 27089 |-> 1000000000000000000p256 - 27135 |-> 1p256 - 27251 |-> 332709955395609959p256 - 27252 |-> 1000000000000000000p256 - 27298 |-> 1p256 - 27414 |-> 332709563319726415p256 - 27415 |-> 1000000000000000000p256 - 27461 |-> 1p256 - 27577 |-> 332709177040353462p256 - 27578 |-> 1000000000000000000p256 - 27624 |-> 1p256 - 27740 |-> 332708796438201269p256 - 27741 |-> 1000000000000000000p256 - 27787 |-> 1p256 - 27903 |-> 332708421397118191p256 - 27904 |-> 1000000000000000000p256 - 27950 |-> 1p256 - 28066 |-> 332708051803990451p256 - 28067 |-> 1000000000000000000p256 - 28113 |-> 1p256 - 28229 |-> 332707687548645580p256 - 28230 |-> 1000000000000000000p256 - 28276 |-> 1p256 - 28392 |-> 332707328523759472p256 - 28393 |-> 1000000000000000000p256 - 28439 |-> 1p256 - 28555 |-> 332706974624766889p256 - 28556 |-> 1000000000000000000p256 - 28602 |-> 1p256 - 28718 |-> 332706625749775266p256 - 28719 |-> 1000000000000000000p256 - 28765 |-> 1p256 - 28881 |-> 332706281799481686p256 - 28882 |-> 1000000000000000000p256 - 28928 |-> 1p256 - 29044 |-> 332705942677092883p256 - 29045 |-> 1000000000000000000p256 - 29091 |-> 1p256 - 29207 |-> 332705608288248152p256 - 29208 |-> 1000000000000000000p256 - 29254 |-> 1p256 - 29370 |-> 332705278540945036p256 - 29371 |-> 1000000000000000000p256 - 29417 |-> 1p256 - 29533 |-> 332704953345467692p256 - 29534 |-> 1000000000000000000p256 - 29580 |-> 1p256 - 29696 |-> 332704632614317801p256 - 29697 |-> 1000000000000000000p256 - 29743 |-> 1p256 - 29859 |-> 332704316262147946p256 - 29860 |-> 1000000000000000000p256 - 29906 |-> 1p256 - 30022 |-> 332704004205697330p256 - 30023 |-> 1000000000000000000p256 - 30069 |-> 1p256 - 30185 |-> 332703696363729760p256 - 30186 |-> 1000000000000000000p256 - 30232 |-> 1p256 - 30348 |-> 332703392656973797p256 - 30349 |-> 1000000000000000000p256 - 30395 |-> 1p256 - 30511 |-> 332703093008064981p256 - 30512 |-> 1000000000000000000p256 - 30558 |-> 1p256 - 30674 |-> 332702797341490059p256 - 30675 |-> 1000000000000000000p256 - 30721 |-> 1p256 - 30837 |-> 332702505583533129p256 - 30838 |-> 1000000000000000000p256 - 30884 |-> 1p256 - 31000 |-> 332702217662223622p256 - 31001 |-> 1000000000000000000p256 - 31047 |-> 1p256 - 31163 |-> 332701933507286059p256 - 31164 |-> 1000000000000000000p256 - 31210 |-> 1p256 - 31326 |-> 332701653050091507p256 - 31327 |-> 1000000000000000000p256 + 107 |-> 1p256 + 223 |-> 499248873309964947p256 + 224 |-> 1000000000000000000p256 + 300 |-> 1p256 + 416 |-> 499248873309964947p256 + 417 |-> 1000000000000000000p256 + 493 |-> 1p256 + 609 |-> 499248873309964947p256 + 610 |-> 1000000000000000000p256 + 686 |-> 1p256 + 802 |-> 499248873309964947p256 + 803 |-> 1000000000000000000p256 + 879 |-> 1p256 + 995 |-> 499248873309964947p256 + 996 |-> 1000000000000000000p256 + 1072 |-> 1p256 + 1188 |-> 499248873309964947p256 + 1189 |-> 1000000000000000000p256 + 1265 |-> 1p256 + 1381 |-> 499248873309964947p256 + 1382 |-> 1000000000000000000p256 + 1458 |-> 1p256 + 1574 |-> 499248873309964947p256 + 1575 |-> 1000000000000000000p256 + 1651 |-> 1p256 + 1767 |-> 499248873309964947p256 + 1768 |-> 1000000000000000000p256 + 1844 |-> 1p256 + 1960 |-> 499248873309964947p256 + 1961 |-> 1000000000000000000p256 + 2037 |-> 1p256 + 2153 |-> 499248873309964947p256 + 2154 |-> 1000000000000000000p256 + 2230 |-> 1p256 + 2346 |-> 499248873309964947p256 + 2347 |-> 1000000000000000000p256 + 2423 |-> 1p256 + 2539 |-> 499248873309964947p256 + 2540 |-> 1000000000000000000p256 + 2616 |-> 1p256 + 2732 |-> 499248873309964947p256 + 2733 |-> 1000000000000000000p256 + 2809 |-> 1p256 + 2925 |-> 499248873309964947p256 + 2926 |-> 1000000000000000000p256 + 3002 |-> 1p256 + 3118 |-> 499248873309964947p256 + 3119 |-> 1000000000000000000p256 + 3195 |-> 1p256 + 3311 |-> 499248873309964947p256 + 3312 |-> 1000000000000000000p256 + 3388 |-> 1p256 + 3504 |-> 499248873309964947p256 + 3505 |-> 1000000000000000000p256 + 3581 |-> 1p256 + 3697 |-> 499248873309964947p256 + 3698 |-> 1000000000000000000p256 + 3774 |-> 1p256 + 3890 |-> 499248873309964947p256 + 3891 |-> 1000000000000000000p256 + 3967 |-> 1p256 + 4083 |-> 499248873309964947p256 + 4084 |-> 1000000000000000000p256 + 4160 |-> 1p256 + 4276 |-> 499248873309964947p256 + 4277 |-> 1000000000000000000p256 + 4353 |-> 1p256 + 4469 |-> 499248873309964947p256 + 4470 |-> 1000000000000000000p256 + 4546 |-> 1p256 + 4662 |-> 499248873309964947p256 + 4663 |-> 1000000000000000000p256 + 4739 |-> 1p256 + 4855 |-> 499248873309964947p256 + 4856 |-> 1000000000000000000p256 + 4932 |-> 1p256 + 5048 |-> 499248873309964947p256 + 5049 |-> 1000000000000000000p256 + 5125 |-> 1p256 + 5241 |-> 499248873309964947p256 + 5242 |-> 1000000000000000000p256 + 5318 |-> 1p256 + 5434 |-> 499248873309964947p256 + 5435 |-> 1000000000000000000p256 + 5511 |-> 1p256 + 5627 |-> 499248873309964947p256 + 5628 |-> 1000000000000000000p256 + 5704 |-> 1p256 + 5820 |-> 499248873309964947p256 + 5821 |-> 1000000000000000000p256 + 5897 |-> 1p256 + 6013 |-> 499248873309964947p256 + 6014 |-> 1000000000000000000p256 + 6090 |-> 1p256 + 6206 |-> 499248873309964947p256 + 6207 |-> 1000000000000000000p256 + 6283 |-> 1p256 + 6399 |-> 499248873309964947p256 + 6400 |-> 1000000000000000000p256 + 6476 |-> 1p256 + 6592 |-> 499248873309964947p256 + 6593 |-> 1000000000000000000p256 + 6669 |-> 1p256 + 6785 |-> 499248873309964947p256 + 6786 |-> 1000000000000000000p256 + 6862 |-> 1p256 + 6978 |-> 499248873309964947p256 + 6979 |-> 1000000000000000000p256 + 7055 |-> 1p256 + 7171 |-> 499248873309964947p256 + 7172 |-> 1000000000000000000p256 + 7248 |-> 1p256 + 7364 |-> 499248873309964947p256 + 7365 |-> 1000000000000000000p256 + 7441 |-> 1p256 + 7557 |-> 499248873309964947p256 + 7558 |-> 1000000000000000000p256 + 7634 |-> 1p256 + 7750 |-> 499248873309964947p256 + 7751 |-> 1000000000000000000p256 + 7827 |-> 1p256 + 7943 |-> 499248873309964947p256 + 7944 |-> 1000000000000000000p256 + 8020 |-> 1p256 + 8136 |-> 499248873309964947p256 + 8137 |-> 1000000000000000000p256 + 8213 |-> 1p256 + 8329 |-> 499248873309964947p256 + 8330 |-> 1000000000000000000p256 + 8406 |-> 1p256 + 8522 |-> 499248873309964947p256 + 8523 |-> 1000000000000000000p256 + 8599 |-> 1p256 + 8715 |-> 499248873309964947p256 + 8716 |-> 1000000000000000000p256 + 8792 |-> 1p256 + 8908 |-> 499248873309964947p256 + 8909 |-> 1000000000000000000p256 + 8985 |-> 1p256 + 9101 |-> 499248873309964947p256 + 9102 |-> 1000000000000000000p256 + 9178 |-> 1p256 + 9294 |-> 499248873309964947p256 + 9295 |-> 1000000000000000000p256 + 9371 |-> 1p256 + 9487 |-> 499248873309964947p256 + 9488 |-> 1000000000000000000p256 + 9564 |-> 1p256 + 9680 |-> 499248873309964947p256 + 9681 |-> 1000000000000000000p256 + 9757 |-> 1p256 + 9873 |-> 499248873309964947p256 + 9874 |-> 1000000000000000000p256 + 9950 |-> 1p256 + 10066 |-> 499248873309964947p256 + 10067 |-> 1000000000000000000p256 + 10143 |-> 1p256 + 10259 |-> 499248873309964947p256 + 10260 |-> 1000000000000000000p256 + 10336 |-> 1p256 + 10452 |-> 499248873309964947p256 + 10453 |-> 1000000000000000000p256 + 10529 |-> 1p256 + 10645 |-> 499248873309964947p256 + 10646 |-> 1000000000000000000p256 + 10722 |-> 1p256 + 10838 |-> 499248873309964947p256 + 10839 |-> 1000000000000000000p256 + 10915 |-> 1p256 + 11031 |-> 499248873309964947p256 + 11032 |-> 1000000000000000000p256 + 11108 |-> 1p256 + 11224 |-> 499248873309964947p256 + 11225 |-> 1000000000000000000p256 + 11301 |-> 1p256 + 11417 |-> 499248873309964947p256 + 11418 |-> 1000000000000000000p256 + 11494 |-> 1p256 + 11610 |-> 499248873309964947p256 + 11611 |-> 1000000000000000000p256 + 11687 |-> 1p256 + 11803 |-> 499248873309964947p256 + 11804 |-> 1000000000000000000p256 + 11880 |-> 1p256 + 11996 |-> 499248873309964947p256 + 11997 |-> 1000000000000000000p256 + 12073 |-> 1p256 + 12189 |-> 499248873309964947p256 + 12190 |-> 1000000000000000000p256 + 12266 |-> 1p256 + 12382 |-> 499248873309964947p256 + 12383 |-> 1000000000000000000p256 + 12459 |-> 1p256 + 12575 |-> 499248873309964947p256 + 12576 |-> 1000000000000000000p256 + 12652 |-> 1p256 + 12768 |-> 499248873309964947p256 + 12769 |-> 1000000000000000000p256 + 12845 |-> 1p256 + 12961 |-> 499248873309964947p256 + 12962 |-> 1000000000000000000p256 + 13038 |-> 1p256 + 13154 |-> 499248873309964947p256 + 13155 |-> 1000000000000000000p256 + 13231 |-> 1p256 + 13347 |-> 499248873309964947p256 + 13348 |-> 1000000000000000000p256 + 13424 |-> 1p256 + 13540 |-> 499248873309964947p256 + 13541 |-> 1000000000000000000p256 + 13617 |-> 1p256 + 13733 |-> 499248873309964947p256 + 13734 |-> 1000000000000000000p256 + 13810 |-> 1p256 + 13926 |-> 499248873309964947p256 + 13927 |-> 1000000000000000000p256 + 14003 |-> 1p256 + 14119 |-> 499248873309964947p256 + 14120 |-> 1000000000000000000p256 + 14196 |-> 1p256 + 14312 |-> 499248873309964947p256 + 14313 |-> 1000000000000000000p256 + 14389 |-> 1p256 + 14505 |-> 499248873309964947p256 + 14506 |-> 1000000000000000000p256 + 14582 |-> 1p256 + 14698 |-> 499248873309964947p256 + 14699 |-> 1000000000000000000p256 + 14775 |-> 1p256 + 14891 |-> 499248873309964947p256 + 14892 |-> 1000000000000000000p256 + 14968 |-> 1p256 + 15084 |-> 499248873309964947p256 + 15085 |-> 1000000000000000000p256 + 15161 |-> 1p256 + 15277 |-> 499248873309964947p256 + 15278 |-> 1000000000000000000p256 + 15354 |-> 1p256 + 15470 |-> 499248873309964947p256 + 15471 |-> 1000000000000000000p256 + 15547 |-> 1p256 + 15663 |-> 499248873309964947p256 + 15664 |-> 1000000000000000000p256 + 15740 |-> 1p256 + 15856 |-> 499248873309964947p256 + 15857 |-> 1000000000000000000p256 + 15933 |-> 1p256 + 16049 |-> 499248873309964947p256 + 16050 |-> 1000000000000000000p256 + 16126 |-> 1p256 + 16242 |-> 499248873309964947p256 + 16243 |-> 1000000000000000000p256 + 16319 |-> 1p256 + 16435 |-> 499248873309964947p256 + 16436 |-> 1000000000000000000p256 + 16512 |-> 1p256 + 16628 |-> 499248873309964947p256 + 16629 |-> 1000000000000000000p256 + 16705 |-> 1p256 + 16821 |-> 499248873309964947p256 + 16822 |-> 1000000000000000000p256 + 16898 |-> 1p256 + 17014 |-> 499248873309964947p256 + 17015 |-> 1000000000000000000p256 + 17091 |-> 1p256 + 17207 |-> 499248873309964947p256 + 17208 |-> 1000000000000000000p256 + 17284 |-> 1p256 + 17400 |-> 499248873309964947p256 + 17401 |-> 1000000000000000000p256 + 17477 |-> 1p256 + 17593 |-> 499248873309964947p256 + 17594 |-> 1000000000000000000p256 + 17670 |-> 1p256 + 17786 |-> 499248873309964947p256 + 17787 |-> 1000000000000000000p256 + 17863 |-> 1p256 + 17979 |-> 499248873309964947p256 + 17980 |-> 1000000000000000000p256 + 18056 |-> 1p256 + 18172 |-> 499248873309964947p256 + 18173 |-> 1000000000000000000p256 + 18249 |-> 1p256 + 18365 |-> 499248873309964947p256 + 18366 |-> 1000000000000000000p256 + 18442 |-> 1p256 + 18558 |-> 499248873309964947p256 + 18559 |-> 1000000000000000000p256 + 18635 |-> 1p256 + 18751 |-> 499248873309964947p256 + 18752 |-> 1000000000000000000p256 + 18828 |-> 1p256 + 18944 |-> 499248873309964947p256 + 18945 |-> 1000000000000000000p256 + 19021 |-> 1p256 + 19137 |-> 499248873309964947p256 + 19138 |-> 1000000000000000000p256 + 19214 |-> 1p256 + 19330 |-> 499248873309964947p256 + 19331 |-> 1000000000000000000p256 + 19407 |-> 1p256 + 19523 |-> 499248873309964947p256 + 19524 |-> 1000000000000000000p256 + 19600 |-> 1p256 + 19716 |-> 499248873309964947p256 + 19717 |-> 1000000000000000000p256 + 19793 |-> 1p256 + 19909 |-> 499248873309964947p256 + 19910 |-> 1000000000000000000p256 + 19986 |-> 1p256 + 20102 |-> 499248873309964947p256 + 20103 |-> 1000000000000000000p256 + 20179 |-> 1p256 + 20295 |-> 499248873309964947p256 + 20296 |-> 1000000000000000000p256 + 20372 |-> 1p256 + 20488 |-> 499248873309964947p256 + 20489 |-> 1000000000000000000p256 + 20565 |-> 1p256 + 20681 |-> 499248873309964947p256 + 20682 |-> 1000000000000000000p256 + 20758 |-> 1p256 + 20874 |-> 499248873309964947p256 + 20875 |-> 1000000000000000000p256 + 20951 |-> 1p256 + 21067 |-> 499248873309964947p256 + 21068 |-> 1000000000000000000p256 + 21144 |-> 1p256 + 21260 |-> 499248873309964947p256 + 21261 |-> 1000000000000000000p256 + 21337 |-> 1p256 + 21453 |-> 499248873309964947p256 + 21454 |-> 1000000000000000000p256 + 21530 |-> 1p256 + 21646 |-> 499248873309964947p256 + 21647 |-> 1000000000000000000p256 + 21723 |-> 1p256 + 21839 |-> 499248873309964947p256 + 21840 |-> 1000000000000000000p256 + 21916 |-> 1p256 + 22032 |-> 499248873309964947p256 + 22033 |-> 1000000000000000000p256 + 22109 |-> 1p256 + 22225 |-> 499248873309964947p256 + 22226 |-> 1000000000000000000p256 + 22302 |-> 1p256 + 22418 |-> 499248873309964947p256 + 22419 |-> 1000000000000000000p256 + 22495 |-> 1p256 + 22611 |-> 499248873309964947p256 + 22612 |-> 1000000000000000000p256 + 22688 |-> 1p256 + 22804 |-> 499248873309964947p256 + 22805 |-> 1000000000000000000p256 + 22881 |-> 1p256 + 22997 |-> 499248873309964947p256 + 22998 |-> 1000000000000000000p256 + 23074 |-> 1p256 + 23190 |-> 499248873309964947p256 + 23191 |-> 1000000000000000000p256 + 23267 |-> 1p256 + 23383 |-> 499248873309964947p256 + 23384 |-> 1000000000000000000p256 + 23460 |-> 1p256 + 23576 |-> 499248873309964947p256 + 23577 |-> 1000000000000000000p256 + 23653 |-> 1p256 + 23769 |-> 499248873309964947p256 + 23770 |-> 1000000000000000000p256 + 23846 |-> 1p256 + 23962 |-> 499248873309964947p256 + 23963 |-> 1000000000000000000p256 + 24039 |-> 1p256 + 24155 |-> 499248873309964947p256 + 24156 |-> 1000000000000000000p256 + 24232 |-> 1p256 + 24348 |-> 499248873309964947p256 + 24349 |-> 1000000000000000000p256 + 24425 |-> 1p256 + 24541 |-> 499248873309964947p256 + 24542 |-> 1000000000000000000p256 + 24618 |-> 1p256 + 24734 |-> 499248873309964947p256 + 24735 |-> 1000000000000000000p256 + 24811 |-> 1p256 + 24927 |-> 499248873309964947p256 + 24928 |-> 1000000000000000000p256 + 25004 |-> 1p256 + 25120 |-> 499248873309964947p256 + 25121 |-> 1000000000000000000p256 + 25197 |-> 1p256 + 25313 |-> 499248873309964947p256 + 25314 |-> 1000000000000000000p256 + 25390 |-> 1p256 + 25506 |-> 499248873309964947p256 + 25507 |-> 1000000000000000000p256 + 25583 |-> 1p256 + 25699 |-> 499248873309964947p256 + 25700 |-> 1000000000000000000p256 + 25776 |-> 1p256 + 25892 |-> 499248873309964947p256 + 25893 |-> 1000000000000000000p256 + 25969 |-> 1p256 + 26085 |-> 499248873309964947p256 + 26086 |-> 1000000000000000000p256 + 26162 |-> 1p256 + 26278 |-> 499248873309964947p256 + 26279 |-> 1000000000000000000p256 + 26355 |-> 1p256 + 26471 |-> 499248873309964947p256 + 26472 |-> 1000000000000000000p256 + 26548 |-> 1p256 + 26664 |-> 499248873309964947p256 + 26665 |-> 1000000000000000000p256 + 26741 |-> 1p256 + 26857 |-> 499248873309964947p256 + 26858 |-> 1000000000000000000p256 + 26934 |-> 1p256 + 27050 |-> 499248873309964947p256 + 27051 |-> 1000000000000000000p256 + 27127 |-> 1p256 + 27243 |-> 499248873309964947p256 + 27244 |-> 1000000000000000000p256 + 27320 |-> 1p256 + 27436 |-> 499248873309964947p256 + 27437 |-> 1000000000000000000p256 + 27513 |-> 1p256 + 27629 |-> 499248873309964947p256 + 27630 |-> 1000000000000000000p256 + 27706 |-> 1p256 + 27822 |-> 499248873309964947p256 + 27823 |-> 1000000000000000000p256 + 27899 |-> 1p256 + 28015 |-> 499248873309964947p256 + 28016 |-> 1000000000000000000p256 + 28092 |-> 1p256 + 28208 |-> 499248873309964947p256 + 28209 |-> 1000000000000000000p256 + 28285 |-> 1p256 + 28401 |-> 499248873309964947p256 + 28402 |-> 1000000000000000000p256 + 28478 |-> 1p256 + 28594 |-> 499248873309964947p256 + 28595 |-> 1000000000000000000p256 + 28671 |-> 1p256 + 28787 |-> 499248873309964947p256 + 28788 |-> 1000000000000000000p256 + 28864 |-> 1p256 + 28980 |-> 499248873309964947p256 + 28981 |-> 1000000000000000000p256 + 29057 |-> 1p256 + 29173 |-> 499248873309964947p256 + 29174 |-> 1000000000000000000p256 + 29250 |-> 1p256 + 29366 |-> 499248873309964947p256 + 29367 |-> 1000000000000000000p256 + 29443 |-> 1p256 + 29559 |-> 499248873309964947p256 + 29560 |-> 1000000000000000000p256 + 29636 |-> 1p256 + 29752 |-> 499248873309964947p256 + 29753 |-> 1000000000000000000p256 + 29829 |-> 1p256 + 29945 |-> 499248873309964947p256 + 29946 |-> 1000000000000000000p256 + 30022 |-> 1p256 + 30138 |-> 499248873309964947p256 + 30139 |-> 1000000000000000000p256 + 30215 |-> 1p256 + 30331 |-> 499248873309964947p256 + 30332 |-> 1000000000000000000p256 + 30408 |-> 1p256 + 30524 |-> 499248873309964947p256 + 30525 |-> 1000000000000000000p256 + 30601 |-> 1p256 + 30717 |-> 499248873309964947p256 + 30718 |-> 1000000000000000000p256 + 30794 |-> 1p256 + 30910 |-> 499248873309964947p256 + 30911 |-> 1000000000000000000p256 + 30987 |-> 1p256 + 31103 |-> 499248873309964947p256 + 31104 |-> 1000000000000000000p256 + 31180 |-> 1p256 + 31296 |-> 499248873309964947p256 + 31297 |-> 1000000000000000000p256 31373 |-> 1p256 - 31489 |-> 332701376223610669p256 + 31489 |-> 499248873309964947p256 31490 |-> 1000000000000000000p256 - 31536 |-> 1p256 - 31652 |-> 332701102962368543p256 - 31653 |-> 1000000000000000000p256 - 31699 |-> 1p256 - 31815 |-> 332700833202400598p256 - 31816 |-> 1000000000000000000p256 - 31862 |-> 1p256 - 31978 |-> 332700566881210399p256 - 31979 |-> 1000000000000000000p256 - 32025 |-> 1p256 - 32141 |-> 332700303937728627p256 - 32142 |-> 1000000000000000000p256 - 32188 |-> 1p256 - 32304 |-> 332700044312273453p256 - 32305 |-> 1000000000000000000p256 - 32351 |-> 1p256 - 32467 |-> 332699787946512194p256 - 32468 |-> 1000000000000000000p256 - 32514 |-> 1p256 - 32630 |-> 332699534783424229p256 - 32631 |-> 1000000000000000000p256 - 32677 |-> 1p256 - 32793 |-> 332699284767265097p256 - 32794 |-> 1000000000000000000p256 - 32840 |-> 1p256 - 32956 |-> 332699037843531768p256 - 32957 |-> 1000000000000000000p256 - 33003 |-> 1p256 - 33119 |-> 332698793958929014p256 - 33120 |-> 1000000000000000000p256 - 33166 |-> 1p256 - 33282 |-> 332698553061336849p256 - 33283 |-> 1000000000000000000p256 - 33329 |-> 1p256 - 33445 |-> 332698315099779017p256 - 33446 |-> 1000000000000000000p256 - 33492 |-> 1p256 - 33608 |-> 332698080024392454p256 - 33609 |-> 1000000000000000000p256 - 33655 |-> 1p256 - 33771 |-> 332697847786397724p256 - 33772 |-> 1000000000000000000p256 - 33818 |-> 1p256 - 33934 |-> 332697618338070371p256 - 33935 |-> 1000000000000000000p256 - 33981 |-> 1p256 - 34097 |-> 332697391632713163p256 - 34098 |-> 1000000000000000000p256 - 34144 |-> 1p256 - 34260 |-> 332697167624629197p256 - 34261 |-> 1000000000000000000p256 - 34307 |-> 1p256 - 34423 |-> 332696946269095832p256 - 34424 |-> 1000000000000000000p256 - 34470 |-> 1p256 - 34586 |-> 332696727522339415p256 - 34587 |-> 1000000000000000000p256 - 34633 |-> 1p256 - 34749 |-> 332696511341510792p256 - 34750 |-> 1000000000000000000p256 - 34796 |-> 1p256 - 34912 |-> 332696297684661543p256 - 34913 |-> 1000000000000000000p256 - 34959 |-> 1p256 - 35075 |-> 332696086510720956p256 - 35076 |-> 1000000000000000000p256 - 35122 |-> 1p256 - 35238 |-> 332695877779473677p256 - 35239 |-> 1000000000000000000p256 - 35285 |-> 1p256 - 35401 |-> 332695671451538040p256 - 35402 |-> 1000000000000000000p256 - 35448 |-> 1p256 - 35564 |-> 332695467488345038p256 - 35565 |-> 1000000000000000000p256 - 35611 |-> 1p256 - 35727 |-> 332695265852117917p256 - 35728 |-> 1000000000000000000p256 - 35774 |-> 1p256 - 35890 |-> 332695066505852380p256 - 35891 |-> 1000000000000000000p256 - 35937 |-> 1p256 - 36053 |-> 332694869413297364p256 - 36054 |-> 1000000000000000000p256 - 36100 |-> 1p256 - 36216 |-> 332694674538936384p256 - 36217 |-> 1000000000000000000p256 - 36263 |-> 1p256 - 36379 |-> 332694481847969421p256 - 36380 |-> 1000000000000000000p256 - 36426 |-> 1p256 - 36542 |-> 332694291306295338p256 - 36543 |-> 1000000000000000000p256 - 36589 |-> 1p256 - 36705 |-> 332694102880494794p256 - 36706 |-> 1000000000000000000p256 - 36752 |-> 1p256 - 36868 |-> 332693916537813664p256 - 36869 |-> 1000000000000000000p256 - 36915 |-> 1p256 - 37031 |-> 332693732246146918p256 - 37032 |-> 1000000000000000000p256 - 37078 |-> 1p256 - 37194 |-> 332693549974022974p256 - 37195 |-> 1000000000000000000p256 - 37241 |-> 1p256 - 37357 |-> 332693369690588482p256 - 37358 |-> 1000000000000000000p256 - 37404 |-> 1p256 - 37520 |-> 332693191365593550p256 - 37521 |-> 1000000000000000000p256 - 37567 |-> 1p256 - 37683 |-> 332693014969377376p256 - 37684 |-> 1000000000000000000p256 - 37730 |-> 1p256 - 37846 |-> 332692840472854286p256 - 37847 |-> 1000000000000000000p256 - 37893 |-> 1p256 - 38009 |-> 332692667847500166p256 - 38010 |-> 1000000000000000000p256 - 38056 |-> 1p256 - 38172 |-> 332692497065339258p256 - 38173 |-> 1000000000000000000p256 - 38219 |-> 1p256 - 38335 |-> 332692328098931342p256 - 38336 |-> 1000000000000000000p256 - 38382 |-> 1p256 - 38498 |-> 332692160921359244p256 - 38499 |-> 1000000000000000000p256 - 38545 |-> 1p256 - 38661 |-> 332691995506216714p256 - 38662 |-> 1000000000000000000p256 - 38708 |-> 1p256 - 38824 |-> 332691831827596615p256 - 38825 |-> 1000000000000000000p256 - 38871 |-> 1p256 - 38987 |-> 332691669860079440p256 - 38988 |-> 1000000000000000000p256 - 39034 |-> 1p256 - 39150 |-> 332691509578722144p256 - 39151 |-> 1000000000000000000p256 - 39197 |-> 1p256 - 39313 |-> 332691350959047270p256 - 39314 |-> 1000000000000000000p256 - 39360 |-> 1p256 - 39476 |-> 332691193977032372p256 - 39477 |-> 1000000000000000000p256 - 39523 |-> 1p256 - 39639 |-> 332691038609099718p256 - 39640 |-> 1000000000000000000p256 - 39686 |-> 1p256 - 39802 |-> 332690884832106269p256 - 39803 |-> 1000000000000000000p256 - 39849 |-> 1p256 - 39965 |-> 332690732623333925p256 - 39966 |-> 1000000000000000000p256 - 40012 |-> 1p256 - 40128 |-> 332690581960480022p256 - 40129 |-> 1000000000000000000p256 - 40175 |-> 1p256 - 40291 |-> 332690432821648088p256 - 40292 |-> 1000000000000000000p256 - 40338 |-> 1p256 - 40454 |-> 332690285185338838p256 - 40455 |-> 1000000000000000000p256 - 40501 |-> 1p256 - 40617 |-> 332690139030441398p256 - 40618 |-> 1000000000000000000p256 - 40664 |-> 1p256 - 40780 |-> 332689994336224767p256 - 40781 |-> 1000000000000000000p256 - 40827 |-> 1p256 - 40943 |-> 332689851082329493p256 - 40944 |-> 1000000000000000000p256 - 40990 |-> 1p256 - 41106 |-> 332689709248759568p256 - 41107 |-> 1000000000000000000p256 - 41153 |-> 1p256 - 41269 |-> 332689568815874526p256 - 41270 |-> 1000000000000000000p256 - 41316 |-> 1p256 - 41432 |-> 332689429764381750p256 - 41433 |-> 1000000000000000000p256 - 41479 |-> 1p256 - 41595 |-> 332689292075328967p256 - 41596 |-> 1000000000000000000p256 - 41642 |-> 1p256 - 41758 |-> 332689155730096942p256 - 41759 |-> 1000000000000000000p256 - 41805 |-> 1p256 - 41921 |-> 332689020710392352p256 - 41922 |-> 1000000000000000000p256 - 41968 |-> 1p256 - 42084 |-> 332688886998240835p256 - 42085 |-> 1000000000000000000p256 - 42131 |-> 1p256 - 42247 |-> 332688754575980228p256 - 42248 |-> 1000000000000000000p256 - 42294 |-> 1p256 - 42410 |-> 332688623426253955p256 - 42411 |-> 1000000000000000000p256 - 42457 |-> 1p256 - 42573 |-> 332688493532004595p256 - 42574 |-> 1000000000000000000p256 - 42620 |-> 1p256 - 42736 |-> 332688364876467602p256 - 42737 |-> 1000000000000000000p256 - 42783 |-> 1p256 - 42899 |-> 332688237443165182p256 - 42900 |-> 1000000000000000000p256 - 42946 |-> 1p256 - 43062 |-> 332688111215900318p256 - 43063 |-> 1000000000000000000p256 - 43109 |-> 1p256 - 43225 |-> 332687986178750951p256 - 43226 |-> 1000000000000000000p256 - 43272 |-> 1p256 - 43388 |-> 332687862316064288p256 - 43389 |-> 1000000000000000000p256 - 43435 |-> 1p256 - 43551 |-> 332687739612451263p256 - 43552 |-> 1000000000000000000p256 - 43598 |-> 1p256 - 43714 |-> 332687618052781122p256 - 43715 |-> 1000000000000000000p256 - 43761 |-> 1p256 - 43877 |-> 332687497622176146p256 - 43878 |-> 1000000000000000000p256 - 43924 |-> 1p256 - 44040 |-> 332687378306006497p256 - 44041 |-> 1000000000000000000p256 - 44087 |-> 1p256 - 44203 |-> 332687260089885188p256 - 44204 |-> 1000000000000000000p256 - 44250 |-> 1p256 - 44366 |-> 332687142959663172p256 - 44367 |-> 1000000000000000000p256 - 44413 |-> 1p256 - 44529 |-> 332687026901424554p256 - 44530 |-> 1000000000000000000p256 - 44576 |-> 1p256 - 44692 |-> 332686911901481910p256 - 44693 |-> 1000000000000000000p256 - 44739 |-> 1p256 - 44855 |-> 332686797946371716p256 - 44856 |-> 1000000000000000000p256 - 44902 |-> 1p256 - 45018 |-> 332686685022849892p256 - 45019 |-> 1000000000000000000p256 - 45065 |-> 1p256 - 45181 |-> 332686573117887445p256 - 45182 |-> 1000000000000000000p256 - 45228 |-> 1p256 - 45344 |-> 332686462218666210p256 - 45345 |-> 1000000000000000000p256 - 45391 |-> 1p256 - 45507 |-> 332686352312574703p256 - 45508 |-> 1000000000000000000p256 - 45554 |-> 1p256 - 45670 |-> 332686243387204056p256 - 45671 |-> 1000000000000000000p256 - 45717 |-> 1p256 - 45833 |-> 332686135430344054p256 - 45834 |-> 1000000000000000000p256 - 45880 |-> 1p256 - 45996 |-> 332686028429979263p256 - 45997 |-> 1000000000000000000p256 - 46043 |-> 1p256 - 46159 |-> 332685922374285243p256 - 46160 |-> 1000000000000000000p256 - 46206 |-> 1p256 - 46322 |-> 332685817251624855p256 - 46323 |-> 1000000000000000000p256 - 46369 |-> 1p256 - 46485 |-> 332685713050544639p256 - 46486 |-> 1000000000000000000p256 - 46532 |-> 1p256 - 46648 |-> 332685609759771292p256 - 46649 |-> 1000000000000000000p256 - 46695 |-> 1p256 - 46811 |-> 332685507368208209p256 - 46812 |-> 1000000000000000000p256 - 46858 |-> 1p256 - 46974 |-> 332685405864932116p256 - 46975 |-> 1000000000000000000p256 - 47021 |-> 1p256 - 47137 |-> 332685305239189765p256 - 47138 |-> 1000000000000000000p256 - 47184 |-> 1p256 - 47300 |-> 332685205480394717p256 - 47301 |-> 1000000000000000000p256 - 47347 |-> 1p256 - 47463 |-> 332685106578124184p256 - 47464 |-> 1000000000000000000p256 - 47510 |-> 1p256 - 47626 |-> 332685008522115955p256 - 47627 |-> 1000000000000000000p256 - 47673 |-> 1p256 - 47789 |-> 332684911302265373p256 - 47790 |-> 1000000000000000000p256 - 47836 |-> 1p256 - 47952 |-> 332684814908622396p256 - 47953 |-> 1000000000000000000p256 - 47999 |-> 1p256 - 48115 |-> 332684719331388713p256 - 48116 |-> 1000000000000000000p256 - 48162 |-> 1p256 - 48278 |-> 332684624560914923p256 - 48279 |-> 1000000000000000000p256 - 48325 |-> 1p256 - 48441 |-> 332684530587697782p256 - 48442 |-> 1000000000000000000p256 - 48488 |-> 1p256 - 48604 |-> 332684437402377504p256 - 48605 |-> 1000000000000000000p256 - 48651 |-> 1p256 - 48767 |-> 332684344995735120p256 - 48768 |-> 1000000000000000000p256 - 48814 |-> 1p256 - 48930 |-> 332684253358689905p256 - 48931 |-> 1000000000000000000p256 - 48977 |-> 1p256 - 49093 |-> 332684162482296843p256 - 49094 |-> 1000000000000000000p256 - 49140 |-> 1p256 - 49256 |-> 332684072357744166p256 - 49257 |-> 1000000000000000000p256 - 49303 |-> 1p256 - 49419 |-> 332683982976350926p256 - 49420 |-> 1000000000000000000p256 - 49466 |-> 1p256 - 49582 |-> 332683894329564636p256 - 49583 |-> 1000000000000000000p256 - 49629 |-> 1p256 - 49745 |-> 332683806408958953p256 - 49746 |-> 1000000000000000000p256 - 49792 |-> 1p256 - 49908 |-> 332683719206231407p256 - 49909 |-> 1000000000000000000p256 - 49955 |-> 1p256 - 50071 |-> 332683632713201187p256 - 50072 |-> 1000000000000000000p256 - 50118 |-> 1p256 - 50234 |-> 332683546921806970p256 - 50235 |-> 1000000000000000000p256 - 50281 |-> 1p256 - 50397 |-> 332683461824104787p256 - 50398 |-> 1000000000000000000p256 - 50444 |-> 1p256 - 50560 |-> 332683377412265953p256 - 50561 |-> 1000000000000000000p256 - 50607 |-> 1p256 - 50723 |-> 332683293678575017p256 - 50724 |-> 1000000000000000000p256 - 50770 |-> 1p256 - 50886 |-> 332683210615427775p256 - 50887 |-> 1000000000000000000p256 - 50933 |-> 1p256 - 51049 |-> 332683128215329313p256 - 51050 |-> 1000000000000000000p256 - 51096 |-> 1p256 - 51212 |-> 332683046470892091p256 - 51213 |-> 1000000000000000000p256 - 51259 |-> 1p256 - 51375 |-> 332682965374834072p256 - 51376 |-> 1000000000000000000p256 - 51422 |-> 1p256 - 51538 |-> 332682884919976885p256 - 51539 |-> 1000000000000000000p256 - 51585 |-> 1p256 - 51701 |-> 332682805099244026p256 - 51702 |-> 1000000000000000000p256 - 51748 |-> 1p256 - 51864 |-> 332682725905659096p256 - 51865 |-> 1000000000000000000p256 - 51911 |-> 1p256 - 52027 |-> 332682647332344080p256 - 52028 |-> 1000000000000000000p256 - 52074 |-> 1p256 - 52190 |-> 332682569372517651p256 - 52191 |-> 1000000000000000000p256 - 52237 |-> 1p256 - 52353 |-> 332682492019493516p256 - 52354 |-> 1000000000000000000p256 - 52400 |-> 1p256 - 52516 |-> 332682415266678795p256 - 52517 |-> 1000000000000000000p256 - 52563 |-> 1p256 - 52679 |-> 332682339107572427p256 - 52680 |-> 1000000000000000000p256 - 52726 |-> 1p256 - 52842 |-> 332682263535763615p256 - 52843 |-> 1000000000000000000p256 - 52889 |-> 1p256 - 53005 |-> 332682188544930298p256 - 53006 |-> 1000000000000000000p256 - 53052 |-> 1p256 - 53168 |-> 332682114128837654p256 - 53169 |-> 1000000000000000000p256 - 53215 |-> 1p256 - 53331 |-> 332682040281336631p256 - 53332 |-> 1000000000000000000p256 - 53378 |-> 1p256 - 53494 |-> 332681966996362514p256 - 53495 |-> 1000000000000000000p256 - 53541 |-> 1p256 - 53657 |-> 332681894267933511p256 - 53658 |-> 1000000000000000000p256 - 53704 |-> 1p256 - 53820 |-> 332681822090149375p256 - 53821 |-> 1000000000000000000p256 - 53867 |-> 1p256 - 53983 |-> 332681750457190044p256 - 53984 |-> 1000000000000000000p256 - 54030 |-> 1p256 - 54146 |-> 332681679363314321p256 - 54147 |-> 1000000000000000000p256 - 54193 |-> 1p256 - 54309 |-> 332681608802858564p256 - 54310 |-> 1000000000000000000p256 - 54356 |-> 1p256 - 54472 |-> 332681538770235413p256 - 54473 |-> 1000000000000000000p256 - 54519 |-> 1p256 - 54635 |-> 332681469259932537p256 - 54636 |-> 1000000000000000000p256 - 54682 |-> 1p256 - 54798 |-> 332681400266511409p256 - 54799 |-> 1000000000000000000p256 - 54845 |-> 1p256 - 54961 |-> 332681331784606097p256 - 54962 |-> 1000000000000000000p256 - 55008 |-> 1p256 - 55124 |-> 332681263808922086p256 - 55125 |-> 1000000000000000000p256 - 55171 |-> 1p256 - 55287 |-> 332681196334235119p256 - 55288 |-> 1000000000000000000p256 - 55334 |-> 1p256 - 55450 |-> 332681129355390062p256 - 55451 |-> 1000000000000000000p256 - 55497 |-> 1p256 - 55613 |-> 332681062867299785p256 - 55614 |-> 1000000000000000000p256 - 55660 |-> 1p256 - 55776 |-> 332680996864944077p256 - 55777 |-> 1000000000000000000p256 - 55823 |-> 1p256 - 55939 |-> 332680931343368564p256 - 55940 |-> 1000000000000000000p256 - 55986 |-> 1p256 - 56102 |-> 332680866297683662p256 - 56103 |-> 1000000000000000000p256 - 56149 |-> 1p256 - 56265 |-> 332680801723063543p256 - 56266 |-> 1000000000000000000p256 - 56312 |-> 1p256 - 56428 |-> 332680737614745123p256 - 56429 |-> 1000000000000000000p256 - 56475 |-> 1p256 - 56591 |-> 332680673968027067p256 - 56592 |-> 1000000000000000000p256 - 56638 |-> 1p256 - 56754 |-> 332680610778268811p256 - 56755 |-> 1000000000000000000p256 - 56801 |-> 1p256 - 56917 |-> 332680548040889607p256 - 56918 |-> 1000000000000000000p256 - 56964 |-> 1p256 - 57080 |-> 332680485751367586p256 - 57081 |-> 1000000000000000000p256 - 57127 |-> 1p256 - 57243 |-> 332680423905238830p256 - 57244 |-> 1000000000000000000p256 - 57290 |-> 1p256 - 57406 |-> 332680362498096469p256 - 57407 |-> 1000000000000000000p256 - 57453 |-> 1p256 - 57569 |-> 332680301525589794p256 - 57570 |-> 1000000000000000000p256 - 57616 |-> 1p256 - 57732 |-> 332680240983423383p256 - 57733 |-> 1000000000000000000p256 - 57779 |-> 1p256 - 57895 |-> 332680180867356244p256 - 57896 |-> 1000000000000000000p256 - 57942 |-> 1p256 - 58058 |-> 332680121173200979p256 - 58059 |-> 1000000000000000000p256 - 58105 |-> 1p256 - 58221 |-> 332680061896822950p256 - 58222 |-> 1000000000000000000p256 - 58268 |-> 1p256 - 58384 |-> 332680003034139477p256 - 58385 |-> 1000000000000000000p256 - 58431 |-> 1p256 - 58547 |-> 332679944581119039p256 - 58548 |-> 1000000000000000000p256 - 58594 |-> 1p256 - 58710 |-> 332679886533780489p256 - 58711 |-> 1000000000000000000p256 - 58757 |-> 1p256 - 58873 |-> 332679828888192294p256 - 58874 |-> 1000000000000000000p256 - 58920 |-> 1p256 - 59036 |-> 332679771640471775p256 - 59037 |-> 1000000000000000000p256 - 59083 |-> 1p256 - 59199 |-> 332679714786784372p256 - 59200 |-> 1000000000000000000p256 - 59246 |-> 1p256 - 59362 |-> 332679658323342911p256 - 59363 |-> 1000000000000000000p256 - 59409 |-> 1p256 - 59525 |-> 332679602246406898p256 - 59526 |-> 1000000000000000000p256 - 59572 |-> 1p256 - 59688 |-> 332679546552281811p256 - 59689 |-> 1000000000000000000p256 - 59735 |-> 1p256 - 59851 |-> 332679491237318414p256 - 59852 |-> 1000000000000000000p256 - 59898 |-> 1p256 - 60014 |-> 332679436297912080p256 - 60015 |-> 1000000000000000000p256 - 60061 |-> 1p256 - 60177 |-> 332679381730502128p256 - 60178 |-> 1000000000000000000p256 - 60224 |-> 1p256 - 60340 |-> 332679327531571166p256 - 60341 |-> 1000000000000000000p256 - 60387 |-> 1p256 - 60503 |-> 332679273697644454p256 - 60504 |-> 1000000000000000000p256 - 60550 |-> 1p256 - 60666 |-> 332679220225289269p256 - 60667 |-> 1000000000000000000p256 - 60713 |-> 1p256 - 60829 |-> 332679167111114290p256 - 60830 |-> 1000000000000000000p256 - 60876 |-> 1p256 - 60992 |-> 332679114351768986p256 - 60993 |-> 1000000000000000000p256 - 61039 |-> 1p256 - 61155 |-> 332679061943943019p256 - 61156 |-> 1000000000000000000p256 - 61202 |-> 1p256 - 61318 |-> 332679009884365657p256 - 61319 |-> 1000000000000000000p256 - 61365 |-> 1p256 - 61481 |-> 332678958169805196p256 - 61482 |-> 1000000000000000000p256 - 61528 |-> 1p256 - 61644 |-> 332678906797068392p256 - 61645 |-> 1000000000000000000p256 - 61691 |-> 1p256 - 61807 |-> 332678855762999901p256 - 61808 |-> 1000000000000000000p256 - 61854 |-> 1p256 - 61970 |-> 332678805064481735p256 - 61971 |-> 1000000000000000000p256 - 62017 |-> 1p256 - 62133 |-> 332678754698432719p256 - 62134 |-> 1000000000000000000p256 - 62180 |-> 1p256 - 62296 |-> 332678704661807964p256 - 62297 |-> 1000000000000000000p256 - 62343 |-> 1p256 - 62459 |-> 332678654951598344p256 - 62460 |-> 1000000000000000000p256 - 62506 |-> 1p256 - 62622 |-> 332678605564829984p256 - 62623 |-> 1000000000000000000p256 - 62669 |-> 1p256 - 62785 |-> 332678556498563757p256 - 62786 |-> 1000000000000000000p256 + 31566 |-> 1p256 + 31682 |-> 499248873309964947p256 + 31683 |-> 1000000000000000000p256 + 31759 |-> 1p256 + 31875 |-> 499248873309964947p256 + 31876 |-> 1000000000000000000p256 + 31952 |-> 1p256 + 32068 |-> 499248873309964947p256 + 32069 |-> 1000000000000000000p256 + 32145 |-> 1p256 + 32261 |-> 499248873309964947p256 + 32262 |-> 1000000000000000000p256 + 32338 |-> 1p256 + 32454 |-> 499248873309964947p256 + 32455 |-> 1000000000000000000p256 + 32531 |-> 1p256 + 32647 |-> 499248873309964947p256 + 32648 |-> 1000000000000000000p256 + 32724 |-> 1p256 + 32840 |-> 499248873309964947p256 + 32841 |-> 1000000000000000000p256 + 32917 |-> 1p256 + 33033 |-> 499248873309964947p256 + 33034 |-> 1000000000000000000p256 + 33110 |-> 1p256 + 33226 |-> 499248873309964947p256 + 33227 |-> 1000000000000000000p256 + 33303 |-> 1p256 + 33419 |-> 499248873309964947p256 + 33420 |-> 1000000000000000000p256 + 33496 |-> 1p256 + 33612 |-> 499248873309964947p256 + 33613 |-> 1000000000000000000p256 + 33689 |-> 1p256 + 33805 |-> 499248873309964947p256 + 33806 |-> 1000000000000000000p256 + 33882 |-> 1p256 + 33998 |-> 499248873309964947p256 + 33999 |-> 1000000000000000000p256 + 34075 |-> 1p256 + 34191 |-> 499248873309964947p256 + 34192 |-> 1000000000000000000p256 + 34268 |-> 1p256 + 34384 |-> 499248873309964947p256 + 34385 |-> 1000000000000000000p256 + 34461 |-> 1p256 + 34577 |-> 499248873309964947p256 + 34578 |-> 1000000000000000000p256 + 34654 |-> 1p256 + 34770 |-> 499248873309964947p256 + 34771 |-> 1000000000000000000p256 + 34847 |-> 1p256 + 34963 |-> 499248873309964947p256 + 34964 |-> 1000000000000000000p256 + 35040 |-> 1p256 + 35156 |-> 499248873309964947p256 + 35157 |-> 1000000000000000000p256 + 35233 |-> 1p256 + 35349 |-> 499248873309964947p256 + 35350 |-> 1000000000000000000p256 + 35426 |-> 1p256 + 35542 |-> 499248873309964947p256 + 35543 |-> 1000000000000000000p256 + 35619 |-> 1p256 + 35735 |-> 499248873309964947p256 + 35736 |-> 1000000000000000000p256 + 35812 |-> 1p256 + 35928 |-> 499248873309964947p256 + 35929 |-> 1000000000000000000p256 + 36005 |-> 1p256 + 36121 |-> 499248873309964947p256 + 36122 |-> 1000000000000000000p256 + 36198 |-> 1p256 + 36314 |-> 499248873309964947p256 + 36315 |-> 1000000000000000000p256 + 36391 |-> 1p256 + 36507 |-> 499248873309964947p256 + 36508 |-> 1000000000000000000p256 + 36584 |-> 1p256 + 36700 |-> 499248873309964947p256 + 36701 |-> 1000000000000000000p256 + 36777 |-> 1p256 + 36893 |-> 499248873309964947p256 + 36894 |-> 1000000000000000000p256 + 36970 |-> 1p256 + 37086 |-> 499248873309964947p256 + 37087 |-> 1000000000000000000p256 + 37163 |-> 1p256 + 37279 |-> 499248873309964947p256 + 37280 |-> 1000000000000000000p256 + 37356 |-> 1p256 + 37472 |-> 499248873309964947p256 + 37473 |-> 1000000000000000000p256 + 37549 |-> 1p256 + 37665 |-> 499248873309964947p256 + 37666 |-> 1000000000000000000p256 + 37742 |-> 1p256 + 37858 |-> 499248873309964947p256 + 37859 |-> 1000000000000000000p256 + 37935 |-> 1p256 + 38051 |-> 499248873309964947p256 + 38052 |-> 1000000000000000000p256 + 38128 |-> 1p256 + 38244 |-> 499248873309964947p256 + 38245 |-> 1000000000000000000p256 + 38321 |-> 1p256 + 38437 |-> 499248873309964947p256 + 38438 |-> 1000000000000000000p256 + 38514 |-> 1p256 + 38630 |-> 499248873309964947p256 + 38631 |-> 1000000000000000000p256 + 38707 |-> 1p256 + 38823 |-> 499248873309964947p256 + 38824 |-> 1000000000000000000p256 + 38900 |-> 1p256 + 39016 |-> 499248873309964947p256 + 39017 |-> 1000000000000000000p256 + 39093 |-> 1p256 + 39209 |-> 499248873309964947p256 + 39210 |-> 1000000000000000000p256 + 39286 |-> 1p256 + 39402 |-> 499248873309964947p256 + 39403 |-> 1000000000000000000p256 + 39479 |-> 1p256 + 39595 |-> 499248873309964947p256 + 39596 |-> 1000000000000000000p256 + 39672 |-> 1p256 + 39788 |-> 499248873309964947p256 + 39789 |-> 1000000000000000000p256 + 39865 |-> 1p256 + 39981 |-> 499248873309964947p256 + 39982 |-> 1000000000000000000p256 + 40058 |-> 1p256 + 40174 |-> 499248873309964947p256 + 40175 |-> 1000000000000000000p256 + 40251 |-> 1p256 + 40367 |-> 499248873309964947p256 + 40368 |-> 1000000000000000000p256 + 40444 |-> 1p256 + 40560 |-> 499248873309964947p256 + 40561 |-> 1000000000000000000p256 + 40637 |-> 1p256 + 40753 |-> 499248873309964947p256 + 40754 |-> 1000000000000000000p256 + 40830 |-> 1p256 + 40946 |-> 499248873309964947p256 + 40947 |-> 1000000000000000000p256 + 41023 |-> 1p256 + 41139 |-> 499248873309964947p256 + 41140 |-> 1000000000000000000p256 + 41216 |-> 1p256 + 41332 |-> 499248873309964947p256 + 41333 |-> 1000000000000000000p256 + 41409 |-> 1p256 + 41525 |-> 499248873309964947p256 + 41526 |-> 1000000000000000000p256 + 41602 |-> 1p256 + 41718 |-> 499248873309964947p256 + 41719 |-> 1000000000000000000p256 + 41795 |-> 1p256 + 41911 |-> 499248873309964947p256 + 41912 |-> 1000000000000000000p256 + 41988 |-> 1p256 + 42104 |-> 499248873309964947p256 + 42105 |-> 1000000000000000000p256 + 42181 |-> 1p256 + 42297 |-> 499248873309964947p256 + 42298 |-> 1000000000000000000p256 + 42374 |-> 1p256 + 42490 |-> 499248873309964947p256 + 42491 |-> 1000000000000000000p256 + 42567 |-> 1p256 + 42683 |-> 499248873309964947p256 + 42684 |-> 1000000000000000000p256 + 42760 |-> 1p256 + 42876 |-> 499248873309964947p256 + 42877 |-> 1000000000000000000p256 + 42953 |-> 1p256 + 43069 |-> 499248873309964947p256 + 43070 |-> 1000000000000000000p256 + 43146 |-> 1p256 + 43262 |-> 499248873309964947p256 + 43263 |-> 1000000000000000000p256 + 43339 |-> 1p256 + 43455 |-> 499248873309964947p256 + 43456 |-> 1000000000000000000p256 + 43532 |-> 1p256 + 43648 |-> 499248873309964947p256 + 43649 |-> 1000000000000000000p256 + 43725 |-> 1p256 + 43841 |-> 499248873309964947p256 + 43842 |-> 1000000000000000000p256 + 43918 |-> 1p256 + 44034 |-> 499248873309964947p256 + 44035 |-> 1000000000000000000p256 + 44111 |-> 1p256 + 44227 |-> 499248873309964947p256 + 44228 |-> 1000000000000000000p256 + 44304 |-> 1p256 + 44420 |-> 499248873309964947p256 + 44421 |-> 1000000000000000000p256 + 44497 |-> 1p256 + 44613 |-> 499248873309964947p256 + 44614 |-> 1000000000000000000p256 + 44690 |-> 1p256 + 44806 |-> 499248873309964947p256 + 44807 |-> 1000000000000000000p256 + 44883 |-> 1p256 + 44999 |-> 499248873309964947p256 + 45000 |-> 1000000000000000000p256 + 45076 |-> 1p256 + 45192 |-> 499248873309964947p256 + 45193 |-> 1000000000000000000p256 + 45269 |-> 1p256 + 45385 |-> 499248873309964947p256 + 45386 |-> 1000000000000000000p256 + 45462 |-> 1p256 + 45578 |-> 499248873309964947p256 + 45579 |-> 1000000000000000000p256 + 45655 |-> 1p256 + 45771 |-> 499248873309964947p256 + 45772 |-> 1000000000000000000p256 + 45848 |-> 1p256 + 45964 |-> 499248873309964947p256 + 45965 |-> 1000000000000000000p256 + 46041 |-> 1p256 + 46157 |-> 499248873309964947p256 + 46158 |-> 1000000000000000000p256 + 46234 |-> 1p256 + 46350 |-> 499248873309964947p256 + 46351 |-> 1000000000000000000p256 + 46427 |-> 1p256 + 46543 |-> 499248873309964947p256 + 46544 |-> 1000000000000000000p256 + 46620 |-> 1p256 + 46736 |-> 499248873309964947p256 + 46737 |-> 1000000000000000000p256 + 46813 |-> 1p256 + 46929 |-> 499248873309964947p256 + 46930 |-> 1000000000000000000p256 + 47006 |-> 1p256 + 47122 |-> 499248873309964947p256 + 47123 |-> 1000000000000000000p256 + 47199 |-> 1p256 + 47315 |-> 499248873309964947p256 + 47316 |-> 1000000000000000000p256 + 47392 |-> 1p256 + 47508 |-> 499248873309964947p256 + 47509 |-> 1000000000000000000p256 + 47585 |-> 1p256 + 47701 |-> 499248873309964947p256 + 47702 |-> 1000000000000000000p256 + 47778 |-> 1p256 + 47894 |-> 499248873309964947p256 + 47895 |-> 1000000000000000000p256 + 47971 |-> 1p256 + 48087 |-> 499248873309964947p256 + 48088 |-> 1000000000000000000p256 + 48164 |-> 1p256 + 48280 |-> 499248873309964947p256 + 48281 |-> 1000000000000000000p256 + 48357 |-> 1p256 + 48473 |-> 499248873309964947p256 + 48474 |-> 1000000000000000000p256 + 48550 |-> 1p256 + 48666 |-> 499248873309964947p256 + 48667 |-> 1000000000000000000p256 + 48743 |-> 1p256 + 48859 |-> 499248873309964947p256 + 48860 |-> 1000000000000000000p256 + 48936 |-> 1p256 + 49052 |-> 499248873309964947p256 + 49053 |-> 1000000000000000000p256 + 49129 |-> 1p256 + 49245 |-> 499248873309964947p256 + 49246 |-> 1000000000000000000p256 + 49322 |-> 1p256 + 49438 |-> 499248873309964947p256 + 49439 |-> 1000000000000000000p256 + 49515 |-> 1p256 + 49631 |-> 499248873309964947p256 + 49632 |-> 1000000000000000000p256 + 49708 |-> 1p256 + 49824 |-> 499248873309964947p256 + 49825 |-> 1000000000000000000p256 + 49901 |-> 1p256 + 50017 |-> 499248873309964947p256 + 50018 |-> 1000000000000000000p256 + 50094 |-> 1p256 + 50210 |-> 499248873309964947p256 + 50211 |-> 1000000000000000000p256 + 50287 |-> 1p256 + 50403 |-> 499248873309964947p256 + 50404 |-> 1000000000000000000p256 + 50480 |-> 1p256 + 50596 |-> 499248873309964947p256 + 50597 |-> 1000000000000000000p256 + 50673 |-> 1p256 + 50789 |-> 499248873309964947p256 + 50790 |-> 1000000000000000000p256 + 50866 |-> 1p256 + 50982 |-> 499248873309964947p256 + 50983 |-> 1000000000000000000p256 + 51059 |-> 1p256 + 51175 |-> 499248873309964947p256 + 51176 |-> 1000000000000000000p256 + 51252 |-> 1p256 + 51368 |-> 499248873309964947p256 + 51369 |-> 1000000000000000000p256 + 51445 |-> 1p256 + 51561 |-> 499248873309964947p256 + 51562 |-> 1000000000000000000p256 + 51638 |-> 1p256 + 51754 |-> 499248873309964947p256 + 51755 |-> 1000000000000000000p256 + 51831 |-> 1p256 + 51947 |-> 499248873309964947p256 + 51948 |-> 1000000000000000000p256 + 52024 |-> 1p256 + 52140 |-> 499248873309964947p256 + 52141 |-> 1000000000000000000p256 + 52217 |-> 1p256 + 52333 |-> 499248873309964947p256 + 52334 |-> 1000000000000000000p256 + 52410 |-> 1p256 + 52526 |-> 499248873309964947p256 + 52527 |-> 1000000000000000000p256 + 52603 |-> 1p256 + 52719 |-> 499248873309964947p256 + 52720 |-> 1000000000000000000p256 + 52796 |-> 1p256 + 52912 |-> 499248873309964947p256 + 52913 |-> 1000000000000000000p256 + 52989 |-> 1p256 + 53105 |-> 499248873309964947p256 + 53106 |-> 1000000000000000000p256 + 53182 |-> 1p256 + 53298 |-> 499248873309964947p256 + 53299 |-> 1000000000000000000p256 + 53375 |-> 1p256 + 53491 |-> 499248873309964947p256 + 53492 |-> 1000000000000000000p256 + 53568 |-> 1p256 + 53684 |-> 499248873309964947p256 + 53685 |-> 1000000000000000000p256 + 53761 |-> 1p256 + 53877 |-> 499248873309964947p256 + 53878 |-> 1000000000000000000p256 + 53954 |-> 1p256 + 54070 |-> 499248873309964947p256 + 54071 |-> 1000000000000000000p256 + 54147 |-> 1p256 + 54263 |-> 499248873309964947p256 + 54264 |-> 1000000000000000000p256 + 54340 |-> 1p256 + 54456 |-> 499248873309964947p256 + 54457 |-> 1000000000000000000p256 + 54533 |-> 1p256 + 54649 |-> 499248873309964947p256 + 54650 |-> 1000000000000000000p256 + 54726 |-> 1p256 + 54842 |-> 499248873309964947p256 + 54843 |-> 1000000000000000000p256 + 54919 |-> 1p256 + 55035 |-> 499248873309964947p256 + 55036 |-> 1000000000000000000p256 + 55112 |-> 1p256 + 55228 |-> 499248873309964947p256 + 55229 |-> 1000000000000000000p256 + 55305 |-> 1p256 + 55421 |-> 499248873309964947p256 + 55422 |-> 1000000000000000000p256 + 55498 |-> 1p256 + 55614 |-> 499248873309964947p256 + 55615 |-> 1000000000000000000p256 + 55691 |-> 1p256 + 55807 |-> 499248873309964947p256 + 55808 |-> 1000000000000000000p256 + 55884 |-> 1p256 + 56000 |-> 499248873309964947p256 + 56001 |-> 1000000000000000000p256 + 56077 |-> 1p256 + 56193 |-> 499248873309964947p256 + 56194 |-> 1000000000000000000p256 + 56270 |-> 1p256 + 56386 |-> 499248873309964947p256 + 56387 |-> 1000000000000000000p256 + 56463 |-> 1p256 + 56579 |-> 499248873309964947p256 + 56580 |-> 1000000000000000000p256 + 56656 |-> 1p256 + 56772 |-> 499248873309964947p256 + 56773 |-> 1000000000000000000p256 + 56849 |-> 1p256 + 56965 |-> 499248873309964947p256 + 56966 |-> 1000000000000000000p256 + 57042 |-> 1p256 + 57158 |-> 499248873309964947p256 + 57159 |-> 1000000000000000000p256 + 57235 |-> 1p256 + 57351 |-> 499248873309964947p256 + 57352 |-> 1000000000000000000p256 + 57428 |-> 1p256 + 57544 |-> 499248873309964947p256 + 57545 |-> 1000000000000000000p256 + 57621 |-> 1p256 + 57737 |-> 499248873309964947p256 + 57738 |-> 1000000000000000000p256 + 57814 |-> 1p256 + 57930 |-> 499248873309964947p256 + 57931 |-> 1000000000000000000p256 + 58007 |-> 1p256 + 58123 |-> 499248873309964947p256 + 58124 |-> 1000000000000000000p256 + 58200 |-> 1p256 + 58316 |-> 499248873309964947p256 + 58317 |-> 1000000000000000000p256 + 58393 |-> 1p256 + 58509 |-> 499248873309964947p256 + 58510 |-> 1000000000000000000p256 + 58586 |-> 1p256 + 58702 |-> 499248873309964947p256 + 58703 |-> 1000000000000000000p256 + 58779 |-> 1p256 + 58895 |-> 499248873309964947p256 + 58896 |-> 1000000000000000000p256 + 58972 |-> 1p256 + 59088 |-> 499248873309964947p256 + 59089 |-> 1000000000000000000p256 + 59165 |-> 1p256 + 59281 |-> 499248873309964947p256 + 59282 |-> 1000000000000000000p256 + 59358 |-> 1p256 + 59474 |-> 499248873309964947p256 + 59475 |-> 1000000000000000000p256 + 59551 |-> 1p256 + 59667 |-> 499248873309964947p256 + 59668 |-> 1000000000000000000p256 + 59744 |-> 1p256 + 59860 |-> 499248873309964947p256 + 59861 |-> 1000000000000000000p256 + 59937 |-> 1p256 + 60053 |-> 499248873309964947p256 + 60054 |-> 1000000000000000000p256 + 60130 |-> 1p256 + 60246 |-> 499248873309964947p256 + 60247 |-> 1000000000000000000p256 + 60323 |-> 1p256 + 60439 |-> 499248873309964947p256 + 60440 |-> 1000000000000000000p256 + 60516 |-> 1p256 + 60632 |-> 499248873309964947p256 + 60633 |-> 1000000000000000000p256 + 60709 |-> 1p256 + 60825 |-> 499248873309964947p256 + 60826 |-> 1000000000000000000p256 + 60902 |-> 1p256 + 61018 |-> 499248873309964947p256 + 61019 |-> 1000000000000000000p256 + 61095 |-> 1p256 + 61211 |-> 499248873309964947p256 + 61212 |-> 1000000000000000000p256 + 61288 |-> 1p256 + 61404 |-> 499248873309964947p256 + 61405 |-> 1000000000000000000p256 + 61481 |-> 1p256 + 61597 |-> 499248873309964947p256 + 61598 |-> 1000000000000000000p256 + 61674 |-> 1p256 + 61790 |-> 499248873309964947p256 + 61791 |-> 1000000000000000000p256 + 61867 |-> 1p256 + 61983 |-> 499248873309964947p256 + 61984 |-> 1000000000000000000p256 + 62060 |-> 1p256 + 62176 |-> 499248873309964947p256 + 62177 |-> 1000000000000000000p256 + 62253 |-> 1p256 + 62369 |-> 499248873309964947p256 + 62370 |-> 1000000000000000000p256 + 62446 |-> 1p256 + 62562 |-> 499248873309964947p256 + 62563 |-> 1000000000000000000p256 + 62639 |-> 1p256 + 62755 |-> 499248873309964947p256 + 62756 |-> 1000000000000000000p256 62832 |-> 1p256 - 62948 |-> 332678507749894792p256 + 62948 |-> 499248873309964947p256 62949 |-> 1000000000000000000p256 - 62995 |-> 1p256 - 63111 |-> 332678459315951980p256 - 63112 |-> 1000000000000000000p256 - 63158 |-> 1p256 - 63274 |-> 332678411193897503p256 - 63275 |-> 1000000000000000000p256 - 63321 |-> 1p256 - 63437 |-> 332678363380926359p256 - 63438 |-> 1000000000000000000p256 - 63484 |-> 1p256 - 63600 |-> 332678315874265902p256 - 63601 |-> 1000000000000000000p256 - 63647 |-> 1p256 - 63763 |-> 332678268671175385p256 - 63764 |-> 1000000000000000000p256 - 63810 |-> 1p256 - 63926 |-> 332678221768945514p256 - 63927 |-> 1000000000000000000p256 - 63973 |-> 1p256 - 64089 |-> 332678175164898005p256 - 64090 |-> 1000000000000000000p256 - 64136 |-> 1p256 - 64252 |-> 332678128856385156p256 - 64253 |-> 1000000000000000000p256 - 64299 |-> 1p256 - 64415 |-> 332678082840789418p256 - 64416 |-> 1000000000000000000p256 - 64462 |-> 1p256 - 64578 |-> 332678037115522977p256 - 64579 |-> 1000000000000000000p256 - 64625 |-> 1p256 - 64741 |-> 332677991678027341p256 - 64742 |-> 1000000000000000000p256 - 64788 |-> 1p256 - 64904 |-> 332677946525772938p256 - 64905 |-> 1000000000000000000p256 - 64951 |-> 1p256 - 65067 |-> 332677901656258715p256 - 65068 |-> 1000000000000000000p256 - 65114 |-> 1p256 - 65230 |-> 332677857067011746p256 - 65231 |-> 1000000000000000000p256 - 65277 |-> 1p256 - 65393 |-> 332677812755586847p256 - 65394 |-> 1000000000000000000p256 - 65440 |-> 1p256 - 65556 |-> 332677768719566198p256 - 65557 |-> 1000000000000000000p256 - 65603 |-> 1p256 - 65719 |-> 332677724956558967p256 - 65720 |-> 1000000000000000000p256 - 65766 |-> 1p256 - 65882 |-> 332677681464200941p256 - 65883 |-> 1000000000000000000p256 - 65929 |-> 1p256 - 66045 |-> 332677638240154173p256 - 66046 |-> 1000000000000000000p256 - 66092 |-> 1p256 - 66208 |-> 332677595282106616p256 - 66209 |-> 1000000000000000000p256 - 66255 |-> 1p256 - 66371 |-> 332677552587771780p256 - 66372 |-> 1000000000000000000p256 - 66418 |-> 1p256 - 66534 |-> 332677510154888385p256 - 66535 |-> 1000000000000000000p256 - 66581 |-> 1p256 - 66697 |-> 332677467981220021p256 - 66698 |-> 1000000000000000000p256 - 66744 |-> 1p256 - 66860 |-> 332677426064554818p256 - 66861 |-> 1000000000000000000p256 - 66907 |-> 1p256 - 67023 |-> 332677384402705114p256 - 67024 |-> 1000000000000000000p256 - 67070 |-> 1p256 - 67186 |-> 332677342993507135p256 - 67187 |-> 1000000000000000000p256 - 67233 |-> 1p256 - 67349 |-> 332677301834820674p256 - 67350 |-> 1000000000000000000p256 - 67396 |-> 1p256 - 67512 |-> 332677260924528780p256 - 67513 |-> 1000000000000000000p256 - 67559 |-> 1p256 - 67675 |-> 332677220260537449p256 - 67676 |-> 1000000000000000000p256 - 67722 |-> 1p256 - 67838 |-> 332677179840775321p256 - 67839 |-> 1000000000000000000p256 - 67885 |-> 1p256 - 68001 |-> 332677139663193383p256 - 68002 |-> 1000000000000000000p256 - 68048 |-> 1p256 - 68164 |-> 332677099725764672p256 - 68165 |-> 1000000000000000000p256 - 68211 |-> 1p256 - 68327 |-> 332677060026483986p256 - 68328 |-> 1000000000000000000p256 - 68374 |-> 1p256 - 68490 |-> 332677020563367603p256 - 68491 |-> 1000000000000000000p256 - 68537 |-> 1p256 - 68653 |-> 332676981334452996p256 - 68654 |-> 1000000000000000000p256 - 68700 |-> 1p256 - 68816 |-> 332676942337798558p256 - 68817 |-> 1000000000000000000p256 - 68863 |-> 1p256 - 68979 |-> 332676903571483332p256 - 68980 |-> 1000000000000000000p256 - 69026 |-> 1p256 - 69142 |-> 332676865033606741p256 - 69143 |-> 1000000000000000000p256 - 69189 |-> 1p256 - 69305 |-> 332676826722288325p256 - 69306 |-> 1000000000000000000p256 - 69352 |-> 1p256 - 69468 |-> 332676788635667482p256 - 69469 |-> 1000000000000000000p256 - 69515 |-> 1p256 - 69631 |-> 332676750771903212p256 - 69632 |-> 1000000000000000000p256 - 69678 |-> 1p256 - 69794 |-> 332676713129173864p256 - 69795 |-> 1000000000000000000p256 - 69841 |-> 1p256 - 69957 |-> 332676675705676889p256 - 69958 |-> 1000000000000000000p256 - 70004 |-> 1p256 - 70120 |-> 332676638499628596p256 - 70121 |-> 1000000000000000000p256 - 70167 |-> 1p256 - 70283 |-> 332676601509263912p256 - 70284 |-> 1000000000000000000p256 - 70330 |-> 1p256 - 70446 |-> 332676564732836142p256 - 70447 |-> 1000000000000000000p256 - 70493 |-> 1p256 - 70609 |-> 332676528168616739p256 - 70610 |-> 1000000000000000000p256 - 70656 |-> 1p256 - 70772 |-> 332676491814895074p256 - 70773 |-> 1000000000000000000p256 - 70819 |-> 1p256 - 70935 |-> 332676455669978206p256 - 70936 |-> 1000000000000000000p256 - 70982 |-> 1p256 - 71098 |-> 332676419732190662p256 - 71099 |-> 1000000000000000000p256 - 71145 |-> 1p256 - 71261 |-> 332676383999874218p256 - 71262 |-> 1000000000000000000p256 - 71308 |-> 1p256 - 71424 |-> 332676348471387678p256 - 71425 |-> 1000000000000000000p256 - 71471 |-> 1p256 - 71587 |-> 332676313145106667p256 - 71588 |-> 1000000000000000000p256 - 71634 |-> 1p256 - 71750 |-> 332676278019423415p256 - 71751 |-> 1000000000000000000p256 - 71797 |-> 1p256 - 71913 |-> 332676243092746553p256 - 71914 |-> 1000000000000000000p256 - 71960 |-> 1p256 - 72076 |-> 332676208363500910p256 - 72077 |-> 1000000000000000000p256 - 72123 |-> 1p256 - 72239 |-> 332676173830127307p256 - 72240 |-> 1000000000000000000p256 - 72286 |-> 1p256 - 72402 |-> 332676139491082364p256 - 72403 |-> 1000000000000000000p256 - 72449 |-> 1p256 - 72565 |-> 332676105344838305p256 - 72566 |-> 1000000000000000000p256 - 72612 |-> 1p256 - 72728 |-> 332676071389882761p256 - 72729 |-> 1000000000000000000p256 - 72775 |-> 1p256 - 72891 |-> 332676037624718584p256 - 72892 |-> 1000000000000000000p256 - 72938 |-> 1p256 - 73054 |-> 332676004047863660p256 - 73055 |-> 1000000000000000000p256 - 73101 |-> 1p256 - 73217 |-> 332675970657850723p256 - 73218 |-> 1000000000000000000p256 - 73264 |-> 1p256 - 73380 |-> 332675937453227176p256 - 73381 |-> 1000000000000000000p256 - 73427 |-> 1p256 - 73543 |-> 332675904432554910p256 - 73544 |-> 1000000000000000000p256 - 73590 |-> 1p256 - 73706 |-> 332675871594410130p256 - 73707 |-> 1000000000000000000p256 - 73753 |-> 1p256 - 73869 |-> 332675838937383178p256 - 73870 |-> 1000000000000000000p256 - 73916 |-> 1p256 - 74032 |-> 332675806460078366p256 - 74033 |-> 1000000000000000000p256 - 74079 |-> 1p256 - 74195 |-> 332675774161113803p256 - 74196 |-> 1000000000000000000p256 - 74242 |-> 1p256 - 74358 |-> 332675742039121233p256 - 74359 |-> 1000000000000000000p256 - 74405 |-> 1p256 - 74521 |-> 332675710092745866p256 - 74522 |-> 1000000000000000000p256 - 74568 |-> 1p256 - 74684 |-> 332675678320646220p256 - 74685 |-> 1000000000000000000p256 - 74731 |-> 1p256 - 74847 |-> 332675646721493961p256 - 74848 |-> 1000000000000000000p256 - 74894 |-> 1p256 - 75010 |-> 332675615293973743p256 - 75011 |-> 1000000000000000000p256 - 75057 |-> 1p256 - 75173 |-> 332675584036783059p256 - 75174 |-> 1000000000000000000p256 - 75220 |-> 1p256 - 75336 |-> 332675552948632082p256 - 75337 |-> 1000000000000000000p256 - 75383 |-> 1p256 - 75499 |-> 332675522028243516p256 - 75500 |-> 1000000000000000000p256 - 75546 |-> 1p256 - 75662 |-> 332675491274352452p256 - 75663 |-> 1000000000000000000p256 - 75709 |-> 1p256 - 75825 |-> 332675460685706215p256 - 75826 |-> 1000000000000000000p256 - 75872 |-> 1p256 - 75988 |-> 332675430261064225p256 - 75989 |-> 1000000000000000000p256 - 76035 |-> 1p256 - 76151 |-> 332675399999197849p256 - 76152 |-> 1000000000000000000p256 - 76198 |-> 1p256 - 76314 |-> 332675369898890267p256 - 76315 |-> 1000000000000000000p256 - 76361 |-> 1p256 - 76477 |-> 332675339958936328p256 - 76478 |-> 1000000000000000000p256 - 76524 |-> 1p256 - 76640 |-> 332675310178142419p256 - 76641 |-> 1000000000000000000p256 - 76687 |-> 1p256 - 76803 |-> 332675280555326324p256 - 76804 |-> 1000000000000000000p256 - 76850 |-> 1p256 - 76966 |-> 332675251089317097p256 - 76967 |-> 1000000000000000000p256 - 77013 |-> 1p256 - 77129 |-> 332675221778954925p256 - 77130 |-> 1000000000000000000p256 - 77176 |-> 1p256 - 77292 |-> 332675192623091006p256 - 77293 |-> 1000000000000000000p256 - 77339 |-> 1p256 - 77455 |-> 332675163620587415p256 - 77456 |-> 1000000000000000000p256 - 77502 |-> 1p256 - 77618 |-> 332675134770316983p256 - 77619 |-> 1000000000000000000p256 - 77665 |-> 1p256 - 77781 |-> 332675106071163170p256 - 77782 |-> 1000000000000000000p256 - 77828 |-> 1p256 - 77944 |-> 332675077522019945p256 - 77945 |-> 1000000000000000000p256 - 77991 |-> 1p256 - 78107 |-> 332675049121791662p256 - 78108 |-> 1000000000000000000p256 - 78154 |-> 1p256 - 78270 |-> 332675020869392947p256 - 78271 |-> 1000000000000000000p256 - 78317 |-> 1p256 - 78433 |-> 332674992763748573p256 - 78434 |-> 1000000000000000000p256 - 78480 |-> 1p256 - 78596 |-> 332674964803793351p256 - 78597 |-> 1000000000000000000p256 - 78643 |-> 1p256 - 78759 |-> 332674936988472011p256 - 78760 |-> 1000000000000000000p256 - 78806 |-> 1p256 - 78922 |-> 332674909316739091p256 - 78923 |-> 1000000000000000000p256 - 78969 |-> 1p256 - 79085 |-> 332674881787558829p256 - 79086 |-> 1000000000000000000p256 - 79132 |-> 1p256 - 79248 |-> 332674854399905046p256 - 79249 |-> 1000000000000000000p256 - 79295 |-> 1p256 - 79411 |-> 332674827152761045p256 - 79412 |-> 1000000000000000000p256 - 79458 |-> 1p256 - 79574 |-> 332674800045119500p256 - 79575 |-> 1000000000000000000p256 - 79621 |-> 1p256 - 79737 |-> 332674773075982353p256 - 79738 |-> 1000000000000000000p256 - 79784 |-> 1p256 - 79900 |-> 332674746244360706p256 - 79901 |-> 1000000000000000000p256 - 79947 |-> 1p256 - 80063 |-> 332674719549274724p256 - 80064 |-> 1000000000000000000p256 - 80110 |-> 1p256 - 80226 |-> 332674692989753530p256 - 80227 |-> 1000000000000000000p256 - 80273 |-> 1p256 - 80389 |-> 332674666564835106p256 - 80390 |-> 1000000000000000000p256 - 80436 |-> 1p256 - 80552 |-> 332674640273566194p256 - 80553 |-> 1000000000000000000p256 - 80599 |-> 1p256 - 80715 |-> 332674614115002201p256 - 80716 |-> 1000000000000000000p256 - 80762 |-> 1p256 - 80878 |-> 332674588088207098p256 - 80879 |-> 1000000000000000000p256 - 80925 |-> 1p256 - 81041 |-> 332674562192253331p256 - 81042 |-> 1000000000000000000p256 - 81088 |-> 1p256 - 81204 |-> 332674536426221723p256 - 81205 |-> 1000000000000000000p256 - 81251 |-> 1p256 - 81367 |-> 332674510789201385p256 - 81368 |-> 1000000000000000000p256 - 81414 |-> 1p256 - 81530 |-> 332674485280289621p256 - 81531 |-> 1000000000000000000p256 - 81577 |-> 1p256 - 81693 |-> 332674459898591844p256 - 81694 |-> 1000000000000000000p256 - 81740 |-> 1p256 - 81856 |-> 332674434643221479p256 - 81857 |-> 1000000000000000000p256 - 81903 |-> 1p256 - 82019 |-> 332674409513299884p256 - 82020 |-> 1000000000000000000p256 - 82066 |-> 1p256 - 82182 |-> 332674384507956258p256 - 82183 |-> 1000000000000000000p256 - 82229 |-> 1p256 - 82345 |-> 332674359626327555p256 - 82346 |-> 1000000000000000000p256 - 82392 |-> 1p256 - 82508 |-> 332674334867558405p256 - 82509 |-> 1000000000000000000p256 - 82555 |-> 1p256 - 82671 |-> 332674310230801025p256 - 82672 |-> 1000000000000000000p256 - 82718 |-> 1p256 - 82834 |-> 332674285715215142p256 - 82835 |-> 1000000000000000000p256 - 82881 |-> 1p256 - 82997 |-> 332674261319967907p256 - 82998 |-> 1000000000000000000p256 - 83044 |-> 1p256 - 83160 |-> 332674237044233817p256 - 83161 |-> 1000000000000000000p256 - 83207 |-> 1p256 - 83323 |-> 332674212887194639p256 - 83324 |-> 1000000000000000000p256 - 83370 |-> 1p256 - 83486 |-> 332674188848039327p256 - 83487 |-> 1000000000000000000p256 - 83533 |-> 1p256 - 83649 |-> 332674164925963947p256 - 83650 |-> 1000000000000000000p256 - 83696 |-> 1p256 - 83812 |-> 332674141120171601p256 - 83813 |-> 1000000000000000000p256 - 83859 |-> 1p256 - 83975 |-> 332674117429872354p256 - 83976 |-> 1000000000000000000p256 - 84022 |-> 1p256 - 84138 |-> 332674093854283154p256 - 84139 |-> 1000000000000000000p256 - 84185 |-> 1p256 - 84301 |-> 332674070392627765p256 - 84302 |-> 1000000000000000000p256 - 84348 |-> 1p256 - 84464 |-> 332674047044136693p256 - 84465 |-> 1000000000000000000p256 - 84511 |-> 1p256 - 84627 |-> 332674023808047111p256 - 84628 |-> 1000000000000000000p256 - 84674 |-> 1p256 - 84790 |-> 332674000683602793p256 - 84791 |-> 1000000000000000000p256 - 84837 |-> 1p256 - 84953 |-> 332673977670054043p256 - 84954 |-> 1000000000000000000p256 - 85000 |-> 1p256 - 85116 |-> 332673954766657623p256 - 85117 |-> 1000000000000000000p256 - 85163 |-> 1p256 - 85279 |-> 332673931972676691p256 - 85280 |-> 1000000000000000000p256 - 85326 |-> 1p256 - 85442 |-> 332673909287380729p256 - 85443 |-> 1000000000000000000p256 - 85489 |-> 1p256 - 85605 |-> 332673886710045480p256 - 85606 |-> 1000000000000000000p256 - 85652 |-> 1p256 - 85768 |-> 332673864239952878p256 - 85769 |-> 1000000000000000000p256 - 85815 |-> 1p256 - 85931 |-> 332673841876390991p256 - 85932 |-> 1000000000000000000p256 - 85978 |-> 1p256 - 86094 |-> 332673819618653948p256 - 86095 |-> 1000000000000000000p256 - 86141 |-> 1p256 - 86257 |-> 332673797466041884p256 - 86258 |-> 1000000000000000000p256 - 86304 |-> 1p256 - 86420 |-> 332673775417860873p256 - 86421 |-> 1000000000000000000p256 - 86467 |-> 1p256 - 86583 |-> 332673753473422867p256 - 86584 |-> 1000000000000000000p256 - 86630 |-> 1p256 - 86746 |-> 332673731632045637p256 - 86747 |-> 1000000000000000000p256 - 86793 |-> 1p256 - 86909 |-> 332673709893052712p256 - 86910 |-> 1000000000000000000p256 - 86956 |-> 1p256 - 87072 |-> 332673688255773320p256 - 87073 |-> 1000000000000000000p256 - 87119 |-> 1p256 - 87235 |-> 332673666719542328p256 - 87236 |-> 1000000000000000000p256 - 87282 |-> 1p256 - 87398 |-> 332673645283700187p256 - 87399 |-> 1000000000000000000p256 - 87445 |-> 1p256 - 87561 |-> 332673623947592870p256 - 87562 |-> 1000000000000000000p256 - 87608 |-> 1p256 - 87724 |-> 332673602710571823p256 - 87725 |-> 1000000000000000000p256 - 87771 |-> 1p256 - 87887 |-> 332673581571993901p256 - 87888 |-> 1000000000000000000p256 - 87934 |-> 1p256 - 88050 |-> 332673560531221320p256 - 88051 |-> 1000000000000000000p256 - 88097 |-> 1p256 - 88213 |-> 332673539587621596p256 - 88214 |-> 1000000000000000000p256 - 88260 |-> 1p256 - 88376 |-> 332673518740567497p256 - 88377 |-> 1000000000000000000p256 - 88423 |-> 1p256 - 88539 |-> 332673497989436987p256 - 88540 |-> 1000000000000000000p256 - 88586 |-> 1p256 - 88702 |-> 332673477333613173p256 - 88703 |-> 1000000000000000000p256 - 88749 |-> 1p256 - 88865 |-> 332673456772484253p256 - 88866 |-> 1000000000000000000p256 - 88912 |-> 1p256 - 89028 |-> 332673436305443469p256 - 89029 |-> 1000000000000000000p256 - 89075 |-> 1p256 - 89191 |-> 332673415931889050p256 - 89192 |-> 1000000000000000000p256 - 89238 |-> 1p256 - 89354 |-> 332673395651224165p256 - 89355 |-> 1000000000000000000p256 - 89401 |-> 1p256 - 89517 |-> 332673375462856876p256 - 89518 |-> 1000000000000000000p256 - 89564 |-> 1p256 - 89680 |-> 332673355366200083p256 - 89681 |-> 1000000000000000000p256 - 89727 |-> 1p256 - 89843 |-> 332673335360671482p256 - 89844 |-> 1000000000000000000p256 - 89890 |-> 1p256 - 90006 |-> 332673315445693513p256 - 90007 |-> 1000000000000000000p256 - 90053 |-> 1p256 - 90169 |-> 332673295620693316p256 - 90170 |-> 1000000000000000000p256 - 90216 |-> 1p256 - 90332 |-> 332673275885102680p256 - 90333 |-> 1000000000000000000p256 - 90379 |-> 1p256 - 90495 |-> 332673256238358001p256 - 90496 |-> 1000000000000000000p256 - 90542 |-> 1p256 - 90658 |-> 332673236679900237p256 - 90659 |-> 1000000000000000000p256 - 90705 |-> 1p256 - 90821 |-> 332673217209174857p256 - 90822 |-> 1000000000000000000p256 - 90868 |-> 1p256 - 90984 |-> 332673197825631803p256 - 90985 |-> 1000000000000000000p256 - 91031 |-> 1p256 - 91147 |-> 332673178528725445p256 - 91148 |-> 1000000000000000000p256 - 91194 |-> 1p256 - 91310 |-> 332673159317914531p256 - 91311 |-> 1000000000000000000p256 - 91357 |-> 1p256 - 91473 |-> 332673140192662156p256 - 91474 |-> 1000000000000000000p256 - 91520 |-> 1p256 - 91636 |-> 332673121152435706p256 - 91637 |-> 1000000000000000000p256 - 91683 |-> 1p256 - 91799 |-> 332673102196706828p256 - 91800 |-> 1000000000000000000p256 - 91846 |-> 1p256 - 91962 |-> 332673083324951380p256 - 91963 |-> 1000000000000000000p256 - 92009 |-> 1p256 - 92125 |-> 332673064536649394p256 - 92126 |-> 1000000000000000000p256 - 92172 |-> 1p256 - 92288 |-> 332673045831285035p256 - 92289 |-> 1000000000000000000p256 - 92335 |-> 1p256 - 92451 |-> 332673027208346560p256 - 92452 |-> 1000000000000000000p256 - 92498 |-> 1p256 - 92614 |-> 332673008667326281p256 - 92615 |-> 1000000000000000000p256 - 92661 |-> 1p256 - 92777 |-> 332672990207720520p256 - 92778 |-> 1000000000000000000p256 - 92824 |-> 1p256 - 92940 |-> 332672971829029577p256 - 92941 |-> 1000000000000000000p256 - 92987 |-> 1p256 - 93103 |-> 332672953530757689p256 - 93104 |-> 1000000000000000000p256 - 93150 |-> 1p256 - 93266 |-> 332672935312412990p256 - 93267 |-> 1000000000000000000p256 - 93313 |-> 1p256 - 93429 |-> 332672917173507476p256 - 93430 |-> 1000000000000000000p256 - 93476 |-> 1p256 - 93592 |-> 332672899113556970p256 - 93593 |-> 1000000000000000000p256 - 93639 |-> 1p256 - 93755 |-> 332672881132081079p256 - 93756 |-> 1000000000000000000p256 - 93802 |-> 1p256 - 93918 |-> 332672863228603164p256 - 93919 |-> 1000000000000000000p256 - 93965 |-> 1p256 - 94081 |-> 332672845402650303p256 - 94082 |-> 1000000000000000000p256 - 94128 |-> 1p256 - 94244 |-> 332672827653753253p256 - 94245 |-> 1000000000000000000p256 + 63025 |-> 1p256 + 63141 |-> 499248873309964947p256 + 63142 |-> 1000000000000000000p256 + 63218 |-> 1p256 + 63334 |-> 499248873309964947p256 + 63335 |-> 1000000000000000000p256 + 63411 |-> 1p256 + 63527 |-> 499248873309964947p256 + 63528 |-> 1000000000000000000p256 + 63604 |-> 1p256 + 63720 |-> 499248873309964947p256 + 63721 |-> 1000000000000000000p256 + 63797 |-> 1p256 + 63913 |-> 499248873309964947p256 + 63914 |-> 1000000000000000000p256 + 63990 |-> 1p256 + 64106 |-> 499248873309964947p256 + 64107 |-> 1000000000000000000p256 + 64183 |-> 1p256 + 64299 |-> 499248873309964947p256 + 64300 |-> 1000000000000000000p256 + 64376 |-> 1p256 + 64492 |-> 499248873309964947p256 + 64493 |-> 1000000000000000000p256 + 64569 |-> 1p256 + 64685 |-> 499248873309964947p256 + 64686 |-> 1000000000000000000p256 + 64762 |-> 1p256 + 64878 |-> 499248873309964947p256 + 64879 |-> 1000000000000000000p256 + 64955 |-> 1p256 + 65071 |-> 499248873309964947p256 + 65072 |-> 1000000000000000000p256 + 65148 |-> 1p256 + 65264 |-> 499248873309964947p256 + 65265 |-> 1000000000000000000p256 + 65341 |-> 1p256 + 65457 |-> 499248873309964947p256 + 65458 |-> 1000000000000000000p256 + 65534 |-> 1p256 + 65650 |-> 499248873309964947p256 + 65651 |-> 1000000000000000000p256 + 65727 |-> 1p256 + 65843 |-> 499248873309964947p256 + 65844 |-> 1000000000000000000p256 + 65920 |-> 1p256 + 66036 |-> 499248873309964947p256 + 66037 |-> 1000000000000000000p256 + 66113 |-> 1p256 + 66229 |-> 499248873309964947p256 + 66230 |-> 1000000000000000000p256 + 66306 |-> 1p256 + 66422 |-> 499248873309964947p256 + 66423 |-> 1000000000000000000p256 + 66499 |-> 1p256 + 66615 |-> 499248873309964947p256 + 66616 |-> 1000000000000000000p256 + 66692 |-> 1p256 + 66808 |-> 499248873309964947p256 + 66809 |-> 1000000000000000000p256 + 66885 |-> 1p256 + 67001 |-> 499248873309964947p256 + 67002 |-> 1000000000000000000p256 + 67078 |-> 1p256 + 67194 |-> 499248873309964947p256 + 67195 |-> 1000000000000000000p256 + 67271 |-> 1p256 + 67387 |-> 499248873309964947p256 + 67388 |-> 1000000000000000000p256 + 67464 |-> 1p256 + 67580 |-> 499248873309964947p256 + 67581 |-> 1000000000000000000p256 + 67657 |-> 1p256 + 67773 |-> 499248873309964947p256 + 67774 |-> 1000000000000000000p256 + 67850 |-> 1p256 + 67966 |-> 499248873309964947p256 + 67967 |-> 1000000000000000000p256 + 68043 |-> 1p256 + 68159 |-> 499248873309964947p256 + 68160 |-> 1000000000000000000p256 + 68236 |-> 1p256 + 68352 |-> 499248873309964947p256 + 68353 |-> 1000000000000000000p256 + 68429 |-> 1p256 + 68545 |-> 499248873309964947p256 + 68546 |-> 1000000000000000000p256 + 68622 |-> 1p256 + 68738 |-> 499248873309964947p256 + 68739 |-> 1000000000000000000p256 + 68815 |-> 1p256 + 68931 |-> 499248873309964947p256 + 68932 |-> 1000000000000000000p256 + 69008 |-> 1p256 + 69124 |-> 499248873309964947p256 + 69125 |-> 1000000000000000000p256 + 69201 |-> 1p256 + 69317 |-> 499248873309964947p256 + 69318 |-> 1000000000000000000p256 + 69394 |-> 1p256 + 69510 |-> 499248873309964947p256 + 69511 |-> 1000000000000000000p256 + 69587 |-> 1p256 + 69703 |-> 499248873309964947p256 + 69704 |-> 1000000000000000000p256 + 69780 |-> 1p256 + 69896 |-> 499248873309964947p256 + 69897 |-> 1000000000000000000p256 + 69973 |-> 1p256 + 70089 |-> 499248873309964947p256 + 70090 |-> 1000000000000000000p256 + 70166 |-> 1p256 + 70282 |-> 499248873309964947p256 + 70283 |-> 1000000000000000000p256 + 70359 |-> 1p256 + 70475 |-> 499248873309964947p256 + 70476 |-> 1000000000000000000p256 + 70552 |-> 1p256 + 70668 |-> 499248873309964947p256 + 70669 |-> 1000000000000000000p256 + 70745 |-> 1p256 + 70861 |-> 499248873309964947p256 + 70862 |-> 1000000000000000000p256 + 70938 |-> 1p256 + 71054 |-> 499248873309964947p256 + 71055 |-> 1000000000000000000p256 + 71131 |-> 1p256 + 71247 |-> 499248873309964947p256 + 71248 |-> 1000000000000000000p256 + 71324 |-> 1p256 + 71440 |-> 499248873309964947p256 + 71441 |-> 1000000000000000000p256 + 71517 |-> 1p256 + 71633 |-> 499248873309964947p256 + 71634 |-> 1000000000000000000p256 + 71710 |-> 1p256 + 71826 |-> 499248873309964947p256 + 71827 |-> 1000000000000000000p256 + 71903 |-> 1p256 + 72019 |-> 499248873309964947p256 + 72020 |-> 1000000000000000000p256 + 72096 |-> 1p256 + 72212 |-> 499248873309964947p256 + 72213 |-> 1000000000000000000p256 + 72289 |-> 1p256 + 72405 |-> 499248873309964947p256 + 72406 |-> 1000000000000000000p256 + 72482 |-> 1p256 + 72598 |-> 499248873309964947p256 + 72599 |-> 1000000000000000000p256 + 72675 |-> 1p256 + 72791 |-> 499248873309964947p256 + 72792 |-> 1000000000000000000p256 + 72868 |-> 1p256 + 72984 |-> 499248873309964947p256 + 72985 |-> 1000000000000000000p256 + 73061 |-> 1p256 + 73177 |-> 499248873309964947p256 + 73178 |-> 1000000000000000000p256 + 73254 |-> 1p256 + 73370 |-> 499248873309964947p256 + 73371 |-> 1000000000000000000p256 + 73447 |-> 1p256 + 73563 |-> 499248873309964947p256 + 73564 |-> 1000000000000000000p256 + 73640 |-> 1p256 + 73756 |-> 499248873309964947p256 + 73757 |-> 1000000000000000000p256 + 73833 |-> 1p256 + 73949 |-> 499248873309964947p256 + 73950 |-> 1000000000000000000p256 + 74026 |-> 1p256 + 74142 |-> 499248873309964947p256 + 74143 |-> 1000000000000000000p256 + 74219 |-> 1p256 + 74335 |-> 499248873309964947p256 + 74336 |-> 1000000000000000000p256 + 74412 |-> 1p256 + 74528 |-> 499248873309964947p256 + 74529 |-> 1000000000000000000p256 + 74605 |-> 1p256 + 74721 |-> 499248873309964947p256 + 74722 |-> 1000000000000000000p256 + 74798 |-> 1p256 + 74914 |-> 499248873309964947p256 + 74915 |-> 1000000000000000000p256 + 74991 |-> 1p256 + 75107 |-> 499248873309964947p256 + 75108 |-> 1000000000000000000p256 + 75184 |-> 1p256 + 75300 |-> 499248873309964947p256 + 75301 |-> 1000000000000000000p256 + 75377 |-> 1p256 + 75493 |-> 499248873309964947p256 + 75494 |-> 1000000000000000000p256 + 75570 |-> 1p256 + 75686 |-> 499248873309964947p256 + 75687 |-> 1000000000000000000p256 + 75763 |-> 1p256 + 75879 |-> 499248873309964947p256 + 75880 |-> 1000000000000000000p256 + 75956 |-> 1p256 + 76072 |-> 499248873309964947p256 + 76073 |-> 1000000000000000000p256 + 76149 |-> 1p256 + 76265 |-> 499248873309964947p256 + 76266 |-> 1000000000000000000p256 + 76342 |-> 1p256 + 76458 |-> 499248873309964947p256 + 76459 |-> 1000000000000000000p256 + 76535 |-> 1p256 + 76651 |-> 499248873309964947p256 + 76652 |-> 1000000000000000000p256 + 76728 |-> 1p256 + 76844 |-> 499248873309964947p256 + 76845 |-> 1000000000000000000p256 + 76921 |-> 1p256 + 77037 |-> 499248873309964947p256 + 77038 |-> 1000000000000000000p256 + 77114 |-> 1p256 + 77230 |-> 499248873309964947p256 + 77231 |-> 1000000000000000000p256 + 77307 |-> 1p256 + 77423 |-> 499248873309964947p256 + 77424 |-> 1000000000000000000p256 + 77500 |-> 1p256 + 77616 |-> 499248873309964947p256 + 77617 |-> 1000000000000000000p256 + 77693 |-> 1p256 + 77809 |-> 499248873309964947p256 + 77810 |-> 1000000000000000000p256 + 77886 |-> 1p256 + 78002 |-> 499248873309964947p256 + 78003 |-> 1000000000000000000p256 + 78079 |-> 1p256 + 78195 |-> 499248873309964947p256 + 78196 |-> 1000000000000000000p256 + 78272 |-> 1p256 + 78388 |-> 499248873309964947p256 + 78389 |-> 1000000000000000000p256 + 78465 |-> 1p256 + 78581 |-> 499248873309964947p256 + 78582 |-> 1000000000000000000p256 + 78658 |-> 1p256 + 78774 |-> 499248873309964947p256 + 78775 |-> 1000000000000000000p256 + 78851 |-> 1p256 + 78967 |-> 499248873309964947p256 + 78968 |-> 1000000000000000000p256 + 79044 |-> 1p256 + 79160 |-> 499248873309964947p256 + 79161 |-> 1000000000000000000p256 + 79237 |-> 1p256 + 79353 |-> 499248873309964947p256 + 79354 |-> 1000000000000000000p256 + 79430 |-> 1p256 + 79546 |-> 499248873309964947p256 + 79547 |-> 1000000000000000000p256 + 79623 |-> 1p256 + 79739 |-> 499248873309964947p256 + 79740 |-> 1000000000000000000p256 + 79816 |-> 1p256 + 79932 |-> 499248873309964947p256 + 79933 |-> 1000000000000000000p256 + 80009 |-> 1p256 + 80125 |-> 499248873309964947p256 + 80126 |-> 1000000000000000000p256 + 80202 |-> 1p256 + 80318 |-> 499248873309964947p256 + 80319 |-> 1000000000000000000p256 + 80395 |-> 1p256 + 80511 |-> 499248873309964947p256 + 80512 |-> 1000000000000000000p256 + 80588 |-> 1p256 + 80704 |-> 499248873309964947p256 + 80705 |-> 1000000000000000000p256 + 80781 |-> 1p256 + 80897 |-> 499248873309964947p256 + 80898 |-> 1000000000000000000p256 + 80974 |-> 1p256 + 81090 |-> 499248873309964947p256 + 81091 |-> 1000000000000000000p256 + 81167 |-> 1p256 + 81283 |-> 499248873309964947p256 + 81284 |-> 1000000000000000000p256 + 81360 |-> 1p256 + 81476 |-> 499248873309964947p256 + 81477 |-> 1000000000000000000p256 + 81553 |-> 1p256 + 81669 |-> 499248873309964947p256 + 81670 |-> 1000000000000000000p256 + 81746 |-> 1p256 + 81862 |-> 499248873309964947p256 + 81863 |-> 1000000000000000000p256 + 81939 |-> 1p256 + 82055 |-> 499248873309964947p256 + 82056 |-> 1000000000000000000p256 + 82132 |-> 1p256 + 82248 |-> 499248873309964947p256 + 82249 |-> 1000000000000000000p256 + 82325 |-> 1p256 + 82441 |-> 499248873309964947p256 + 82442 |-> 1000000000000000000p256 + 82518 |-> 1p256 + 82634 |-> 499248873309964947p256 + 82635 |-> 1000000000000000000p256 + 82711 |-> 1p256 + 82827 |-> 499248873309964947p256 + 82828 |-> 1000000000000000000p256 + 82904 |-> 1p256 + 83020 |-> 499248873309964947p256 + 83021 |-> 1000000000000000000p256 + 83097 |-> 1p256 + 83213 |-> 499248873309964947p256 + 83214 |-> 1000000000000000000p256 + 83290 |-> 1p256 + 83406 |-> 499248873309964947p256 + 83407 |-> 1000000000000000000p256 + 83483 |-> 1p256 + 83599 |-> 499248873309964947p256 + 83600 |-> 1000000000000000000p256 + 83676 |-> 1p256 + 83792 |-> 499248873309964947p256 + 83793 |-> 1000000000000000000p256 + 83869 |-> 1p256 + 83985 |-> 499248873309964947p256 + 83986 |-> 1000000000000000000p256 + 84062 |-> 1p256 + 84178 |-> 499248873309964947p256 + 84179 |-> 1000000000000000000p256 + 84255 |-> 1p256 + 84371 |-> 499248873309964947p256 + 84372 |-> 1000000000000000000p256 + 84448 |-> 1p256 + 84564 |-> 499248873309964947p256 + 84565 |-> 1000000000000000000p256 + 84641 |-> 1p256 + 84757 |-> 499248873309964947p256 + 84758 |-> 1000000000000000000p256 + 84834 |-> 1p256 + 84950 |-> 499248873309964947p256 + 84951 |-> 1000000000000000000p256 + 85027 |-> 1p256 + 85143 |-> 499248873309964947p256 + 85144 |-> 1000000000000000000p256 + 85220 |-> 1p256 + 85336 |-> 499248873309964947p256 + 85337 |-> 1000000000000000000p256 + 85413 |-> 1p256 + 85529 |-> 499248873309964947p256 + 85530 |-> 1000000000000000000p256 + 85606 |-> 1p256 + 85722 |-> 499248873309964947p256 + 85723 |-> 1000000000000000000p256 + 85799 |-> 1p256 + 85915 |-> 499248873309964947p256 + 85916 |-> 1000000000000000000p256 + 85992 |-> 1p256 + 86108 |-> 499248873309964947p256 + 86109 |-> 1000000000000000000p256 + 86185 |-> 1p256 + 86301 |-> 499248873309964947p256 + 86302 |-> 1000000000000000000p256 + 86378 |-> 1p256 + 86494 |-> 499248873309964947p256 + 86495 |-> 1000000000000000000p256 + 86571 |-> 1p256 + 86687 |-> 499248873309964947p256 + 86688 |-> 1000000000000000000p256 + 86764 |-> 1p256 + 86880 |-> 499248873309964947p256 + 86881 |-> 1000000000000000000p256 + 86957 |-> 1p256 + 87073 |-> 499248873309964947p256 + 87074 |-> 1000000000000000000p256 + 87150 |-> 1p256 + 87266 |-> 499248873309964947p256 + 87267 |-> 1000000000000000000p256 + 87343 |-> 1p256 + 87459 |-> 499248873309964947p256 + 87460 |-> 1000000000000000000p256 + 87536 |-> 1p256 + 87652 |-> 499248873309964947p256 + 87653 |-> 1000000000000000000p256 + 87729 |-> 1p256 + 87845 |-> 499248873309964947p256 + 87846 |-> 1000000000000000000p256 + 87922 |-> 1p256 + 88038 |-> 499248873309964947p256 + 88039 |-> 1000000000000000000p256 + 88115 |-> 1p256 + 88231 |-> 499248873309964947p256 + 88232 |-> 1000000000000000000p256 + 88308 |-> 1p256 + 88424 |-> 499248873309964947p256 + 88425 |-> 1000000000000000000p256 + 88501 |-> 1p256 + 88617 |-> 499248873309964947p256 + 88618 |-> 1000000000000000000p256 + 88694 |-> 1p256 + 88810 |-> 499248873309964947p256 + 88811 |-> 1000000000000000000p256 + 88887 |-> 1p256 + 89003 |-> 499248873309964947p256 + 89004 |-> 1000000000000000000p256 + 89080 |-> 1p256 + 89196 |-> 499248873309964947p256 + 89197 |-> 1000000000000000000p256 + 89273 |-> 1p256 + 89389 |-> 499248873309964947p256 + 89390 |-> 1000000000000000000p256 + 89466 |-> 1p256 + 89582 |-> 499248873309964947p256 + 89583 |-> 1000000000000000000p256 + 89659 |-> 1p256 + 89775 |-> 499248873309964947p256 + 89776 |-> 1000000000000000000p256 + 89852 |-> 1p256 + 89968 |-> 499248873309964947p256 + 89969 |-> 1000000000000000000p256 + 90045 |-> 1p256 + 90161 |-> 499248873309964947p256 + 90162 |-> 1000000000000000000p256 + 90238 |-> 1p256 + 90354 |-> 499248873309964947p256 + 90355 |-> 1000000000000000000p256 + 90431 |-> 1p256 + 90547 |-> 499248873309964947p256 + 90548 |-> 1000000000000000000p256 + 90624 |-> 1p256 + 90740 |-> 499248873309964947p256 + 90741 |-> 1000000000000000000p256 + 90817 |-> 1p256 + 90933 |-> 499248873309964947p256 + 90934 |-> 1000000000000000000p256 + 91010 |-> 1p256 + 91126 |-> 499248873309964947p256 + 91127 |-> 1000000000000000000p256 + 91203 |-> 1p256 + 91319 |-> 499248873309964947p256 + 91320 |-> 1000000000000000000p256 + 91396 |-> 1p256 + 91512 |-> 499248873309964947p256 + 91513 |-> 1000000000000000000p256 + 91589 |-> 1p256 + 91705 |-> 499248873309964947p256 + 91706 |-> 1000000000000000000p256 + 91782 |-> 1p256 + 91898 |-> 499248873309964947p256 + 91899 |-> 1000000000000000000p256 + 91975 |-> 1p256 + 92091 |-> 499248873309964947p256 + 92092 |-> 1000000000000000000p256 + 92168 |-> 1p256 + 92284 |-> 499248873309964947p256 + 92285 |-> 1000000000000000000p256 + 92361 |-> 1p256 + 92477 |-> 499248873309964947p256 + 92478 |-> 1000000000000000000p256 + 92554 |-> 1p256 + 92670 |-> 499248873309964947p256 + 92671 |-> 1000000000000000000p256 + 92747 |-> 1p256 + 92863 |-> 499248873309964947p256 + 92864 |-> 1000000000000000000p256 + 92940 |-> 1p256 + 93056 |-> 499248873309964947p256 + 93057 |-> 1000000000000000000p256 + 93133 |-> 1p256 + 93249 |-> 499248873309964947p256 + 93250 |-> 1000000000000000000p256 + 93326 |-> 1p256 + 93442 |-> 499248873309964947p256 + 93443 |-> 1000000000000000000p256 + 93519 |-> 1p256 + 93635 |-> 499248873309964947p256 + 93636 |-> 1000000000000000000p256 + 93712 |-> 1p256 + 93828 |-> 499248873309964947p256 + 93829 |-> 1000000000000000000p256 + 93905 |-> 1p256 + 94021 |-> 499248873309964947p256 + 94022 |-> 1000000000000000000p256 + 94098 |-> 1p256 + 94214 |-> 499248873309964947p256 + 94215 |-> 1000000000000000000p256 94291 |-> 1p256 - 94407 |-> 332672809981446418p256 + 94407 |-> 499248873309964947p256 94408 |-> 1000000000000000000p256 - 94454 |-> 1p256 - 94570 |-> 332672792385267812p256 - 94571 |-> 1000000000000000000p256 - 94617 |-> 1p256 - 94733 |-> 332672774864759026p256 - 94734 |-> 1000000000000000000p256 - 94780 |-> 1p256 - 94896 |-> 332672757419465195p256 - 94897 |-> 1000000000000000000p256 - 94943 |-> 1p256 - 95059 |-> 332672740048934965p256 - 95060 |-> 1000000000000000000p256 - 95106 |-> 1p256 - 95222 |-> 332672722752720456p256 - 95223 |-> 1000000000000000000p256 - 95269 |-> 1p256 - 95385 |-> 332672705530377233p256 - 95386 |-> 1000000000000000000p256 - 95432 |-> 1p256 - 95548 |-> 332672688381464275p256 - 95549 |-> 1000000000000000000p256 - 95595 |-> 1p256 - 95711 |-> 332672671305543937p256 - 95712 |-> 1000000000000000000p256 - 95758 |-> 1p256 - 95874 |-> 332672654302181926p256 - 95875 |-> 1000000000000000000p256 - 95921 |-> 1p256 - 96037 |-> 332672637370947263p256 - 96038 |-> 1000000000000000000p256 - 96084 |-> 1p256 - 96200 |-> 332672620511412257p256 - 96201 |-> 1000000000000000000p256 - 96247 |-> 1p256 - 96363 |-> 332672603723152470p256 - 96364 |-> 1000000000000000000p256 - 96410 |-> 1p256 - 96526 |-> 332672587005746693p256 - 96527 |-> 1000000000000000000p256 - 96573 |-> 1p256 - 96689 |-> 332672570358776909p256 - 96690 |-> 1000000000000000000p256 - 96736 |-> 1p256 - 96852 |-> 332672553781828268p256 - 96853 |-> 1000000000000000000p256 - 96899 |-> 1p256 - 97015 |-> 332672537274489057p256 - 97016 |-> 1000000000000000000p256 - 97062 |-> 1p256 - 97178 |-> 332672520836350670p256 - 97179 |-> 1000000000000000000p256 - 97225 |-> 1p256 - 97341 |-> 332672504467007578p256 - 97342 |-> 1000000000000000000p256 - 97388 |-> 1p256 - 97504 |-> 332672488166057307p256 - 97505 |-> 1000000000000000000p256 - 97551 |-> 1p256 - 97667 |-> 332672471933100402p256 - 97668 |-> 1000000000000000000p256 - 97714 |-> 1p256 - 97830 |-> 332672455767740403p256 - 97831 |-> 1000000000000000000p256 - 97877 |-> 1p256 - 97993 |-> 332672439669583820p256 - 97994 |-> 1000000000000000000p256 - 98040 |-> 1p256 - 98156 |-> 332672423638240102p256 - 98157 |-> 1000000000000000000p256 - 98203 |-> 1p256 - 98319 |-> 332672407673321611p256 - 98320 |-> 1000000000000000000p256 - 98366 |-> 1p256 - 98482 |-> 332672391774443597p256 - 98483 |-> 1000000000000000000p256 - 98529 |-> 1p256 - 98645 |-> 332672375941224169p256 - 98646 |-> 1000000000000000000p256 - 98692 |-> 1p256 - 98808 |-> 332672360173284274p256 - 98809 |-> 1000000000000000000p256 - 98855 |-> 1p256 - 98971 |-> 332672344470247666p256 - 98972 |-> 1000000000000000000p256 - 99018 |-> 1p256 - 99134 |-> 332672328831740884p256 - 99135 |-> 1000000000000000000p256 - 99181 |-> 1p256 - 99297 |-> 332672313257393223p256 - 99298 |-> 1000000000000000000p256 - 99344 |-> 1p256 - 99460 |-> 332672297746836716p256 - 99461 |-> 1000000000000000000p256 - 99507 |-> 1p256 - 99623 |-> 332672282299706101p256 - 99624 |-> 1000000000000000000p256 - 99670 |-> 1p256 - 99786 |-> 332672266915638804p256 - 99787 |-> 1000000000000000000p256 - 99833 |-> 1p256 - 99949 |-> 332672251594274910p256 - 99950 |-> 1000000000000000000p256 - 99996 |-> 1p256 - 100112 |-> 332672236335257143p256 - 100113 |-> 1000000000000000000p256 - 100159 |-> 1p256 - 100275 |-> 332672221138230836p256 - 100276 |-> 1000000000000000000p256 - 100322 |-> 1p256 - 100438 |-> 332672206002843918p256 - 100439 |-> 1000000000000000000p256 - 100485 |-> 1p256 - 100601 |-> 332672190928746879p256 - 100602 |-> 1000000000000000000p256 - 100648 |-> 1p256 - 100764 |-> 332672175915592758p256 - 100765 |-> 1000000000000000000p256 - 100811 |-> 1p256 - 100927 |-> 332672160963037112p256 - 100928 |-> 1000000000000000000p256 - 100974 |-> 1p256 - 101090 |-> 332672146070738000p256 - 101091 |-> 1000000000000000000p256 - 101137 |-> 1p256 - 101253 |-> 332672131238355956p256 - 101254 |-> 1000000000000000000p256 - 101300 |-> 1p256 - 101416 |-> 332672116465553969p256 - 101417 |-> 1000000000000000000p256 - 101463 |-> 1p256 - 101579 |-> 332672101751997464p256 - 101580 |-> 1000000000000000000p256 - 101626 |-> 1p256 - 101742 |-> 332672087097354274p256 - 101743 |-> 1000000000000000000p256 - 101789 |-> 1p256 - 101905 |-> 332672072501294627p256 - 101906 |-> 1000000000000000000p256 - 101952 |-> 1p256 - 102068 |-> 332672057963491118p256 - 102069 |-> 1000000000000000000p256 - 102115 |-> 1p256 - 102231 |-> 332672043483618692p256 - 102232 |-> 1000000000000000000p256 - 102278 |-> 1p256 - 102394 |-> 332672029061354622p256 - 102395 |-> 1000000000000000000p256 - 102441 |-> 1p256 - 102557 |-> 332672014696378489p256 - 102558 |-> 1000000000000000000p256 - 102604 |-> 1p256 - 102720 |-> 332672000388372164p256 - 102721 |-> 1000000000000000000p256 - 102767 |-> 1p256 - 102883 |-> 332671986137019782p256 - 102884 |-> 1000000000000000000p256 - 102930 |-> 1p256 - 103046 |-> 332671971942007730p256 - 103047 |-> 1000000000000000000p256 - 103093 |-> 1p256 - 103209 |-> 332671957803024623p256 - 103210 |-> 1000000000000000000p256 - 103256 |-> 1p256 - 103372 |-> 332671943719761283p256 - 103373 |-> 1000000000000000000p256 - 103419 |-> 1p256 - 103535 |-> 332671929691910726p256 - 103536 |-> 1000000000000000000p256 - 103582 |-> 1p256 - 103698 |-> 332671915719168136p256 - 103699 |-> 1000000000000000000p256 - 103745 |-> 1p256 - 103861 |-> 332671901801230851p256 - 103862 |-> 1000000000000000000p256 - 103908 |-> 1p256 - 104024 |-> 332671887937798344p256 - 104025 |-> 1000000000000000000p256 - 104071 |-> 1p256 - 104187 |-> 332671874128572202p256 - 104188 |-> 1000000000000000000p256 - 104234 |-> 1p256 - 104350 |-> 332671860373256111p256 - 104351 |-> 1000000000000000000p256 - 104397 |-> 1p256 - 104513 |-> 332671846671555835p256 - 104514 |-> 1000000000000000000p256 - 104560 |-> 1p256 - 104676 |-> 332671833023179201p256 - 104677 |-> 1000000000000000000p256 - 104723 |-> 1p256 - 104839 |-> 332671819427836079p256 - 104840 |-> 1000000000000000000p256 - 104886 |-> 1p256 - 105002 |-> 332671805885238368p256 - 105003 |-> 1000000000000000000p256 - 105049 |-> 1p256 - 105165 |-> 332671792395099973p256 - 105166 |-> 1000000000000000000p256 - 105212 |-> 1p256 - 105328 |-> 332671778957136793p256 - 105329 |-> 1000000000000000000p256 - 105375 |-> 1p256 - 105491 |-> 332671765571066702p256 - 105492 |-> 1000000000000000000p256 - 105538 |-> 1p256 - 105654 |-> 332671752236609534p256 - 105655 |-> 1000000000000000000p256 - 105701 |-> 1p256 - 105817 |-> 332671738953487062p256 - 105818 |-> 1000000000000000000p256 - 105864 |-> 1p256 - 105980 |-> 332671725721422988p256 - 105981 |-> 1000000000000000000p256 - 106027 |-> 1p256 - 106143 |-> 332671712540142920p256 - 106144 |-> 1000000000000000000p256 - 106190 |-> 1p256 - 106306 |-> 332671699409374361p256 - 106307 |-> 1000000000000000000p256 - 106353 |-> 1p256 - 106469 |-> 332671686328846691p256 - 106470 |-> 1000000000000000000p256 - 106516 |-> 1p256 - 106632 |-> 332671673298291152p256 - 106633 |-> 1000000000000000000p256 - 106679 |-> 1p256 - 106795 |-> 332671660317440830p256 - 106796 |-> 1000000000000000000p256 - 106842 |-> 1p256 - 106958 |-> 332671647386030644p256 - 106959 |-> 1000000000000000000p256 - 107005 |-> 1p256 - 107121 |-> 332671634503797326p256 - 107122 |-> 1000000000000000000p256 - 107168 |-> 1p256 - 107284 |-> 332671621670479407p256 - 107285 |-> 1000000000000000000p256 - 107331 |-> 1p256 - 107447 |-> 332671608885817206p256 - 107448 |-> 1000000000000000000p256 - 107494 |-> 1p256 - 107610 |-> 332671596149552810p256 - 107611 |-> 1000000000000000000p256 - 107657 |-> 1p256 - 107773 |-> 332671583461430061p256 - 107774 |-> 1000000000000000000p256 - 107820 |-> 1p256 - 107936 |-> 332671570821194543p256 - 107937 |-> 1000000000000000000p256 - 107983 |-> 1p256 - 108099 |-> 332671558228593564p256 - 108100 |-> 1000000000000000000p256 - 108146 |-> 1p256 - 108262 |-> 332671545683376146p256 - 108263 |-> 1000000000000000000p256 - 108309 |-> 1p256 - 108425 |-> 332671533185293009p256 - 108426 |-> 1000000000000000000p256 - 108472 |-> 1p256 - 108588 |-> 332671520734096555p256 - 108589 |-> 1000000000000000000p256 - 108635 |-> 1p256 - 108751 |-> 332671508329540857p256 - 108752 |-> 1000000000000000000p256 - 108798 |-> 1p256 - 108914 |-> 332671495971381644p256 - 108915 |-> 1000000000000000000p256 - 108961 |-> 1p256 - 109077 |-> 332671483659376288p256 - 109078 |-> 1000000000000000000p256 - 109124 |-> 1p256 - 109240 |-> 332671471393283789p256 - 109241 |-> 1000000000000000000p256 - 109287 |-> 1p256 - 109403 |-> 332671459172864763p256 - 109404 |-> 1000000000000000000p256 - 109450 |-> 1p256 - 109566 |-> 332671446997881429p256 - 109567 |-> 1000000000000000000p256 - 109613 |-> 1p256 - 109729 |-> 332671434868097595p256 - 109730 |-> 1000000000000000000p256 - 109776 |-> 1p256 - 109892 |-> 332671422783278647p256 - 109893 |-> 1000000000000000000p256 - 109939 |-> 1p256 - 110055 |-> 332671410743191531p256 - 110056 |-> 1000000000000000000p256 - 110102 |-> 1p256 - 110218 |-> 332671398747604747p256 - 110219 |-> 1000000000000000000p256 - 110265 |-> 1p256 - 110381 |-> 332671386796288332p256 - 110382 |-> 1000000000000000000p256 - 110428 |-> 1p256 - 110544 |-> 332671374889013850p256 - 110545 |-> 1000000000000000000p256 - 110591 |-> 1p256 - 110707 |-> 332671363025554377p256 - 110708 |-> 1000000000000000000p256 - 110754 |-> 1p256 - 110870 |-> 332671351205684490p256 - 110871 |-> 1000000000000000000p256 - 110917 |-> 1p256 - 111033 |-> 332671339429180256p256 - 111034 |-> 1000000000000000000p256 - 111080 |-> 1p256 - 111196 |-> 332671327695819220p256 - 111197 |-> 1000000000000000000p256 - 111243 |-> 1p256 - 111359 |-> 332671316005380390p256 - 111360 |-> 1000000000000000000p256 - 111406 |-> 1p256 - 111522 |-> 332671304357644229p256 - 111523 |-> 1000000000000000000p256 - 111569 |-> 1p256 - 111685 |-> 332671292752392641p256 - 111686 |-> 1000000000000000000p256 - 111732 |-> 1p256 - 111848 |-> 332671281189408961p256 - 111849 |-> 1000000000000000000p256 - 111895 |-> 1p256 - 112011 |-> 332671269668477941p256 - 112012 |-> 1000000000000000000p256 - 112058 |-> 1p256 - 112174 |-> 332671258189385742p256 - 112175 |-> 1000000000000000000p256 - 112221 |-> 1p256 - 112337 |-> 332671246751919921p256 - 112338 |-> 1000000000000000000p256 - 112384 |-> 1p256 - 112500 |-> 332671235355869419p256 - 112501 |-> 1000000000000000000p256 - 112547 |-> 1p256 - 112663 |-> 332671224001024553p256 - 112664 |-> 1000000000000000000p256 - 112710 |-> 1p256 - 112826 |-> 332671212687177001p256 - 112827 |-> 1000000000000000000p256 - 112873 |-> 1p256 - 112989 |-> 332671201414119794p256 - 112990 |-> 1000000000000000000p256 - 113036 |-> 1p256 - 113152 |-> 332671190181647305p256 - 113153 |-> 1000000000000000000p256 - 113199 |-> 1p256 - 113315 |-> 332671178989555238p256 - 113316 |-> 1000000000000000000p256 - 113362 |-> 1p256 - 113478 |-> 332671167837640617p256 - 113479 |-> 1000000000000000000p256 - 113525 |-> 1p256 - 113641 |-> 332671156725701776p256 - 113642 |-> 1000000000000000000p256 - 113688 |-> 1p256 - 113804 |-> 332671145653538348p256 - 113805 |-> 1000000000000000000p256 - 113851 |-> 1p256 - 113967 |-> 332671134620951258p256 - 113968 |-> 1000000000000000000p256 - 114014 |-> 1p256 - 114130 |-> 332671123627742708p256 - 114131 |-> 1000000000000000000p256 - 114177 |-> 1p256 - 114293 |-> 332671112673716169p256 - 114294 |-> 1000000000000000000p256 - 114340 |-> 1p256 - 114456 |-> 332671101758676374p256 - 114457 |-> 1000000000000000000p256 - 114503 |-> 1p256 - 114619 |-> 332671090882429303p256 - 114620 |-> 1000000000000000000p256 - 114666 |-> 1p256 - 114782 |-> 332671080044782177p256 - 114783 |-> 1000000000000000000p256 - 114829 |-> 1p256 - 114945 |-> 332671069245543446p256 - 114946 |-> 1000000000000000000p256 - 114992 |-> 1p256 - 115108 |-> 332671058484522783p256 - 115109 |-> 1000000000000000000p256 - 115155 |-> 1p256 - 115271 |-> 332671047761531069p256 - 115272 |-> 1000000000000000000p256 - 115318 |-> 1p256 - 115434 |-> 332671037076380388p256 - 115435 |-> 1000000000000000000p256 - 115481 |-> 1p256 - 115597 |-> 332671026428884017p256 - 115598 |-> 1000000000000000000p256 - 115644 |-> 1p256 - 115760 |-> 332671015818856414p256 - 115761 |-> 1000000000000000000p256 - 115807 |-> 1p256 - 115923 |-> 332671005246113214p256 - 115924 |-> 1000000000000000000p256 - 115970 |-> 1p256 - 116086 |-> 332670994710471214p256 - 116087 |-> 1000000000000000000p256 - 116133 |-> 1p256 - 116249 |-> 332670984211748368p256 - 116250 |-> 1000000000000000000p256 - 116296 |-> 1p256 - 116412 |-> 332670973749763777p256 - 116413 |-> 1000000000000000000p256 - 116459 |-> 1p256 - 116575 |-> 332670963324337680p256 - 116576 |-> 1000000000000000000p256 - 116622 |-> 1p256 - 116738 |-> 332670952935291446p256 - 116739 |-> 1000000000000000000p256 - 116785 |-> 1p256 - 116901 |-> 332670942582447564p256 - 116902 |-> 1000000000000000000p256 - 116948 |-> 1p256 - 117064 |-> 332670932265629635p256 - 117065 |-> 1000000000000000000p256 - 117111 |-> 1p256 - 117227 |-> 332670921984662365p256 - 117228 |-> 1000000000000000000p256 - 117274 |-> 1p256 - 117390 |-> 332670911739371553p256 - 117391 |-> 1000000000000000000p256 - 117437 |-> 1p256 - 117553 |-> 332670901529584087p256 - 117554 |-> 1000000000000000000p256 - 117600 |-> 1p256 - 117716 |-> 332670891355127932p256 - 117717 |-> 1000000000000000000p256 - 117763 |-> 1p256 - 117879 |-> 332670881215832126p256 - 117880 |-> 1000000000000000000p256 - 117926 |-> 1p256 - 118042 |-> 332670871111526766p256 - 118043 |-> 1000000000000000000p256 - 118089 |-> 1p256 - 118205 |-> 332670861042043004p256 - 118206 |-> 1000000000000000000p256 - 118252 |-> 1p256 - 118368 |-> 332670851007213040p256 - 118369 |-> 1000000000000000000p256 - 118415 |-> 1p256 - 118531 |-> 332670841006870111p256 - 118532 |-> 1000000000000000000p256 - 118578 |-> 1p256 - 118694 |-> 332670831040848485p256 - 118695 |-> 1000000000000000000p256 - 118741 |-> 1p256 - 118857 |-> 332670821108983452p256 - 118858 |-> 1000000000000000000p256 - 118904 |-> 1p256 - 119020 |-> 332670811211111317p256 - 119021 |-> 1000000000000000000p256 - 119067 |-> 1p256 - 119183 |-> 332670801347069393p256 - 119184 |-> 1000000000000000000p256 - 119230 |-> 1p256 - 119346 |-> 332670791516695993p256 - 119347 |-> 1000000000000000000p256 - 119393 |-> 1p256 - 119509 |-> 332670781719830421p256 - 119510 |-> 1000000000000000000p256 - 119556 |-> 1p256 - 119672 |-> 332670771956312967p256 - 119673 |-> 1000000000000000000p256 - 119719 |-> 1p256 - 119835 |-> 332670762225984898p256 - 119836 |-> 1000000000000000000p256 - 119882 |-> 1p256 - 119998 |-> 332670752528688452p256 - 119999 |-> 1000000000000000000p256 - 120045 |-> 1p256 - 120161 |-> 332670742864266829p256 - 120162 |-> 1000000000000000000p256 - 120208 |-> 1p256 - 120324 |-> 332670733232564185p256 - 120325 |-> 1000000000000000000p256 - 120371 |-> 1p256 - 120487 |-> 332670723633425624p256 - 120488 |-> 1000000000000000000p256 - 120534 |-> 1p256 - 120650 |-> 332670714066697194p256 - 120651 |-> 1000000000000000000p256 - 120697 |-> 1p256 - 120813 |-> 332670704532225875p256 - 120814 |-> 1000000000000000000p256 - 120860 |-> 1p256 - 120976 |-> 332670695029859576p256 - 120977 |-> 1000000000000000000p256 - 121023 |-> 1p256 - 121139 |-> 332670685559447126p256 - 121140 |-> 1000000000000000000p256 - 121186 |-> 1p256 - 121302 |-> 332670676120838269p256 - 121303 |-> 1000000000000000000p256 - 121349 |-> 1p256 - 121465 |-> 332670666713883656p256 - 121466 |-> 1000000000000000000p256 - 121512 |-> 1p256 - 121628 |-> 332670657338434839p256 - 121629 |-> 1000000000000000000p256 - 121675 |-> 1p256 - 121791 |-> 332670647994344262p256 - 121792 |-> 1000000000000000000p256 - 121838 |-> 1p256 - 121954 |-> 332670638681465259p256 - 121955 |-> 1000000000000000000p256 - 122001 |-> 1p256 - 122117 |-> 332670629399652044p256 - 122118 |-> 1000000000000000000p256 - 122164 |-> 1p256 - 122280 |-> 332670620148759704p256 - 122281 |-> 1000000000000000000p256 - 122327 |-> 1p256 - 122443 |-> 332670610928644196p256 - 122444 |-> 1000000000000000000p256 - 122490 |-> 1p256 - 122606 |-> 332670601739162337p256 - 122607 |-> 1000000000000000000p256 - 122653 |-> 1p256 - 122769 |-> 332670592580171802p256 - 122770 |-> 1000000000000000000p256 - 122816 |-> 1p256 - 122932 |-> 332670583451531112p256 - 122933 |-> 1000000000000000000p256 - 122979 |-> 1p256 - 123095 |-> 332670574353099632p256 - 123096 |-> 1000000000000000000p256 - 123142 |-> 1p256 - 123258 |-> 332670565284737566p256 - 123259 |-> 1000000000000000000p256 - 123305 |-> 1p256 - 123421 |-> 332670556246305945p256 - 123422 |-> 1000000000000000000p256 - 123468 |-> 1p256 - 123584 |-> 332670547237666628p256 - 123585 |-> 1000000000000000000p256 - 123631 |-> 1p256 - 123747 |-> 332670538258682291p256 - 123748 |-> 1000000000000000000p256 - 123794 |-> 1p256 - 123910 |-> 332670529309216423p256 - 123911 |-> 1000000000000000000p256 - 123957 |-> 1p256 - 124073 |-> 332670520389133320p256 - 124074 |-> 1000000000000000000p256 - 124120 |-> 1p256 - 124236 |-> 332670511498298081p256 - 124237 |-> 1000000000000000000p256 - 124283 |-> 1p256 - 124399 |-> 332670502636576597p256 - 124400 |-> 1000000000000000000p256 - 124446 |-> 1p256 - 124562 |-> 332670493803835551p256 - 124563 |-> 1000000000000000000p256 - 124609 |-> 1p256 - 124725 |-> 332670484999942409p256 - 124726 |-> 1000000000000000000p256 - 124772 |-> 1p256 - 124888 |-> 332670476224765416p256 - 124889 |-> 1000000000000000000p256 - 124935 |-> 1p256 - 125051 |-> 332670467478173590p256 - 125052 |-> 1000000000000000000p256 - 125098 |-> 1p256 - 125214 |-> 332670458760036714p256 - 125215 |-> 1000000000000000000p256 - 125261 |-> 1p256 - 125377 |-> 332670450070225336p256 - 125378 |-> 1000000000000000000p256 - 125424 |-> 1p256 - 125540 |-> 332670441408610758p256 - 125541 |-> 1000000000000000000p256 - 125587 |-> 1p256 - 125703 |-> 332670432775065034p256 - 125704 |-> 1000000000000000000p256 + 94484 |-> 1p256 + 94600 |-> 499248873309964947p256 + 94601 |-> 1000000000000000000p256 + 94677 |-> 1p256 + 94793 |-> 499248873309964947p256 + 94794 |-> 1000000000000000000p256 + 94870 |-> 1p256 + 94986 |-> 499248873309964947p256 + 94987 |-> 1000000000000000000p256 + 95063 |-> 1p256 + 95179 |-> 499248873309964947p256 + 95180 |-> 1000000000000000000p256 + 95256 |-> 1p256 + 95372 |-> 499248873309964947p256 + 95373 |-> 1000000000000000000p256 + 95449 |-> 1p256 + 95565 |-> 499248873309964947p256 + 95566 |-> 1000000000000000000p256 + 95642 |-> 1p256 + 95758 |-> 499248873309964947p256 + 95759 |-> 1000000000000000000p256 + 95835 |-> 1p256 + 95951 |-> 499248873309964947p256 + 95952 |-> 1000000000000000000p256 + 96028 |-> 1p256 + 96144 |-> 499248873309964947p256 + 96145 |-> 1000000000000000000p256 + 96221 |-> 1p256 + 96337 |-> 499248873309964947p256 + 96338 |-> 1000000000000000000p256 + 96414 |-> 1p256 + 96530 |-> 499248873309964947p256 + 96531 |-> 1000000000000000000p256 + 96607 |-> 1p256 + 96723 |-> 499248873309964947p256 + 96724 |-> 1000000000000000000p256 + 96800 |-> 1p256 + 96916 |-> 499248873309964947p256 + 96917 |-> 1000000000000000000p256 + 96993 |-> 1p256 + 97109 |-> 499248873309964947p256 + 97110 |-> 1000000000000000000p256 + 97186 |-> 1p256 + 97302 |-> 499248873309964947p256 + 97303 |-> 1000000000000000000p256 + 97379 |-> 1p256 + 97495 |-> 499248873309964947p256 + 97496 |-> 1000000000000000000p256 + 97572 |-> 1p256 + 97688 |-> 499248873309964947p256 + 97689 |-> 1000000000000000000p256 + 97765 |-> 1p256 + 97881 |-> 499248873309964947p256 + 97882 |-> 1000000000000000000p256 + 97958 |-> 1p256 + 98074 |-> 499248873309964947p256 + 98075 |-> 1000000000000000000p256 + 98151 |-> 1p256 + 98267 |-> 499248873309964947p256 + 98268 |-> 1000000000000000000p256 + 98344 |-> 1p256 + 98460 |-> 499248873309964947p256 + 98461 |-> 1000000000000000000p256 + 98537 |-> 1p256 + 98653 |-> 499248873309964947p256 + 98654 |-> 1000000000000000000p256 + 98730 |-> 1p256 + 98846 |-> 499248873309964947p256 + 98847 |-> 1000000000000000000p256 + 98923 |-> 1p256 + 99039 |-> 499248873309964947p256 + 99040 |-> 1000000000000000000p256 + 99116 |-> 1p256 + 99232 |-> 499248873309964947p256 + 99233 |-> 1000000000000000000p256 + 99309 |-> 1p256 + 99425 |-> 499248873309964947p256 + 99426 |-> 1000000000000000000p256 + 99502 |-> 1p256 + 99618 |-> 499248873309964947p256 + 99619 |-> 1000000000000000000p256 + 99695 |-> 1p256 + 99811 |-> 499248873309964947p256 + 99812 |-> 1000000000000000000p256 + 99888 |-> 1p256 + 100004 |-> 499248873309964947p256 + 100005 |-> 1000000000000000000p256 + 100081 |-> 1p256 + 100197 |-> 499248873309964947p256 + 100198 |-> 1000000000000000000p256 + 100274 |-> 1p256 + 100390 |-> 499248873309964947p256 + 100391 |-> 1000000000000000000p256 + 100467 |-> 1p256 + 100583 |-> 499248873309964947p256 + 100584 |-> 1000000000000000000p256 + 100660 |-> 1p256 + 100776 |-> 499248873309964947p256 + 100777 |-> 1000000000000000000p256 + 100853 |-> 1p256 + 100969 |-> 499248873309964947p256 + 100970 |-> 1000000000000000000p256 + 101046 |-> 1p256 + 101162 |-> 499248873309964947p256 + 101163 |-> 1000000000000000000p256 + 101239 |-> 1p256 + 101355 |-> 499248873309964947p256 + 101356 |-> 1000000000000000000p256 + 101432 |-> 1p256 + 101548 |-> 499248873309964947p256 + 101549 |-> 1000000000000000000p256 + 101625 |-> 1p256 + 101741 |-> 499248873309964947p256 + 101742 |-> 1000000000000000000p256 + 101818 |-> 1p256 + 101934 |-> 499248873309964947p256 + 101935 |-> 1000000000000000000p256 + 102011 |-> 1p256 + 102127 |-> 499248873309964947p256 + 102128 |-> 1000000000000000000p256 + 102204 |-> 1p256 + 102320 |-> 499248873309964947p256 + 102321 |-> 1000000000000000000p256 + 102397 |-> 1p256 + 102513 |-> 499248873309964947p256 + 102514 |-> 1000000000000000000p256 + 102590 |-> 1p256 + 102706 |-> 499248873309964947p256 + 102707 |-> 1000000000000000000p256 + 102783 |-> 1p256 + 102899 |-> 499248873309964947p256 + 102900 |-> 1000000000000000000p256 + 102976 |-> 1p256 + 103092 |-> 499248873309964947p256 + 103093 |-> 1000000000000000000p256 + 103169 |-> 1p256 + 103285 |-> 499248873309964947p256 + 103286 |-> 1000000000000000000p256 + 103362 |-> 1p256 + 103478 |-> 499248873309964947p256 + 103479 |-> 1000000000000000000p256 + 103555 |-> 1p256 + 103671 |-> 499248873309964947p256 + 103672 |-> 1000000000000000000p256 + 103748 |-> 1p256 + 103864 |-> 499248873309964947p256 + 103865 |-> 1000000000000000000p256 + 103941 |-> 1p256 + 104057 |-> 499248873309964947p256 + 104058 |-> 1000000000000000000p256 + 104134 |-> 1p256 + 104250 |-> 499248873309964947p256 + 104251 |-> 1000000000000000000p256 + 104327 |-> 1p256 + 104443 |-> 499248873309964947p256 + 104444 |-> 1000000000000000000p256 + 104520 |-> 1p256 + 104636 |-> 499248873309964947p256 + 104637 |-> 1000000000000000000p256 + 104713 |-> 1p256 + 104829 |-> 499248873309964947p256 + 104830 |-> 1000000000000000000p256 + 104906 |-> 1p256 + 105022 |-> 499248873309964947p256 + 105023 |-> 1000000000000000000p256 + 105099 |-> 1p256 + 105215 |-> 499248873309964947p256 + 105216 |-> 1000000000000000000p256 + 105292 |-> 1p256 + 105408 |-> 499248873309964947p256 + 105409 |-> 1000000000000000000p256 + 105485 |-> 1p256 + 105601 |-> 499248873309964947p256 + 105602 |-> 1000000000000000000p256 + 105678 |-> 1p256 + 105794 |-> 499248873309964947p256 + 105795 |-> 1000000000000000000p256 + 105871 |-> 1p256 + 105987 |-> 499248873309964947p256 + 105988 |-> 1000000000000000000p256 + 106064 |-> 1p256 + 106180 |-> 499248873309964947p256 + 106181 |-> 1000000000000000000p256 + 106257 |-> 1p256 + 106373 |-> 499248873309964947p256 + 106374 |-> 1000000000000000000p256 + 106450 |-> 1p256 + 106566 |-> 499248873309964947p256 + 106567 |-> 1000000000000000000p256 + 106643 |-> 1p256 + 106759 |-> 499248873309964947p256 + 106760 |-> 1000000000000000000p256 + 106836 |-> 1p256 + 106952 |-> 499248873309964947p256 + 106953 |-> 1000000000000000000p256 + 107029 |-> 1p256 + 107145 |-> 499248873309964947p256 + 107146 |-> 1000000000000000000p256 + 107222 |-> 1p256 + 107338 |-> 499248873309964947p256 + 107339 |-> 1000000000000000000p256 + 107415 |-> 1p256 + 107531 |-> 499248873309964947p256 + 107532 |-> 1000000000000000000p256 + 107608 |-> 1p256 + 107724 |-> 499248873309964947p256 + 107725 |-> 1000000000000000000p256 + 107801 |-> 1p256 + 107917 |-> 499248873309964947p256 + 107918 |-> 1000000000000000000p256 + 107994 |-> 1p256 + 108110 |-> 499248873309964947p256 + 108111 |-> 1000000000000000000p256 + 108187 |-> 1p256 + 108303 |-> 499248873309964947p256 + 108304 |-> 1000000000000000000p256 + 108380 |-> 1p256 + 108496 |-> 499248873309964947p256 + 108497 |-> 1000000000000000000p256 + 108573 |-> 1p256 + 108689 |-> 499248873309964947p256 + 108690 |-> 1000000000000000000p256 + 108766 |-> 1p256 + 108882 |-> 499248873309964947p256 + 108883 |-> 1000000000000000000p256 + 108959 |-> 1p256 + 109075 |-> 499248873309964947p256 + 109076 |-> 1000000000000000000p256 + 109152 |-> 1p256 + 109268 |-> 499248873309964947p256 + 109269 |-> 1000000000000000000p256 + 109345 |-> 1p256 + 109461 |-> 499248873309964947p256 + 109462 |-> 1000000000000000000p256 + 109538 |-> 1p256 + 109654 |-> 499248873309964947p256 + 109655 |-> 1000000000000000000p256 + 109731 |-> 1p256 + 109847 |-> 499248873309964947p256 + 109848 |-> 1000000000000000000p256 + 109924 |-> 1p256 + 110040 |-> 499248873309964947p256 + 110041 |-> 1000000000000000000p256 + 110117 |-> 1p256 + 110233 |-> 499248873309964947p256 + 110234 |-> 1000000000000000000p256 + 110310 |-> 1p256 + 110426 |-> 499248873309964947p256 + 110427 |-> 1000000000000000000p256 + 110503 |-> 1p256 + 110619 |-> 499248873309964947p256 + 110620 |-> 1000000000000000000p256 + 110696 |-> 1p256 + 110812 |-> 499248873309964947p256 + 110813 |-> 1000000000000000000p256 + 110889 |-> 1p256 + 111005 |-> 499248873309964947p256 + 111006 |-> 1000000000000000000p256 + 111082 |-> 1p256 + 111198 |-> 499248873309964947p256 + 111199 |-> 1000000000000000000p256 + 111275 |-> 1p256 + 111391 |-> 499248873309964947p256 + 111392 |-> 1000000000000000000p256 + 111468 |-> 1p256 + 111584 |-> 499248873309964947p256 + 111585 |-> 1000000000000000000p256 + 111661 |-> 1p256 + 111777 |-> 499248873309964947p256 + 111778 |-> 1000000000000000000p256 + 111854 |-> 1p256 + 111970 |-> 499248873309964947p256 + 111971 |-> 1000000000000000000p256 + 112047 |-> 1p256 + 112163 |-> 499248873309964947p256 + 112164 |-> 1000000000000000000p256 + 112240 |-> 1p256 + 112356 |-> 499248873309964947p256 + 112357 |-> 1000000000000000000p256 + 112433 |-> 1p256 + 112549 |-> 499248873309964947p256 + 112550 |-> 1000000000000000000p256 + 112626 |-> 1p256 + 112742 |-> 499248873309964947p256 + 112743 |-> 1000000000000000000p256 + 112819 |-> 1p256 + 112935 |-> 499248873309964947p256 + 112936 |-> 1000000000000000000p256 + 113012 |-> 1p256 + 113128 |-> 499248873309964947p256 + 113129 |-> 1000000000000000000p256 + 113205 |-> 1p256 + 113321 |-> 499248873309964947p256 + 113322 |-> 1000000000000000000p256 + 113398 |-> 1p256 + 113514 |-> 499248873309964947p256 + 113515 |-> 1000000000000000000p256 + 113591 |-> 1p256 + 113707 |-> 499248873309964947p256 + 113708 |-> 1000000000000000000p256 + 113784 |-> 1p256 + 113900 |-> 499248873309964947p256 + 113901 |-> 1000000000000000000p256 + 113977 |-> 1p256 + 114093 |-> 499248873309964947p256 + 114094 |-> 1000000000000000000p256 + 114170 |-> 1p256 + 114286 |-> 499248873309964947p256 + 114287 |-> 1000000000000000000p256 + 114363 |-> 1p256 + 114479 |-> 499248873309964947p256 + 114480 |-> 1000000000000000000p256 + 114556 |-> 1p256 + 114672 |-> 499248873309964947p256 + 114673 |-> 1000000000000000000p256 + 114749 |-> 1p256 + 114865 |-> 499248873309964947p256 + 114866 |-> 1000000000000000000p256 + 114942 |-> 1p256 + 115058 |-> 499248873309964947p256 + 115059 |-> 1000000000000000000p256 + 115135 |-> 1p256 + 115251 |-> 499248873309964947p256 + 115252 |-> 1000000000000000000p256 + 115328 |-> 1p256 + 115444 |-> 499248873309964947p256 + 115445 |-> 1000000000000000000p256 + 115521 |-> 1p256 + 115637 |-> 499248873309964947p256 + 115638 |-> 1000000000000000000p256 + 115714 |-> 1p256 + 115830 |-> 499248873309964947p256 + 115831 |-> 1000000000000000000p256 + 115907 |-> 1p256 + 116023 |-> 499248873309964947p256 + 116024 |-> 1000000000000000000p256 + 116100 |-> 1p256 + 116216 |-> 499248873309964947p256 + 116217 |-> 1000000000000000000p256 + 116293 |-> 1p256 + 116409 |-> 499248873309964947p256 + 116410 |-> 1000000000000000000p256 + 116486 |-> 1p256 + 116602 |-> 499248873309964947p256 + 116603 |-> 1000000000000000000p256 + 116679 |-> 1p256 + 116795 |-> 499248873309964947p256 + 116796 |-> 1000000000000000000p256 + 116872 |-> 1p256 + 116988 |-> 499248873309964947p256 + 116989 |-> 1000000000000000000p256 + 117065 |-> 1p256 + 117181 |-> 499248873309964947p256 + 117182 |-> 1000000000000000000p256 + 117258 |-> 1p256 + 117374 |-> 499248873309964947p256 + 117375 |-> 1000000000000000000p256 + 117451 |-> 1p256 + 117567 |-> 499248873309964947p256 + 117568 |-> 1000000000000000000p256 + 117644 |-> 1p256 + 117760 |-> 499248873309964947p256 + 117761 |-> 1000000000000000000p256 + 117837 |-> 1p256 + 117953 |-> 499248873309964947p256 + 117954 |-> 1000000000000000000p256 + 118030 |-> 1p256 + 118146 |-> 499248873309964947p256 + 118147 |-> 1000000000000000000p256 + 118223 |-> 1p256 + 118339 |-> 499248873309964947p256 + 118340 |-> 1000000000000000000p256 + 118416 |-> 1p256 + 118532 |-> 499248873309964947p256 + 118533 |-> 1000000000000000000p256 + 118609 |-> 1p256 + 118725 |-> 499248873309964947p256 + 118726 |-> 1000000000000000000p256 + 118802 |-> 1p256 + 118918 |-> 499248873309964947p256 + 118919 |-> 1000000000000000000p256 + 118995 |-> 1p256 + 119111 |-> 499248873309964947p256 + 119112 |-> 1000000000000000000p256 + 119188 |-> 1p256 + 119304 |-> 499248873309964947p256 + 119305 |-> 1000000000000000000p256 + 119381 |-> 1p256 + 119497 |-> 499248873309964947p256 + 119498 |-> 1000000000000000000p256 + 119574 |-> 1p256 + 119690 |-> 499248873309964947p256 + 119691 |-> 1000000000000000000p256 + 119767 |-> 1p256 + 119883 |-> 499248873309964947p256 + 119884 |-> 1000000000000000000p256 + 119960 |-> 1p256 + 120076 |-> 499248873309964947p256 + 120077 |-> 1000000000000000000p256 + 120153 |-> 1p256 + 120269 |-> 499248873309964947p256 + 120270 |-> 1000000000000000000p256 + 120346 |-> 1p256 + 120462 |-> 499248873309964947p256 + 120463 |-> 1000000000000000000p256 + 120539 |-> 1p256 + 120655 |-> 499248873309964947p256 + 120656 |-> 1000000000000000000p256 + 120732 |-> 1p256 + 120848 |-> 499248873309964947p256 + 120849 |-> 1000000000000000000p256 + 120925 |-> 1p256 + 121041 |-> 499248873309964947p256 + 121042 |-> 1000000000000000000p256 + 121118 |-> 1p256 + 121234 |-> 499248873309964947p256 + 121235 |-> 1000000000000000000p256 + 121311 |-> 1p256 + 121427 |-> 499248873309964947p256 + 121428 |-> 1000000000000000000p256 + 121504 |-> 1p256 + 121620 |-> 499248873309964947p256 + 121621 |-> 1000000000000000000p256 + 121697 |-> 1p256 + 121813 |-> 499248873309964947p256 + 121814 |-> 1000000000000000000p256 + 121890 |-> 1p256 + 122006 |-> 499248873309964947p256 + 122007 |-> 1000000000000000000p256 + 122083 |-> 1p256 + 122199 |-> 499248873309964947p256 + 122200 |-> 1000000000000000000p256 + 122276 |-> 1p256 + 122392 |-> 499248873309964947p256 + 122393 |-> 1000000000000000000p256 + 122469 |-> 1p256 + 122585 |-> 499248873309964947p256 + 122586 |-> 1000000000000000000p256 + 122662 |-> 1p256 + 122778 |-> 499248873309964947p256 + 122779 |-> 1000000000000000000p256 + 122855 |-> 1p256 + 122971 |-> 499248873309964947p256 + 122972 |-> 1000000000000000000p256 + 123048 |-> 1p256 + 123164 |-> 499248873309964947p256 + 123165 |-> 1000000000000000000p256 + 123241 |-> 1p256 + 123357 |-> 499248873309964947p256 + 123358 |-> 1000000000000000000p256 + 123434 |-> 1p256 + 123550 |-> 499248873309964947p256 + 123551 |-> 1000000000000000000p256 + 123627 |-> 1p256 + 123743 |-> 499248873309964947p256 + 123744 |-> 1000000000000000000p256 + 123820 |-> 1p256 + 123936 |-> 499248873309964947p256 + 123937 |-> 1000000000000000000p256 + 124013 |-> 1p256 + 124129 |-> 499248873309964947p256 + 124130 |-> 1000000000000000000p256 + 124206 |-> 1p256 + 124322 |-> 499248873309964947p256 + 124323 |-> 1000000000000000000p256 + 124399 |-> 1p256 + 124515 |-> 499248873309964947p256 + 124516 |-> 1000000000000000000p256 + 124592 |-> 1p256 + 124708 |-> 499248873309964947p256 + 124709 |-> 1000000000000000000p256 + 124785 |-> 1p256 + 124901 |-> 499248873309964947p256 + 124902 |-> 1000000000000000000p256 + 124978 |-> 1p256 + 125094 |-> 499248873309964947p256 + 125095 |-> 1000000000000000000p256 + 125171 |-> 1p256 + 125287 |-> 499248873309964947p256 + 125288 |-> 1000000000000000000p256 + 125364 |-> 1p256 + 125480 |-> 499248873309964947p256 + 125481 |-> 1000000000000000000p256 + 125557 |-> 1p256 + 125673 |-> 499248873309964947p256 + 125674 |-> 1000000000000000000p256 125750 |-> 1p256 - 125866 |-> 332670424169460962p256 + 125866 |-> 499248873309964947p256 125867 |-> 1000000000000000000p256 - 125913 |-> 1p256 - 126029 |-> 332670415591672083p256 - 126030 |-> 1000000000000000000p256 - 126076 |-> 1p256 - 126192 |-> 332670407041572669p256 - 126193 |-> 1000000000000000000p256 - 126239 |-> 1p256 - 126355 |-> 332670398519037727p256 - 126356 |-> 1000000000000000000p256 - 126402 |-> 1p256 - 126518 |-> 332670390023942984p256 - 126519 |-> 1000000000000000000p256 - 126565 |-> 1p256 - 126681 |-> 332670381556164888p256 - 126682 |-> 1000000000000000000p256 - 126728 |-> 1p256 - 126844 |-> 332670373115580603p256 - 126845 |-> 1000000000000000000p256 - 126891 |-> 1p256 - 127007 |-> 332670364702068000p256 - 127008 |-> 1000000000000000000p256 - 127054 |-> 1p256 - 127170 |-> 332670356315505655p256 - 127171 |-> 1000000000000000000p256 - 127217 |-> 1p256 - 127333 |-> 332670347955772845p256 - 127334 |-> 1000000000000000000p256 - 127380 |-> 1p256 - 127496 |-> 332670339622749539p256 - 127497 |-> 1000000000000000000p256 - 127543 |-> 1p256 - 127659 |-> 332670331316316398p256 - 127660 |-> 1000000000000000000p256 - 127706 |-> 1p256 - 127822 |-> 332670323036354765p256 - 127823 |-> 1000000000000000000p256 - 127869 |-> 1p256 - 127985 |-> 332670314782746666p256 - 127986 |-> 1000000000000000000p256 - 128032 |-> 1p256 - 128148 |-> 332670306555374799p256 - 128149 |-> 1000000000000000000p256 - 128195 |-> 1p256 - 128311 |-> 332670298354122536p256 - 128312 |-> 1000000000000000000p256 - 128358 |-> 1p256 - 128474 |-> 332670290178873912p256 - 128475 |-> 1000000000000000000p256 - 128521 |-> 1p256 - 128637 |-> 332670282029513625p256 - 128638 |-> 1000000000000000000p256 - 128684 |-> 1p256 - 128800 |-> 332670273905927028p256 - 128801 |-> 1000000000000000000p256 - 128847 |-> 1p256 - 128963 |-> 332670265808000128p256 - 128964 |-> 1000000000000000000p256 - 129010 |-> 1p256 - 129126 |-> 332670257735619576p256 - 129127 |-> 1000000000000000000p256 - 129173 |-> 1p256 - 129289 |-> 332670249688672670p256 - 129290 |-> 1000000000000000000p256 - 129336 |-> 1p256 - 129452 |-> 332670241667047345p256 - 129453 |-> 1000000000000000000p256 - 129499 |-> 1p256 - 129615 |-> 332670233670632169p256 - 129616 |-> 1000000000000000000p256 - 129662 |-> 1p256 - 129778 |-> 332670225699316340p256 - 129779 |-> 1000000000000000000p256 - 129825 |-> 1p256 - 129941 |-> 332670217752989684p256 - 129942 |-> 1000000000000000000p256 - 129988 |-> 1p256 - 130104 |-> 332670209831542645p256 - 130105 |-> 1000000000000000000p256 - 130151 |-> 1p256 - 130267 |-> 332670201934866285p256 - 130268 |-> 1000000000000000000p256 - 130314 |-> 1p256 - 130430 |-> 332670194062852278p256 - 130431 |-> 1000000000000000000p256 - 130477 |-> 1p256 - 130593 |-> 332670186215392909p256 - 130594 |-> 1000000000000000000p256 - 130640 |-> 1p256 - 130756 |-> 332670178392381062p256 - 130757 |-> 1000000000000000000p256 - 130803 |-> 1p256 - 130919 |-> 332670170593710226p256 - 130920 |-> 1000000000000000000p256 - 130966 |-> 1p256 - 131082 |-> 332670162819274485p256 - 131083 |-> 1000000000000000000p256 - 131129 |-> 1p256 - 131245 |-> 332670155068968512p256 - 131246 |-> 1000000000000000000p256 - 131292 |-> 1p256 - 131408 |-> 332670147342687570p256 - 131409 |-> 1000000000000000000p256 - 131455 |-> 1p256 - 131571 |-> 332670139640327507p256 - 131572 |-> 1000000000000000000p256 - 131618 |-> 1p256 - 131734 |-> 332670131961784749p256 - 131735 |-> 1000000000000000000p256 - 131781 |-> 1p256 - 131897 |-> 332670124306956298p256 - 131898 |-> 1000000000000000000p256 - 131944 |-> 1p256 - 132060 |-> 332670116675739729p256 - 132061 |-> 1000000000000000000p256 - 132107 |-> 1p256 - 132223 |-> 332670109068033185p256 - 132224 |-> 1000000000000000000p256 - 132270 |-> 1p256 - 132386 |-> 332670101483735372p256 - 132387 |-> 1000000000000000000p256 - 132433 |-> 1p256 - 132549 |-> 332670093922745558p256 - 132550 |-> 1000000000000000000p256 - 132596 |-> 1p256 - 132712 |-> 332670086384963566p256 - 132713 |-> 1000000000000000000p256 - 132759 |-> 1p256 - 132875 |-> 332670078870289775p256 - 132876 |-> 1000000000000000000p256 - 132922 |-> 1p256 - 133038 |-> 332670071378625110p256 - 133039 |-> 1000000000000000000p256 - 133085 |-> 1p256 - 133201 |-> 332670063909871043p256 - 133202 |-> 1000000000000000000p256 - 133248 |-> 1p256 - 133364 |-> 332670056463929587p256 - 133365 |-> 1000000000000000000p256 - 133411 |-> 1p256 - 133527 |-> 332670049040703295p256 - 133528 |-> 1000000000000000000p256 - 133574 |-> 1p256 - 133690 |-> 332670041640095253p256 - 133691 |-> 1000000000000000000p256 - 133737 |-> 1p256 - 133853 |-> 332670034262009077p256 - 133854 |-> 1000000000000000000p256 - 133900 |-> 1p256 - 134016 |-> 332670026906348914p256 - 134017 |-> 1000000000000000000p256 - 134063 |-> 1p256 - 134179 |-> 332670019573019432p256 - 134180 |-> 1000000000000000000p256 - 134226 |-> 1p256 - 134342 |-> 332670012261925820p256 - 134343 |-> 1000000000000000000p256 - 134389 |-> 1p256 - 134505 |-> 332670004972973785p256 - 134506 |-> 1000000000000000000p256 - 134552 |-> 1p256 - 134668 |-> 332669997706069545p256 - 134669 |-> 1000000000000000000p256 - 134715 |-> 1p256 - 134831 |-> 332669990461119832p256 - 134832 |-> 1000000000000000000p256 - 134878 |-> 1p256 - 134994 |-> 332669983238031882p256 - 134995 |-> 1000000000000000000p256 - 135041 |-> 1p256 - 135157 |-> 332669976036713435p256 - 135158 |-> 1000000000000000000p256 - 135204 |-> 1p256 - 135320 |-> 332669968857072731p256 - 135321 |-> 1000000000000000000p256 - 135367 |-> 1p256 - 135483 |-> 332669961699018506p256 - 135484 |-> 1000000000000000000p256 - 135530 |-> 1p256 - 135646 |-> 332669954562459992p256 - 135647 |-> 1000000000000000000p256 - 135693 |-> 1p256 - 135809 |-> 332669947447306908p256 - 135810 |-> 1000000000000000000p256 - 135856 |-> 1p256 - 135972 |-> 332669940353469462p256 - 135973 |-> 1000000000000000000p256 - 136019 |-> 1p256 - 136135 |-> 332669933280858344p256 - 136136 |-> 1000000000000000000p256 - 136182 |-> 1p256 - 136298 |-> 332669926229384728p256 - 136299 |-> 1000000000000000000p256 - 136345 |-> 1p256 - 136461 |-> 332669919198960261p256 - 136462 |-> 1000000000000000000p256 - 136508 |-> 1p256 - 136624 |-> 332669912189497068p256 - 136625 |-> 1000000000000000000p256 - 136671 |-> 1p256 - 136787 |-> 332669905200907742p256 - 136788 |-> 1000000000000000000p256 - 136834 |-> 1p256 - 136950 |-> 332669898233105347p256 - 136951 |-> 1000000000000000000p256 - 136997 |-> 1p256 - 137113 |-> 332669891286003410p256 - 137114 |-> 1000000000000000000p256 - 137160 |-> 1p256 - 137276 |-> 332669884359515921p256 - 137277 |-> 1000000000000000000p256 - 137323 |-> 1p256 - 137439 |-> 332669877453557328p256 - 137440 |-> 1000000000000000000p256 - 137486 |-> 1p256 - 137602 |-> 332669870568042537p256 - 137603 |-> 1000000000000000000p256 - 137649 |-> 1p256 - 137765 |-> 332669863702886904p256 - 137766 |-> 1000000000000000000p256 - 137812 |-> 1p256 - 137928 |-> 332669856858006238p256 - 137929 |-> 1000000000000000000p256 - 137975 |-> 1p256 - 138091 |-> 332669850033316794p256 - 138092 |-> 1000000000000000000p256 - 138138 |-> 1p256 - 138254 |-> 332669843228735270p256 - 138255 |-> 1000000000000000000p256 - 138301 |-> 1p256 - 138417 |-> 332669836444178808p256 - 138418 |-> 1000000000000000000p256 - 138464 |-> 1p256 - 138580 |-> 332669829679564985p256 - 138581 |-> 1000000000000000000p256 - 138627 |-> 1p256 - 138743 |-> 332669822934811818p256 - 138744 |-> 1000000000000000000p256 - 138790 |-> 1p256 - 138906 |-> 332669816209837754p256 - 138907 |-> 1000000000000000000p256 - 138953 |-> 1p256 - 139069 |-> 332669809504561670p256 - 139070 |-> 1000000000000000000p256 - 139116 |-> 1p256 - 139232 |-> 332669802818902871p256 - 139233 |-> 1000000000000000000p256 - 139279 |-> 1p256 - 139395 |-> 332669796152781087p256 - 139396 |-> 1000000000000000000p256 - 139442 |-> 1p256 - 139558 |-> 332669789506116470p256 - 139559 |-> 1000000000000000000p256 - 139605 |-> 1p256 - 139721 |-> 332669782878829589p256 - 139722 |-> 1000000000000000000p256 - 139768 |-> 1p256 - 139884 |-> 332669776270841433p256 - 139885 |-> 1000000000000000000p256 - 139931 |-> 1p256 - 140047 |-> 332669769682073402p256 - 140048 |-> 1000000000000000000p256 - 140094 |-> 1p256 - 140210 |-> 332669763112447307p256 - 140211 |-> 1000000000000000000p256 - 140257 |-> 1p256 - 140373 |-> 332669756561885369p256 - 140374 |-> 1000000000000000000p256 - 140420 |-> 1p256 - 140536 |-> 332669750030310216p256 - 140537 |-> 1000000000000000000p256 - 140583 |-> 1p256 - 140699 |-> 332669743517644875p256 - 140700 |-> 1000000000000000000p256 - 140746 |-> 1p256 - 140862 |-> 332669737023812778p256 - 140863 |-> 1000000000000000000p256 - 140909 |-> 1p256 - 141025 |-> 332669730548737754p256 - 141026 |-> 1000000000000000000p256 - 141072 |-> 1p256 - 141188 |-> 332669724092344026p256 - 141189 |-> 1000000000000000000p256 - 141235 |-> 1p256 - 141351 |-> 332669717654556213p256 - 141352 |-> 1000000000000000000p256 - 141398 |-> 1p256 - 141514 |-> 332669711235299322p256 - 141515 |-> 1000000000000000000p256 - 141561 |-> 1p256 - 141677 |-> 332669704834498750p256 - 141678 |-> 1000000000000000000p256 - 141724 |-> 1p256 - 141840 |-> 332669698452080279p256 - 141841 |-> 1000000000000000000p256 - 141887 |-> 1p256 - 142003 |-> 332669692087970074p256 - 142004 |-> 1000000000000000000p256 - 142050 |-> 1p256 - 142166 |-> 332669685742094681p256 - 142167 |-> 1000000000000000000p256 - 142213 |-> 1p256 - 142329 |-> 332669679414381027p256 - 142330 |-> 1000000000000000000p256 - 142376 |-> 1p256 - 142492 |-> 332669673104756411p256 - 142493 |-> 1000000000000000000p256 - 142539 |-> 1p256 - 142655 |-> 332669666813148508p256 - 142656 |-> 1000000000000000000p256 - 142702 |-> 1p256 - 142818 |-> 332669660539485365p256 - 142819 |-> 1000000000000000000p256 - 142865 |-> 1p256 - 142981 |-> 332669654283695396p256 - 142982 |-> 1000000000000000000p256 - 143028 |-> 1p256 - 143144 |-> 332669648045707384p256 - 143145 |-> 1000000000000000000p256 - 143191 |-> 1p256 - 143307 |-> 332669641825450475p256 - 143308 |-> 1000000000000000000p256 - 143354 |-> 1p256 - 143470 |-> 332669635622854178p256 - 143471 |-> 1000000000000000000p256 - 143517 |-> 1p256 - 143633 |-> 332669629437848362p256 - 143634 |-> 1000000000000000000p256 - 143680 |-> 1p256 - 143796 |-> 332669623270363252p256 - 143797 |-> 1000000000000000000p256 - 143843 |-> 1p256 - 143959 |-> 332669617120329430p256 - 143960 |-> 1000000000000000000p256 - 144006 |-> 1p256 - 144122 |-> 332669610987677832p256 - 144123 |-> 1000000000000000000p256 - 144169 |-> 1p256 - 144285 |-> 332669604872339744p256 - 144286 |-> 1000000000000000000p256 - 144332 |-> 1p256 - 144448 |-> 332669598774246800p256 - 144449 |-> 1000000000000000000p256 - 144495 |-> 1p256 - 144611 |-> 332669592693330982p256 - 144612 |-> 1000000000000000000p256 - 144658 |-> 1p256 - 144774 |-> 332669586629524617p256 - 144775 |-> 1000000000000000000p256 - 144821 |-> 1p256 - 144937 |-> 332669580582760373p256 - 144938 |-> 1000000000000000000p256 - 144984 |-> 1p256 - 145100 |-> 332669574552971260p256 - 145101 |-> 1000000000000000000p256 - 145147 |-> 1p256 - 145263 |-> 332669568540090624p256 - 145264 |-> 1000000000000000000p256 - 145310 |-> 1p256 - 145426 |-> 332669562544052148p256 - 145427 |-> 1000000000000000000p256 - 145473 |-> 1p256 - 145589 |-> 332669556564789852p256 - 145590 |-> 1000000000000000000p256 - 145636 |-> 1p256 - 145752 |-> 332669550602238083p256 - 145753 |-> 1000000000000000000p256 - 145799 |-> 1p256 - 145915 |-> 332669544656331521p256 - 145916 |-> 1000000000000000000p256 - 145962 |-> 1p256 - 146078 |-> 332669538727005174p256 - 146079 |-> 1000000000000000000p256 - 146125 |-> 1p256 - 146241 |-> 332669532814194376p256 - 146242 |-> 1000000000000000000p256 - 146288 |-> 1p256 - 146404 |-> 332669526917834782p256 - 146405 |-> 1000000000000000000p256 - 146451 |-> 1p256 - 146567 |-> 332669521037862374p256 - 146568 |-> 1000000000000000000p256 - 146614 |-> 1p256 - 146730 |-> 332669515174213449p256 - 146731 |-> 1000000000000000000p256 - 146777 |-> 1p256 - 146893 |-> 332669509326824625p256 - 146894 |-> 1000000000000000000p256 - 146940 |-> 1p256 - 147056 |-> 332669503495632837p256 - 147057 |-> 1000000000000000000p256 - 147103 |-> 1p256 - 147219 |-> 332669497680575330p256 - 147220 |-> 1000000000000000000p256 - 147266 |-> 1p256 - 147382 |-> 332669491881589666p256 - 147383 |-> 1000000000000000000p256 - 147429 |-> 1p256 - 147545 |-> 332669486098613714p256 - 147546 |-> 1000000000000000000p256 - 147592 |-> 1p256 - 147708 |-> 332669480331585653p256 - 147709 |-> 1000000000000000000p256 - 147755 |-> 1p256 - 147871 |-> 332669474580443968p256 - 147872 |-> 1000000000000000000p256 - 147918 |-> 1p256 - 148034 |-> 332669468845127450p256 - 148035 |-> 1000000000000000000p256 - 148081 |-> 1p256 - 148197 |-> 332669463125575192p256 - 148198 |-> 1000000000000000000p256 - 148244 |-> 1p256 - 148360 |-> 332669457421726587p256 - 148361 |-> 1000000000000000000p256 - 148407 |-> 1p256 - 148523 |-> 332669451733521330p256 - 148524 |-> 1000000000000000000p256 - 148570 |-> 1p256 - 148686 |-> 332669446060899410p256 - 148687 |-> 1000000000000000000p256 - 148733 |-> 1p256 - 148849 |-> 332669440403801115p256 - 148850 |-> 1000000000000000000p256 - 148896 |-> 1p256 - 149012 |-> 332669434762167025p256 - 149013 |-> 1000000000000000000p256 - 149059 |-> 1p256 - 149175 |-> 332669429135938012p256 - 149176 |-> 1000000000000000000p256 - 149222 |-> 1p256 - 149338 |-> 332669423525055240p256 - 149339 |-> 1000000000000000000p256 - 149385 |-> 1p256 - 149501 |-> 332669417929460160p256 - 149502 |-> 1000000000000000000p256 - 149548 |-> 1p256 - 149664 |-> 332669412349094510p256 - 149665 |-> 1000000000000000000p256 - 149711 |-> 1p256 - 149827 |-> 332669406783900314p256 - 149828 |-> 1000000000000000000p256 - 149874 |-> 1p256 - 149990 |-> 332669401233819880p256 - 149991 |-> 1000000000000000000p256 - 150037 |-> 1p256 - 150153 |-> 332669395698795795p256 - 150154 |-> 1000000000000000000p256 - 150200 |-> 1p256 - 150316 |-> 332669390178770930p256 - 150317 |-> 1000000000000000000p256 - 150363 |-> 1p256 - 150479 |-> 332669384673688432p256 - 150480 |-> 1000000000000000000p256 - 150526 |-> 1p256 - 150642 |-> 332669379183491725p256 - 150643 |-> 1000000000000000000p256 - 150689 |-> 1p256 - 150805 |-> 332669373708124508p256 - 150806 |-> 1000000000000000000p256 - 150852 |-> 1p256 - 150968 |-> 332669368247530755p256 - 150969 |-> 1000000000000000000p256 - 151015 |-> 1p256 - 151131 |-> 332669362801654710p256 - 151132 |-> 1000000000000000000p256 - 151178 |-> 1p256 - 151294 |-> 332669357370440889p256 - 151295 |-> 1000000000000000000p256 - 151341 |-> 1p256 - 151457 |-> 332669351953834074p256 - 151458 |-> 1000000000000000000p256 - 151504 |-> 1p256 - 151620 |-> 332669346551779318p256 - 151621 |-> 1000000000000000000p256 - 151667 |-> 1p256 - 151783 |-> 332669341164221936p256 - 151784 |-> 1000000000000000000p256 - 151830 |-> 1p256 - 151946 |-> 332669335791107508p256 - 151947 |-> 1000000000000000000p256 - 151993 |-> 1p256 - 152109 |-> 332669330432381879p256 - 152110 |-> 1000000000000000000p256 - 152156 |-> 1p256 - 152272 |-> 332669325087991150p256 - 152273 |-> 1000000000000000000p256 - 152319 |-> 1p256 - 152435 |-> 332669319757881684p256 - 152436 |-> 1000000000000000000p256 - 152482 |-> 1p256 - 152598 |-> 332669314442000104p256 - 152599 |-> 1000000000000000000p256 - 152645 |-> 1p256 - 152761 |-> 332669309140293284p256 - 152762 |-> 1000000000000000000p256 - 152808 |-> 1p256 - 152924 |-> 332669303852708358p256 - 152925 |-> 1000000000000000000p256 - 152971 |-> 1p256 - 153087 |-> 332669298579192710p256 - 153088 |-> 1000000000000000000p256 - 153134 |-> 1p256 - 153250 |-> 332669293319693976p256 - 153251 |-> 1000000000000000000p256 - 153297 |-> 1p256 - 153413 |-> 332669288074160045p256 - 153414 |-> 1000000000000000000p256 - 153460 |-> 1p256 - 153576 |-> 332669282842539051p256 - 153577 |-> 1000000000000000000p256 - 153623 |-> 1p256 - 153739 |-> 332669277624779378p256 - 153740 |-> 1000000000000000000p256 - 153786 |-> 1p256 - 153902 |-> 332669272420829656p256 - 153903 |-> 1000000000000000000p256 - 153949 |-> 1p256 - 154065 |-> 332669267230638758p256 - 154066 |-> 1000000000000000000p256 - 154112 |-> 1p256 - 154228 |-> 332669262054155801p256 - 154229 |-> 1000000000000000000p256 - 154275 |-> 1p256 - 154391 |-> 332669256891330145p256 - 154392 |-> 1000000000000000000p256 - 154438 |-> 1p256 - 154554 |-> 332669251742111387p256 - 154555 |-> 1000000000000000000p256 - 154601 |-> 1p256 - 154717 |-> 332669246606449367p256 - 154718 |-> 1000000000000000000p256 - 154764 |-> 1p256 - 154880 |-> 332669241484294159p256 - 154881 |-> 1000000000000000000p256 - 154927 |-> 1p256 - 155043 |-> 332669236375596075p256 - 155044 |-> 1000000000000000000p256 - 155090 |-> 1p256 - 155206 |-> 332669231280305661p256 - 155207 |-> 1000000000000000000p256 - 155253 |-> 1p256 - 155369 |-> 332669226198373698p256 - 155370 |-> 1000000000000000000p256 - 155416 |-> 1p256 - 155532 |-> 332669221129751197p256 - 155533 |-> 1000000000000000000p256 - 155579 |-> 1p256 - 155695 |-> 332669216074389401p256 - 155696 |-> 1000000000000000000p256 - 155742 |-> 1p256 - 155858 |-> 332669211032239782p256 - 155859 |-> 1000000000000000000p256 - 155905 |-> 1p256 - 156021 |-> 332669206003254040p256 - 156022 |-> 1000000000000000000p256 - 156068 |-> 1p256 - 156184 |-> 332669200987384103p256 - 156185 |-> 1000000000000000000p256 - 156231 |-> 1p256 - 156347 |-> 332669195984582123p256 - 156348 |-> 1000000000000000000p256 - 156394 |-> 1p256 - 156510 |-> 332669190994800476p256 - 156511 |-> 1000000000000000000p256 - 156557 |-> 1p256 - 156673 |-> 332669186017991762p256 - 156674 |-> 1000000000000000000p256 - 156720 |-> 1p256 - 156836 |-> 332669181054108803p256 - 156837 |-> 1000000000000000000p256 - 156883 |-> 1p256 - 156999 |-> 332669176103104641p256 - 157000 |-> 1000000000000000000p256 - 157046 |-> 1p256 - 157162 |-> 332669171164932535p256 - 157163 |-> 1000000000000000000p256 + 125943 |-> 1p256 + 126059 |-> 499248873309964947p256 + 126060 |-> 1000000000000000000p256 + 126136 |-> 1p256 + 126252 |-> 499248873309964947p256 + 126253 |-> 1000000000000000000p256 + 126329 |-> 1p256 + 126445 |-> 499248873309964947p256 + 126446 |-> 1000000000000000000p256 + 126522 |-> 1p256 + 126638 |-> 499248873309964947p256 + 126639 |-> 1000000000000000000p256 + 126715 |-> 1p256 + 126831 |-> 499248873309964947p256 + 126832 |-> 1000000000000000000p256 + 126908 |-> 1p256 + 127024 |-> 499248873309964947p256 + 127025 |-> 1000000000000000000p256 + 127101 |-> 1p256 + 127217 |-> 499248873309964947p256 + 127218 |-> 1000000000000000000p256 + 127294 |-> 1p256 + 127410 |-> 499248873309964947p256 + 127411 |-> 1000000000000000000p256 + 127487 |-> 1p256 + 127603 |-> 499248873309964947p256 + 127604 |-> 1000000000000000000p256 + 127680 |-> 1p256 + 127796 |-> 499248873309964947p256 + 127797 |-> 1000000000000000000p256 + 127873 |-> 1p256 + 127989 |-> 499248873309964947p256 + 127990 |-> 1000000000000000000p256 + 128066 |-> 1p256 + 128182 |-> 499248873309964947p256 + 128183 |-> 1000000000000000000p256 + 128259 |-> 1p256 + 128375 |-> 499248873309964947p256 + 128376 |-> 1000000000000000000p256 + 128452 |-> 1p256 + 128568 |-> 499248873309964947p256 + 128569 |-> 1000000000000000000p256 + 128645 |-> 1p256 + 128761 |-> 499248873309964947p256 + 128762 |-> 1000000000000000000p256 + 128838 |-> 1p256 + 128954 |-> 499248873309964947p256 + 128955 |-> 1000000000000000000p256 + 129031 |-> 1p256 + 129147 |-> 499248873309964947p256 + 129148 |-> 1000000000000000000p256 + 129224 |-> 1p256 + 129340 |-> 499248873309964947p256 + 129341 |-> 1000000000000000000p256 + 129417 |-> 1p256 + 129533 |-> 499248873309964947p256 + 129534 |-> 1000000000000000000p256 + 129610 |-> 1p256 + 129726 |-> 499248873309964947p256 + 129727 |-> 1000000000000000000p256 + 129803 |-> 1p256 + 129919 |-> 499248873309964947p256 + 129920 |-> 1000000000000000000p256 + 129996 |-> 1p256 + 130112 |-> 499248873309964947p256 + 130113 |-> 1000000000000000000p256 + 130189 |-> 1p256 + 130305 |-> 499248873309964947p256 + 130306 |-> 1000000000000000000p256 + 130382 |-> 1p256 + 130498 |-> 499248873309964947p256 + 130499 |-> 1000000000000000000p256 + 130575 |-> 1p256 + 130691 |-> 499248873309964947p256 + 130692 |-> 1000000000000000000p256 + 130768 |-> 1p256 + 130884 |-> 499248873309964947p256 + 130885 |-> 1000000000000000000p256 + 130961 |-> 1p256 + 131077 |-> 499248873309964947p256 + 131078 |-> 1000000000000000000p256 + 131154 |-> 1p256 + 131270 |-> 499248873309964947p256 + 131271 |-> 1000000000000000000p256 + 131347 |-> 1p256 + 131463 |-> 499248873309964947p256 + 131464 |-> 1000000000000000000p256 + 131540 |-> 1p256 + 131656 |-> 499248873309964947p256 + 131657 |-> 1000000000000000000p256 + 131733 |-> 1p256 + 131849 |-> 499248873309964947p256 + 131850 |-> 1000000000000000000p256 + 131926 |-> 1p256 + 132042 |-> 499248873309964947p256 + 132043 |-> 1000000000000000000p256 + 132119 |-> 1p256 + 132235 |-> 499248873309964947p256 + 132236 |-> 1000000000000000000p256 + 132312 |-> 1p256 + 132428 |-> 499248873309964947p256 + 132429 |-> 1000000000000000000p256 + 132505 |-> 1p256 + 132621 |-> 499248873309964947p256 + 132622 |-> 1000000000000000000p256 + 132698 |-> 1p256 + 132814 |-> 499248873309964947p256 + 132815 |-> 1000000000000000000p256 + 132891 |-> 1p256 + 133007 |-> 499248873309964947p256 + 133008 |-> 1000000000000000000p256 + 133084 |-> 1p256 + 133200 |-> 499248873309964947p256 + 133201 |-> 1000000000000000000p256 + 133277 |-> 1p256 + 133393 |-> 499248873309964947p256 + 133394 |-> 1000000000000000000p256 + 133470 |-> 1p256 + 133586 |-> 499248873309964947p256 + 133587 |-> 1000000000000000000p256 + 133663 |-> 1p256 + 133779 |-> 499248873309964947p256 + 133780 |-> 1000000000000000000p256 + 133856 |-> 1p256 + 133972 |-> 499248873309964947p256 + 133973 |-> 1000000000000000000p256 + 134049 |-> 1p256 + 134165 |-> 499248873309964947p256 + 134166 |-> 1000000000000000000p256 + 134242 |-> 1p256 + 134358 |-> 499248873309964947p256 + 134359 |-> 1000000000000000000p256 + 134435 |-> 1p256 + 134551 |-> 499248873309964947p256 + 134552 |-> 1000000000000000000p256 + 134628 |-> 1p256 + 134744 |-> 499248873309964947p256 + 134745 |-> 1000000000000000000p256 + 134821 |-> 1p256 + 134937 |-> 499248873309964947p256 + 134938 |-> 1000000000000000000p256 + 135014 |-> 1p256 + 135130 |-> 499248873309964947p256 + 135131 |-> 1000000000000000000p256 + 135207 |-> 1p256 + 135323 |-> 499248873309964947p256 + 135324 |-> 1000000000000000000p256 + 135400 |-> 1p256 + 135516 |-> 499248873309964947p256 + 135517 |-> 1000000000000000000p256 + 135593 |-> 1p256 + 135709 |-> 499248873309964947p256 + 135710 |-> 1000000000000000000p256 + 135786 |-> 1p256 + 135902 |-> 499248873309964947p256 + 135903 |-> 1000000000000000000p256 + 135979 |-> 1p256 + 136095 |-> 499248873309964947p256 + 136096 |-> 1000000000000000000p256 + 136172 |-> 1p256 + 136288 |-> 499248873309964947p256 + 136289 |-> 1000000000000000000p256 + 136365 |-> 1p256 + 136481 |-> 499248873309964947p256 + 136482 |-> 1000000000000000000p256 + 136558 |-> 1p256 + 136674 |-> 499248873309964947p256 + 136675 |-> 1000000000000000000p256 + 136751 |-> 1p256 + 136867 |-> 499248873309964947p256 + 136868 |-> 1000000000000000000p256 + 136944 |-> 1p256 + 137060 |-> 499248873309964947p256 + 137061 |-> 1000000000000000000p256 + 137137 |-> 1p256 + 137253 |-> 499248873309964947p256 + 137254 |-> 1000000000000000000p256 + 137330 |-> 1p256 + 137446 |-> 499248873309964947p256 + 137447 |-> 1000000000000000000p256 + 137523 |-> 1p256 + 137639 |-> 499248873309964947p256 + 137640 |-> 1000000000000000000p256 + 137716 |-> 1p256 + 137832 |-> 499248873309964947p256 + 137833 |-> 1000000000000000000p256 + 137909 |-> 1p256 + 138025 |-> 499248873309964947p256 + 138026 |-> 1000000000000000000p256 + 138102 |-> 1p256 + 138218 |-> 499248873309964947p256 + 138219 |-> 1000000000000000000p256 + 138295 |-> 1p256 + 138411 |-> 499248873309964947p256 + 138412 |-> 1000000000000000000p256 + 138488 |-> 1p256 + 138604 |-> 499248873309964947p256 + 138605 |-> 1000000000000000000p256 + 138681 |-> 1p256 + 138797 |-> 499248873309964947p256 + 138798 |-> 1000000000000000000p256 + 138874 |-> 1p256 + 138990 |-> 499248873309964947p256 + 138991 |-> 1000000000000000000p256 + 139067 |-> 1p256 + 139183 |-> 499248873309964947p256 + 139184 |-> 1000000000000000000p256 + 139260 |-> 1p256 + 139376 |-> 499248873309964947p256 + 139377 |-> 1000000000000000000p256 + 139453 |-> 1p256 + 139569 |-> 499248873309964947p256 + 139570 |-> 1000000000000000000p256 + 139646 |-> 1p256 + 139762 |-> 499248873309964947p256 + 139763 |-> 1000000000000000000p256 + 139839 |-> 1p256 + 139955 |-> 499248873309964947p256 + 139956 |-> 1000000000000000000p256 + 140032 |-> 1p256 + 140148 |-> 499248873309964947p256 + 140149 |-> 1000000000000000000p256 + 140225 |-> 1p256 + 140341 |-> 499248873309964947p256 + 140342 |-> 1000000000000000000p256 + 140418 |-> 1p256 + 140534 |-> 499248873309964947p256 + 140535 |-> 1000000000000000000p256 + 140611 |-> 1p256 + 140727 |-> 499248873309964947p256 + 140728 |-> 1000000000000000000p256 + 140804 |-> 1p256 + 140920 |-> 499248873309964947p256 + 140921 |-> 1000000000000000000p256 + 140997 |-> 1p256 + 141113 |-> 499248873309964947p256 + 141114 |-> 1000000000000000000p256 + 141190 |-> 1p256 + 141306 |-> 499248873309964947p256 + 141307 |-> 1000000000000000000p256 + 141383 |-> 1p256 + 141499 |-> 499248873309964947p256 + 141500 |-> 1000000000000000000p256 + 141576 |-> 1p256 + 141692 |-> 499248873309964947p256 + 141693 |-> 1000000000000000000p256 + 141769 |-> 1p256 + 141885 |-> 499248873309964947p256 + 141886 |-> 1000000000000000000p256 + 141962 |-> 1p256 + 142078 |-> 499248873309964947p256 + 142079 |-> 1000000000000000000p256 + 142155 |-> 1p256 + 142271 |-> 499248873309964947p256 + 142272 |-> 1000000000000000000p256 + 142348 |-> 1p256 + 142464 |-> 499248873309964947p256 + 142465 |-> 1000000000000000000p256 + 142541 |-> 1p256 + 142657 |-> 499248873309964947p256 + 142658 |-> 1000000000000000000p256 + 142734 |-> 1p256 + 142850 |-> 499248873309964947p256 + 142851 |-> 1000000000000000000p256 + 142927 |-> 1p256 + 143043 |-> 499248873309964947p256 + 143044 |-> 1000000000000000000p256 + 143120 |-> 1p256 + 143236 |-> 499248873309964947p256 + 143237 |-> 1000000000000000000p256 + 143313 |-> 1p256 + 143429 |-> 499248873309964947p256 + 143430 |-> 1000000000000000000p256 + 143506 |-> 1p256 + 143622 |-> 499248873309964947p256 + 143623 |-> 1000000000000000000p256 + 143699 |-> 1p256 + 143815 |-> 499248873309964947p256 + 143816 |-> 1000000000000000000p256 + 143892 |-> 1p256 + 144008 |-> 499248873309964947p256 + 144009 |-> 1000000000000000000p256 + 144085 |-> 1p256 + 144201 |-> 499248873309964947p256 + 144202 |-> 1000000000000000000p256 + 144278 |-> 1p256 + 144394 |-> 499248873309964947p256 + 144395 |-> 1000000000000000000p256 + 144471 |-> 1p256 + 144587 |-> 499248873309964947p256 + 144588 |-> 1000000000000000000p256 + 144664 |-> 1p256 + 144780 |-> 499248873309964947p256 + 144781 |-> 1000000000000000000p256 + 144857 |-> 1p256 + 144973 |-> 499248873309964947p256 + 144974 |-> 1000000000000000000p256 + 145050 |-> 1p256 + 145166 |-> 499248873309964947p256 + 145167 |-> 1000000000000000000p256 + 145243 |-> 1p256 + 145359 |-> 499248873309964947p256 + 145360 |-> 1000000000000000000p256 + 145436 |-> 1p256 + 145552 |-> 499248873309964947p256 + 145553 |-> 1000000000000000000p256 + 145629 |-> 1p256 + 145745 |-> 499248873309964947p256 + 145746 |-> 1000000000000000000p256 + 145822 |-> 1p256 + 145938 |-> 499248873309964947p256 + 145939 |-> 1000000000000000000p256 + 146015 |-> 1p256 + 146131 |-> 499248873309964947p256 + 146132 |-> 1000000000000000000p256 + 146208 |-> 1p256 + 146324 |-> 499248873309964947p256 + 146325 |-> 1000000000000000000p256 + 146401 |-> 1p256 + 146517 |-> 499248873309964947p256 + 146518 |-> 1000000000000000000p256 + 146594 |-> 1p256 + 146710 |-> 499248873309964947p256 + 146711 |-> 1000000000000000000p256 + 146787 |-> 1p256 + 146903 |-> 499248873309964947p256 + 146904 |-> 1000000000000000000p256 + 146980 |-> 1p256 + 147096 |-> 499248873309964947p256 + 147097 |-> 1000000000000000000p256 + 147173 |-> 1p256 + 147289 |-> 499248873309964947p256 + 147290 |-> 1000000000000000000p256 + 147366 |-> 1p256 + 147482 |-> 499248873309964947p256 + 147483 |-> 1000000000000000000p256 + 147559 |-> 1p256 + 147675 |-> 499248873309964947p256 + 147676 |-> 1000000000000000000p256 + 147752 |-> 1p256 + 147868 |-> 499248873309964947p256 + 147869 |-> 1000000000000000000p256 + 147945 |-> 1p256 + 148061 |-> 499248873309964947p256 + 148062 |-> 1000000000000000000p256 + 148138 |-> 1p256 + 148254 |-> 499248873309964947p256 + 148255 |-> 1000000000000000000p256 + 148331 |-> 1p256 + 148447 |-> 499248873309964947p256 + 148448 |-> 1000000000000000000p256 + 148524 |-> 1p256 + 148640 |-> 499248873309964947p256 + 148641 |-> 1000000000000000000p256 + 148717 |-> 1p256 + 148833 |-> 499248873309964947p256 + 148834 |-> 1000000000000000000p256 + 148910 |-> 1p256 + 149026 |-> 499248873309964947p256 + 149027 |-> 1000000000000000000p256 + 149103 |-> 1p256 + 149219 |-> 499248873309964947p256 + 149220 |-> 1000000000000000000p256 + 149296 |-> 1p256 + 149412 |-> 499248873309964947p256 + 149413 |-> 1000000000000000000p256 + 149489 |-> 1p256 + 149605 |-> 499248873309964947p256 + 149606 |-> 1000000000000000000p256 + 149682 |-> 1p256 + 149798 |-> 499248873309964947p256 + 149799 |-> 1000000000000000000p256 + 149875 |-> 1p256 + 149991 |-> 499248873309964947p256 + 149992 |-> 1000000000000000000p256 + 150068 |-> 1p256 + 150184 |-> 499248873309964947p256 + 150185 |-> 1000000000000000000p256 + 150261 |-> 1p256 + 150377 |-> 499248873309964947p256 + 150378 |-> 1000000000000000000p256 + 150454 |-> 1p256 + 150570 |-> 499248873309964947p256 + 150571 |-> 1000000000000000000p256 + 150647 |-> 1p256 + 150763 |-> 499248873309964947p256 + 150764 |-> 1000000000000000000p256 + 150840 |-> 1p256 + 150956 |-> 499248873309964947p256 + 150957 |-> 1000000000000000000p256 + 151033 |-> 1p256 + 151149 |-> 499248873309964947p256 + 151150 |-> 1000000000000000000p256 + 151226 |-> 1p256 + 151342 |-> 499248873309964947p256 + 151343 |-> 1000000000000000000p256 + 151419 |-> 1p256 + 151535 |-> 499248873309964947p256 + 151536 |-> 1000000000000000000p256 + 151612 |-> 1p256 + 151728 |-> 499248873309964947p256 + 151729 |-> 1000000000000000000p256 + 151805 |-> 1p256 + 151921 |-> 499248873309964947p256 + 151922 |-> 1000000000000000000p256 + 151998 |-> 1p256 + 152114 |-> 499248873309964947p256 + 152115 |-> 1000000000000000000p256 + 152191 |-> 1p256 + 152307 |-> 499248873309964947p256 + 152308 |-> 1000000000000000000p256 + 152384 |-> 1p256 + 152500 |-> 499248873309964947p256 + 152501 |-> 1000000000000000000p256 + 152577 |-> 1p256 + 152693 |-> 499248873309964947p256 + 152694 |-> 1000000000000000000p256 + 152770 |-> 1p256 + 152886 |-> 499248873309964947p256 + 152887 |-> 1000000000000000000p256 + 152963 |-> 1p256 + 153079 |-> 499248873309964947p256 + 153080 |-> 1000000000000000000p256 + 153156 |-> 1p256 + 153272 |-> 499248873309964947p256 + 153273 |-> 1000000000000000000p256 + 153349 |-> 1p256 + 153465 |-> 499248873309964947p256 + 153466 |-> 1000000000000000000p256 + 153542 |-> 1p256 + 153658 |-> 499248873309964947p256 + 153659 |-> 1000000000000000000p256 + 153735 |-> 1p256 + 153851 |-> 499248873309964947p256 + 153852 |-> 1000000000000000000p256 + 153928 |-> 1p256 + 154044 |-> 499248873309964947p256 + 154045 |-> 1000000000000000000p256 + 154121 |-> 1p256 + 154237 |-> 499248873309964947p256 + 154238 |-> 1000000000000000000p256 + 154314 |-> 1p256 + 154430 |-> 499248873309964947p256 + 154431 |-> 1000000000000000000p256 + 154507 |-> 1p256 + 154623 |-> 499248873309964947p256 + 154624 |-> 1000000000000000000p256 + 154700 |-> 1p256 + 154816 |-> 499248873309964947p256 + 154817 |-> 1000000000000000000p256 + 154893 |-> 1p256 + 155009 |-> 499248873309964947p256 + 155010 |-> 1000000000000000000p256 + 155086 |-> 1p256 + 155202 |-> 499248873309964947p256 + 155203 |-> 1000000000000000000p256 + 155279 |-> 1p256 + 155395 |-> 499248873309964947p256 + 155396 |-> 1000000000000000000p256 + 155472 |-> 1p256 + 155588 |-> 499248873309964947p256 + 155589 |-> 1000000000000000000p256 + 155665 |-> 1p256 + 155781 |-> 499248873309964947p256 + 155782 |-> 1000000000000000000p256 + 155858 |-> 1p256 + 155974 |-> 499248873309964947p256 + 155975 |-> 1000000000000000000p256 + 156051 |-> 1p256 + 156167 |-> 499248873309964947p256 + 156168 |-> 1000000000000000000p256 + 156244 |-> 1p256 + 156360 |-> 499248873309964947p256 + 156361 |-> 1000000000000000000p256 + 156437 |-> 1p256 + 156553 |-> 499248873309964947p256 + 156554 |-> 1000000000000000000p256 + 156630 |-> 1p256 + 156746 |-> 499248873309964947p256 + 156747 |-> 1000000000000000000p256 + 156823 |-> 1p256 + 156939 |-> 499248873309964947p256 + 156940 |-> 1000000000000000000p256 + 157016 |-> 1p256 + 157132 |-> 499248873309964947p256 + 157133 |-> 1000000000000000000p256 157209 |-> 1p256 - 157325 |-> 332669166239545966p256 + 157325 |-> 499248873309964947p256 157326 |-> 1000000000000000000p256 - 157372 |-> 1p256 - 157488 |-> 332669161326898628p256 - 157489 |-> 1000000000000000000p256 - 157535 |-> 1p256 - 157651 |-> 332669156426944432p256 - 157652 |-> 1000000000000000000p256 - 157698 |-> 1p256 - 157814 |-> 332669151539637503p256 - 157815 |-> 1000000000000000000p256 - 157861 |-> 1p256 - 157977 |-> 332669146664932179p256 - 157978 |-> 1000000000000000000p256 - 158024 |-> 1p256 - 158140 |-> 332669141802783010p256 - 158141 |-> 1000000000000000000p256 - 158187 |-> 1p256 - 158303 |-> 332669136953144756p256 - 158304 |-> 1000000000000000000p256 - 158350 |-> 1p256 - 158466 |-> 332669132115972386p256 - 158467 |-> 1000000000000000000p256 - 158513 |-> 1p256 - 158629 |-> 332669127291221079p256 - 158630 |-> 1000000000000000000p256 - 158676 |-> 1p256 - 158792 |-> 332669122478846219p256 - 158793 |-> 1000000000000000000p256 - 158839 |-> 1p256 - 158955 |-> 332669117678803398p256 - 158956 |-> 1000000000000000000p256 - 159002 |-> 1p256 - 159118 |-> 332669112891048410p256 - 159119 |-> 1000000000000000000p256 - 159165 |-> 1p256 - 159281 |-> 332669108115537254p256 - 159282 |-> 1000000000000000000p256 - 159328 |-> 1p256 - 159444 |-> 332669103352226131p256 - 159445 |-> 1000000000000000000p256 - 159491 |-> 1p256 - 159607 |-> 332669098601071445p256 - 159608 |-> 1000000000000000000p256 - 159654 |-> 1p256 - 159770 |-> 332669093862029798p256 - 159771 |-> 1000000000000000000p256 - 159817 |-> 1p256 - 159933 |-> 332669089135057992p256 - 159934 |-> 1000000000000000000p256 - 159980 |-> 1p256 - 160096 |-> 332669084420113026p256 - 160097 |-> 1000000000000000000p256 - 160143 |-> 1p256 - 160259 |-> 332669079717152096p256 - 160260 |-> 1000000000000000000p256 - 160306 |-> 1p256 - 160422 |-> 332669075026132595p256 - 160423 |-> 1000000000000000000p256 - 160469 |-> 1p256 - 160585 |-> 332669070347012109p256 - 160586 |-> 1000000000000000000p256 - 160632 |-> 1p256 - 160748 |-> 332669065679748419p256 - 160749 |-> 1000000000000000000p256 - 160795 |-> 1p256 - 160911 |-> 332669061024299497p256 - 160912 |-> 1000000000000000000p256 - 160958 |-> 1p256 - 161074 |-> 332669056380623507p256 - 161075 |-> 1000000000000000000p256 - 161121 |-> 1p256 - 161237 |-> 332669051748678803p256 - 161238 |-> 1000000000000000000p256 - 161284 |-> 1p256 - 161400 |-> 332669047128423929p256 - 161401 |-> 1000000000000000000p256 - 161447 |-> 1p256 - 161563 |-> 332669042519817616p256 - 161564 |-> 1000000000000000000p256 - 161610 |-> 1p256 - 161726 |-> 332669037922818783p256 - 161727 |-> 1000000000000000000p256 - 161773 |-> 1p256 - 161889 |-> 332669033337386535p256 - 161890 |-> 1000000000000000000p256 - 161936 |-> 1p256 - 162052 |-> 332669028763480162p256 - 162053 |-> 1000000000000000000p256 - 162099 |-> 1p256 - 162215 |-> 332669024201059138p256 - 162216 |-> 1000000000000000000p256 - 162262 |-> 1p256 - 162378 |-> 332669019650083121p256 - 162379 |-> 1000000000000000000p256 - 162425 |-> 1p256 - 162541 |-> 332669015110511948p256 - 162542 |-> 1000000000000000000p256 - 162588 |-> 1p256 - 162704 |-> 332669010582305641p256 - 162705 |-> 1000000000000000000p256 - 162751 |-> 1p256 - 162867 |-> 332669006065424400p256 - 162868 |-> 1000000000000000000p256 - 162914 |-> 1p256 - 163030 |-> 332669001559828603p256 + 157402 |-> 1p256 + 157518 |-> 499248873309964947p256 + 157519 |-> 1000000000000000000p256 + 157595 |-> 1p256 + 157711 |-> 499248873309964947p256 + 157712 |-> 1000000000000000000p256 + 157788 |-> 1p256 + 157904 |-> 499248873309964947p256 + 157905 |-> 1000000000000000000p256 + 157981 |-> 1p256 + 158097 |-> 499248873309964947p256 + 158098 |-> 1000000000000000000p256 + 158174 |-> 1p256 + 158290 |-> 499248873309964947p256 + 158291 |-> 1000000000000000000p256 + 158367 |-> 1p256 + 158483 |-> 499248873309964947p256 + 158484 |-> 1000000000000000000p256 + 158560 |-> 1p256 + 158676 |-> 499248873309964947p256 + 158677 |-> 1000000000000000000p256 + 158753 |-> 1p256 + 158869 |-> 499248873309964947p256 + 158870 |-> 1000000000000000000p256 + 158946 |-> 1p256 + 159062 |-> 499248873309964947p256 + 159063 |-> 1000000000000000000p256 + 159139 |-> 1p256 + 159255 |-> 499248873309964947p256 + 159256 |-> 1000000000000000000p256 + 159332 |-> 1p256 + 159448 |-> 499248873309964947p256 + 159449 |-> 1000000000000000000p256 + 159525 |-> 1p256 + 159641 |-> 499248873309964947p256 + 159642 |-> 1000000000000000000p256 + 159718 |-> 1p256 + 159834 |-> 499248873309964947p256 + 159835 |-> 1000000000000000000p256 + 159911 |-> 1p256 + 160027 |-> 499248873309964947p256 + 160028 |-> 1000000000000000000p256 + 160104 |-> 1p256 + 160220 |-> 499248873309964947p256 + 160221 |-> 1000000000000000000p256 + 160297 |-> 1p256 + 160413 |-> 499248873309964947p256 + 160414 |-> 1000000000000000000p256 + 160490 |-> 1p256 + 160606 |-> 499248873309964947p256 + 160607 |-> 1000000000000000000p256 + 160683 |-> 1p256 + 160799 |-> 499248873309964947p256 + 160800 |-> 1000000000000000000p256 + 160876 |-> 1p256 + 160992 |-> 499248873309964947p256 + 160993 |-> 1000000000000000000p256 + 161069 |-> 1p256 + 161185 |-> 499248873309964947p256 + 161186 |-> 1000000000000000000p256 + 161262 |-> 1p256 + 161378 |-> 499248873309964947p256 + 161379 |-> 1000000000000000000p256 + 161455 |-> 1p256 + 161571 |-> 499248873309964947p256 + 161572 |-> 1000000000000000000p256 + 161648 |-> 1p256 + 161764 |-> 499248873309964947p256 + 161765 |-> 1000000000000000000p256 + 161841 |-> 1p256 + 161957 |-> 499248873309964947p256 + 161958 |-> 1000000000000000000p256 + 162034 |-> 1p256 + 162150 |-> 499248873309964947p256 + 162151 |-> 1000000000000000000p256 + 162227 |-> 1p256 + 162343 |-> 499248873309964947p256 + 162344 |-> 1000000000000000000p256 + 162420 |-> 1p256 + 162536 |-> 499248873309964947p256 + 162537 |-> 1000000000000000000p256 + 162613 |-> 1p256 + 162729 |-> 499248873309964947p256 + 162730 |-> 1000000000000000000p256 + 162806 |-> 1p256 + 162922 |-> 499248873309964947p256 + 162923 |-> 1000000000000000000p256 + 162999 |-> 1p256 + 163115 |-> 499248873309964947p256 + 163116 |-> 1000000000000000000p256 + 163192 |-> 1p256 + 163308 |-> 499248873309964947p256 + 163309 |-> 1000000000000000000p256 + 163385 |-> 1p256 + 163501 |-> 499248873309964947p256 + 163502 |-> 1000000000000000000p256 + 163578 |-> 1p256 + 163694 |-> 499248873309964947p256 + 163695 |-> 1000000000000000000p256 + 163771 |-> 1p256 + 163887 |-> 499248873309964947p256 + 163888 |-> 1000000000000000000p256 + 163964 |-> 1p256 + 164080 |-> 499248873309964947p256 + 164081 |-> 1000000000000000000p256 + 164157 |-> 1p256 + 164273 |-> 499248873309964947p256 + 164274 |-> 1000000000000000000p256 + 164350 |-> 1p256 + 164466 |-> 499248873309964947p256 + 164467 |-> 1000000000000000000p256 + 164543 |-> 1p256 + 164659 |-> 499248873309964947p256 + 164660 |-> 1000000000000000000p256 + 164736 |-> 1p256 + 164852 |-> 499248873309964947p256 + 164853 |-> 1000000000000000000p256 + 164929 |-> 1p256 + 165045 |-> 499248873309964947p256 + 165046 |-> 1000000000000000000p256 + 165122 |-> 1p256 + 165238 |-> 499248873309964947p256 + 165239 |-> 1000000000000000000p256 + 165315 |-> 1p256 + 165431 |-> 499248873309964947p256 + 165432 |-> 1000000000000000000p256 + 165508 |-> 1p256 + 165624 |-> 499248873309964947p256 + 165625 |-> 1000000000000000000p256 + 165701 |-> 1p256 + 165817 |-> 499248873309964947p256 + 165818 |-> 1000000000000000000p256 + 165894 |-> 1p256 + 166010 |-> 499248873309964947p256 + 166011 |-> 1000000000000000000p256 + 166087 |-> 1p256 + 166203 |-> 499248873309964947p256 + 166204 |-> 1000000000000000000p256 + 166280 |-> 1p256 + 166396 |-> 499248873309964947p256 + 166397 |-> 1000000000000000000p256 + 166473 |-> 1p256 + 166589 |-> 499248873309964947p256 + 166590 |-> 1000000000000000000p256 + 166666 |-> 1p256 + 166782 |-> 499248873309964947p256 + 166783 |-> 1000000000000000000p256 + 166859 |-> 1p256 + 166975 |-> 499248873309964947p256 + 166976 |-> 1000000000000000000p256 + 167052 |-> 1p256 + 167168 |-> 499248873309964947p256 + 167169 |-> 1000000000000000000p256 + 167245 |-> 1p256 + 167361 |-> 499248873309964947p256 + 167362 |-> 1000000000000000000p256 + 167438 |-> 1p256 + 167554 |-> 499248873309964947p256 + 167555 |-> 1000000000000000000p256 + 167631 |-> 1p256 + 167747 |-> 499248873309964947p256 + 167748 |-> 1000000000000000000p256 + 167824 |-> 1p256 + 167940 |-> 499248873309964947p256 + 167941 |-> 1000000000000000000p256 + 168017 |-> 1p256 + 168133 |-> 499248873309964947p256 + 168134 |-> 1000000000000000000p256 + 168210 |-> 1p256 + 168326 |-> 499248873309964947p256 + 168327 |-> 1000000000000000000p256 + 168403 |-> 1p256 + 168519 |-> 499248873309964947p256 + 168520 |-> 1000000000000000000p256 + 168596 |-> 1p256 + 168712 |-> 499248873309964947p256 + 168713 |-> 1000000000000000000p256 + 168789 |-> 1p256 + 168905 |-> 499248873309964947p256 + 168906 |-> 1000000000000000000p256 + 168982 |-> 1p256 + 169098 |-> 499248873309964947p256 + 169099 |-> 1000000000000000000p256 + 169175 |-> 1p256 + 169291 |-> 499248873309964947p256 + 169292 |-> 1000000000000000000p256 + 169368 |-> 1p256 + 169484 |-> 499248873309964947p256 + 169485 |-> 1000000000000000000p256 + 169561 |-> 1p256 + 169677 |-> 499248873309964947p256 + 169678 |-> 1000000000000000000p256 + 169754 |-> 1p256 + 169870 |-> 499248873309964947p256 + 169871 |-> 1000000000000000000p256 + 169947 |-> 1p256 + 170063 |-> 499248873309964947p256 + 170064 |-> 1000000000000000000p256 + 170140 |-> 1p256 + 170256 |-> 499248873309964947p256 + 170257 |-> 1000000000000000000p256 + 170333 |-> 1p256 + 170449 |-> 499248873309964947p256 + 170450 |-> 1000000000000000000p256 + 170526 |-> 1p256 + 170642 |-> 499248873309964947p256 + 170643 |-> 1000000000000000000p256 + 170719 |-> 1p256 + 170835 |-> 499248873309964947p256 + 170836 |-> 1000000000000000000p256 + 170912 |-> 1p256 + 171028 |-> 499248873309964947p256 + 171029 |-> 1000000000000000000p256 + 171105 |-> 1p256 + 171221 |-> 499248873309964947p256 + 171222 |-> 1000000000000000000p256 + 171298 |-> 1p256 + 171414 |-> 499248873309964947p256 + 171415 |-> 1000000000000000000p256 + 171491 |-> 1p256 + 171607 |-> 499248873309964947p256 + 171608 |-> 1000000000000000000p256 + 171684 |-> 1p256 + 171800 |-> 499248873309964947p256 + 171801 |-> 1000000000000000000p256 + 171877 |-> 1p256 + 171993 |-> 499248873309964947p256 + 171994 |-> 1000000000000000000p256 + 172070 |-> 1p256 + 172186 |-> 499248873309964947p256 + 172187 |-> 1000000000000000000p256 + 172263 |-> 1p256 + 172379 |-> 499248873309964947p256 + 172380 |-> 1000000000000000000p256 + 172456 |-> 1p256 + 172572 |-> 499248873309964947p256 + 172573 |-> 1000000000000000000p256 + 172649 |-> 1p256 + 172765 |-> 499248873309964947p256 + 172766 |-> 1000000000000000000p256 + 172842 |-> 1p256 + 172958 |-> 499248873309964947p256 + 172959 |-> 1000000000000000000p256 + 173035 |-> 1p256 + 173151 |-> 499248873309964947p256 + 173152 |-> 1000000000000000000p256 + 173228 |-> 1p256 + 173344 |-> 499248873309964947p256 + 173345 |-> 1000000000000000000p256 + 173421 |-> 1p256 + 173537 |-> 499248873309964947p256 + 173538 |-> 1000000000000000000p256 + 173614 |-> 1p256 + 173730 |-> 499248873309964947p256 + 173731 |-> 1000000000000000000p256 + 173807 |-> 1p256 + 173923 |-> 499248873309964947p256 + 173924 |-> 1000000000000000000p256 + 174000 |-> 1p256 + 174116 |-> 499248873309964947p256 + 174117 |-> 1000000000000000000p256 + 174193 |-> 1p256 + 174309 |-> 499248873309964947p256 + 174310 |-> 1000000000000000000p256 + 174386 |-> 1p256 + 174502 |-> 499248873309964947p256 + 174503 |-> 1000000000000000000p256 + 174579 |-> 1p256 + 174695 |-> 499248873309964947p256 + 174696 |-> 1000000000000000000p256 + 174772 |-> 1p256 + 174888 |-> 499248873309964947p256 + 174889 |-> 1000000000000000000p256 + 174965 |-> 1p256 + 175081 |-> 499248873309964947p256 + 175082 |-> 1000000000000000000p256 + 175158 |-> 1p256 + 175274 |-> 499248873309964947p256 + 175275 |-> 1000000000000000000p256 + 175351 |-> 1p256 + 175467 |-> 499248873309964947p256 + 175468 |-> 1000000000000000000p256 + 175544 |-> 1p256 + 175660 |-> 499248873309964947p256 + 175661 |-> 1000000000000000000p256 + 175737 |-> 1p256 + 175853 |-> 499248873309964947p256 + 175854 |-> 1000000000000000000p256 + 175930 |-> 1p256 + 176046 |-> 499248873309964947p256 + 176047 |-> 1000000000000000000p256 + 176123 |-> 1p256 + 176239 |-> 499248873309964947p256 + 176240 |-> 1000000000000000000p256 + 176316 |-> 1p256 + 176432 |-> 499248873309964947p256 + 176433 |-> 1000000000000000000p256 + 176509 |-> 1p256 + 176625 |-> 499248873309964947p256 + 176626 |-> 1000000000000000000p256 + 176702 |-> 1p256 + 176818 |-> 499248873309964947p256 + 176819 |-> 1000000000000000000p256 + 176895 |-> 1p256 + 177011 |-> 499248873309964947p256 + 177012 |-> 1000000000000000000p256 + 177088 |-> 1p256 + 177204 |-> 499248873309964947p256 + 177205 |-> 1000000000000000000p256 + 177281 |-> 1p256 + 177397 |-> 499248873309964947p256 + 177398 |-> 1000000000000000000p256 + 177474 |-> 1p256 + 177590 |-> 499248873309964947p256 + 177591 |-> 1000000000000000000p256 + 177667 |-> 1p256 + 177783 |-> 499248873309964947p256 + 177784 |-> 1000000000000000000p256 + 177860 |-> 1p256 + 177976 |-> 499248873309964947p256 + 177977 |-> 1000000000000000000p256 + 178053 |-> 1p256 + 178169 |-> 499248873309964947p256 + 178170 |-> 1000000000000000000p256 + 178246 |-> 1p256 + 178362 |-> 499248873309964947p256 + 178363 |-> 1000000000000000000p256 + 178439 |-> 1p256 + 178555 |-> 499248873309964947p256 + 178556 |-> 1000000000000000000p256 + 178632 |-> 1p256 + 178748 |-> 499248873309964947p256 + 178749 |-> 1000000000000000000p256 + 178825 |-> 1p256 + 178941 |-> 499248873309964947p256 + 178942 |-> 1000000000000000000p256 + 179018 |-> 1p256 + 179134 |-> 499248873309964947p256 + 179135 |-> 1000000000000000000p256 + 179211 |-> 1p256 + 179327 |-> 499248873309964947p256 + 179328 |-> 1000000000000000000p256 + 179404 |-> 1p256 + 179520 |-> 499248873309964947p256 + 179521 |-> 1000000000000000000p256 + 179597 |-> 1p256 + 179713 |-> 499248873309964947p256 + 179714 |-> 1000000000000000000p256 + 179790 |-> 1p256 + 179906 |-> 499248873309964947p256 + 179907 |-> 1000000000000000000p256 + 179983 |-> 1p256 + 180099 |-> 499248873309964947p256 + 180100 |-> 1000000000000000000p256 + 180176 |-> 1p256 + 180292 |-> 499248873309964947p256 + 180293 |-> 1000000000000000000p256 + 180369 |-> 1p256 + 180485 |-> 499248873309964947p256 + 180486 |-> 1000000000000000000p256 + 180562 |-> 1p256 + 180678 |-> 499248873309964947p256 + 180679 |-> 1000000000000000000p256 + 180755 |-> 1p256 + 180871 |-> 499248873309964947p256 + 180872 |-> 1000000000000000000p256 + 180948 |-> 1p256 + 181064 |-> 499248873309964947p256 + 181065 |-> 1000000000000000000p256 + 181141 |-> 1p256 + 181257 |-> 499248873309964947p256 + 181258 |-> 1000000000000000000p256 + 181334 |-> 1p256 + 181450 |-> 499248873309964947p256 + 181451 |-> 1000000000000000000p256 + 181527 |-> 1p256 + 181643 |-> 499248873309964947p256 + 181644 |-> 1000000000000000000p256 + 181720 |-> 1p256 + 181836 |-> 499248873309964947p256 + 181837 |-> 1000000000000000000p256 + 181913 |-> 1p256 + 182029 |-> 499248873309964947p256 + 182030 |-> 1000000000000000000p256 + 182106 |-> 1p256 + 182222 |-> 499248873309964947p256 + 182223 |-> 1000000000000000000p256 + 182299 |-> 1p256 + 182415 |-> 499248873309964947p256 + 182416 |-> 1000000000000000000p256 + 182492 |-> 1p256 + 182608 |-> 499248873309964947p256 + 182609 |-> 1000000000000000000p256 + 182685 |-> 1p256 + 182801 |-> 499248873309964947p256 + 182802 |-> 1000000000000000000p256 + 182878 |-> 1p256 + 182994 |-> 499248873309964947p256 + 182995 |-> 1000000000000000000p256 + 183071 |-> 1p256 + 183187 |-> 499248873309964947p256 + 183188 |-> 1000000000000000000p256 + 183264 |-> 1p256 + 183380 |-> 499248873309964947p256 + 183381 |-> 1000000000000000000p256 + 183457 |-> 1p256 + 183573 |-> 499248873309964947p256 + 183574 |-> 1000000000000000000p256 + 183650 |-> 1p256 + 183766 |-> 499248873309964947p256 + 183767 |-> 1000000000000000000p256 + 183843 |-> 1p256 + 183959 |-> 499248873309964947p256 + 183960 |-> 1000000000000000000p256 + 184036 |-> 1p256 + 184152 |-> 499248873309964947p256 + 184153 |-> 1000000000000000000p256 + 184229 |-> 1p256 + 184345 |-> 499248873309964947p256 + 184346 |-> 1000000000000000000p256 + 184422 |-> 1p256 + 184538 |-> 499248873309964947p256 + 184539 |-> 1000000000000000000p256 + 184615 |-> 1p256 + 184731 |-> 499248873309964947p256 + 184732 |-> 1000000000000000000p256 + 184808 |-> 1p256 + 184924 |-> 499248873309964947p256 + 184925 |-> 1000000000000000000p256 + 185001 |-> 1p256 + 185117 |-> 499248873309964947p256 + 185118 |-> 1000000000000000000p256 + 185194 |-> 1p256 + 185310 |-> 499248873309964947p256 + 185311 |-> 1000000000000000000p256 + 185387 |-> 1p256 + 185503 |-> 499248873309964947p256 + 185504 |-> 1000000000000000000p256 + 185580 |-> 1p256 + 185696 |-> 499248873309964947p256 + 185697 |-> 1000000000000000000p256 + 185773 |-> 1p256 + 185889 |-> 499248873309964947p256 + 185890 |-> 1000000000000000000p256 + 185966 |-> 1p256 + 186082 |-> 499248873309964947p256 + 186083 |-> 1000000000000000000p256 + 186159 |-> 1p256 + 186275 |-> 499248873309964947p256 + 186276 |-> 1000000000000000000p256 + 186352 |-> 1p256 + 186468 |-> 499248873309964947p256 + 186469 |-> 1000000000000000000p256 + 186545 |-> 1p256 + 186661 |-> 499248873309964947p256 + 186662 |-> 1000000000000000000p256 + 186738 |-> 1p256 + 186854 |-> 499248873309964947p256 + 186855 |-> 1000000000000000000p256 + 186931 |-> 1p256 + 187047 |-> 499248873309964947p256 + 187048 |-> 1000000000000000000p256 + 187124 |-> 1p256 + 187240 |-> 499248873309964947p256 + 187241 |-> 1000000000000000000p256 + 187317 |-> 1p256 + 187433 |-> 499248873309964947p256 + 187434 |-> 1000000000000000000p256 + 187510 |-> 1p256 + 187626 |-> 499248873309964947p256 + 187627 |-> 1000000000000000000p256 + 187703 |-> 1p256 + 187819 |-> 499248873309964947p256 + 187820 |-> 1000000000000000000p256 + 187896 |-> 1p256 + 188012 |-> 499248873309964947p256 + 188013 |-> 1000000000000000000p256 + 188089 |-> 1p256 + 188205 |-> 499248873309964947p256 + 188206 |-> 1000000000000000000p256 + 188282 |-> 1p256 + 188398 |-> 499248873309964947p256 + 188399 |-> 1000000000000000000p256 + 188475 |-> 1p256 + 188591 |-> 499248873309964947p256 + 188592 |-> 1000000000000000000p256 + 188668 |-> 1p256 + 188784 |-> 499248873309964947p256 + 188785 |-> 1000000000000000000p256 + 188861 |-> 1p256 + 188977 |-> 499248873309964947p256 + 188978 |-> 1000000000000000000p256 + 189054 |-> 1p256 + 189170 |-> 499248873309964947p256 + 189171 |-> 1000000000000000000p256 + 189247 |-> 1p256 + 189363 |-> 499248873309964947p256 + 189364 |-> 1000000000000000000p256 + 189440 |-> 1p256 + 189556 |-> 499248873309964947p256 + 189557 |-> 1000000000000000000p256 + 189633 |-> 1p256 + 189749 |-> 499248873309964947p256 + 189750 |-> 1000000000000000000p256 + 189826 |-> 1p256 + 189942 |-> 499248873309964947p256 + 189943 |-> 1000000000000000000p256 + 190019 |-> 1p256 + 190135 |-> 499248873309964947p256 + 190136 |-> 1000000000000000000p256 + 190212 |-> 1p256 + 190328 |-> 499248873309964947p256 + 190329 |-> 1000000000000000000p256 + 190405 |-> 1p256 + 190521 |-> 499248873309964947p256 + 190522 |-> 1000000000000000000p256 + 190598 |-> 1p256 + 190714 |-> 499248873309964947p256 + 190715 |-> 1000000000000000000p256 + 190791 |-> 1p256 + 190907 |-> 499248873309964947p256 + 190908 |-> 1000000000000000000p256 + 190984 |-> 1p256 + 191100 |-> 499248873309964947p256 + 191101 |-> 1000000000000000000p256 + 191177 |-> 1p256 + 191293 |-> 499248873309964947p256 + 191294 |-> 1000000000000000000p256 + 191370 |-> 1p256 + 191486 |-> 499248873309964947p256 + 191487 |-> 1000000000000000000p256 + 191563 |-> 1p256 + 191679 |-> 499248873309964947p256 + 191680 |-> 1000000000000000000p256 + 191756 |-> 1p256 + 191872 |-> 499248873309964947p256 + 191873 |-> 1000000000000000000p256 + 191949 |-> 1p256 + 192065 |-> 499248873309964947p256 + 192066 |-> 1000000000000000000p256 + 192142 |-> 1p256 + 192258 |-> 499248873309964947p256 + 192259 |-> 1000000000000000000p256 + 192335 |-> 1p256 + 192451 |-> 499248873309964947p256 + 192452 |-> 1000000000000000000p256 + 192528 |-> 1p256 + 192644 |-> 499248873309964947p256 + 192645 |-> 1000000000000000000p256 + 192721 |-> 1p256 + 192837 |-> 499248873309964947p256 + 192838 |-> 1000000000000000000p256 + 192914 |-> 1p256 + 193030 |-> 499248873309964947p256 .List @@ -5415,11 +5385,10 @@ UniswapV2SwapTest - _dai |-> 8012p160 - _router |-> 8014p160 + _dai |-> 8004p160 _uni |-> 8006p160 - _usdc |-> 8013p160 - _weth |-> 8011p160 + _usdc |-> 8005p160 + _weth |-> 8003p160 @@ -111515,105 +111484,10 @@ token0 |-> 8004p160 token1 |-> 8005p160 - - - 8011p160 - - - WETHMock - - - UINT256_MAX |-> 115792089237316195423570985008687907853269984665640564039457584007913129639935p256 - - - - 8012p160 - - - DAIMock - - - UINT_MAX |-> 115792089237316195423570985008687907853269984665640564039457584007913129639935p256 - allowance |-> ( 2p160 |-> ( 8014p160 |-> 121072p256 ) ) - balanceOf |-> ( 2p160 |-> 121072p256 - 8017p160 |-> 10000p256 ) - totalSupply |-> 131072p256 - - - - 8013p160 - - - USDCMock - - - UINT256_MAX |-> 115792089237316195423570985008687907853269984665640564039457584007913129639935p256 - _allowances |-> ( 2p160 |-> ( 8014p160 |-> 121072p256 ) ) - _balances |-> ( 2p160 |-> 121072p256 - 8017p160 |-> 10000p256 ) - _totalSupply |-> 131072p256 - - - - 8014p160 - - - UniswapV2Router02 - - - local_pairs |-> ( 8011p160 |-> ( 8012p160 |-> 8015p160 - 8013p160 |-> 8016p160 ) - 8012p160 |-> ( 8013p160 |-> 8017p160 ) ) - - - - 8015p160 - - - UniswapV2Pair - - - MINIMUM_LIQUIDITY |-> 1000p256 - UINT112_MAX |-> 5192296858534827628530496329220095p256 - token0 |-> 8011p160 - token1 |-> 8012p160 - - - - 8016p160 - - - UniswapV2Pair - - - MINIMUM_LIQUIDITY |-> 1000p256 - UINT112_MAX |-> 5192296858534827628530496329220095p256 - token0 |-> 8011p160 - token1 |-> 8013p160 - - - - 8017p160 - - - UniswapV2Pair - - - MINIMUM_LIQUIDITY |-> 1000p256 - UINT112_MAX |-> 5192296858534827628530496329220095p256 - balanceOf |-> ( 0p160 |-> 1000p256 - 2p160 |-> 9000p256 ) - blockTimestampLast |-> 1724300000p32 - reserve0 |-> 10000p112 - reserve1 |-> 10000p112 - token0 |-> 8012p160 - token1 |-> 8013p160 - totalSupply |-> 10000p256 - - 8018p160 + 8011p160 diff --git a/test/regression/swaps.sol b/test/regression/swaps.sol index c338920..28c76fa 100644 --- a/test/regression/swaps.sol +++ b/test/regression/swaps.sol @@ -689,7 +689,6 @@ contract USDCMock { contract UniswapV2SwapTest { UniswapV2Swap private _uni; - UniswapV2Router02 private _router; WETHMock private _weth; DAIMock private _dai; USDCMock private _usdc; @@ -727,35 +726,4 @@ contract UniswapV2SwapTest { assert(daiAmountOut >= daiAmountMin); } - - function testRouterAddLiquidity() public { - uint256 testAmount = 131072; // Hex: 0x20000 - uint desiredA = 10000; - uint desiredB = 10000; - uint minA = 0; - uint minB = 0; - - _weth = new WETHMock(); - _dai = new DAIMock(); - _usdc = new USDCMock(); - - _router = new UniswapV2Router02(); - - _router.set_local_pair(address(_weth), address(_dai)); - _router.set_local_pair(address(_weth), address(_usdc)); - _router.set_local_pair(address(_usdc), address(_dai)); - - _dai.mint(address(this), testAmount); - _dai.approve(address(_router), testAmount); - _usdc.mint(address(this), testAmount); - _usdc.approve(address(_router), testAmount); - - _router.addLiquidity(address(_dai), address(_usdc), desiredA, desiredB, minA, minB, address(this)); - - assert(_dai.balanceOf(address(this)) == 121072); - assert(_usdc.balanceOf(address(this)) == 121072); - assert(_dai.balanceOf(_router.get_local_pair(address(_dai), address(_usdc))) == 10000); - assert(_usdc.balanceOf(_router.get_local_pair(address(_dai), address(_usdc))) == 10000); - assert(UniswapV2Pair(_router.get_local_pair(address(_dai), address(_usdc))).balanceOf(address(this)) == 9000); - } } diff --git a/test/regression/swaps.txn b/test/regression/swaps.txn index 6e55649..a4e500c 100644 --- a/test/regression/swaps.txn +++ b/test/regression/swaps.txn @@ -1,3 +1,2 @@ create(1, 0, 1724300000, UniswapV2SwapTest, ), -txn(1, 2, 0, 1724300000, testSwapLoop, ), -txn(1, 2, 0, 1724300000, testRouterAddLiquidity, ) \ No newline at end of file +txn(1, 2, 0, 1724300000, testSwapLoop, ) \ No newline at end of file diff --git a/test/transactions/swaps/UniswapV2Swap/UniswapTest.ref b/test/transactions/swaps/UniswapV2Swap/UniswapTest.ref index 5941bac..2b31c98 100644 --- a/test/transactions/swaps/UniswapV2Swap/UniswapTest.ref +++ b/test/transactions/swaps/UniswapV2Swap/UniswapTest.ref @@ -2469,16 +2469,18 @@ UniswapV2SwapTest - amountOut |-> var ( 1269 , uint256 ) - amountOutDesired |-> var ( 1071 , uint256 ) - daiAmountOut |-> var ( 870 , uint256 ) - wethAmount |-> var ( 812 , uint256 ) + desiredA |-> var ( 1391 , uint256 ) + desiredB |-> var ( 1392 , uint256 ) + minA |-> var ( 1393 , uint256 ) + minB |-> var ( 1394 , uint256 ) + testAmount |-> var ( 1390 , uint256 ) - 812 |-> 1000000000000000000p256 - 870 |-> 2000000000000000000p256 - 1071 |-> 1000000p256 - 1269 |-> 1000000p256 + 1390 |-> 131072p256 + 1391 |-> 10000p256 + 1392 |-> 10000p256 + 1393 |-> 0p256 + 1394 |-> 0p256 .List