Ethereum

0xc62d6fdc4e77c4d006784bc4805703b37ffcc4b7

Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.

Decompilation outputEthereum · 0xc62d6fdc…7ffcc4b715.0 KB20.6 s
Share
2,035 lines · Click a variable or keyword to highlight its references · Click a line number to copy its link; Shift-click to copy a block link
//decompiled by exvvul decompiler tool [email protected] https://x.com/exvulsec// SPDX-License-Identifier: MITpragma solidity >=0.8.0;contract DesolexContract {    uint256 public constant UNIVERSAL_ROUTER = 586097839618561743659421846908136714365535234223;    uint256 public constant WETH = 1097077688018008265106216665536940668749033598146;    address public constant STATE_VIEW = address(0x7ffe42c4a5deea5b0fec41c94c136cf115597227);    uint256 public constant PERMIT2 = 180847076211518657644945212059388835;    address public constant POSITION_MANAGER = address(0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e);        address public manager; // STORAGE[0x0]    address stor_1; // STORAGE[0x1]    address stor_2; // STORAGE[0x2]    mapping(bytes32 => uint256) mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb; // STORAGE[0x268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb]    mapping(address => bool) public isHookAllowed; // STORAGE[0x268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cc]    mapping(uint256 => uint256) mapping_expr_i;    mapping(uint256 => uint256) mapping_expr_l;    uint256 stor_expr_j;    bytes32 stor_expr_k;    uint256 stor_expr_m;    bytes32 stor_expr_n;    bytes32 stor_expr_o;    bytes32 stor_expr_p;    bytes32 stor_expr_r;        event ManagerAccepted();    error InvalidPool();    error LiquidityMintingFailed();    error NotManager();    error CustomError_a9023e34();    error NotPendingManager();    error HookNotAllowed();    error InvalidTick(int24);    event PendingManagerSet(address);    error ZeroSafe();    error CustomError_08f09d78();    event Paused(address);    error NotSafe();    error ApprovalFailed();    event SafeSet(address indexed, address indexed);    error SafeCastOverflow();    error CustomError_00bfc921();    event Unpaused(address);    event Initialized(uint8);    function _desolexPanic(uint256 code) private pure {        assembly ("memory-safe") {            mstore(0x00, shl(224, 0x4e487b71))            mstore(0x04, code)            revert(0x00, 0x24)        }    }    fallback() external payable {        // Synthetic compatibility routes preserve original selectors for unresolved names.        if ((msg.data.length >= 4) && (msg.sig == 0x0a717595)) {            // Route to Unknown_0a717595(uint256,address,uint256,uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x544b40d2));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x0dc78d66)) {            // Route to Unknown_0dc78d66(bytes32,uint256,bool) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x022f8274));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x620d97cf)) {            // Route to Unknown_620d97cf(uint256,uint256,uint256,uint256,uint256,uint256,uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0xcd2d5a62));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x81d0ce1e)) {            // Route to Unknown_81d0ce1e(uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x09b8ba3e));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x833217be)) {            // Route to Unknown_833217be(uint256,address,uint256,address) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x28ca8e84));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x948bc52f)) {            // Route to Unknown_948bc52f(uint256,uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x67ca2202));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0xd520db56)) {            // Route to Unknown_d520db56(uint256,address,address,address,address) after replacing only msg.sig.            __desolexSelectorShim(uint32(0xd610a027));            return;        }        revert();    }            function isManager(address account) public view returns (bool) {        return account == manager;    }        function Unknown_d520db56(uint256 arg0, address arg1, address arg2, address arg3, address arg4) public {        require(arg0 == (arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000));        uint256 var_a;        if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);        var_a = var_a + 0x80;        address var_b = arg1;        require(arg3 == (arg3 & 0xffffffffffffffffffffffffffffffff));        require(arg4 == (arg4 & 0xffffffffffffffffffffffffffffffff));        (bool success0, bytes memory returnData0) = address(this).safe(); // staticcall        require(success0);        uint256 value1 = var_a.length;        uint256 value2 = 0xffffffffffffffffffffffffffffffffffffffff;        if (success0) {            uint256 value0 = returnData0.length;            if (0x20 <= returnData0.length) {                value0 = 0x20;            }            if (((var_a + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);            var_a = var_a + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            require(((var_a + value0) - var_a) >= 0x20);            require(var_a.length == (address(var_a.length)));        } else {            value1 = 0;            value2 = var_a;        }        require(msg.sender == (value1 & 0xffffffffffffffffffffffffffffffffffffffff), NotSafe());        if (((var_a + 0xa0) > 0xffffffffffffffff) | ((var_a + 0xa0) < var_a)) _desolexPanic(65);        var_a = var_a + 0xa0;        (bool success1, bytes memory returnData1) = address(0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e).poolKeys(arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)); // staticcall        require(success1);        if (success1) {            uint256 value3 = returnData1.length;            if (0xa0 <= returnData1.length) {                value3 = 0xa0;            }            if (((var_a + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);            var_a = var_a + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            require(((var_a + value3) - var_a) >= 0xa0);            require(((var_a + value3) - var_a) >= 0xa0);            if (((var_a + 0xa0) > 0xffffffffffffffff) | ((var_a + 0xa0) < var_a)) _desolexPanic(65);            var_a = var_a + 0xa0;            require(var_n == (address(var_n)));            require(var_q == (address(var_q)));            require(var_t == (uint24(var_t)));            require(var_w == int24(var_w));        } else {            require(int24(var_z) != 0x0, InvalidPool());            require(!((var_ab & 0xffffffffffffffffffffffffffffffffffffffff) == 0x0 && (var_ac & 0xffffffffffffffffffffffffffffffffffffffff) == 0x0), InvalidPool());            address var_aa = address(var_b);            var_ac = 0x268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cc;            uint256 value4 = this.code.length;            bool flag1 = !(!(var_b & (0x0fff)));            if (isHookAllowed[address(var_b)]) {                value4 = 0x80;                flag1 = !(isHookAllowed[address(var_b)]);            }            require(!(flag1), HookNotAllowed());            if (0 == (!(address(var_a.length)))) {                if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);                var_a = var_a + 0x80;                uint256 value5 = 0;                while (true) {                    if (!(value5 < var_a.length)) {                        break;                    }                    value5 = 0x20 + value5;                    (bool success2, bytes memory returnData2) = stor_2.execTransactionFromModuleReturnData(address(var_a.length), 0, 0x80, 0); // call                    require(success2);                    if (success2) {                        if (((var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                        var_a = var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                        require(((var_a + returnData2.length) - var_a) >= 0x40);                        require(var_a.length == var_a.length);                        require(var_am <= 0xffffffffffffffff);                        require(((var_a + var_s) + 0x1f) < (var_a + returnData2.length));                        if (!(var_an <= 0xffffffffffffffff)) _desolexPanic(65);                    } else {                        uint256 value6 = this.code.length;                        uint256 value7 = this.code.length;                        uint256 value8 = this.code.length;                        uint256 value9;                        value6 = 0;                        value7 = 0;                        value8 = 0x20;                        value9 = 0;                        require(value9 != 0x0, ApprovalFailed());                        if (((var_a + 0xc0) > 0xffffffffffffffff) | ((var_a + 0xc0) < var_a)) _desolexPanic(65);                        var_a = var_a + 0xc0;                        uint256 value5 = 0;                        while (true) {                            if (!(value5 < var_a.length)) {                                break;                            }                            value5 = 0x20 + value5;                            (bool success3, bytes memory returnData3) = stor_2.execTransactionFromModule(0x22d473030f116ddee9f6b43ac78ba3, 0, 0x80, 0); // call                            require(success3);                            if (success3) {                                uint256 value10 = returnData3.length;                                if (0x20 <= returnData3.length) {                                    value10 = 0x20;                                }                                if (((var_a + ((value10 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value10 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                                var_a = var_a + ((value10 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                require(((var_a + value10) - var_a) >= 0x20);                            } else {                                require(0 != 0x0, ApprovalFailed());                                (bool success4, bytes memory returnData4) = address(this).safe(); // staticcall                                require(success4);                                uint256 value12 = msg.data[0] >> 0xe0;                                uint256 value13 = var_a.length;                                if (success4) {                                    uint256 value11 = returnData4.length;                                    if (0x20 <= returnData4.length) {                                        value11 = 0x20;                                    }                                    if (((var_a + ((value11 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value11 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                                    var_a = var_a + ((value11 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                    require(((var_a + value11) - var_a) >= 0x20);                                    require(var_a.length == (address(var_a.length)));                                } else {                                    value12 = var_a;                                    value13 = 0;                                }                                if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                                var_a = var_a + 0x40;                                if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                                uint256 value14 = 0;                                while (true) {                                    var_a = var_a + 0x40;                                    if (value14 >= 0x20) {                                        break;                                    }                                    value14 = value14 + 0x20;                                }                                if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                                var_a = var_a + 0x40;                                if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);                                uint256 value15 = 0;                                while (true) {                                    var_a = var_a + 0x80;                                    if (value15 >= 0x60) {                                        break;                                    }                                    value15 = value15 + 0x20;                                }                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);                                var_a = var_a + 0x20;                            }                        }                    }                }            } else {                if (((var_a + 0x60) > 0xffffffffffffffff) | ((var_a + 0x60) < var_a)) _desolexPanic(65);                var_a = var_a + 0x60;                uint256 value5 = 0;                while (true) {                    if (!(value5 < var_a.length)) {                        break;                    }                    value5 = 0x20 + value5;                    (bool success5, bytes memory returnData5) = stor_2.execTransactionFromModule(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0, 0x80, 0); // call                    require(success5);                    if (success5) {                        uint256 value16 = returnData5.length;                        if (0x20 <= returnData5.length) {                            value16 = 0x20;                        }                        if (((var_a + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                        var_a = var_a + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                        require(((var_a + value16) - var_a) >= 0x20);                        require(var_a.length == var_a.length);                        require(var_a.length != 0x0, CustomError_08f09d78());                        (bool success6, bytes memory returnData6) = address(this).safe(); // staticcall                        require(success6);                        uint256 value18 = msg.data[0] >> 0xe0;                        uint256 value19 = var_a.length;                        if (success6) {                            uint256 value17 = returnData6.length;                            if (0x20 <= returnData6.length) {                                value17 = 0x20;                            }                            if (((var_a + ((value17 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value17 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                            var_a = var_a + ((value17 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            require(((var_a + value17) - var_a) >= 0x20);                            require(var_a.length == (address(var_a.length)));                        } else {                            value18 = var_a;                            value19 = 0;                        }                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                        var_a = var_a + 0x40;                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                        uint256 value14 = 0;                        while (true) {                            var_a = var_a + 0x40;                            if (value14 >= 0x20) {                                break;                            }                            value14 = value14 + 0x20;                        }                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                        var_a = var_a + 0x40;                        if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);                        uint256 value15 = 0;                        while (true) {                            var_a = var_a + 0x80;                            if (value15 >= 0x60) {                                break;                            }                            value15 = value15 + 0x20;                        }                        if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);                        var_a = var_a + 0x20;                    } else {                        require(0 != 0x0, CustomError_08f09d78());                        (bool success7, bytes memory returnData7) = address(this).safe(); // staticcall                        require(success7);                        uint256 value21 = msg.data[0] >> 0xe0;                        uint256 value22 = var_a.length;                        if (success7) {                            uint256 value20 = returnData7.length;                            if (0x20 <= returnData7.length) {                                value20 = 0x20;                            }                            if (((var_a + ((value20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                            var_a = var_a + ((value20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            require(((var_a + value20) - var_a) >= 0x20);                            require(var_a.length == (address(var_a.length)));                        } else {                            value21 = var_a;                            value22 = 0;                        }                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                        var_a = var_a + 0x40;                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                        uint256 value14 = 0;                        while (true) {                            var_a = var_a + 0x40;                            if (value14 >= 0x20) {                                break;                            }                            value14 = value14 + 0x20;                        }                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                        var_a = var_a + 0x40;                        if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);                        uint256 value15 = 0;                        while (true) {                            var_a = var_a + 0x80;                            if (value15 >= 0x60) {                                break;                            }                            value15 = value15 + 0x20;                        }                        if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);                        var_a = var_a + 0x20;                    }                }            }        }    }        function initialize(address arg0) public {        bool flag0 = (bytes1(stor_2 >> 0xa0)) < 0x01;        if (bytes1(stor_2 >> 0xa8)) {            flag0 = !(bytes1(stor_2 >> 0xa8));        }        require(!flag0 && (address(this).code.length == 0x0 && (SHR(0xa0, stor_2) & 0xff) == 0x1) || flag0, "Initializable: contract is already initialized");        stor_2 = (stor_2 & (0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff)) | 0x010000000000000000000000000000000000000000;        uint256 value0 = msg.data[0] >> 0xe0;        if (!(bytes1(stor_2 >> 0xa8))) {            stor_2 = 0x01010000000000000000000000000000000000000000 | (0xffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff & stor_2);        } else {            value0 = stor_2;        }        require(arg0 != address(0), ZeroSafe());        stor_2 = arg0;        emit SafeSet(address(0), stor_2);        stor_2 = (stor_2 & (0xffffffffffffffffffff00ff0000000000000000000000000000000000000000)) | arg0;        emit Initialized(0x01);    }        function pendingManager() public view returns (address) {        return stor_1;    }        function Unknown_948bc52f(uint256 arg0, uint256 arg1) public payable {        if (!(msg.value)) {            if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x40) {                if (arg0 == (arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)) {                    (bool success0, bytes memory returnData0) = address(this).safe(); // staticcall                    if (success0) {                        uint256 var_b;                        uint256 value1 = var_b.length;                        uint256 value2 = 0xffffffffffffffffffffffffffffffffffffffff;                        if (success0) {                            uint256 value0 = returnData0.length;                            if (0x20 <= returnData0.length) {                                value0 = 0x20;                            }                            if (((var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);                            var_b = var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            require(((var_b + value0) - var_b) >= 0x20);                            require(var_b.length == (address(var_b.length)));                        } else {                            value1 = 0;                            value2 = var_b;                        }                        if (msg.sender == (value1 & 0xffffffffffffffffffffffffffffffffffffffff)) {                            (bool success1, bytes memory returnData1) = address(0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e).getPoolAndPositionInfo(arg1); // staticcall                            if (success1) {                                uint256 value4 = 0x20;                                uint256 value6 = var_e;                                uint256 value7 = var_b;                                if (success1) {                                    uint256 value3 = returnData1.length;                                    if (0xc0 <= returnData1.length) {                                        value3 = 0xc0;                                    }                                    if (((var_b + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);                                    var_b = var_b + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                    require(((var_b + value3) - var_b) >= 0xc0);                                    require(((var_b + value3) - var_b) >= 0xa0);                                    if (((var_b + 0xa0) > 0xffffffffffffffff) | ((var_b + 0xa0) < var_b)) _desolexPanic(65);                                    var_b = var_b + 0xa0;                                    require(var_b.length == (address(var_b.length)));                                    require(var_g == (address(var_g)));                                    require(!(var_i - (uint24(var_i))));                                    require(var_k == (int24(var_k)));                                    require(var_m == (address(var_m)));                                } else {                                    value4 = var_b;                                    value6 = 0;                                    value7 = 0;                                }                                (bool success2, bytes memory returnData2) = address(0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e).getPositionLiquidity(arg1); // staticcall                                if (success2) {                                    if (success2) {                                        uint256 value5 = returnData2.length;                                        if (0x20 <= returnData2.length) {                                            value5 = 0x20;                                        }                                        if (((var_b + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);                                        var_b = var_b + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                        require(((var_b + value5) - var_b) >= 0x20);                                        require(var_b.length == (address(var_b.length)));                                        if (((var_b + 0x60) > 0xffffffffffffffff) | ((var_b + 0x60) < var_b)) _desolexPanic(65);                                        var_b = var_b + 0x60;                                        (bool success3, bytes memory returnData3) = address(0x7ffe42c4a5deea5b0fec41c94c136cf115597227).getSlot0(keccak256(var_v)); // staticcall                                        require(success3);                                        if (success3) {                                            uint256 value8 = returnData3.length;                                            if (0x80 <= returnData3.length) {                                                value8 = 0x80;                                            }                                            if (((var_b + ((value8 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value8 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);                                            var_b = var_b + ((value8 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                            require(((var_b + value8) - var_b) >= 0x80);                                            require(var_b.length == (address(var_b.length)));                                            require(var_g == (int24(var_g)));                                            require(!(var_i - (uint24(var_i))));                                            require(var_k == (uint24(var_k)));                                            require(!((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value9 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x02) == 0) {                                                value9 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01)));                                            }                                            uint256 value10 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value9) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x04) == 0) {                                                value10 = value9;                                            }                                            uint256 value11 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value10) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x08) == 0) {                                                value11 = value10;                                            }                                            uint256 value12 = (0xffcb9843d60f6159c9db58835c926644 * value11) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x10) == 0) {                                                value12 = value11;                                            }                                            uint256 value13 = (0xff973b41fa98c081472e6896dfb254c0 * value12) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x20) == 0) {                                                value13 = value12;                                            }                                            uint256 value14 = (0xff2ea16466c96a3843ec78b326b52861 * value13) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x40) == 0) {                                                value14 = value13;                                            }                                            uint256 value15 = (0xfe5dee046a99a2a811c461f1969c3053 * value14) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x80) == 0) {                                                value15 = value14;                                            }                                            uint256 value16 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value15) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0100) == 0) {                                                value16 = value15;                                            }                                            uint256 value17 = (0xf987a7253ac413176f2b074cf7815e54 * value16) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0200) == 0) {                                                value17 = value16;                                            }                                            uint256 value18 = (0xf3392b0822b70005940c7a398e4b70f3 * value17) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0400) == 0) {                                                value18 = value17;                                            }                                            uint256 value19 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value18) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0800) == 0) {                                                value19 = value18;                                            }                                            uint256 value20 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value19) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x1000) == 0) {                                                value20 = value19;                                            }                                            uint256 value21 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value20) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x2000) == 0) {                                                value21 = value20;                                            }                                            uint256 value22 = (0x70d869a156d2a1b890bb3df62baf32f7 * value21) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x4000) == 0) {                                                value22 = value21;                                            }                                            uint256 value23 = (0x31be135f97d08fd981231505542fcfa6 * value22) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x8000) == 0) {                                                value23 = value22;                                            }                                            uint256 value24 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value23) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x010000) == 0) {                                                value24 = value23;                                            }                                            uint256 value25 = (0x5d6af8dedb81196699c329225ee604 * value24) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x020000) == 0) {                                                value25 = value24;                                            }                                            uint256 value26 = (value25 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x040000) == 0) {                                                value26 = value25;                                            }                                            uint256 value27 = 0;                                            uint256 value28 = (value26 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff)))) {                                                value27 = 0x80;                                                value28 = value26;                                            }                                            uint256 value29 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value28;                                            if (!(0 < int24(int24(value6 >> 0x08)))) {                                                value29 = value28;                                            }                                            require(!((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value30 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x02) == 0) {                                                value30 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01)));                                            }                                            uint256 value31 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value30) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x04) == 0) {                                                value31 = value30;                                            }                                            uint256 value32 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value31) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x08) == 0) {                                                value32 = value31;                                            }                                            uint256 value33 = (0xffcb9843d60f6159c9db58835c926644 * value32) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x10) == 0) {                                                value33 = value32;                                            }                                            uint256 value34 = (0xff973b41fa98c081472e6896dfb254c0 * value33) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x20) == 0) {                                                value34 = value33;                                            }                                            uint256 value35 = (0xff2ea16466c96a3843ec78b326b52861 * value34) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x40) == 0) {                                                value35 = value34;                                            }                                            uint256 value36 = (0xfe5dee046a99a2a811c461f1969c3053 * value35) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x80) == 0) {                                                value36 = value35;                                            }                                            uint256 value37 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value36) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0100) == 0) {                                                value37 = value36;                                            }                                            uint256 value38 = (0xf987a7253ac413176f2b074cf7815e54 * value37) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0200) == 0) {                                                value38 = value37;                                            }                                            uint256 value39 = (0xf3392b0822b70005940c7a398e4b70f3 * value38) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0400) == 0) {                                                value39 = value38;                                            }                                            uint256 value40 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value39) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0800) == 0) {                                                value40 = value39;                                            }                                            uint256 value41 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value40) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x1000) == 0) {                                                value41 = value40;                                            }                                            uint256 value42 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value41) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x2000) == 0) {                                                value42 = value41;                                            }                                            uint256 value43 = (0x70d869a156d2a1b890bb3df62baf32f7 * value42) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x4000) == 0) {                                                value43 = value42;                                            }                                            uint256 value44 = (0x31be135f97d08fd981231505542fcfa6 * value43) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x8000) == 0) {                                                value44 = value43;                                            }                                            uint256 value45 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value44) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x010000) == 0) {                                                value45 = value44;                                            }                                            uint256 value46 = (0x5d6af8dedb81196699c329225ee604 * value45) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x020000) == 0) {                                                value46 = value45;                                            }                                            uint256 value47 = (value46 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x040000) == 0) {                                                value47 = value46;                                            }                                            uint256 value48 = 0;                                            uint256 value49 = (value47 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff)))) {                                                value48 = 0x80;                                                value49 = value47;                                            }                                            uint256 value50 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value49;                                            if (!(0 < int24(int24(value6 >> 0x20)))) {                                                value50 = value49;                                            }                                        } else {                                            require(!((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value51 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x02) == 0) {                                                value51 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01)));                                            }                                            uint256 value52 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value51) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x04) == 0) {                                                value52 = value51;                                            }                                            uint256 value53 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value52) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x08) == 0) {                                                value53 = value52;                                            }                                            uint256 value54 = (0xffcb9843d60f6159c9db58835c926644 * value53) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x10) == 0) {                                                value54 = value53;                                            }                                            uint256 value55 = (0xff973b41fa98c081472e6896dfb254c0 * value54) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x20) == 0) {                                                value55 = value54;                                            }                                            uint256 value56 = (0xff2ea16466c96a3843ec78b326b52861 * value55) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x40) == 0) {                                                value56 = value55;                                            }                                            uint256 value57 = (0xfe5dee046a99a2a811c461f1969c3053 * value56) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x80) == 0) {                                                value57 = value56;                                            }                                            uint256 value58 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value57) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0100) == 0) {                                                value58 = value57;                                            }                                            uint256 value59 = (0xf987a7253ac413176f2b074cf7815e54 * value58) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0200) == 0) {                                                value59 = value58;                                            }                                            uint256 value60 = (0xf3392b0822b70005940c7a398e4b70f3 * value59) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0400) == 0) {                                                value60 = value59;                                            }                                            uint256 value61 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value60) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0800) == 0) {                                                value61 = value60;                                            }                                            uint256 value62 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value61) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x1000) == 0) {                                                value62 = value61;                                            }                                            uint256 value63 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value62) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x2000) == 0) {                                                value63 = value62;                                            }                                            uint256 value64 = (0x70d869a156d2a1b890bb3df62baf32f7 * value63) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x4000) == 0) {                                                value64 = value63;                                            }                                            uint256 value65 = (0x31be135f97d08fd981231505542fcfa6 * value64) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x8000) == 0) {                                                value65 = value64;                                            }                                            uint256 value66 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value65) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x010000) == 0) {                                                value66 = value65;                                            }                                            uint256 value67 = (0x5d6af8dedb81196699c329225ee604 * value66) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x020000) == 0) {                                                value67 = value66;                                            }                                            uint256 value68 = (value67 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x040000) == 0) {                                                value68 = value67;                                            }                                            uint256 value69 = 0;                                            uint256 value70 = (value68 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff)))) {                                                value69 = 0x80;                                                value70 = value68;                                            }                                            uint256 value71 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value70;                                            if (!(0 < int24(int24(value6 >> 0x08)))) {                                                value71 = value70;                                            }                                            require(!((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value72 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x02) == 0) {                                                value72 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01)));                                            }                                            uint256 value73 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value72) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x04) == 0) {                                                value73 = value72;                                            }                                            uint256 value74 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value73) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x08) == 0) {                                                value74 = value73;                                            }                                            uint256 value75 = (0xffcb9843d60f6159c9db58835c926644 * value74) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x10) == 0) {                                                value75 = value74;                                            }                                            uint256 value76 = (0xff973b41fa98c081472e6896dfb254c0 * value75) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x20) == 0) {                                                value76 = value75;                                            }                                            uint256 value77 = (0xff2ea16466c96a3843ec78b326b52861 * value76) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x40) == 0) {                                                value77 = value76;                                            }                                            uint256 value78 = (0xfe5dee046a99a2a811c461f1969c3053 * value77) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x80) == 0) {                                                value78 = value77;                                            }                                            uint256 value79 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value78) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0100) == 0) {                                                value79 = value78;                                            }                                            uint256 value80 = (0xf987a7253ac413176f2b074cf7815e54 * value79) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0200) == 0) {                                                value80 = value79;                                            }                                            uint256 value81 = (0xf3392b0822b70005940c7a398e4b70f3 * value80) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0400) == 0) {                                                value81 = value80;                                            }                                            uint256 value82 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value81) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0800) == 0) {                                                value82 = value81;                                            }                                            uint256 value83 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value82) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x1000) == 0) {                                                value83 = value82;                                            }                                            uint256 value84 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value83) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x2000) == 0) {                                                value84 = value83;                                            }                                            uint256 value85 = (0x70d869a156d2a1b890bb3df62baf32f7 * value84) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x4000) == 0) {                                                value85 = value84;                                            }                                            uint256 value86 = (0x31be135f97d08fd981231505542fcfa6 * value85) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x8000) == 0) {                                                value86 = value85;                                            }                                            uint256 value87 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value86) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x010000) == 0) {                                                value87 = value86;                                            }                                            uint256 value88 = (0x5d6af8dedb81196699c329225ee604 * value87) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x020000) == 0) {                                                value88 = value87;                                            }                                            uint256 value89 = (value88 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x040000) == 0) {                                                value89 = value88;                                            }                                            uint256 value90 = 0;                                            uint256 value91 = (value89 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff)))) {                                                value90 = 0x80;                                                value91 = value89;                                            }                                            uint256 value92 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value91;                                            if (!(0 < int24(int24(value6 >> 0x20)))) {                                                value92 = value91;                                            }                                        }                                        uint256 value93 = address(var_g);                                        uint256 value94 = address(var_i);                                        if (address(var_g) <= address(var_i)) {                                            value93 = address(var_i);                                            value94 = address(var_g);                                        }                                        if (address(var_b.length) > (address(value94))) {                                            uint256 value98 = value93;                                            uint256 value100 = 0;                                            if (0 != (address(value93) > address(var_b.length))) {                                                uint256 value95 = address(var_b.length);                                                uint256 value96 = value93;                                                if (address(var_b.length) <= address(value93)) {                                                    value95 = value93;                                                    value96 = address(var_b.length);                                                }                                                require(value95 & (0xffffffffffffffffffffffffffffffffffffffff) > (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff))) - (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff))))));                                                uint256 value97 = (var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) / (value95 & (0xffffffffffffffffffffffffffffffffffffffff));                                                if (!(((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff))) == (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)))))) {                                                    uint256 sharedExpr17 = (0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff));                                                    uint256 sharedExpr18 = 0x03 * (value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr17);                                                    uint256 sharedExpr19 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr17) * (sharedExpr18 ^ 0x02));                                                    uint256 sharedExpr20 = sharedExpr18 ^ 0x02;                                                    uint256 sharedExpr21 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr17) * (sharedExpr19 * sharedExpr20));                                                    uint256 sharedExpr22 = sharedExpr19 * sharedExpr20;                                                    uint256 sharedExpr23 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr17) * (sharedExpr21 * sharedExpr22));                                                    uint256 sharedExpr24 = sharedExpr21 * sharedExpr22;                                                    uint256 sharedExpr25 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr17) * (sharedExpr23 * sharedExpr24));                                                    uint256 sharedExpr26 = sharedExpr23 * sharedExpr24;                                                    uint256 sharedExpr27 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr17) * (sharedExpr25 * sharedExpr26));                                                    uint256 sharedExpr28 = sharedExpr25 * sharedExpr26;                                                    uint256 sharedExpr29 = var_b;                                                    uint256 sharedExpr30 = (var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000);                                                    uint256 sharedExpr31 = (address(value95)) - (address(value96));                                                    uint256 sharedExpr32 = address(sharedExpr31);                                                    uint256 sharedExpr33 = (0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff));                                                    uint256 sharedExpr34 = 0x03 * (value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33);                                                    uint256 sharedExpr35 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33) * (sharedExpr34 ^ 0x02));                                                    uint256 sharedExpr36 = sharedExpr34 ^ 0x02;                                                    uint256 sharedExpr37 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33) * (sharedExpr35 * sharedExpr36));                                                    uint256 sharedExpr38 = sharedExpr35 * sharedExpr36;                                                    uint256 sharedExpr39 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33) * (sharedExpr37 * sharedExpr38));                                                    uint256 sharedExpr40 = sharedExpr37 * sharedExpr38;                                                    uint256 sharedExpr41 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33) * (sharedExpr39 * sharedExpr40));                                                    uint256 sharedExpr42 = sharedExpr39 * sharedExpr40;                                                    uint256 sharedExpr43 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33) * (sharedExpr41 * sharedExpr42));                                                    uint256 sharedExpr44 = sharedExpr41 * sharedExpr42;                                                    uint256 sharedExpr45 = ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) / ((0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) | (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff))) - (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)))) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % (value95 & (0xffffffffffffffffffffffffffffffffffffffff)) > ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)))) * ((0 - ((0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff)))) / ((0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) + 0x01))) * ((0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr33) * (sharedExpr43 * sharedExpr44))) * (sharedExpr43 * sharedExpr44));                                                    value97 = sharedExpr45;                                                }                                                value98 = address(var_b.length);                                                value100 = value97 / (address(value96));                                            }                                            if ((value94 & 0xffffffffffffffffffffffffffffffffffffffff) > (value98 & 0xffffffffffffffffffffffffffffffffffffffff)) {                                                require(0x01000000000000000000000000 > ((address(var_b.length) * (address(value94 - value98)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(var_b.length) * (address(value94 - value98))) - ((address(var_b.length) * (address(value94 - value98)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(var_b.length) * (address(value94 - value98))))));                                                uint256 value99 = (address(var_b.length) * (address(value94 - value98))) >> 0x60;                                                if (!((address(var_b.length) * (address(value94 - value98)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(var_b.length) * (address(value94 - value98))) == ((address(var_b.length) * (address(value94 - value98)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(var_b.length) * (address(value94 - value98)))))) {                                                    value99 = (address(var_b.length) * (address(value94 - value98)) - (address(var_b.length) * (address(value94 - value98)) % 0x01000000000000000000000000) >> 0x60) | ((address(var_b.length) * (address(value94 - value98)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(var_b.length) * (address(value94 - value98))) - ((address(var_b.length) * (address(value94 - value98)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(var_b.length) * (address(value94 - value98)))) - ((address(var_b.length) * (address(value94 - value98)) % 0x01000000000000000000000000) > (address(var_b.length) * (address(value94 - value98)))) << 0xa0);                                                }                                                if (((var_b + 0x40) > 0xffffffffffffffff) | ((var_b + 0x40) < var_b)) _desolexPanic(65);                                                var_b = var_b + 0x40;                                                if (((var_b + 0x60) > 0xffffffffffffffff) | ((var_b + 0x60) < var_b)) _desolexPanic(65);                                                var_b = var_b + 0x60;                                                uint256 value101 = 0;                                                while (true) {                                                    if (value101 >= 0x40) {                                                        break;                                                    }                                                    value101 = value101 + 0x20;                                                }                                                if (((var_b + 0x20) > 0xffffffffffffffff) | ((var_b + 0x20) < var_b)) _desolexPanic(65);                                                var_b = var_b + 0x20;                                            } else {                                                require(0x01000000000000000000000000 > ((address(var_b.length) * (address(value98 - value94)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(var_b.length) * (address(value98 - value94))) - ((address(var_b.length) * (address(value98 - value94)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(var_b.length) * (address(value98 - value94))))));                                                uint256 value103 = (address(var_b.length) * (address(value98 - value94))) >> 0x60;                                                if (!((address(var_b.length) * (address(value98 - value94)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(var_b.length) * (address(value98 - value94))) == ((address(var_b.length) * (address(value98 - value94)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(var_b.length) * (address(value98 - value94)))))) {                                                    value103 = (address(var_b.length) * (address(value98 - value94)) - (address(var_b.length) * (address(value98 - value94)) % 0x01000000000000000000000000) >> 0x60) | ((address(var_b.length) * (address(value98 - value94)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(var_b.length) * (address(value98 - value94))) - ((address(var_b.length) * (address(value98 - value94)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(var_b.length) * (address(value98 - value94)))) - ((address(var_b.length) * (address(value98 - value94)) % 0x01000000000000000000000000) > (address(var_b.length) * (address(value98 - value94)))) << 0xa0);                                                }                                                if (((var_b + 0x40) > 0xffffffffffffffff) | ((var_b + 0x40) < var_b)) _desolexPanic(65);                                                var_b = var_b + 0x40;                                                if (((var_b + 0x60) > 0xffffffffffffffff) | ((var_b + 0x60) < var_b)) _desolexPanic(65);                                                var_b = var_b + 0x60;                                                uint256 value101 = 0;                                                while (true) {                                                    if (value101 >= 0x40) {                                                        break;                                                    }                                                    value101 = value101 + 0x20;                                                }                                                if (((var_b + 0x20) > 0xffffffffffffffff) | ((var_b + 0x20) < var_b)) _desolexPanic(65);                                                var_b = var_b + 0x20;                                            }                                        } else {                                            uint256 value104 = value94;                                            uint256 value105 = value93;                                            if (address(value94) <= address(value93)) {                                                value104 = value93;                                                value105 = value94;                                            }                                            require(value104 & (0xffffffffffffffffffffffffffffffffffffffff) > (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff))) - (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff))))));                                            uint256 value106 = (var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff)) / (value104 & (0xffffffffffffffffffffffffffffffffffffffff));                                            if (!(((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff))) == (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value104) - (address(value105)) & (0xffffffffffffffffffffffffffffffffffffffff)))))) {                                                uint256 sharedExpr63 = (0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff));                                                uint256 sharedExpr64 = 0x03 * (value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr63);                                                uint256 sharedExpr65 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr63) * (sharedExpr64 ^ 0x02));                                                uint256 sharedExpr66 = sharedExpr64 ^ 0x02;                                                uint256 sharedExpr67 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr63) * (sharedExpr65 * sharedExpr66));                                                uint256 sharedExpr68 = sharedExpr65 * sharedExpr66;                                                uint256 sharedExpr69 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr63) * (sharedExpr67 * sharedExpr68));                                                uint256 sharedExpr70 = sharedExpr67 * sharedExpr68;                                                uint256 sharedExpr71 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr63) * (sharedExpr69 * sharedExpr70));                                                uint256 sharedExpr72 = sharedExpr69 * sharedExpr70;                                                uint256 sharedExpr73 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr63) * (sharedExpr71 * sharedExpr72));                                                uint256 sharedExpr74 = sharedExpr71 * sharedExpr72;                                                uint256 sharedExpr75 = var_b;                                                uint256 sharedExpr76 = (var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000);                                                uint256 sharedExpr77 = (address(value95)) - (address(value96));                                                uint256 sharedExpr78 = address(sharedExpr77);                                                uint256 sharedExpr79 = (0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff));                                                uint256 sharedExpr80 = 0x03 * (value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79);                                                uint256 sharedExpr81 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79) * (sharedExpr80 ^ 0x02));                                                uint256 sharedExpr82 = sharedExpr80 ^ 0x02;                                                uint256 sharedExpr83 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79) * (sharedExpr81 * sharedExpr82));                                                uint256 sharedExpr84 = sharedExpr81 * sharedExpr82;                                                uint256 sharedExpr85 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79) * (sharedExpr83 * sharedExpr84));                                                uint256 sharedExpr86 = sharedExpr83 * sharedExpr84;                                                uint256 sharedExpr87 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79) * (sharedExpr85 * sharedExpr86));                                                uint256 sharedExpr88 = sharedExpr85 * sharedExpr86;                                                uint256 sharedExpr89 = 0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79) * (sharedExpr87 * sharedExpr88));                                                uint256 sharedExpr90 = sharedExpr87 * sharedExpr88;                                                uint256 sharedExpr91 = ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) / ((0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) | (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff))) - (((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)))) - ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)) % (value95 & (0xffffffffffffffffffffffffffffffffffffffff)) > ((var_b.length << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * (address(value95) - (address(value96)) & (0xffffffffffffffffffffffffffffffffffffffff)))) * ((0 - ((0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff)))) / ((0 - (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value95 & (0xffffffffffffffffffffffffffffffffffffffff))) + 0x01))) * ((0x02 - ((value95 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr79) * (sharedExpr89 * sharedExpr90))) * (sharedExpr89 * sharedExpr90));                                                value106 = sharedExpr91;                                            }                                            if (((var_b + 0x40) > 0xffffffffffffffff) | ((var_b + 0x40) < var_b)) _desolexPanic(65);                                            var_b = var_b + 0x40;                                            if (((var_b + 0x60) > 0xffffffffffffffff) | ((var_b + 0x60) < var_b)) _desolexPanic(65);                                            var_b = var_b + 0x60;                                            uint256 value101 = 0;                                            while (true) {                                                if (value101 >= 0x40) {                                                    break;                                                }                                                value101 = value101 + 0x20;                                            }                                            if (((var_b + 0x20) > 0xffffffffffffffff) | ((var_b + 0x20) < var_b)) _desolexPanic(65);                                            var_b = var_b + 0x20;                                        }                                        uint256 value102 = 0;                                        while (true) {                                            if (value102 >= var_b.length) {                                                break;                                            }                                            value102 = 0x20 + value102;                                        }                                    } else {                                        if (((var_b + 0x60) > 0xffffffffffffffff) | ((var_b + 0x60) < var_b)) _desolexPanic(65);                                        var_b = var_b + 0x60;                                        (bool success4, bytes memory returnData4) = address(0x7ffe42c4a5deea5b0fec41c94c136cf115597227).getSlot0(keccak256(var_v)); // staticcall                                        require(success4);                                        if (success4) {                                            uint256 value107 = returnData4.length;                                            if (0x80 <= returnData4.length) {                                                value107 = 0x80;                                            }                                            if (((var_b + ((value107 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value107 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);                                            var_b = var_b + ((value107 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                            require(((var_b + value107) - var_b) >= 0x80);                                            require(var_b.length == (address(var_b.length)));                                            require(var_g == (int24(var_g)));                                            require(!(var_i - (uint24(var_i))));                                            require(var_k == (uint24(var_k)));                                            require(!((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value108 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x02) == 0) {                                                value108 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01)));                                            }                                            uint256 value109 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value108) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x04) == 0) {                                                value109 = value108;                                            }                                            uint256 value110 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value109) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x08) == 0) {                                                value110 = value109;                                            }                                            uint256 value111 = (0xffcb9843d60f6159c9db58835c926644 * value110) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x10) == 0) {                                                value111 = value110;                                            }                                            uint256 value112 = (0xff973b41fa98c081472e6896dfb254c0 * value111) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x20) == 0) {                                                value112 = value111;                                            }                                            uint256 value113 = (0xff2ea16466c96a3843ec78b326b52861 * value112) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x40) == 0) {                                                value113 = value112;                                            }                                            uint256 value114 = (0xfe5dee046a99a2a811c461f1969c3053 * value113) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x80) == 0) {                                                value114 = value113;                                            }                                            uint256 value115 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value114) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0100) == 0) {                                                value115 = value114;                                            }                                            uint256 value116 = (0xf987a7253ac413176f2b074cf7815e54 * value115) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0200) == 0) {                                                value116 = value115;                                            }                                            uint256 value117 = (0xf3392b0822b70005940c7a398e4b70f3 * value116) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0400) == 0) {                                                value117 = value116;                                            }                                            uint256 value118 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value117) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0800) == 0) {                                                value118 = value117;                                            }                                            uint256 value119 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value118) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x1000) == 0) {                                                value119 = value118;                                            }                                            uint256 value120 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value119) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x2000) == 0) {                                                value120 = value119;                                            }                                            uint256 value121 = (0x70d869a156d2a1b890bb3df62baf32f7 * value120) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x4000) == 0) {                                                value121 = value120;                                            }                                            uint256 value122 = (0x31be135f97d08fd981231505542fcfa6 * value121) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x8000) == 0) {                                                value122 = value121;                                            }                                            uint256 value123 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value122) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x010000) == 0) {                                                value123 = value122;                                            }                                            uint256 value124 = (0x5d6af8dedb81196699c329225ee604 * value123) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x020000) == 0) {                                                value124 = value123;                                            }                                            uint256 value125 = (value124 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x040000) == 0) {                                                value125 = value124;                                            }                                            uint256 value126 = 0;                                            uint256 value127 = (value125 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff)))) {                                                value126 = 0x80;                                                value127 = value125;                                            }                                            uint256 value128 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value127;                                            if (!(0 < int24(int24(value6 >> 0x08)))) {                                                value128 = value127;                                            }                                            require(!((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value129 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x02) == 0) {                                                value129 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01)));                                            }                                            uint256 value130 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value129) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x04) == 0) {                                                value130 = value129;                                            }                                            uint256 value131 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value130) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x08) == 0) {                                                value131 = value130;                                            }                                            uint256 value132 = (0xffcb9843d60f6159c9db58835c926644 * value131) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x10) == 0) {                                                value132 = value131;                                            }                                            uint256 value133 = (0xff973b41fa98c081472e6896dfb254c0 * value132) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x20) == 0) {                                                value133 = value132;                                            }                                            uint256 value134 = (0xff2ea16466c96a3843ec78b326b52861 * value133) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x40) == 0) {                                                value134 = value133;                                            }                                            uint256 value135 = (0xfe5dee046a99a2a811c461f1969c3053 * value134) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x80) == 0) {                                                value135 = value134;                                            }                                            uint256 value136 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value135) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0100) == 0) {                                                value136 = value135;                                            }                                            uint256 value137 = (0xf987a7253ac413176f2b074cf7815e54 * value136) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0200) == 0) {                                                value137 = value136;                                            }                                            uint256 value138 = (0xf3392b0822b70005940c7a398e4b70f3 * value137) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0400) == 0) {                                                value138 = value137;                                            }                                            uint256 value139 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value138) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0800) == 0) {                                                value139 = value138;                                            }                                            uint256 value140 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value139) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x1000) == 0) {                                                value140 = value139;                                            }                                            uint256 value141 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value140) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x2000) == 0) {                                                value141 = value140;                                            }                                            uint256 value142 = (0x70d869a156d2a1b890bb3df62baf32f7 * value141) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x4000) == 0) {                                                value142 = value141;                                            }                                            uint256 value143 = (0x31be135f97d08fd981231505542fcfa6 * value142) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x8000) == 0) {                                                value143 = value142;                                            }                                            uint256 value144 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value143) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x010000) == 0) {                                                value144 = value143;                                            }                                            uint256 value145 = (0x5d6af8dedb81196699c329225ee604 * value144) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x020000) == 0) {                                                value145 = value144;                                            }                                            uint256 value146 = (value145 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x040000) == 0) {                                                value146 = value145;                                            }                                            uint256 value147 = 0;                                            uint256 value148 = (value146 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff)))) {                                                value147 = 0x80;                                                value148 = value146;                                            }                                            uint256 value149 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value148;                                            if (!(0 < int24(int24(value6 >> 0x20)))) {                                                value149 = value148;                                            }                                        } else {                                            require(!((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value150 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x02) == 0) {                                                value150 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x01)));                                            }                                            uint256 value151 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value150) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x04) == 0) {                                                value151 = value150;                                            }                                            uint256 value152 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value151) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x08) == 0) {                                                value152 = value151;                                            }                                            uint256 value153 = (0xffcb9843d60f6159c9db58835c926644 * value152) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x10) == 0) {                                                value153 = value152;                                            }                                            uint256 value154 = (0xff973b41fa98c081472e6896dfb254c0 * value153) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x20) == 0) {                                                value154 = value153;                                            }                                            uint256 value155 = (0xff2ea16466c96a3843ec78b326b52861 * value154) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x40) == 0) {                                                value155 = value154;                                            }                                            uint256 value156 = (0xfe5dee046a99a2a811c461f1969c3053 * value155) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x80) == 0) {                                                value156 = value155;                                            }                                            uint256 value157 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value156) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0100) == 0) {                                                value157 = value156;                                            }                                            uint256 value158 = (0xf987a7253ac413176f2b074cf7815e54 * value157) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0200) == 0) {                                                value158 = value157;                                            }                                            uint256 value159 = (0xf3392b0822b70005940c7a398e4b70f3 * value158) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0400) == 0) {                                                value159 = value158;                                            }                                            uint256 value160 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value159) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x0800) == 0) {                                                value160 = value159;                                            }                                            uint256 value161 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value160) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x1000) == 0) {                                                value161 = value160;                                            }                                            uint256 value162 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value161) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x2000) == 0) {                                                value162 = value161;                                            }                                            uint256 value163 = (0x70d869a156d2a1b890bb3df62baf32f7 * value162) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x4000) == 0) {                                                value163 = value162;                                            }                                            uint256 value164 = (0x31be135f97d08fd981231505542fcfa6 * value163) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x8000) == 0) {                                                value164 = value163;                                            }                                            uint256 value165 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value164) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x010000) == 0) {                                                value165 = value164;                                            }                                            uint256 value166 = (0x5d6af8dedb81196699c329225ee604 * value165) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x020000) == 0) {                                                value166 = value165;                                            }                                            uint256 value167 = (value166 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff) & (0x040000) == 0) {                                                value167 = value166;                                            }                                            uint256 value168 = 0;                                            uint256 value169 = (value167 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x08)) >> 0xff) + int24(int24(value6 >> 0x08)) ^ (int24(int24(value6 >> 0x08)) >> 0xff)))) {                                                value168 = 0x80;                                                value169 = value167;                                            }                                            uint256 value170 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value169;                                            if (!(0 < int24(int24(value6 >> 0x08)))) {                                                value170 = value169;                                            }                                            require(!((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) > 0x0d89e8), InvalidTick());                                            uint256 value171 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01))))) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x02) == 0) {                                                value171 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x01)));                                            }                                            uint256 value172 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value171) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x04) == 0) {                                                value172 = value171;                                            }                                            uint256 value173 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value172) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x08) == 0) {                                                value173 = value172;                                            }                                            uint256 value174 = (0xffcb9843d60f6159c9db58835c926644 * value173) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x10) == 0) {                                                value174 = value173;                                            }                                            uint256 value175 = (0xff973b41fa98c081472e6896dfb254c0 * value174) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x20) == 0) {                                                value175 = value174;                                            }                                            uint256 value176 = (0xff2ea16466c96a3843ec78b326b52861 * value175) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x40) == 0) {                                                value176 = value175;                                            }                                            uint256 value177 = (0xfe5dee046a99a2a811c461f1969c3053 * value176) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x80) == 0) {                                                value177 = value176;                                            }                                            uint256 value178 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value177) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0100) == 0) {                                                value178 = value177;                                            }                                            uint256 value179 = (0xf987a7253ac413176f2b074cf7815e54 * value178) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0200) == 0) {                                                value179 = value178;                                            }                                            uint256 value180 = (0xf3392b0822b70005940c7a398e4b70f3 * value179) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0400) == 0) {                                                value180 = value179;                                            }                                            uint256 value181 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value180) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x0800) == 0) {                                                value181 = value180;                                            }                                            uint256 value182 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value181) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x1000) == 0) {                                                value182 = value181;                                            }                                            uint256 value183 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value182) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x2000) == 0) {                                                value183 = value182;                                            }                                            uint256 value184 = (0x70d869a156d2a1b890bb3df62baf32f7 * value183) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x4000) == 0) {                                                value184 = value183;                                            }                                            uint256 value185 = (0x31be135f97d08fd981231505542fcfa6 * value184) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x8000) == 0) {                                                value185 = value184;                                            }                                            uint256 value186 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value185) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x010000) == 0) {                                                value186 = value185;                                            }                                            uint256 value187 = (0x5d6af8dedb81196699c329225ee604 * value186) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x020000) == 0) {                                                value187 = value186;                                            }                                            uint256 value188 = (value187 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;                                            if ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff) & (0x040000) == 0) {                                                value188 = value187;                                            }                                            uint256 value189 = 0;                                            uint256 value190 = (value188 * 0x048a170391f7dc42444e8fa2) >> 0x80;                                            if (!(0x080000 & ((int24(int24(value6 >> 0x20)) >> 0xff) + int24(int24(value6 >> 0x20)) ^ (int24(int24(value6 >> 0x20)) >> 0xff)))) {                                                value189 = 0x80;                                                value190 = value188;                                            }                                            uint256 value191 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value190;                                            if (!(0 < int24(int24(value6 >> 0x20)))) {                                                value191 = value190;                                            }                                        }                                        uint256 value192 = address(var_g);                                        uint256 value193 = address(var_i);                                        if (address(var_g) <= address(var_i)) {                                            value192 = address(var_i);                                            value193 = address(var_g);                                        }                                        if (address(var_b.length) <= address(value193)) {                                            uint256 value194 = value193;                                            uint256 value195 = value192;                                            if (address(value193) <= address(value192)) {                                                value194 = value192;                                                value195 = value193;                                            }                                        }                                    }                                }                            }                        }                    }                }            }        }    }        function pause() public {        (bool success0, bytes memory returnData0) = stor_2.isOwner(msg.sender); // staticcall        require(success0);        uint256 value1 = msg.data[0] >> 0xe0;        uint256 var_c;        uint256 value2 = var_c.length;        if (success0) {            uint256 value0 = returnData0.length;            if (0x20 <= returnData0.length) {                value0 = 0x20;            }            if (((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);            var_c = var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            require(((var_c + value0) - var_c) >= 0x20);            require(var_c.length == var_c.length);        } else {            value1 = var_c;            value2 = 0;        }        require(value2 != 0x0, "Module: only safe can pause");        require(!(bytes1(stor_1 >> 0xa0)), "Pausable: paused");        stor_1 = (stor_1 & (0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff)) | 0x010000000000000000000000000000000000000000;        emit Paused(msg.sender);    }        function Unknown_833217be(uint256 arg0, address arg1, uint256 arg2, address arg3) public pure returns (uint256) {        require(arg2 == int24(arg2));        require(arg3 == int24(arg3));        require((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) <= 0x0d89e8, InvalidTick());        uint256 value0 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x01))))) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x02) == 0) {            value0 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x01)));        }        uint256 value1 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value0) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x04) == 0) {            value1 = value0;        }        uint256 value2 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value1) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x08) == 0) {            value2 = value1;        }        uint256 value3 = (0xffcb9843d60f6159c9db58835c926644 * value2) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x10) == 0) {            value3 = value2;        }        uint256 value4 = (0xff973b41fa98c081472e6896dfb254c0 * value3) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x20) == 0) {            value4 = value3;        }        uint256 value5 = (0xff2ea16466c96a3843ec78b326b52861 * value4) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x40) == 0) {            value5 = value4;        }        uint256 value6 = (0xfe5dee046a99a2a811c461f1969c3053 * value5) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x80) == 0) {            value6 = value5;        }        uint256 value7 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value6) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x0100) == 0) {            value7 = value6;        }        uint256 value8 = (0xf987a7253ac413176f2b074cf7815e54 * value7) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x0200) == 0) {            value8 = value7;        }        uint256 value9 = (0xf3392b0822b70005940c7a398e4b70f3 * value8) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x0400) == 0) {            value9 = value8;        }        uint256 value10 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value9) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x0800) == 0) {            value10 = value9;        }        uint256 value11 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value10) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x1000) == 0) {            value11 = value10;        }        uint256 value12 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value11) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x2000) == 0) {            value12 = value11;        }        uint256 value13 = (0x70d869a156d2a1b890bb3df62baf32f7 * value12) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x4000) == 0) {            value13 = value12;        }        uint256 value14 = (0x31be135f97d08fd981231505542fcfa6 * value13) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x8000) == 0) {            value14 = value13;        }        uint256 value15 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value14) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x010000) == 0) {            value15 = value14;        }        uint256 value16 = (0x5d6af8dedb81196699c329225ee604 * value15) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x020000) == 0) {            value16 = value15;        }        uint256 value17 = (value16 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;        if ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff) & (0x040000) == 0) {            value17 = value16;        }        uint256 value18 = 0;        uint256 value19 = (value17 * 0x048a170391f7dc42444e8fa2) >> 0x80;        if (!(0x080000 & ((int24(arg2) >> 0xff) + int24(arg2) ^ (int24(arg2) >> 0xff)))) {            value18 = 0x80;            value19 = value17;        }        uint256 value20 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value19;        if (0 >= int24(arg2)) {            value20 = value19;        }        require((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) <= 0x0d89e8, InvalidTick());        uint256 value21 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x01))))) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x02) == 0) {            value21 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x01)));        }        uint256 value22 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value21) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x04) == 0) {            value22 = value21;        }        uint256 value23 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value22) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x08) == 0) {            value23 = value22;        }        uint256 value24 = (0xffcb9843d60f6159c9db58835c926644 * value23) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x10) == 0) {            value24 = value23;        }        uint256 value25 = (0xff973b41fa98c081472e6896dfb254c0 * value24) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x20) == 0) {            value25 = value24;        }        uint256 value26 = (0xff2ea16466c96a3843ec78b326b52861 * value25) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x40) == 0) {            value26 = value25;        }        uint256 value27 = (0xfe5dee046a99a2a811c461f1969c3053 * value26) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x80) == 0) {            value27 = value26;        }        uint256 value28 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value27) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x0100) == 0) {            value28 = value27;        }        uint256 value29 = (0xf987a7253ac413176f2b074cf7815e54 * value28) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x0200) == 0) {            value29 = value28;        }        uint256 value30 = (0xf3392b0822b70005940c7a398e4b70f3 * value29) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x0400) == 0) {            value30 = value29;        }        uint256 value31 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value30) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x0800) == 0) {            value31 = value30;        }        uint256 value32 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value31) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x1000) == 0) {            value32 = value31;        }        uint256 value33 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value32) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x2000) == 0) {            value33 = value32;        }        uint256 value34 = (0x70d869a156d2a1b890bb3df62baf32f7 * value33) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x4000) == 0) {            value34 = value33;        }        uint256 value35 = (0x31be135f97d08fd981231505542fcfa6 * value34) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x8000) == 0) {            value35 = value34;        }        uint256 value36 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value35) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x010000) == 0) {            value36 = value35;        }        uint256 value37 = (0x5d6af8dedb81196699c329225ee604 * value36) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x020000) == 0) {            value37 = value36;        }        uint256 value38 = (value37 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;        if ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff) & (0x040000) == 0) {            value38 = value37;        }        uint256 value39 = 0;        uint256 value40 = (value38 * 0x048a170391f7dc42444e8fa2) >> 0x80;        if (!(0x080000 & ((int24(arg3) >> 0xff) + int24(arg3) ^ (int24(arg3) >> 0xff)))) {            value39 = 0x80;            value40 = value38;        }        uint256 value41 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value40;        if (0 >= int24(arg3)) {            value41 = value40;        }        uint256 value42 = 0xffffffffffffffffffffffffffffffffffffffff;        uint256 value43 = (value41 + 0xffffffff) >> 0x20;        uint256 value44 = arg3;        if (arg3 <= address((value41 + 0xffffffff) >> 0x20)) {            value42 = (value41 + 0xffffffff) >> 0x20;            value43 = arg3;            value44 = (value41 + 0xffffffff) >> 0x20;        }        uint256 value45 = this.code.length;        if (arg1 > (address(value43))) {            value45 = 0xffffffffffffffffffffffffffffffffffffffff;        }        if ((arg1 <= (0xffffffffffffffffffffffffffffffffffffffff & value43)) && (arg1 >= (value44 & 0xffffffffffffffffffffffffffffffffffffffff))) {            return 0;        } else {            uint256 value46 = value44;            uint256 value47 = arg1;            if (arg1 <= address(value44)) {                value46 = arg1;                value47 = value44;            }            require(0x01000000000000000000000000 > ((address(value46) * address(value47) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(value46) * address(value47)) - ((address(value46) * address(value47) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(value46) * address(value47)))));            uint256 value48 = address(value46) * (address(value47)) >> 0x60;            if (!((address(value46) * address(value47) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(value46) * address(value47)) == ((address(value46) * address(value47) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(value46) * address(value47))))) {                value48 = (address(value46) * (address(value47)) - (address(value46) * (address(value47)) % 0x01000000000000000000000000) >> 0x60) | ((address(value46) * (address(value47)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(value46) * (address(value47))) - ((address(value46) * (address(value47)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(value46) * (address(value47)))) - ((address(value46) * (address(value47)) % 0x01000000000000000000000000) > (address(value46) * (address(value47)))) << 0xa0);            }            require(address(value47 - value46) > (((arg0 * value48) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (arg0 * value48) - (((arg0 * value48) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (arg0 * value48))));            uint256 value49 = (arg0 * value48) / (address(value47 - value46));            if (!(((arg0 * value48) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (arg0 * value48) == (((arg0 * value48) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (arg0 * value48)))) {                uint256 sharedExpr14 = (0 - (address(value47 - value46))) & (address(value47 - value46));                uint256 sharedExpr15 = 0x03 * (address(value47 - value46) / sharedExpr14);                uint256 sharedExpr16 = 0x02 - ((address(value47 - value46) / sharedExpr14) * (sharedExpr15 ^ 0x02));                uint256 sharedExpr17 = sharedExpr15 ^ 0x02;                uint256 sharedExpr18 = 0x02 - ((address(value47 - value46) / sharedExpr14) * (sharedExpr16 * sharedExpr17));                uint256 sharedExpr19 = sharedExpr16 * sharedExpr17;                uint256 sharedExpr20 = 0x02 - ((address(value47 - value46) / sharedExpr14) * (sharedExpr18 * sharedExpr19));                uint256 sharedExpr21 = sharedExpr18 * sharedExpr19;                uint256 sharedExpr22 = 0x02 - ((address(value47 - value46) / sharedExpr14) * (sharedExpr20 * sharedExpr21));                uint256 sharedExpr23 = sharedExpr20 * sharedExpr21;                uint256 sharedExpr24 = 0x02 - ((address(value47 - value46) / sharedExpr14) * (sharedExpr22 * sharedExpr23));                uint256 sharedExpr25 = sharedExpr22 * sharedExpr23;                uint256 sharedExpr26 = address(value47 - value46);                uint256 sharedExpr27 = (0 - (address(value47 - value46))) & (address(value47 - value46));                uint256 sharedExpr28 = 0x03 * (address(value47 - value46) / sharedExpr27);                uint256 sharedExpr29 = 0x02 - ((address(value47 - value46) / sharedExpr27) * (sharedExpr28 ^ 0x02));                uint256 sharedExpr30 = sharedExpr28 ^ 0x02;                uint256 sharedExpr31 = 0x02 - ((address(value47 - value46) / sharedExpr27) * (sharedExpr29 * sharedExpr30));                uint256 sharedExpr32 = sharedExpr29 * sharedExpr30;                uint256 sharedExpr33 = 0x02 - ((address(value47 - value46) / sharedExpr27) * (sharedExpr31 * sharedExpr32));                uint256 sharedExpr34 = sharedExpr31 * sharedExpr32;                uint256 sharedExpr35 = 0x02 - ((address(value47 - value46) / sharedExpr27) * (sharedExpr33 * sharedExpr34));                uint256 sharedExpr36 = sharedExpr33 * sharedExpr34;                uint256 sharedExpr37 = 0x02 - ((address(value47 - value46) / sharedExpr27) * (sharedExpr35 * sharedExpr36));                uint256 sharedExpr38 = sharedExpr35 * sharedExpr36;                uint256 sharedExpr39 = ((arg0 * value48) - ((arg0 * value48) % (address(value47 - value46))) / ((0 - (address(value47 - value46))) & (address(value47 - value46))) | (((arg0 * value48) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (arg0 * value48) - (((arg0 * value48) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (arg0 * value48)) - ((arg0 * value48) % (address(value47 - value46)) > (arg0 * value48)) * ((0 - ((0 - (address(value47 - value46))) & (address(value47 - value46)))) / ((0 - (address(value47 - value46))) & (address(value47 - value46))) + 0x01))) * ((0x02 - ((address(value47 - value46) / sharedExpr27) * (sharedExpr37 * sharedExpr38))) * (sharedExpr37 * sharedExpr38));                value49 = sharedExpr39;            }            require(value49 == (value49 & 0xffffffffffffffffffffffffffffffff), SafeCastOverflow());            require(0x01000000000000000000000000 > ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff))) - ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff))))));            if ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff))) == ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff))))) {                return (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff))) >> 0x60;            } else {                return (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) - (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0x01000000000000000000000000) >> 0x60) | ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff))) - ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)))) - ((address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)) % 0x01000000000000000000000000) > (address(value49) * ((address(value43) - arg1 >> 0xff) + (address(value43) - arg1) ^ (address(value43) - arg1 >> 0xff)))) << 0xa0);            }        }    }        function Unknown_81d0ce1e(uint256 arg0) public view returns (bytes memory) {        require(arg0 == (arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000));        if (!(mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000] <= 0xffffffffffffffff)) _desolexPanic(65);        uint256 var_c;        if (((var_c + (((0x20 + (mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);        var_c = var_c + (((0x20 + (mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        if (!(mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000] <= 0xffffffffffffffff)) _desolexPanic(65);        uint256 value0 = 0;        while (true) {            if (value0 >= mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)]) {                break;            }            if (value0 >= mapping_268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cb[arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)]) {                _desolexPanic(50);                break;            }            if (!(value0 < var_c.length)) {                _desolexPanic(50);                break;            }            if (value0 == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {                _desolexPanic(17);                break;            }            value0 = 0x01 + value0;        }        uint256 value1 = 0;        uint256 value2 = var_c + 0x20;        uint256 value3 = var_c + 0x40;        while (true) {            if (value1 >= var_c.length) {                return abi.encodePacked(0x20, var_c.length);            }            value1 = 0x01 + value1;            value2 = 0x20 + value2;            value3 = 0x20 + value3;        }    }        function getSqrtPriceAtTick(int24 arg0) public pure returns (address) {        require(arg0 == int24(arg0));        internal_339a(arg0);        return address((value20 + 0xffffffff) >> 0x20);    }        function setPendingManager(address newAddress) public {        require(msg.sender == manager, NotManager());        require(newAddress != address(0), CustomError_a9023e34());        stor_1 = newAddress;        emit PendingManagerSet(stor_1);    }        function Unknown_620d97cf(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4, uint256 arg5, uint256 arg6) public payable {        if (!(msg.value)) {            if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0xe0) {                if (arg0 == (arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)) {                    if ((msg.data.length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc) >= 0xc0) {                        uint256 var_a;                        if (!(((var_a + 0xc0) > 0xffffffffffffffff) | ((var_a + 0xc0) < var_a))) {                            var_a = var_a + 0xc0;                            if (arg1 == int24(arg1)) {                                uint256 var_b = arg1;                                if (arg2 == int24(arg2)) {                                    (bool success0, bytes memory returnData0) = address(this).safe(); // staticcall                                    if (success0) {                                        uint256 value1 = var_a.length;                                        uint256 value2 = 0xffffffffffffffffffffffffffffffffffffffff;                                        if (success0) {                                            uint256 value0 = returnData0.length;                                            if (0x20 <= returnData0.length) {                                                value0 = 0x20;                                            }                                            if (((var_a + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);                                            var_a = var_a + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                            require(((var_a + value0) - var_a) >= 0x20);                                            require(var_a.length == (address(var_a.length)));                                        } else {                                            value1 = 0;                                            value2 = var_a;                                        }                                        if (msg.sender == (value1 & 0xffffffffffffffffffffffffffffffffffffffff)) {                                            if (((var_a + 0xa0) > 0xffffffffffffffff) | ((var_a + 0xa0) < var_a)) _desolexPanic(65);                                            var_a = var_a + 0xa0;                                            (bool success1, bytes memory returnData1) = address(0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e).poolKeys(arg0 & (0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000)); // staticcall                                            if (success1) {                                                if (!(success1)) {                                                    if (int24(var_p) != 0x0) {                                                        require(!((var_r & 0xffffffffffffffffffffffffffffffffffffffff) == 0x0 && (var_s & 0xffffffffffffffffffffffffffffffffffffffff) == 0x0), InvalidPool());                                                        uint256 var_q = address(var_b);                                                        var_s = 0x268a9b464727e94fd7feeb6ba7994a143471074cda9f8419490e6b1d5c3238cc;                                                        uint256 value3 = this.code.length;                                                        bool flag1 = !(!(var_b & (0x0fff)));                                                        if (isHookAllowed[address(var_b)]) {                                                            value3 = 0x80;                                                            flag1 = !(isHookAllowed[address(var_b)]);                                                        }                                                        require(!(flag1), HookNotAllowed());                                                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);                                                        var_a = var_a + 0x40;                                                        if (((var_a + 0x60) > 0xffffffffffffffff) | ((var_a + 0x60) < var_a)) _desolexPanic(65);                                                        var_a = var_a + 0x60;                                                    }                                                }                                            }                                        }                                    }                                }                            }                        }                    }                }            }        }    }        function setSafe(address newAddress) public {        require(msg.sender == manager, NotManager());        emit SafeSet(stor_2, newAddress);        stor_2 = newAddress;    }        function paused() public view returns (bool) {        return !(!(bytes1(stor_1 >> 0xa0)));    }        function acceptManager() public {        require(msg.sender == stor_1, NotPendingManager());        manager = (manager & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000)) | (stor_1 & (0xffffffffffffffffffffffffffffffffffffffff));        stor_1 = address(0);        emit ManagerAccepted();    }        function unpause() public {        (bool success0, bytes memory returnData0) = stor_2.isOwner(msg.sender); // staticcall        require(success0);        uint256 value1 = msg.data[0] >> 0xe0;        uint256 var_c;        uint256 value2 = var_c.length;        if (success0) {            uint256 value0 = returnData0.length;            if (0x20 <= returnData0.length) {                value0 = 0x20;            }            if (((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);            var_c = var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            require(((var_c + value0) - var_c) >= 0x20);            require(var_c.length == var_c.length);        } else {            value1 = var_c;            value2 = 0;        }        require(value2 != 0x0, "Module: only safe can unpause");        require(bytes1(stor_1 >> 0xa0), "Pausable: not paused");        stor_1 = stor_1 & (0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff);        emit Unpaused(msg.sender);    }        function setHookAllowed(address account, bool enabled) public {        (bool success0, bytes memory returnData0) = address(this).safe(); // staticcall        require(success0);        uint256 var_b;        uint256 value1 = var_b.length;        uint256 value2 = 0xffffffffffffffffffffffffffffffffffffffff;        if (success0) {            uint256 value0 = returnData0.length;            if (0x20 <= returnData0.length) {                value0 = 0x20;            }            if (((var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);            var_b = var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            require(((var_b + value0) - var_b) >= 0x20);            require(var_b.length == (address(var_b.length)));        } else {            value1 = 0;            value2 = var_b;        }        require(msg.sender == (value1 & 0xffffffffffffffffffffffffffffffffffffffff), NotSafe());        isHookAllowed[account] = enabled;    }        function safe() public view returns (address) {        return stor_2;    }        function Unknown_0dc78d66(bytes32 arg0, uint256 arg1, bool arg2) public {        require(arg0 == (arg0 & 0xffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000));        (bool success0, bytes memory returnData0) = address(this).safe(); // staticcall        require(success0);        uint256 var_b;        uint256 value1 = var_b.length;        uint256 value2 = 0xffffffffffffffffffffffffffffffffffffffff;        if (success0) {            uint256 value0 = returnData0.length;            if (0x20 <= returnData0.length) {                value0 = 0x20;            }            if (((var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_b)) _desolexPanic(65);            var_b = var_b + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            require(((var_b + value0) - var_b) >= 0x20);            require(var_b.length == (address(var_b.length)));        } else {            value1 = 0;            value2 = var_b;        }        require(msg.sender == (value1 & 0xffffffffffffffffffffffffffffffffffffffff), NotSafe());        if ((arg2) && (!(0 == (!(mapping_expr_i[arg1]))))) {            if (!(stor_expr_j < 0x010000000000000000)) _desolexPanic(65);            stor_expr_j = stor_expr_j + 0x01;            if (!(stor_expr_j < stor_expr_j)) _desolexPanic(50);            stor_expr_k = (0 & stor_expr_k) | (arg1 << 0);            mapping_expr_i[arg1] = stor_expr_j;        }        if (!(0 == (!(!(mapping_expr_l[arg1]))))) {            uint256 value3 = this.code.length;            uint256 value4 = this.code.length;            uint256 value5 = this.code.length;            if ((stor_expr_m + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != (mapping_expr_l[arg1] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {                if (!((stor_expr_m + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < stor_expr_m)) _desolexPanic(50);                if (!(((mapping_expr_l[arg1] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < stor_expr_m))) _desolexPanic(50);                stor_expr_p = (0 & stor_expr_n) | ((stor_expr_o >> 0) << 0);                mapping_expr_l[stor_expr_o >> 0] = mapping_expr_l[arg1];            } else {                value3 = mapping_expr_l[arg1] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;                value4 = stor_expr_m + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;                value5 = mapping_expr_l[arg1];            }            if (!(stor_expr_m != 0x0)) _desolexPanic(49);            if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + stor_expr_m) < stor_expr_m)) _desolexPanic(50);            stor_expr_r = (0) & stor_expr_r;            stor_expr_m = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + stor_expr_m;            mapping_expr_l[arg1] = 0;        }    }        function Unknown_0a717595(uint256 arg0, address arg1, uint256 arg2, uint256 arg3) public pure returns (uint256) {        require(arg2 == int24(arg2));        require(arg3 == int24(arg3));        internal_339a(arg2);        internal_339a(arg3);        uint256 value42 = this.code.length;        uint256 value43 = (value41 + 0xffffffff) >> 0x20;        uint256 value44 = (value20 + 0xffffffff) >> 0x20;        if (address((value20 + 0xffffffff) >> 0x20) <= address((value41 + 0xffffffff) >> 0x20)) {            value42 = (value41 + 0xffffffff) >> 0x20;            value43 = (value20 + 0xffffffff) >> 0x20;            value44 = (value41 + 0xffffffff) >> 0x20;        }        if (!(arg1 <= (value43 & 0xffffffffffffffffffffffffffffffffffffffff) && arg1 >= (value44 & 0xffffffffffffffffffffffffffffffffffffffff))) {            uint256 value45 = value43;            uint256 value46 = arg1;            if (!(address(value43) > arg1)) {                value45 = arg1;                value46 = value43;            }            require(address(value45 - value46) > (((arg0 * 0x01000000000000000000000000) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (arg0 << 0x60) - (((arg0 * 0x01000000000000000000000000) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (arg0 << 0x60))));            uint256 value47 = (arg0 << 0x60) / (address(value45 - value46));            if (!(((arg0 * 0x01000000000000000000000000) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (arg0 << 0x60) == (((arg0 * 0x01000000000000000000000000) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (arg0 << 0x60)))) {                uint256 sharedExpr17 = value45 - value46;                uint256 sharedExpr18 = address(sharedExpr17);                uint256 sharedExpr19 = 0 - (address(sharedExpr17));                uint256 sharedExpr20 = address(sharedExpr17);                uint256 sharedExpr21 = address(sharedExpr17);                uint256 sharedExpr22 = sharedExpr19 & sharedExpr20;                uint256 sharedExpr23 = 0x03 * (sharedExpr21 / sharedExpr22);                uint256 sharedExpr24 = 0x02 - ((sharedExpr21 / sharedExpr22) * (sharedExpr23 ^ 0x02));                uint256 sharedExpr25 = sharedExpr23 ^ 0x02;                uint256 sharedExpr26 = 0x02 - ((sharedExpr21 / sharedExpr22) * (sharedExpr24 * sharedExpr25));                uint256 sharedExpr27 = sharedExpr24 * sharedExpr25;                uint256 sharedExpr28 = 0x02 - ((sharedExpr21 / sharedExpr22) * (sharedExpr26 * sharedExpr27));                uint256 sharedExpr29 = sharedExpr26 * sharedExpr27;                uint256 sharedExpr30 = 0x02 - ((sharedExpr21 / sharedExpr22) * (sharedExpr28 * sharedExpr29));                uint256 sharedExpr31 = sharedExpr28 * sharedExpr29;                uint256 sharedExpr32 = 0x02 - ((sharedExpr21 / sharedExpr22) * (sharedExpr30 * sharedExpr31));                uint256 sharedExpr33 = sharedExpr30 * sharedExpr31;                value47 = ((arg0 << 0x60) - ((arg0 * 0x01000000000000000000000000) % sharedExpr18) / (sharedExpr19 & sharedExpr20) | (((arg0 * 0x01000000000000000000000000) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (arg0 << 0x60) - (((arg0 * 0x01000000000000000000000000) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < (arg0 << 0x60)) - (((arg0 * 0x01000000000000000000000000) % sharedExpr18) > (arg0 << 0x60)) * ((0 - (sharedExpr19 & sharedExpr20)) / (sharedExpr19 & sharedExpr20) + 0x01))) * ((0x02 - ((sharedExpr21 / sharedExpr22) * (sharedExpr32 * sharedExpr33))) * (sharedExpr32 * sharedExpr33));            }            require(value47 == (value47 & 0xffffffffffffffffffffffffffffffff), SafeCastOverflow());            uint256 value48 = this.code.length;            uint256 value49 = this.code.length;            uint256 value50 = arg1;            uint256 value51 = value44;            if (address(value44) >= arg1) {                value48 = arg1;                value49 = value44;                value50 = value44;                value51 = arg1;            }            require(address(value51), CustomError_00bfc921());            require(value50 & (0xffffffffffffffffffffffffffffffffffffffff) > (((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff))) - (((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff))))));            uint256 value52 = ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff))) / (value50 & (0xffffffffffffffffffffffffffffffffffffffff));            if (!(((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff))) == (((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)))))) {                uint256 sharedExpr46 = (0 - (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value50 & (0xffffffffffffffffffffffffffffffffffffffff));                uint256 sharedExpr47 = 0x03 * (value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr46);                uint256 sharedExpr48 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr46) * (sharedExpr47 ^ 0x02));                uint256 sharedExpr49 = sharedExpr47 ^ 0x02;                uint256 sharedExpr50 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr46) * (sharedExpr48 * sharedExpr49));                uint256 sharedExpr51 = sharedExpr48 * sharedExpr49;                uint256 sharedExpr52 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr46) * (sharedExpr50 * sharedExpr51));                uint256 sharedExpr53 = sharedExpr50 * sharedExpr51;                uint256 sharedExpr54 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr46) * (sharedExpr52 * sharedExpr53));                uint256 sharedExpr55 = sharedExpr52 * sharedExpr53;                uint256 sharedExpr56 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr46) * (sharedExpr54 * sharedExpr55));                uint256 sharedExpr57 = sharedExpr54 * sharedExpr55;                uint256 sharedExpr58 = (0 - (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value50 & (0xffffffffffffffffffffffffffffffffffffffff));                uint256 sharedExpr59 = 0x03 * (value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58);                uint256 sharedExpr60 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58) * (sharedExpr59 ^ 0x02));                uint256 sharedExpr61 = sharedExpr59 ^ 0x02;                uint256 sharedExpr62 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58) * (sharedExpr60 * sharedExpr61));                uint256 sharedExpr63 = sharedExpr60 * sharedExpr61;                uint256 sharedExpr64 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58) * (sharedExpr62 * sharedExpr63));                uint256 sharedExpr65 = sharedExpr62 * sharedExpr63;                uint256 sharedExpr66 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58) * (sharedExpr64 * sharedExpr65));                uint256 sharedExpr67 = sharedExpr64 * sharedExpr65;                uint256 sharedExpr68 = 0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58) * (sharedExpr66 * sharedExpr67));                uint256 sharedExpr69 = sharedExpr66 * sharedExpr67;                value52 = ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) - ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) / ((0 - (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) | (((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff))) - (((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)))) - ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)) % (value50 & (0xffffffffffffffffffffffffffffffffffffffff)) > ((address(value47) << 0x60) & (0xffffffffffffffffffffffffffffffff000000000000000000000000) * ((value50 - value51) & (0xffffffffffffffffffffffffffffffffffffffff)))) * ((0 - ((0 - (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value50 & (0xffffffffffffffffffffffffffffffffffffffff)))) / ((0 - (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) & (value50 & (0xffffffffffffffffffffffffffffffffffffffff))) + 0x01))) * ((0x02 - ((value50 & (0xffffffffffffffffffffffffffffffffffffffff) / sharedExpr58) * (sharedExpr68 * sharedExpr69))) * (sharedExpr68 * sharedExpr69));            }            return value52 / (address(value51));        }        return 0;    }        function internal_339a(int24 arg0) private {        require((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) <= 0x0d89e8, InvalidTick());        uint256 value0 = (0xfff97272373d413259a46990580e213a * (0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x01))))) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x02) == 0) {            value0 = 0x0100000000000000000000000000000000 ^ (0x01fffcb933bd6fad37aa2d162d1a594001 * ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x01)));        }        uint256 value1 = (0xfff2e50f5f656932ef12357cf3c7fdcc * value0) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x04) == 0) {            value1 = value0;        }        uint256 value2 = (0xffe5caca7e10e4e61c3624eaa0941cd0 * value1) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x08) == 0) {            value2 = value1;        }        uint256 value3 = (0xffcb9843d60f6159c9db58835c926644 * value2) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x10) == 0) {            value3 = value2;        }        uint256 value4 = (0xff973b41fa98c081472e6896dfb254c0 * value3) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x20) == 0) {            value4 = value3;        }        uint256 value5 = (0xff2ea16466c96a3843ec78b326b52861 * value4) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x40) == 0) {            value5 = value4;        }        uint256 value6 = (0xfe5dee046a99a2a811c461f1969c3053 * value5) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x80) == 0) {            value6 = value5;        }        uint256 value7 = (0xfcbe86c7900a88aedcffc83b479aa3a4 * value6) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x0100) == 0) {            value7 = value6;        }        uint256 value8 = (0xf987a7253ac413176f2b074cf7815e54 * value7) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x0200) == 0) {            value8 = value7;        }        uint256 value9 = (0xf3392b0822b70005940c7a398e4b70f3 * value8) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x0400) == 0) {            value9 = value8;        }        uint256 value10 = (0xe7159475a2c29b7443b29c7fa6e889d9 * value9) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x0800) == 0) {            value10 = value9;        }        uint256 value11 = (0xd097f3bdfd2022b8845ad8f792aa5825 * value10) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x1000) == 0) {            value11 = value10;        }        uint256 value12 = (0xa9f746462d870fdf8a65dc1f90e061e5 * value11) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x2000) == 0) {            value12 = value11;        }        uint256 value13 = (0x70d869a156d2a1b890bb3df62baf32f7 * value12) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x4000) == 0) {            value13 = value12;        }        uint256 value14 = (0x31be135f97d08fd981231505542fcfa6 * value13) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x8000) == 0) {            value14 = value13;        }        uint256 value15 = (0x09aa508b5b7a84e1c677de54f3e99bc9 * value14) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x010000) == 0) {            value15 = value14;        }        uint256 value16 = (0x5d6af8dedb81196699c329225ee604 * value15) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x020000) == 0) {            value16 = value15;        }        uint256 value17 = (value16 * 0x2216e584f5fa1ea926041bedfe98) >> 0x80;        if ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff) & (0x040000) == 0) {            value17 = value16;        }        uint256 value18 = 0;        uint256 value19 = (value17 * 0x048a170391f7dc42444e8fa2) >> 0x80;        if (!(0x080000 & ((int24(arg0) >> 0xff) + int24(arg0) ^ (int24(arg0) >> 0xff)))) {            value18 = 0x80;            value19 = value17;        }        uint256 value20 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / value19;        if (0 >= int24(arg0)) {            value20 = value19;        }    }        function __desolexSelectorShim(uint32 rewrittenSelector) private {        assembly {            let input := mload(0x40)            calldatacopy(input, 0, calldatasize())            mstore(input, or(and(mload(input), 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(224, and(rewrittenSelector, 0xffffffff))))            let success := delegatecall(gas(), address(), input, calldatasize(), 0, 0)            let size := returndatasize()            returndatacopy(input, 0, size)            switch success            case 0 { revert(input, size) }            default { return(input, size) }        }    }        // Note: This selector table is synthetic and is not part of the original Solidity source.    // It records the recovered selector-to-signature mapping without executable behavior.        // 0x0a717595 => Unknown_0a717595(uint256,address,uint256,uint256)    // 0x0dc78d66 => Unknown_0dc78d66(bytes32,uint256,bool)    // 0x186f0354 => safe()    // 0x1bea83fe => POSITION_MANAGER()    // 0x393f3985 => setHookAllowed(address,bool)    // 0x3f4ba83a => unpause()    // 0x481c6a75 => manager()    // 0x48ff15b3 => acceptManager()    // 0x5c975abb => paused()    // 0x5db0cb94 => setSafe(address)    // 0x620d97cf => Unknown_620d97cf(uint256,uint256,uint256,uint256,uint256,uint256,uint256)    // 0x6afdd850 => PERMIT2()    // 0x72e67d06 => setPendingManager(address)    // 0x8147b13b => getSqrtPriceAtTick(int24)    // 0x81d0ce1e => Unknown_81d0ce1e(uint256)    // 0x833217be => Unknown_833217be(uint256,address,uint256,address)    // 0x8456cb59 => pause()    // 0x948bc52f => Unknown_948bc52f(uint256,uint256)    // 0xa00fff6f => pendingManager()    // 0xaa4cfccd => STATE_VIEW()    // 0xad5c4648 => WETH()    // 0xc4d66de8 => initialize(address)    // 0xccb12bde => isHookAllowed(address)    // 0xd520db56 => Unknown_d520db56(uint256,address,address,address,address)    // 0xe8dd7fc3 => UNIVERSAL_ROUTER()    // 0xf3ae2415 => isManager(address)}