{"id":"f167f9122b988e62e243b3ec9fd7d42a","_format":"hh-sol-build-info-1","solcVersion":"0.8.13","solcLongVersion":"0.8.13+commit.abaa5c0e","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address => bool) members;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with a standardized message including the required role.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     *\n     * _Available since v4.1._\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n        return _roles[role].members[account];\n    }\n\n    /**\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\n     *\n     * Format of the revert message is described in {_checkRole}.\n     *\n     * _Available since v4.6._\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Revert with a standard message if `account` is missing `role`.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert(\n                string(\n                    abi.encodePacked(\n                        \"AccessControl: account \",\n                        Strings.toHexString(account),\n                        \" is missing role \",\n                        Strings.toHexString(uint256(role), 32)\n                    )\n                )\n            );\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override {\n        require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event. Note that unlike {grantRole}, this function doesn't perform any\n     * checks on the calling account.\n     *\n     * May emit a {RoleGranted} event.\n     *\n     * [WARNING]\n     * ====\n     * This function should only be called from the constructor when setting\n     * up the initial roles for the system.\n     *\n     * Using this function in any other way is effectively circumventing the admin\n     * system imposed by {AccessControl}.\n     * ====\n     *\n     * NOTE: This function is deprecated in favor of {_grantRole}.\n     */\n    function _setupRole(bytes32 role, address account) internal virtual {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual {\n        if (!hasRole(role, account)) {\n            _roles[role].members[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual {\n        if (hasRole(role, account)) {\n            _roles[role].members[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n        }\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor() {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 amount\n    ) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    function safeTransfer(\n        IERC20 token,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    function safeTransferFrom(\n        IERC20 token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    function safeIncreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        uint256 newAllowance = token.allowance(address(this), spender) + value;\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n    }\n\n    function safeDecreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            uint256 newAllowance = oldAllowance - value;\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n        }\n    }\n\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        if (returndata.length > 0) {\n            // Return data is optional\n            require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 denominator\n    ) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1);\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 denominator,\n        Rounding rounding\n    ) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10**64) {\n                value /= 10**64;\n                result += 64;\n            }\n            if (value >= 10**32) {\n                value /= 10**32;\n                result += 32;\n            }\n            if (value >= 10**16) {\n                value /= 10**16;\n                result += 16;\n            }\n            if (value >= 10**8) {\n                value /= 10**8;\n                result += 8;\n            }\n            if (value >= 10**4) {\n                value /= 10**4;\n                result += 4;\n            }\n            if (value >= 10**2) {\n                value /= 10**2;\n                result += 2;\n            }\n            if (value >= 10**1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10**result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/structs/EnumerableSet.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableSet for EnumerableSet.AddressSet;\n *\n *     // Declare a set state variable\n *     EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n * unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Set type with\n    // bytes32 values.\n    // The Set implementation uses private functions, and user-facing\n    // implementations (such as AddressSet) are just wrappers around the\n    // underlying Set.\n    // This means that we can only create new EnumerableSets for types that fit\n    // in bytes32.\n\n    struct Set {\n        // Storage of set values\n        bytes32[] _values;\n        // Position of the value in the `values` array, plus 1 because index 0\n        // means a value is not in the set.\n        mapping(bytes32 => uint256) _indexes;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function _add(Set storage set, bytes32 value) private returns (bool) {\n        if (!_contains(set, value)) {\n            set._values.push(value);\n            // The value is stored at length-1, but we add 1 to all indexes\n            // and use 0 as a sentinel value\n            set._indexes[value] = set._values.length;\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function _remove(Set storage set, bytes32 value) private returns (bool) {\n        // We read and store the value's index to prevent multiple reads from the same storage slot\n        uint256 valueIndex = set._indexes[value];\n\n        if (valueIndex != 0) {\n            // Equivalent to contains(set, value)\n            // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n            // the array, and then remove the last element (sometimes called as 'swap and pop').\n            // This modifies the order of the array, as noted in {at}.\n\n            uint256 toDeleteIndex = valueIndex - 1;\n            uint256 lastIndex = set._values.length - 1;\n\n            if (lastIndex != toDeleteIndex) {\n                bytes32 lastValue = set._values[lastIndex];\n\n                // Move the last value to the index where the value to delete is\n                set._values[toDeleteIndex] = lastValue;\n                // Update the index for the moved value\n                set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\n            }\n\n            // Delete the slot where the moved value was stored\n            set._values.pop();\n\n            // Delete the index for the deleted slot\n            delete set._indexes[value];\n\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function _contains(Set storage set, bytes32 value) private view returns (bool) {\n        return set._indexes[value] != 0;\n    }\n\n    /**\n     * @dev Returns the number of values on the set. O(1).\n     */\n    function _length(Set storage set) private view returns (uint256) {\n        return set._values.length;\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function _at(Set storage set, uint256 index) private view returns (bytes32) {\n        return set._values[index];\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function _values(Set storage set) private view returns (bytes32[] memory) {\n        return set._values;\n    }\n\n    // Bytes32Set\n\n    struct Bytes32Set {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _add(set._inner, value);\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _remove(set._inner, value);\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n        return _contains(set._inner, value);\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(Bytes32Set storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n        return _at(set._inner, index);\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        bytes32[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n\n    // AddressSet\n\n    struct AddressSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(AddressSet storage set, address value) internal returns (bool) {\n        return _add(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(AddressSet storage set, address value) internal returns (bool) {\n        return _remove(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(AddressSet storage set, address value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(AddressSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(AddressSet storage set, uint256 index) internal view returns (address) {\n        return address(uint160(uint256(_at(set._inner, index))));\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(AddressSet storage set) internal view returns (address[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        address[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n\n    // UintSet\n\n    struct UintSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(UintSet storage set, uint256 value) internal returns (bool) {\n        return _add(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(UintSet storage set, uint256 value) internal returns (bool) {\n        return _remove(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(UintSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n        return uint256(_at(set._inner, index));\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(UintSet storage set) internal view returns (uint256[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        uint256[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n}\n"},"contracts/allocation-vester/AllocationVester.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.13;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\r\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\r\nimport \"../Claimable.sol\";\r\n\r\n/**\r\n * @title Allocation Vester\r\n * @author shung for Pangolin\r\n * @notice This contract allows allocating and distributing tokens to recipients by vesting (i.e.,\r\n * streaming) it for arbitrary durations for each recipient.\r\n */\r\ncontract AllocationVester is Claimable {\r\n    using SafeERC20 for IERC20;\r\n    using EnumerableSet for EnumerableSet.AddressSet;\r\n\r\n    /**\r\n     * @notice The properties of an address. `reserve` is the remaining tokens to be distributed,\r\n     * `stash` is the tokens stored when the allocation changes, `lastUpdate` is the time stamp of\r\n     * the last harvest, and `rate` is the reward tokens per second being vested.\r\n     */\r\n    struct Member {\r\n        uint96 reserve;\r\n        uint96 stash;\r\n        uint64 lastUpdate;\r\n        uint256 rate;\r\n    }\r\n\r\n    /**\r\n     * @notice The mapping of member addresses to their properties.\r\n     */\r\n    mapping(address => Member) public members;\r\n\r\n    /**\r\n     * @notice The set of members who have any remaining allocation.\r\n     */\r\n    EnumerableSet.AddressSet private _membersAddresses;\r\n\r\n    /**\r\n     * @notice The address of the token being distributed.\r\n     */\r\n    IERC20 public immutable token;\r\n\r\n    /**\r\n     * @notice The total amount of tokens set to be vested to all members.\r\n     */\r\n    uint256 public reserve;\r\n\r\n    /**\r\n     * @notice The minimum duration a vesting can last.\r\n     */\r\n    uint256 public minDuration = 2 weeks;\r\n\r\n    /**\r\n     * @notice Emit an event whenever an allocation is changed.\r\n     * @param member The address of the member whose allocation was changed.\r\n     * @param allocation The new amount of tokens allocated for the member.\r\n     * @param duration The time it will take to distribute the whole `allocation`.\r\n     */\r\n    event AllocationSet(address indexed member, uint256 allocation, uint256 duration);\r\n\r\n    /**\r\n     * @notice Emit an event whenever the `minDuration` is changed.\r\n     * @param newMinDuration The minimum duration that can be defined for any allocation set after\r\n     * this event.\r\n     */\r\n    event MinDurationSet(uint256 newMinDuration);\r\n\r\n    /**\r\n     * @notice Emit an event whenever a member's pending rewards are harvested.\r\n     * @param member The address of the member whose rewards were harvested.\r\n     * @param amount The amount of reward tokens that was harvested.\r\n     */\r\n    event Harvested(address indexed member, uint256 amount);\r\n\r\n    /**\r\n     * @notice Emit an event when unallocated tokens from the contract are withdrawn by the admin.\r\n     * @param amount The amount of reward tokens that was withdrawn from the contract.\r\n     */\r\n    event Withdrawn(uint256 amount);\r\n\r\n    /**\r\n     * @notice Constructs a new AllocationVester contract.\r\n     * @param distributionToken The address of the token to be distributed.\r\n     */\r\n    constructor(address distributionToken) {\r\n        // Ensure the supplied argument is not null.\r\n        require(distributionToken != address(0), \"zero address\");\r\n\r\n        // Set the reward token to the supplied argument.\r\n        token = IERC20(distributionToken);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to claim pending rewards of the caller.\r\n     */\r\n    function harvest() external {\r\n        // Get the member using a storage pointer.\r\n        Member storage member = members[msg.sender];\r\n\r\n        // Get the claimable rewards of the member.\r\n        uint256 amount = pendingHarvest(msg.sender);\r\n        require(amount != 0, \"no pending harvest\");\r\n\r\n        // Update the Member properties.\r\n        member.lastUpdate = uint64(block.timestamp);\r\n        member.stash = 0;\r\n        member.reserve -= uint96(amount);\r\n\r\n        // Free claimed tokens from the reserves.\r\n        reserve -= amount;\r\n\r\n        // Remove the member from the set if it has no allocation remaining.\r\n        if (member.reserve == 0) {\r\n            _membersAddresses.remove(msg.sender);\r\n        }\r\n\r\n        // Transfer the rewards from the contract to the member, and then emit an event.\r\n        token.safeTransfer(msg.sender, amount);\r\n        emit Harvested(msg.sender, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to withdraw unallocated tokens from the contract.\r\n     * @param amount The amount of tokens to withdraw.\r\n     */\r\n    function withdraw(uint256 amount) external onlyOwner {\r\n        // Ensure only unallocated reward tokens are being withdrawn.\r\n        require(unreserved() >= amount, \"low balance\");\r\n\r\n        // Transfer the tokens from the contract to the owner, and then emit an event.\r\n        token.safeTransfer(msg.sender, amount);\r\n        emit Withdrawn(amount);\r\n    }\r\n\r\n\r\n    /**\r\n     * @notice External restricted function to add or removes members, or change their allocations.\r\n     * @param accounts An array of member addresses.\r\n     * @param allocations The amount of tokens to allocate to the corresponding member.\r\n     * @param durations The duration the corresponding allocation will last for.\r\n     */\r\n    function setAllocations(\r\n        address[] calldata accounts,\r\n        uint256[] calldata allocations,\r\n        uint256[] calldata durations\r\n    ) external onlyOwner {\r\n        // Record variables in memory to save gas when looping.\r\n        uint256 length = accounts.length;\r\n        uint256 tmpReserve = reserve;\r\n        uint256 tmpMinDuration = minDuration;\r\n\r\n        // Ensure all array lengths are equal and non-zero.\r\n        require(length != 0, \"empty array\");\r\n        require(\r\n            length == allocations.length && length == durations.length,\r\n            \"varying-length arrays\"\r\n        );\r\n\r\n        // Loop through all the supplied members.\r\n        for (uint256 i; i < length; ++i) {\r\n            // Record variables in memory to save gas.\r\n            address account = accounts[i];\r\n            uint256 allocation = allocations[i];\r\n            uint256 duration = durations[i];\r\n\r\n            // Ensure the supplied member address is not null.\r\n            require(account != address(0), \"bad recipient\");\r\n\r\n            // Get the member using a storage pointer, and record its reserve.\r\n            Member storage member = members[account];\r\n            uint96 tmpMemberReserve = member.reserve;\r\n\r\n            // Check the member's remaining allocation.\r\n            if (tmpMemberReserve != 0) {\r\n                // Stash the pending rewards of the member so it remains claimable.\r\n                uint96 tmpMemberStash = uint96(pendingHarvest(account));\r\n                member.stash = tmpMemberStash;\r\n\r\n                // Free non-stashed reserves of the member from the reserves.\r\n                tmpReserve -= (tmpMemberReserve - tmpMemberStash);\r\n\r\n                // Free non-stashed tokens from member's reserves.\r\n                tmpMemberReserve = tmpMemberStash;\r\n            }\r\n\r\n            // Check the member's new allocation.\r\n            if (allocation != 0) {\r\n                // Ensure duration is at or above the minimum duration and allocation fits 96 bits.\r\n                require(duration >= tmpMinDuration, \"short vesting duration\");\r\n                require(allocation <= type(uint96).max, \"invalid allocation\");\r\n\r\n                // Lock the new allocation as reserve.\r\n                tmpReserve += allocation;\r\n\r\n                // Get reward rate and ensure that is not truncated to zero.\r\n                uint256 rate = allocation / duration;\r\n                require(rate != 0, \"rate truncated to zero\");\r\n\r\n                // Update Member properties.\r\n                tmpMemberReserve += uint96(allocation);\r\n                member.rate = rate;\r\n                member.lastUpdate = uint64(block.timestamp);\r\n\r\n                // Add the member to the members set if it is not already included in the set.\r\n                _membersAddresses.add(account);\r\n            } else if (tmpMemberReserve == 0) {\r\n                // Remove member from the set if has no reserves remaining.\r\n                _membersAddresses.remove(account);\r\n            }\r\n\r\n            // Assign back the temporary variable to the member storage property.\r\n            member.reserve = tmpMemberReserve;\r\n\r\n            // Emit an event for the new allocation.\r\n            emit AllocationSet(account, allocation, duration);\r\n        }\r\n\r\n        // Ensure sufficient balance is present for the allocations.\r\n        require(token.balanceOf(address(this)) >= tmpReserve, \"low balance\");\r\n\r\n        // Assign back the temporary variable to the storage.\r\n        reserve = tmpReserve;\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to change the minimum duration.\r\n     * @param newMinDuration The new minimum duration a vesting can last for.\r\n     */\r\n    function setMinDuration(uint256 newMinDuration) external onlyOwner {\r\n        // Ensure the supplied argument is not null.\r\n        require(newMinDuration != 0, \"zero duration\");\r\n\r\n        // Set minimum duration and emit an event.\r\n        minDuration = newMinDuration;\r\n        emit MinDurationSet(newMinDuration);\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get all active the members.\r\n     * @return The list of all members who have remaining allocation.\r\n     */\r\n    function getMembers() external view returns (address[] memory) {\r\n        return _membersAddresses.values();\r\n    }\r\n\r\n    /**\r\n     * @notice Public view function to get the amount of pending reward tokens of a member.\r\n     * @param account The address of the member.\r\n     * @return The amount of harvestable reward tokens of the member.\r\n     */\r\n    function pendingHarvest(address account) public view returns (uint256) {\r\n        // Get the member into the memory.\r\n        Member memory member = members[account];\r\n\r\n        // Get the amount by adding stashed amount to reward rate multiplied by time.\r\n        uint256 amount = member.stash + ((block.timestamp - member.lastUpdate) * member.rate);\r\n\r\n        // Clamp the returned amount to member's reserve amount.\r\n        return amount > member.reserve ? member.reserve : amount;\r\n    }\r\n\r\n    /**\r\n     * @notice Public view function to get the amount of unallocated reward tokens in the contract.\r\n     * @return The amount of unallocated reward tokens in the contract.\r\n     */\r\n    function unreserved() public view returns (uint256) {\r\n        return token.balanceOf(address(this)) - reserve;\r\n    }\r\n}\r\n"},"contracts/Claimable.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\nabstract contract Claimable is Ownable {\r\n    address private _pendingOwner;\r\n\r\n    event PendingOwnerSet(address indexed pendingOwner);\r\n\r\n    constructor() {\r\n        _pendingOwner = _msgSender();\r\n    }\r\n\r\n    function claimOwnership() external {\r\n        require(_msgSender() == _pendingOwner, \"Claimable: not pending owner\");\r\n        _transferOwnership(_pendingOwner);\r\n    }\r\n\r\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\r\n        _pendingOwner = newOwner;\r\n        emit PendingOwnerSet(newOwner);\r\n    }\r\n\r\n    function renounceOwnership() public virtual override onlyOwner {\r\n        require(_pendingOwner == address(0), \"Claimable: pending owner not zero address\");\r\n        _transferOwnership(address(0));\r\n    }\r\n\r\n    function pendingOwner() public view virtual returns (address) {\r\n        return _pendingOwner;\r\n    }\r\n}\r\n"},"contracts/fee-collector/FeeCollector.sol":{"content":"// SPDX-License-Identifier: MIT\r\n\r\npragma solidity 0.8.13;\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\r\n\r\ninterface IPangolinPair {\r\n    function token0() external view returns (address);\r\n    function token1() external view returns (address);\r\n    function burn(address to) external returns (uint amount0, uint amount1);\r\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\r\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r\n    function balanceOf(address owner) external view returns (uint);\r\n}\r\n\r\ninterface IMiniChef {\r\n    function harvest(uint256 pid, address to) external;\r\n}\r\n\r\ninterface IStakingRewards {\r\n    function rewardsToken() external view returns (address);\r\n    function notifyRewardAmount(uint256 reward) external;\r\n    function setRewardsDuration(uint256 _rewardsDuration) external;\r\n    function transferOwnership(address newOwner) external;\r\n}\r\n\r\ncontract FeeCollector is AccessControl, Pausable {\r\n\r\n    using SafeERC20 for IERC20;\r\n\r\n    address public immutable FACTORY;\r\n    bytes32 public immutable PAIR_INIT_HASH; // Specified as hex\r\n    address public immutable WRAPPED_TOKEN;\r\n\r\n    bytes32 public constant HARVEST_ROLE = keccak256(\"HARVEST_ROLE\");\r\n    bytes32 public constant PAUSE_ROLE = keccak256(\"PAUSE_ROLE\");\r\n    bytes32 public constant RECOVERY_ROLE = keccak256(\"RECOVERY_ROLE\");\r\n    bytes32 public constant GOVERNOR_ROLE = keccak256(\"GOVERNOR_ROLE\");\r\n\r\n    uint256 public constant FEE_DENOMINATOR = 10_000;\r\n    uint256 public constant MAX_HARVEST_INCENTIVE = 200; // 2%\r\n\r\n    address public stakingRewards;\r\n    address public stakingRewardsRewardToken;\r\n\r\n    address public treasury;\r\n    uint256 public treasuryFee = 1500; // 15%\r\n    uint256 public harvestIncentive = 10; // 0.1%\r\n\r\n    address public miniChef;\r\n    uint256 public miniChefPoolId;\r\n\r\n    mapping(address => bool) public isRecoverable;\r\n\r\n    constructor(\r\n        address _wrappedToken,\r\n        address _factory,\r\n        bytes32 _initHash,\r\n        address _stakingRewards,\r\n        address _miniChef,\r\n        uint256 _pid,\r\n        address _treasury,\r\n        address _governor,\r\n        address _admin\r\n    ) {\r\n        WRAPPED_TOKEN = _wrappedToken;\r\n        FACTORY = _factory;\r\n        PAIR_INIT_HASH = _initHash;\r\n\r\n        require(_stakingRewards != address(0), \"Invalid address\");\r\n        address _stakingRewardsRewardToken = IStakingRewards(_stakingRewards).rewardsToken();\r\n        require(_stakingRewardsRewardToken != address(0), \"Invalid staking reward\");\r\n        stakingRewards = _stakingRewards;\r\n        stakingRewardsRewardToken = _stakingRewardsRewardToken;\r\n\r\n        miniChef = _miniChef;\r\n        miniChefPoolId = _pid;\r\n        treasury = _treasury;\r\n\r\n        _grantRole(DEFAULT_ADMIN_ROLE, _admin);\r\n        _grantRole(HARVEST_ROLE, _admin);\r\n        _grantRole(PAUSE_ROLE, _admin);\r\n        _grantRole(RECOVERY_ROLE, _admin);\r\n        _setRoleAdmin(RECOVERY_ROLE, RECOVERY_ROLE); // RECOVERY_ROLE is self-managed\r\n        _grantRole(GOVERNOR_ROLE, _governor);\r\n        _setRoleAdmin(GOVERNOR_ROLE, GOVERNOR_ROLE); // GOVERNOR_ROLE is self-managed\r\n    }\r\n\r\n    /// @notice Change staking rewards contract address\r\n    /// @param _stakingRewards - New contract address\r\n    function setRewardsContract(address _stakingRewards) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        require(_stakingRewards != address(0), \"Invalid address\");\r\n        address _stakingRewardsRewardToken = IStakingRewards(_stakingRewards).rewardsToken();\r\n        require(_stakingRewardsRewardToken != address(0), \"Invalid staking reward\");\r\n        stakingRewards = _stakingRewards;\r\n        stakingRewardsRewardToken = _stakingRewardsRewardToken;\r\n    }\r\n\r\n    /// @notice Change the percentage of each harvest that goes to the caller\r\n    /// @param _harvestIncentive - New incentive ratio in bips\r\n    function setHarvestIncentive(uint256 _harvestIncentive) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        require(_harvestIncentive <= MAX_HARVEST_INCENTIVE, \"Incentive too large\");\r\n        require(_harvestIncentive + treasuryFee <= FEE_DENOMINATOR, \"Total fees must <= 100\");\r\n        harvestIncentive = _harvestIncentive;\r\n    }\r\n\r\n    /// @notice Disable the harvest and recover functions\r\n    function pause() external onlyRole(PAUSE_ROLE) {\r\n        _pause();\r\n    }\r\n\r\n    /// @notice Re-enable the harvest and recover functions\r\n    function unpause() external onlyRole(PAUSE_ROLE) {\r\n        _unpause();\r\n    }\r\n\r\n    /// @notice Allows a liquidity token to be withdrawn fully without a buyback\r\n    /// @dev Intended for recovering LP involving a token with fees on transfer\r\n    function setRecoverable(address token, bool allowed) external onlyRole(RECOVERY_ROLE) {\r\n        isRecoverable[token] = allowed;\r\n    }\r\n\r\n    /// @notice Change the percentage of each harvest that goes to the treasury\r\n    /// @param _treasuryFee - New ratio in bips\r\n    function setTreasuryFee(uint256 _treasuryFee) external onlyRole(GOVERNOR_ROLE) {\r\n        require(harvestIncentive + _treasuryFee <= FEE_DENOMINATOR, \"Total fees must <= 100\");\r\n        treasuryFee = _treasuryFee;\r\n    }\r\n\r\n    /// @notice Updates the recipient of treasury fees\r\n    /// @param _treasury - New treasury wallet\r\n    function setTreasury(address _treasury) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        require(_treasury != address(0));\r\n        treasury = _treasury;\r\n    }\r\n\r\n    /// @notice Sets the MiniChef address to collect rewards from\r\n    /// @param _miniChef - New MiniChef address\r\n    function setMiniChef(address _miniChef) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        require(_miniChef != address(0));\r\n        miniChef = _miniChef;\r\n    }\r\n\r\n    /// @notice Sets the MiniChef pool used to accumulate rewards from emissions\r\n    /// @param _pid - ID of the pool on MiniChef\r\n    function setMiniChefPool(uint256 _pid) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        miniChefPoolId = _pid;\r\n    }\r\n\r\n    /// @notice Proxy function to set reward duration on the staking contract\r\n    /// @param _rewardsDuration - the duration of the new period\r\n    function setRewardsDuration(uint256 _rewardsDuration) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        IStakingRewards(stakingRewards).setRewardsDuration(_rewardsDuration);\r\n    }\r\n\r\n    /// @notice Proxy function to change ownership of the staking contract\r\n    /// @param _newOwner - address to transfer ownership to\r\n    function transferStakingOwnership(address _newOwner) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        IStakingRewards(stakingRewards).transferOwnership(_newOwner);\r\n    }\r\n\r\n    /// @notice Remove liquidity associated with a pair\r\n    /// @param pair - The pair from which to retrieve liquidity\r\n    /// @param balance - The amount to pull\r\n    /// @return token0 - token0 address of the pair\r\n    /// @return amount0 - Amount of token0 received via burn\r\n    /// @return token1 - token1 address of the pair\r\n    /// @return amount1 - Amount of token1 received via burn\r\n    function _pullLiquidity(\r\n        address pair,\r\n        uint256 balance\r\n    ) private returns (\r\n        address token0,\r\n        uint256 amount0,\r\n        address token1,\r\n        uint256 amount1\r\n    ) {\r\n        token0 = IPangolinPair(pair).token0();\r\n        token1 = IPangolinPair(pair).token1();\r\n\r\n        require(pairFor(token0, token1) == pair, \"Invalid pair\");\r\n\r\n        IERC20(pair).safeTransfer(pair, balance);\r\n        (amount0, amount1) = IPangolinPair(pair).burn(address(this));\r\n    }\r\n\r\n    /// @notice Swap a token for the specified output token\r\n    /// @param token - address of the token to swap\r\n    /// @param amount - amount of the token to swap\r\n    /// @dev Swaps are executed directly against pairs with infinite slippage tolerance\r\n    function _swap(address token, address outputToken, uint256 amount) private {\r\n        if (token == WRAPPED_TOKEN || outputToken == WRAPPED_TOKEN) {\r\n            direct2Swap(amount, token, outputToken);\r\n        } else {\r\n            direct3Swap(amount, token, WRAPPED_TOKEN, outputToken);\r\n        }\r\n    }\r\n\r\n    /// @notice For a list of liquidity pairs, withdraws all liquidity and swaps it to a specified token\r\n    /// @param liquidityPairs - list of all the pairs to pull\r\n    /// @param outputToken - the token into which all liquidity will be swapped\r\n    function _convertLiquidity(IPangolinPair[] memory liquidityPairs, address outputToken) private {\r\n        for (uint256 i; i < liquidityPairs.length; ++i) {\r\n            IPangolinPair liquidityPair = liquidityPairs[i];\r\n            uint256 pglBalance = liquidityPair.balanceOf(address(this));\r\n            if (pglBalance > 0) {\r\n                (\r\n                    address token0,\r\n                    uint256 token0Pulled,\r\n                    address token1,\r\n                    uint256 token1Pulled\r\n                ) = _pullLiquidity(address(liquidityPair), pglBalance);\r\n                if (token0 != outputToken) {\r\n                    _swap(token0, outputToken, token0Pulled);\r\n                }\r\n                if (token1 != outputToken) {\r\n                    _swap(token1, outputToken, token1Pulled);\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    /// @notice - Converts all the LP tokens specified to the rewards token and\r\n    /// transfers it to the staking contract, treasury, and caller\r\n    /// @param liquidityPairs - list of all the pairs to harvest\r\n    /// @param claimMiniChef - whether to also harvest additional rewards accrued via MiniChef\r\n    /// @param minFinalBalance - required min png balance after the buybacks (slippage control)\r\n    function harvest(\r\n        IPangolinPair[] calldata liquidityPairs,\r\n        bool claimMiniChef,\r\n        uint256 minFinalBalance\r\n    ) external whenNotPaused onlyRole(HARVEST_ROLE) {\r\n        address _stakingRewardsRewardToken = stakingRewardsRewardToken; // Gas savings\r\n\r\n        if (liquidityPairs.length > 0) {\r\n            _convertLiquidity(liquidityPairs, _stakingRewardsRewardToken);\r\n        }\r\n\r\n        if (claimMiniChef) {\r\n            IMiniChef(miniChef).harvest(miniChefPoolId, address(this));\r\n        }\r\n\r\n        uint256 finalBalance = IERC20(_stakingRewardsRewardToken).balanceOf(address(this));\r\n        require(finalBalance >= minFinalBalance, \"High Slippage\");\r\n\r\n        uint256 _callIncentive = finalBalance * harvestIncentive / FEE_DENOMINATOR;\r\n        uint256 _treasuryFee = finalBalance * treasuryFee / FEE_DENOMINATOR;\r\n        uint256 _totalRewards = finalBalance - _callIncentive - _treasuryFee;\r\n\r\n        if (_totalRewards > 0) {\r\n            address _stakingRewards = stakingRewards;\r\n            IERC20(_stakingRewardsRewardToken).safeTransfer(_stakingRewards, _totalRewards);\r\n            IStakingRewards(_stakingRewards).notifyRewardAmount(_totalRewards);\r\n        }\r\n        if (_treasuryFee > 0) {\r\n            IERC20(_stakingRewardsRewardToken).safeTransfer(treasury, _treasuryFee);\r\n        }\r\n        if (_callIncentive > 0) {\r\n            IERC20(_stakingRewardsRewardToken).safeTransfer(msg.sender, _callIncentive);\r\n        }\r\n    }\r\n\r\n    /// @notice Recovers LP tokens to the treasury. Requires LP is whitelisted by the RECOVERY_ROLE\r\n    /// @param liquidityPairs - list of all the pairs to recover\r\n    /// @dev Intended to recover LP involving a token with fees on transfer\r\n    function recoverLP(address[] calldata liquidityPairs) external whenNotPaused onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        address _treasury = treasury;\r\n        uint256 len = liquidityPairs.length;\r\n        for (uint256 i; i < len; ++i) {\r\n            require(isRecoverable[liquidityPairs[i]], \"Cannot recover\");\r\n            IERC20 liquidityPair = IERC20(liquidityPairs[i]);\r\n            liquidityPair.safeTransfer(_treasury, liquidityPair.balanceOf(address(this)));\r\n        }\r\n    }\r\n\r\n    function direct2Swap(uint256 amountIn, address tokenA, address tokenB) internal {\r\n        address pairAB = pairFor(tokenA, tokenB);\r\n\r\n        uint256 amountOutAB = getAmountOut(amountIn, pairAB, tokenA, tokenB);\r\n\r\n        IERC20(tokenA).safeTransfer(pairAB, amountIn);\r\n\r\n        if (tokenA < tokenB) {\r\n            IPangolinPair(pairAB).swap(0, amountOutAB, address(this), new bytes(0));\r\n        } else {\r\n            IPangolinPair(pairAB).swap(amountOutAB, 0, address(this), new bytes(0));\r\n        }\r\n    }\r\n\r\n    function direct3Swap(uint256 amountIn, address tokenA, address tokenB, address tokenC) internal {\r\n        address pairAB = pairFor(tokenA, tokenB);\r\n        address pairBC = pairFor(tokenB, tokenC);\r\n\r\n        uint256 amountOutAB = getAmountOut(amountIn, pairAB, tokenA, tokenB);\r\n        uint256 amountOutBC = getAmountOut(amountOutAB, pairBC, tokenB, tokenC);\r\n\r\n        IERC20(tokenA).safeTransfer(pairAB, amountIn);\r\n\r\n        if (tokenA < tokenB) {\r\n            IPangolinPair(pairAB).swap(0, amountOutAB, pairBC, new bytes(0));\r\n        } else {\r\n            IPangolinPair(pairAB).swap(amountOutAB, 0, pairBC, new bytes(0));\r\n        }\r\n\r\n        if (tokenB < tokenC) {\r\n            IPangolinPair(pairBC).swap(0, amountOutBC, address(this), new bytes(0));\r\n        } else {\r\n            IPangolinPair(pairBC).swap(amountOutBC, 0, address(this), new bytes(0));\r\n        }\r\n    }\r\n\r\n    // Simplified from PangolinLibrary\r\n    // Combines PangolinLibrary.getAmountOut and PangolinLibrary.getReserves\r\n    function getAmountOut(\r\n        uint256 amountIn,\r\n        address pair,\r\n        address tokenA,\r\n        address tokenB\r\n    ) internal view returns (uint256 amountOut) {\r\n        (uint256 reserve0, uint256 reserve1,) = IPangolinPair(pair).getReserves();\r\n        (uint256 reserveIn, uint256 reserveOut) = tokenA < tokenB ? (reserve0, reserve1) : (reserve1, reserve0);\r\n\r\n        uint256 amountInWithFee = amountIn * 997;\r\n        uint256 numerator = amountInWithFee * reserveOut;\r\n        uint256 denominator = (reserveIn * 1000) + amountInWithFee;\r\n        amountOut = numerator / denominator;\r\n    }\r\n\r\n    // Migrated from PangolinLibrary\r\n    // calculates the CREATE2 address for a Pangolin pair without making any external calls\r\n    function pairFor(address tokenA, address tokenB) private view returns (address pair) {\r\n        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);\r\n        pair = address(uint160(uint256(keccak256(abi.encodePacked(\r\n            hex'ff',\r\n            FACTORY,\r\n            keccak256(abi.encodePacked(token0, token1)),\r\n            PAIR_INIT_HASH\r\n        )))));\r\n    }\r\n}\r\n"},"contracts/pangolin-core/interfaces/IPangolinFactory.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IPangolinFactory {\r\n    event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n    function feeTo() external view returns (address);\r\n    function feeToSetter() external view returns (address);\r\n\r\n    function getPair(address tokenA, address tokenB) external view returns (address pair);\r\n    function allPairs(uint) external view returns (address pair);\r\n    function allPairsLength() external view returns (uint);\r\n\r\n    function createPair(address tokenA, address tokenB) external returns (address pair);\r\n\r\n    function setFeeTo(address) external;\r\n    function setFeeToSetter(address) external;\r\n}\r\n"},"contracts/pangolin-core/interfaces/IPangolinPair.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IPangolinPair {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external pure returns (string memory);\r\n    function symbol() external pure returns (string memory);\r\n    function decimals() external pure returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n\r\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\r\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\r\n    function nonces(address owner) external view returns (uint);\r\n\r\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\r\n\r\n    event Mint(address indexed sender, uint amount0, uint amount1);\r\n    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\r\n    event Swap(\r\n        address indexed sender,\r\n        uint amount0In,\r\n        uint amount1In,\r\n        uint amount0Out,\r\n        uint amount1Out,\r\n        address indexed to\r\n    );\r\n    event Sync(uint112 reserve0, uint112 reserve1);\r\n\r\n    function MINIMUM_LIQUIDITY() external pure returns (uint);\r\n    function factory() external view returns (address);\r\n    function token0() external view returns (address);\r\n    function token1() external view returns (address);\r\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r\n    function price0CumulativeLast() external view returns (uint);\r\n    function price1CumulativeLast() external view returns (uint);\r\n    function kLast() external view returns (uint);\r\n\r\n    function mint(address to) external returns (uint liquidity);\r\n    function burn(address to) external returns (uint amount0, uint amount1);\r\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\r\n    function skim(address to) external;\r\n    function sync() external;\r\n\r\n    function initialize(address, address) external;\r\n}\r\n"},"contracts/pangolin-lib/libraries/TransferHelper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\r\n\r\npragma solidity >=0.6.0;\r\n\r\n// helper methods for interacting with ERC20 tokens and sending AVAX that do not consistently return true/false\r\nlibrary TransferHelper {\r\n    function safeApprove(\r\n        address token,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        // bytes4(keccak256(bytes('approve(address,uint256)')));\r\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\r\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');\r\n    }\r\n\r\n    function safeTransfer(\r\n        address token,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        // bytes4(keccak256(bytes('transfer(address,uint256)')));\r\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\r\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');\r\n    }\r\n\r\n    function safeTransferFrom(\r\n        address token,\r\n        address from,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\r\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\r\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');\r\n    }\r\n\r\n    function safeTransferAVAX(address to, uint256 value) internal {\r\n        (bool success, ) = to.call{value: value}(new bytes(0));\r\n        require(success, 'TransferHelper: AVAX_TRANSFER_FAILED');\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/interfaces/IERC20.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IERC20 {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external view returns (string memory);\r\n    function symbol() external view returns (string memory);\r\n    function decimals() external view returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n}\r\n"},"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol":{"content":"pragma solidity >=0.8.0;\r\n\r\n// SPDX-License-Identifier: MIT\r\n\r\ninterface IPangolinRouterSupportingFees {\r\n    function FACTORY() external view returns (address);\r\n    function WAVAX() external view returns (address);\r\n\r\n    function MAX_FEE() external view returns (uint24);\r\n    function FEE_FLOOR() external view returns (uint24);\r\n\r\n    struct FeeInfo {\r\n        uint24 feePartner;\r\n        uint24 feeProtocol;\r\n        uint24 feeTotal;\r\n        uint24 feeCut;\r\n        bool initialized;\r\n    }\r\n\r\n    function getFeeInfo(address feeTo) view external returns (\r\n        uint24 feePartner,\r\n        uint24 feeProtocol,\r\n        uint24 feeTotal,\r\n        uint24 feeCut,\r\n        bool initialized\r\n    );\r\n\r\n    event PartnerActivated(address indexed partner, uint24 feePartner, uint24 feeProtocol, uint24 feeTotal, uint24 feeCut);\r\n    event FeeChange(address indexed partner, uint24 feePartner, uint24 feeProtocol, uint24 feeTotal, uint24 feeCut);\r\n    event ProtocolFee(address indexed partner, address indexed token, uint256 amount);\r\n    event PartnerFee(address indexed partner, address indexed token, uint256 amount);\r\n    event FeeWithdrawn(address indexed token, uint256 amount, address to);\r\n    event FeeFloorChange(uint24 feeFloor);\r\n    event ManagerChange(address indexed partner, address manager, bool isAllowed);\r\n\r\n    function managers(address partner, address manager) view external returns (bool isAllowed);\r\n\r\n    function swapExactTokensForTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external returns (uint[] memory amounts);\r\n    function swapTokensForExactTokens(\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external returns (uint[] memory amounts);\r\n    function swapExactAVAXForTokens(\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external payable returns (uint[] memory amounts);\r\n    function swapTokensForExactAVAX(\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external returns (uint[] memory amounts);\r\n    function swapExactTokensForAVAX(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external returns (uint[] memory amounts);\r\n    function swapAVAXForExactTokens(\r\n        uint amountOut,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external payable returns (uint[] memory amounts);\r\n\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external;\r\n    function swapExactAVAXForTokensSupportingFeeOnTransferTokens(\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external payable;\r\n    function swapExactTokensForAVAXSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline,\r\n        address feeTo\r\n    ) external;\r\n\r\n    function activatePartner(address partner) external;\r\n    function modifyManagement(address partner, address manager, bool isAllowed) external;\r\n    function modifyTotalFee(address partner, uint24 feeTotal) external;\r\n    function modifyFeeCut(address partner, uint24 feeCut) external;\r\n    function modifyFeeFloor(uint24 feeFloor) external;\r\n    function withdrawFees(address[] calldata tokens, uint256[] calldata amounts, address to) external;\r\n\r\n    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);\r\n    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);\r\n    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);\r\n    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);\r\n    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);\r\n}\r\n"},"contracts/pangolin-periphery/interfaces/IWAVAX.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IWAVAX {\r\n    function deposit() external payable;\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function withdraw(uint) external;\r\n}\r\n"},"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol":{"content":"pragma solidity >=0.8.0;\r\n\r\nimport '../../pangolin-core/interfaces/IPangolinFactory.sol';\r\nimport '../../pangolin-core/interfaces/IPangolinPair.sol';\r\n\r\n// SPDX-License-Identifier: MIT\r\n\r\n// @dev PangolinLibrary compliant with solidity v0.8.0+\r\n// @dev Specific changes were made to remove SafeMath, type-cast pair addresses, and optimize gas use\r\nlibrary PangolinLibrary8 {\r\n    // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {\r\n        require(tokenA != tokenB, 'PangolinLibrary: IDENTICAL_ADDRESSES');\r\n        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);\r\n        require(token0 != address(0), 'PangolinLibrary: ZERO_ADDRESS');\r\n    }\r\n\r\n    // calculates the CREATE2 address for a pair without making any external calls\r\n    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {\r\n        (address token0, address token1) = sortTokens(tokenA, tokenB);\r\n        pair = address(uint160(uint256(keccak256(abi.encodePacked(\r\n            hex'ff',\r\n            factory,\r\n            keccak256(abi.encodePacked(token0, token1)),\r\n            hex'40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545' // init code hash\r\n        )))));\r\n    }\r\n\r\n    // fetches and sorts the reserves for a pair\r\n    function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint256 reserveA, uint256 reserveB) {\r\n        (address token0,) = sortTokens(tokenA, tokenB);\r\n        (uint256 reserve0, uint256 reserve1,) = IPangolinPair(pairFor(factory, tokenA, tokenB)).getReserves();\r\n        (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);\r\n    }\r\n\r\n    // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset\r\n    function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) internal pure returns (uint256 amountB) {\r\n        require(amountA > 0, 'PangolinLibrary: INSUFFICIENT_AMOUNT');\r\n        require(reserveA > 0 && reserveB > 0, 'PangolinLibrary: INSUFFICIENT_LIQUIDITY');\r\n        amountB = amountA * reserveB / reserveA;\r\n    }\r\n\r\n    // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n    function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) internal pure returns (uint256 amountOut) {\r\n        require(amountIn > 0, 'PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT');\r\n        require(reserveIn > 0 && reserveOut > 0, 'PangolinLibrary: INSUFFICIENT_LIQUIDITY');\r\n        uint256 amountInWithFee = amountIn * 997;\r\n        uint256 numerator = amountInWithFee * reserveOut;\r\n        uint256 denominator = (reserveIn * 1000) + amountInWithFee;\r\n        amountOut = numerator / denominator;\r\n    }\r\n\r\n    // given an output amount of an asset and pair reserves, returns a required input amount of the other asset\r\n    function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) internal pure returns (uint256 amountIn) {\r\n        require(amountOut > 0, 'PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT');\r\n        require(reserveIn > 0 && reserveOut > 0, 'PangolinLibrary: INSUFFICIENT_LIQUIDITY');\r\n        uint256 numerator = reserveIn * amountOut * 1000;\r\n        uint256 denominator = (reserveOut - amountOut) * 997;\r\n        amountIn = (numerator / denominator) + 1;\r\n    }\r\n\r\n    // performs chained getAmountOut calculations on any number of pairs\r\n    function getAmountsOut(address factory, uint256 amountIn, address[] memory path) internal view returns (uint[] memory amounts) {\r\n        require(path.length >= 2, 'PangolinLibrary: INVALID_PATH');\r\n        unchecked {\r\n            amounts = new uint[](path.length);\r\n            amounts[0] = amountIn;\r\n            for (uint256 i; i < path.length - 1; ++i) {\r\n                (uint256 reserveIn, uint256 reserveOut) = getReserves(factory, path[i], path[i + 1]);\r\n                amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut);\r\n            }\r\n        }\r\n    }\r\n\r\n    // performs chained getAmountIn calculations on any number of pairs\r\n    function getAmountsIn(address factory, uint256 amountOut, address[] memory path) internal view returns (uint[] memory amounts) {\r\n        require(path.length >= 2, 'PangolinLibrary: INVALID_PATH');\r\n        unchecked {\r\n            amounts = new uint[](path.length);\r\n            amounts[amounts.length - 1] = amountOut;\r\n            for (uint256 i = path.length - 1; i > 0; --i) {\r\n                (uint256 reserveIn, uint256 reserveOut) = getReserves(factory, path[i - 1], path[i]);\r\n                amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut);\r\n            }\r\n        }\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/PangolinRouterSupportingFees.sol":{"content":"pragma solidity 0.8.13;\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"../pangolin-lib/libraries/TransferHelper.sol\";\r\nimport \"./libraries/PangolinLibrary8.sol\";\r\n\r\nimport \"./interfaces/IERC20.sol\";\r\nimport \"./interfaces/IPangolinRouterSupportingFees.sol\";\r\nimport \"./interfaces/IWAVAX.sol\";\r\n\r\n// SPDX-License-Identifier: MIT\r\n\r\n// @dev Router allowing percent fees to be charged on the output token of a swap\r\ncontract PangolinRouterSupportingFees is IPangolinRouterSupportingFees, Ownable {\r\n    address public immutable override FACTORY;\r\n    address public immutable override WAVAX;\r\n\r\n    uint24 constant private BIPS = 100_00;\r\n    uint24 constant private MAX_FEE_CUT = 50_00;\r\n    uint24 constant private MAX_FEE_FLOOR = 30;\r\n    uint24 constant public MAX_FEE = 2_00;\r\n    uint24 public FEE_FLOOR = 0;\r\n\r\n    // @dev Available externally via getFeeInfo(feeTo)\r\n    mapping(address => FeeInfo) private feeInfos;\r\n\r\n    // partner => manager => isAllowed\r\n    mapping(address => mapping(address => bool)) public managers;\r\n\r\n    modifier ensure(uint256 deadline) {\r\n        require(deadline >= block.timestamp, \"EXPIRED\");\r\n        _;\r\n    }\r\n\r\n    constructor(address _FACTORY, address _WAVAX, address firstOwner) {\r\n        require(_FACTORY != address(0), \"Invalid factory\");\r\n        require(_WAVAX != address(0), \"Invalid wrapped currency\");\r\n        require(firstOwner != address(0), \"Invalid first owner\");\r\n        FACTORY = _FACTORY;\r\n        WAVAX = _WAVAX;\r\n        transferOwnership(firstOwner);\r\n    }\r\n\r\n    receive() external payable {\r\n        assert(msg.sender == WAVAX); // only accept AVAX via fallback from the WAVAX contract\r\n    }\r\n\r\n    // **** SWAP ****\r\n    // requires the initial amount to have already been sent to the first pair\r\n    // returns resulting balance to address(this)\r\n    function _swap(uint256[] memory amounts, address[] memory path) internal {\r\n        for (uint256 i; i < path.length - 1; ++i) {\r\n            (address input, address output) = (path[i], path[i + 1]);\r\n            (address token0,) = PangolinLibrary8.sortTokens(input, output);\r\n            uint256 amountOut = amounts[i + 1];\r\n            (uint256 amount0Out, uint256 amount1Out) = input == token0 ? (uint(0), amountOut) : (amountOut, uint(0));\r\n            address to = i < path.length - 2 ? PangolinLibrary8.pairFor(FACTORY, output, path[i + 2]) : address(this);\r\n            IPangolinPair(PangolinLibrary8.pairFor(FACTORY, input, output)).swap(\r\n                amount0Out, amount1Out, to, new bytes(0)\r\n            );\r\n        }\r\n    }\r\n    function _distribute(\r\n        uint256 userAmountOut,\r\n        address tokenOut,\r\n        address userTo,\r\n        address partnerFeeTo,\r\n        uint256 feeCut,\r\n        uint256 feeTotalAmount\r\n    ) internal {\r\n        uint256 pangolinFeeAmount = feeTotalAmount * feeCut / BIPS;\r\n        uint256 partnerFeeAmount = feeTotalAmount - pangolinFeeAmount;\r\n\r\n        if (pangolinFeeAmount > 0) {\r\n            emit ProtocolFee(partnerFeeTo, tokenOut, pangolinFeeAmount);\r\n        }\r\n        if (partnerFeeAmount > 0) {\r\n            TransferHelper.safeTransfer(tokenOut, partnerFeeTo, partnerFeeAmount);\r\n            emit PartnerFee(partnerFeeTo, tokenOut, partnerFeeAmount);\r\n        }\r\n        TransferHelper.safeTransfer(tokenOut, userTo, userAmountOut);\r\n    }\r\n    function _distributeAVAX(\r\n        uint256 userAmountOut,\r\n        address userTo,\r\n        address partnerFeeTo,\r\n        uint256 feeCut,\r\n        uint256 feeTotalAmount\r\n    ) internal {\r\n        uint256 pangolinFeeAmount = feeTotalAmount * feeCut / BIPS;\r\n        uint256 partnerFeeAmount = feeTotalAmount - pangolinFeeAmount;\r\n\r\n        if (pangolinFeeAmount > 0) {\r\n            emit ProtocolFee(partnerFeeTo, WAVAX, pangolinFeeAmount);\r\n        }\r\n        if (partnerFeeAmount > 0) {\r\n            TransferHelper.safeTransfer(WAVAX, partnerFeeTo, partnerFeeAmount);\r\n            emit PartnerFee(partnerFeeTo, WAVAX, partnerFeeAmount);\r\n        }\r\n        IWAVAX(WAVAX).withdraw(userAmountOut);\r\n        TransferHelper.safeTransferAVAX(userTo, userAmountOut);\r\n    }\r\n    function swapExactTokensForTokens(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external ensure(deadline) returns (uint256[] memory amounts) {\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n\r\n        amounts = PangolinLibrary8.getAmountsOut(FACTORY, amountIn, path);\r\n\r\n        uint256 feeTotalAmount;\r\n        uint256 userAmountOut;\r\n\r\n        { // Scope amountOut locally\r\n            uint256 amountOut = amounts[amounts.length - 1];\r\n            feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n            userAmountOut = amountOut - feeTotalAmount;\r\n        }\r\n\r\n        require(userAmountOut >= amountOutMin, \"INSUFFICIENT_OUTPUT_AMOUNT\");\r\n\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary8.pairFor(FACTORY, path[0], path[1]), amountIn\r\n        );\r\n\r\n        _swap(amounts, path);\r\n        _distribute(userAmountOut, path[path.length - 1], to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n    }\r\n    function swapTokensForExactTokens(\r\n        uint256 amountOut,\r\n        uint256 amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external ensure(deadline) returns (uint256[] memory amounts) {\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n\r\n        // Adjust amountOut to include fee\r\n        amounts = PangolinLibrary8.getAmountsIn(FACTORY, amountOut + feeTotalAmount, path);\r\n        uint256 amountIn = amounts[0];\r\n        require(amountIn <= amountInMax, \"EXCESSIVE_INPUT_AMOUNT\");\r\n\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary8.pairFor(FACTORY, path[0], path[1]), amountIn\r\n        );\r\n\r\n        _swap(amounts, path);\r\n        _distribute(amountOut, path[path.length - 1], to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n    }\r\n    function swapExactAVAXForTokens(\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external payable ensure(deadline) returns (uint256[] memory amounts) {\r\n        require(path[0] == WAVAX, \"INVALID_PATH\");\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n\r\n        amounts = PangolinLibrary8.getAmountsOut(FACTORY, msg.value, path);\r\n\r\n        uint256 amountOut = amounts[amounts.length - 1];\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n        uint256 userAmountOut = amountOut - feeTotalAmount;\r\n\r\n        require(userAmountOut >= amountOutMin, \"INSUFFICIENT_OUTPUT_AMOUNT\");\r\n\r\n        IWAVAX(WAVAX).deposit{value: msg.value}();\r\n        assert(IWAVAX(WAVAX).transfer(PangolinLibrary8.pairFor(FACTORY, WAVAX, path[1]), msg.value));\r\n\r\n        _swap(amounts, path);\r\n        _distribute(userAmountOut, path[path.length - 1], to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n    }\r\n    function swapTokensForExactAVAX(\r\n        uint256 amountOut,\r\n        uint256 amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external ensure(deadline) returns (uint256[] memory amounts) {\r\n        require(path[path.length - 1] == WAVAX, \"INVALID_PATH\");\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n\r\n        // Adjust amountOut to include fee\r\n        amounts = PangolinLibrary8.getAmountsIn(FACTORY, amountOut + feeTotalAmount, path);\r\n        uint256 amountIn = amounts[0];\r\n        require(amountIn <= amountInMax, \"EXCESSIVE_INPUT_AMOUNT\");\r\n\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary8.pairFor(FACTORY, path[0], path[1]), amountIn\r\n        );\r\n\r\n        _swap(amounts, path);\r\n        _distributeAVAX(amountOut, to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n    }\r\n    function swapExactTokensForAVAX(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external ensure(deadline) returns (uint256[] memory amounts) {\r\n        require(path[path.length - 1] == WAVAX, \"INVALID_PATH\");\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n\r\n        amounts = PangolinLibrary8.getAmountsOut(FACTORY, amountIn, path);\r\n\r\n        uint256 feeTotalAmount;\r\n        uint256 userAmountOut;\r\n\r\n        { // Scope amountOut locally\r\n            uint256 amountOut = amounts[amounts.length - 1];\r\n            feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n            userAmountOut = amountOut - feeTotalAmount;\r\n        }\r\n\r\n        require(userAmountOut >= amountOutMin, \"INSUFFICIENT_OUTPUT_AMOUNT\");\r\n\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary8.pairFor(FACTORY, path[0], path[1]), amounts[0]\r\n        );\r\n\r\n        _swap(amounts, path);\r\n        _distributeAVAX(userAmountOut, to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n    }\r\n    function swapAVAXForExactTokens(\r\n        uint256 amountOut,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external payable ensure(deadline) returns (uint256[] memory amounts) {\r\n        require(path[0] == WAVAX, \"INVALID_PATH\");\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n\r\n        // Adjust amountOut to include fee\r\n        amounts = PangolinLibrary8.getAmountsIn(FACTORY, amountOut + feeTotalAmount, path);\r\n        uint256 amountIn = amounts[0];\r\n        require(amountIn <= msg.value, \"EXCESSIVE_INPUT_AMOUNT\");\r\n\r\n        IWAVAX(WAVAX).deposit{value: amountIn}();\r\n        assert(IWAVAX(WAVAX).transfer(PangolinLibrary8.pairFor(FACTORY, WAVAX, path[1]), amountIn));\r\n\r\n        _swap(amounts, path);\r\n        _distribute(amountOut, path[path.length - 1], to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n\r\n        // refund dust AVAX, if any\r\n        if (msg.value > amountIn) TransferHelper.safeTransferAVAX(msg.sender, msg.value - amountIn);\r\n    }\r\n\r\n    // **** SWAP (supporting fee-on-transfer tokens) ****\r\n    // requires the initial amount to have already been sent to the first pair\r\n    // returns resulting balance to address(this)\r\n    function _swapSupportingFeeOnTransferTokens(address[] memory path) internal {\r\n        for (uint256 i; i < path.length - 1; ++i) {\r\n            (address input, address output) = (path[i], path[i + 1]);\r\n            (address token0,) = PangolinLibrary8.sortTokens(input, output);\r\n            IPangolinPair pair = IPangolinPair(PangolinLibrary8.pairFor(FACTORY, input, output));\r\n            uint256 amountInput;\r\n            uint256 amountOutput;\r\n            { // scope to avoid stack too deep errors\r\n            (uint256 reserve0, uint256 reserve1,) = pair.getReserves();\r\n            (uint256 reserveInput, uint256 reserveOutput) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0);\r\n            amountInput = IERC20(input).balanceOf(address(pair)) - reserveInput;\r\n            amountOutput = PangolinLibrary8.getAmountOut(amountInput, reserveInput, reserveOutput);\r\n            }\r\n            (uint256 amount0Out, uint256 amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0));\r\n            address to = i < path.length - 2 ? PangolinLibrary8.pairFor(FACTORY, output, path[i + 2]) : address(this);\r\n            pair.swap(amount0Out, amount1Out, to, new bytes(0));\r\n        }\r\n    }\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external ensure(deadline) {\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary8.pairFor(FACTORY, path[0], path[1]), amountIn\r\n        );\r\n        address tokenOut = path[path.length - 1];\r\n        uint256 balanceBefore = IERC20(tokenOut).balanceOf(to);\r\n        uint256 amountOut = IERC20(tokenOut).balanceOf(address(this));\r\n        _swapSupportingFeeOnTransferTokens(path);\r\n        amountOut = IERC20(tokenOut).balanceOf(address(this)) - amountOut; // Ensures stored fees are safe\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n\r\n        _distribute(amountOut - feeTotalAmount, tokenOut, to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n\r\n        require(\r\n            IERC20(tokenOut).balanceOf(to) - balanceBefore >= amountOutMin,\r\n            \"INSUFFICIENT_OUTPUT_AMOUNT\"\r\n        );\r\n    }\r\n    function swapExactAVAXForTokensSupportingFeeOnTransferTokens(\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external payable ensure(deadline) {\r\n        require(path[0] == WAVAX, \"INVALID_PATH\");\r\n        IWAVAX(WAVAX).deposit{value: msg.value}();\r\n        assert(IWAVAX(WAVAX).transfer(PangolinLibrary8.pairFor(FACTORY, WAVAX, path[1]), msg.value));\r\n        address tokenOut = path[path.length - 1];\r\n        uint256 balanceBefore = IERC20(tokenOut).balanceOf(to);\r\n        uint256 amountOut = IERC20(tokenOut).balanceOf(address(this));\r\n        _swapSupportingFeeOnTransferTokens(path);\r\n        amountOut = IERC20(tokenOut).balanceOf(address(this)) - amountOut; // Ensures stored fees are safe\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n\r\n        _distribute(amountOut - feeTotalAmount, tokenOut, to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n\r\n        require(\r\n            IERC20(tokenOut).balanceOf(to) - balanceBefore >= amountOutMin,\r\n            \"INSUFFICIENT_OUTPUT_AMOUNT\"\r\n        );\r\n    }\r\n    function swapExactTokensForAVAXSupportingFeeOnTransferTokens(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline,\r\n        address feeTo\r\n    ) external ensure(deadline) {\r\n        require(path[path.length - 1] == WAVAX, \"INVALID_PATH\");\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary8.pairFor(FACTORY, path[0], path[1]), amountIn\r\n        );\r\n        uint256 amountOut = IERC20(WAVAX).balanceOf(address(this));\r\n        _swapSupportingFeeOnTransferTokens(path);\r\n        amountOut = IERC20(WAVAX).balanceOf(address(this)) - amountOut; // Ensures stored fees are safe\r\n\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        require(feeInfo.initialized, \"Invalid partner\");\r\n        uint256 feeTotalAmount = amountOut * feeInfo.feeTotal / BIPS;\r\n        uint256 userAmountOut = amountOut - feeTotalAmount;\r\n        require(userAmountOut >= amountOutMin, \"INSUFFICIENT_OUTPUT_AMOUNT\");\r\n\r\n        _distributeAVAX(userAmountOut, to, feeTo, feeInfo.feeCut, feeTotalAmount);\r\n    }\r\n\r\n    // **** FEE FUNCTIONS ****\r\n    function getFeeInfo(address feeTo) external view returns (\r\n        uint24 feePartner,\r\n        uint24 feeProtocol,\r\n        uint24 feeTotal,\r\n        uint24 feeCut,\r\n        bool initialized\r\n    ) {\r\n        FeeInfo storage feeInfo = feeInfos[feeTo];\r\n        return (\r\n            feeInfo.feePartner,\r\n            feeInfo.feeProtocol,\r\n            feeInfo.feeTotal,\r\n            feeInfo.feeCut,\r\n            feeInfo.initialized\r\n        );\r\n    }\r\n    function activatePartner(address partner) external {\r\n        FeeInfo storage feeInfo = feeInfos[partner];\r\n        require(!feeInfo.initialized, \"Already initialized\");\r\n\r\n        uint24 feeFloor = FEE_FLOOR; // Gas savings\r\n\r\n        if (feeFloor > 0) {\r\n            (uint24 feeProtocol, uint24 feePartner) = _calculateFees(feeFloor, MAX_FEE_CUT);\r\n            feeInfo.feeTotal = feeFloor;\r\n            feeInfo.feePartner = feePartner;\r\n            feeInfo.feeProtocol = feeProtocol;\r\n        }\r\n\r\n        feeInfo.feeCut = MAX_FEE_CUT;\r\n        feeInfo.initialized = true;\r\n\r\n        emit PartnerActivated(partner, feeInfo.feePartner, feeInfo.feeProtocol, feeInfo.feeTotal, MAX_FEE_CUT);\r\n    }\r\n    function modifyManagement(address partner, address manager, bool isAllowed) external {\r\n        require(msg.sender == partner || msg.sender == owner(), \"Permission denied\");\r\n\r\n        require(feeInfos[partner].initialized, \"Not initialized\");\r\n        require(managers[partner][manager] != isAllowed, \"No change required\");\r\n\r\n        managers[partner][manager] = isAllowed;\r\n\r\n        emit ManagerChange(partner, manager, isAllowed);\r\n    }\r\n    function modifyTotalFee(address partner, uint24 feeTotal) external {\r\n        require(msg.sender == partner || msg.sender == owner() || managers[partner][msg.sender], \"Permission denied\");\r\n\r\n        require(feeTotal <= MAX_FEE, \"Excessive total fee\");\r\n        require(feeTotal >= FEE_FLOOR, \"Insufficient total fee\");\r\n\r\n        FeeInfo storage feeInfo = feeInfos[partner];\r\n        require(feeInfo.initialized, \"Not initialized\");\r\n        require(feeInfo.feeTotal != feeTotal, \"No change required\");\r\n\r\n        (uint24 feeProtocol, uint24 feePartner) = _calculateFees(feeTotal, feeInfo.feeCut);\r\n\r\n        feeInfo.feePartner = feePartner;\r\n        feeInfo.feeProtocol = feeProtocol;\r\n        feeInfo.feeTotal = feeTotal;\r\n\r\n        emit FeeChange(partner, feePartner, feeProtocol, feeTotal, feeInfo.feeCut);\r\n    }\r\n    function modifyFeeCut(address partner, uint24 feeCut) external {\r\n        require(msg.sender == owner(), \"Permission denied\");\r\n\r\n        require(feeCut <= MAX_FEE_CUT, \"Excessive fee cut\");\r\n\r\n        FeeInfo storage feeInfo = feeInfos[partner];\r\n        require(feeInfo.initialized, \"Not initialized\");\r\n        require(feeInfo.feeCut != feeCut, \"No change required\");\r\n\r\n        (uint24 feeProtocol, uint24 feePartner) = _calculateFees(feeInfo.feeTotal, feeCut);\r\n\r\n        feeInfo.feePartner = feePartner;\r\n        feeInfo.feeProtocol = feeProtocol;\r\n        feeInfo.feeCut = feeCut;\r\n\r\n        emit FeeChange(partner, feePartner, feeProtocol, feeInfo.feeTotal, feeCut);\r\n    }\r\n    function modifyFeeFloor(uint24 feeFloor) external {\r\n        require(msg.sender == owner(), \"Permission denied\");\r\n        require(feeFloor <= MAX_FEE_FLOOR, \"Excessive fee floor\");\r\n        FEE_FLOOR = feeFloor;\r\n        emit FeeFloorChange(feeFloor);\r\n    }\r\n    function withdrawFees(address[] calldata tokens, uint256[] calldata amounts, address to) external {\r\n        require(msg.sender == owner(), \"Permission denied\");\r\n        uint256 tokensLength = tokens.length;\r\n        require(tokensLength == amounts.length, \"Mismatched array lengths\");\r\n        for (uint256 i; i < tokensLength; ++i) {\r\n            TransferHelper.safeTransfer(tokens[i], to, amounts[i]);\r\n            emit FeeWithdrawn(tokens[i], amounts[i], to);\r\n        }\r\n    }\r\n\r\n    function _calculateFees(\r\n        uint24 feeTotal,\r\n        uint24 feeCut\r\n    ) private pure returns (uint24 feeProtocol, uint24 feePartner) {\r\n        unchecked {\r\n            feeProtocol = feeTotal * feeCut / BIPS; // Range [ 0, MAX_FEE:200 ]\r\n            feePartner = feeTotal - feeProtocol; // Range [ 0, MAX_FEE:200 ]\r\n        }\r\n    }\r\n\r\n    // **** LIBRARY FUNCTIONS ****\r\n    function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) public pure returns (uint256 amountB) {\r\n        return PangolinLibrary8.quote(amountA, reserveA, reserveB);\r\n    }\r\n\r\n    function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut)\r\n        public\r\n        pure\r\n        returns (uint256 amountOut)\r\n    {\r\n        return PangolinLibrary8.getAmountOut(amountIn, reserveIn, reserveOut);\r\n    }\r\n\r\n    function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut)\r\n        public\r\n        pure\r\n        returns (uint256 amountIn)\r\n    {\r\n        return PangolinLibrary8.getAmountIn(amountOut, reserveIn, reserveOut);\r\n    }\r\n\r\n    function getAmountsOut(uint256 amountIn, address[] memory path)\r\n        public\r\n        view\r\n        returns (uint256[] memory amounts)\r\n    {\r\n        return PangolinLibrary8.getAmountsOut(FACTORY, amountIn, path);\r\n    }\r\n\r\n    function getAmountsIn(uint256 amountOut, address[] memory path)\r\n        public\r\n        view\r\n        returns (uint256[] memory amounts)\r\n    {\r\n        return PangolinLibrary8.getAmountsIn(FACTORY, amountOut, path);\r\n    }\r\n\r\n}\r\n"}},"settings":{"optimizer":{"enabled":true,"runs":2000},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"1878","formattedMessage":"Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/pangolin-core/interfaces/IPangolinFactory.sol\n\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/pangolin-core/interfaces/IPangolinFactory.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/pangolin-core/interfaces/IPangolinPair.sol\n\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/pangolin-core/interfaces/IPangolinPair.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/pangolin-periphery/interfaces/IERC20.sol\n\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/pangolin-periphery/interfaces/IERC20.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/pangolin-periphery/interfaces/IWAVAX.sol\n\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/pangolin-periphery/interfaces/IWAVAX.sol","start":-1},"type":"Warning"}],"sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[315],"Context":[1356],"ERC165":[1555],"IAccessControl":[388],"IERC165":[1567],"Math":[2432],"Strings":[1531]},"id":316,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:0"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":389,"src":"133:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":1357,"src":"164:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":1532,"src":"195:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":1556,"src":"226:43:0","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":1356,"src":"1841:7:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"1841:7:0"},{"baseName":{"id":9,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":388,"src":"1850:14:0"},"id":10,"nodeType":"InheritanceSpecifier","src":"1850:14:0"},{"baseName":{"id":11,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":1555,"src":"1866:6:0"},"id":12,"nodeType":"InheritanceSpecifier","src":"1866:6:0"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"271:1534:0","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":315,"linearizedBaseContracts":[315,1555,1567,388,1356],"name":"AccessControl","nameLocation":"1824:13:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":19,"members":[{"constant":false,"id":16,"mutability":"mutable","name":"members","nameLocation":"1930:7:0","nodeType":"VariableDeclaration","scope":19,"src":"1905:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":15,"keyType":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":14,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":18,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:0","nodeType":"VariableDeclaration","scope":19,"src":"1947:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:0","nodeType":"StructDefinition","scope":315,"src":"1879:92:0","visibility":"public"},{"constant":false,"id":24,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:0","nodeType":"VariableDeclaration","scope":315,"src":"1977:43:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":23,"keyType":{"id":20,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":22,"nodeType":"UserDefinedTypeName","pathNode":{"id":21,"name":"RoleData","nodeType":"IdentifierPath","referencedDeclaration":19,"src":"1996:8:0"},"referencedDeclaration":19,"src":"1996:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":27,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:0","nodeType":"VariableDeclaration","scope":315,"src":"2027:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":26,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":37,"nodeType":"Block","src":"2495:44:0","statements":[{"expression":{"arguments":[{"id":33,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2516:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,131],"referencedDeclaration":92,"src":"2505:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":34,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2505:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35,"nodeType":"ExpressionStatement","src":"2505:16:0"},{"id":36,"nodeType":"PlaceholderStatement","src":"2531:1:0"}]},"documentation":{"id":28,"nodeType":"StructuredDocumentation","src":"2083:375:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":38,"name":"onlyRole","nameLocation":"2472:8:0","nodeType":"ModifierDefinition","parameters":{"id":31,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30,"mutability":"mutable","name":"role","nameLocation":"2489:4:0","nodeType":"VariableDeclaration","scope":38,"src":"2481:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:0"},"src":"2463:76:0","virtual":false,"visibility":"internal"},{"baseFunctions":[1554],"body":{"id":59,"nodeType":"Block","src":"2697:111:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2714:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":49,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2734:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$388_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$388_$","typeString":"type(contract IAccessControl)"}],"id":48,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":50,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$388","typeString":"type(contract IAccessControl)"}},"id":51,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":55,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2789:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":53,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2765:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$315_$","typeString":"type(contract super AccessControl)"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1554,"src":"2765:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46,"id":58,"nodeType":"Return","src":"2707:94:0"}]},"documentation":{"id":39,"nodeType":"StructuredDocumentation","src":"2545:56:0","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":60,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:0","nodeType":"FunctionDefinition","overrides":{"id":43,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:0"},"parameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:0","nodeType":"VariableDeclaration","scope":60,"src":"2633:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:0"},"returnParameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60,"src":"2691:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:0"},"scope":315,"src":"2606:202:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[355],"body":{"id":78,"nodeType":"Block","src":"2987:53:0","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":71,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":73,"indexExpression":{"id":72,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"3011:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":74,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"3004:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76,"indexExpression":{"id":75,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3025:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":70,"id":77,"nodeType":"Return","src":"2997:36:0"}]},"documentation":{"id":61,"nodeType":"StructuredDocumentation","src":"2814:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":79,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:0","nodeType":"FunctionDefinition","overrides":{"id":67,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:0"},"parameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63,"mutability":"mutable","name":"role","nameLocation":"2920:4:0","nodeType":"VariableDeclaration","scope":79,"src":"2912:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":62,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":65,"mutability":"mutable","name":"account","nameLocation":"2934:7:0","nodeType":"VariableDeclaration","scope":79,"src":"2926:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79,"src":"2981:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:0"},"scope":315,"src":"2895:145:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":91,"nodeType":"Block","src":"3390:47:0","statements":[{"expression":{"arguments":[{"id":86,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"3411:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"3417:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":88,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3417:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":85,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,131],"referencedDeclaration":131,"src":"3400:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90,"nodeType":"ExpressionStatement","src":"3400:30:0"}]},"documentation":{"id":80,"nodeType":"StructuredDocumentation","src":"3046:283:0","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":92,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:0","nodeType":"FunctionDefinition","parameters":{"id":83,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"role","nameLocation":"3362:4:0","nodeType":"VariableDeclaration","scope":92,"src":"3354:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:0"},"returnParameters":{"id":84,"nodeType":"ParameterList","parameters":[],"src":"3390:0:0"},"scope":315,"src":"3334:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":130,"nodeType":"Block","src":"3791:406:0","statements":[{"condition":{"id":104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:0","subExpression":{"arguments":[{"id":101,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3814:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":102,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3820:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":100,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"3806:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3806:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":129,"nodeType":"IfStatement","src":"3801:390:0","trueBody":{"id":128,"nodeType":"Block","src":"3830:361:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":113,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"4009:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":111,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"3989:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$1531_$","typeString":"type(library Strings)"}},"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":1530,"src":"3989:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4043:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":120,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4116:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4108:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":118,"name":"uint256","nodeType":"ElementaryTypeName","src":"4108:7:0","typeDescriptions":{}}},"id":121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4108:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4123:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":116,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"4088:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$1531_$","typeString":"type(library Strings)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":1510,"src":"4088:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4088:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":108,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3896:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3896:252:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":106,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:0","typeDescriptions":{}}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:298:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":105,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3844:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:336:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":127,"nodeType":"ExpressionStatement","src":"3844:336:0"}]}}]},"documentation":{"id":93,"nodeType":"StructuredDocumentation","src":"3443:270:0","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":131,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:0","nodeType":"FunctionDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"role","nameLocation":"3746:4:0","nodeType":"VariableDeclaration","scope":131,"src":"3738:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"account","nameLocation":"3760:7:0","nodeType":"VariableDeclaration","scope":131,"src":"3752:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[],"src":"3791:0:0"},"scope":315,"src":"3718:479:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[363],"body":{"id":145,"nodeType":"Block","src":"4461:46:0","statements":[{"expression":{"expression":{"baseExpression":{"id":140,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"4478:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":142,"indexExpression":{"id":141,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"4485:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4478:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"4478:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":139,"id":144,"nodeType":"Return","src":"4471:29:0"}]},"documentation":{"id":132,"nodeType":"StructuredDocumentation","src":"4203:170:0","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":146,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4387:12:0","nodeType":"FunctionDefinition","overrides":{"id":136,"nodeType":"OverrideSpecifier","overrides":[],"src":"4434:8:0"},"parameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"role","nameLocation":"4408:4:0","nodeType":"VariableDeclaration","scope":146,"src":"4400:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4400:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4399:14:0"},"returnParameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":146,"src":"4452:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4451:9:0"},"scope":315,"src":"4378:129:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[371],"body":{"id":165,"nodeType":"Block","src":"4906:42:0","statements":[{"expression":{"arguments":[{"id":161,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"4927:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"4933:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":160,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"4916:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4916:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":164,"nodeType":"ExpressionStatement","src":"4916:25:0"}]},"documentation":{"id":147,"nodeType":"StructuredDocumentation","src":"4513:285:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":166,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":156,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"4899:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":155,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"4886:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4886:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":158,"kind":"modifierInvocation","modifierName":{"id":154,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4877:8:0"},"nodeType":"ModifierInvocation","src":"4877:28:0"}],"name":"grantRole","nameLocation":"4812:9:0","nodeType":"FunctionDefinition","overrides":{"id":153,"nodeType":"OverrideSpecifier","overrides":[],"src":"4868:8:0"},"parameters":{"id":152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"mutability":"mutable","name":"role","nameLocation":"4830:4:0","nodeType":"VariableDeclaration","scope":166,"src":"4822:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4822:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"account","nameLocation":"4844:7:0","nodeType":"VariableDeclaration","scope":166,"src":"4836:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4821:31:0"},"returnParameters":{"id":159,"nodeType":"ParameterList","parameters":[],"src":"4906:0:0"},"scope":315,"src":"4803:145:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[379],"body":{"id":185,"nodeType":"Block","src":"5332:43:0","statements":[{"expression":{"arguments":[{"id":181,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"5354:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":182,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5360:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":180,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"5342:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5342:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":184,"nodeType":"ExpressionStatement","src":"5342:26:0"}]},"documentation":{"id":167,"nodeType":"StructuredDocumentation","src":"4954:269:0","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":186,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":176,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"5325:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":175,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"5312:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5312:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":178,"kind":"modifierInvocation","modifierName":{"id":174,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5303:8:0"},"nodeType":"ModifierInvocation","src":"5303:28:0"}],"name":"revokeRole","nameLocation":"5237:10:0","nodeType":"FunctionDefinition","overrides":{"id":173,"nodeType":"OverrideSpecifier","overrides":[],"src":"5294:8:0"},"parameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":169,"mutability":"mutable","name":"role","nameLocation":"5256:4:0","nodeType":"VariableDeclaration","scope":186,"src":"5248:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5248:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":171,"mutability":"mutable","name":"account","nameLocation":"5270:7:0","nodeType":"VariableDeclaration","scope":186,"src":"5262:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"5262:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5247:31:0"},"returnParameters":{"id":179,"nodeType":"ParameterList","parameters":[],"src":"5332:0:0"},"scope":315,"src":"5228:147:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[387],"body":{"id":208,"nodeType":"Block","src":"5989:137:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":196,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":191,"src":"6007:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":197,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"6018:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6018:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6007:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6032:49:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5999:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5999:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":202,"nodeType":"ExpressionStatement","src":"5999:83:0"},{"expression":{"arguments":[{"id":204,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"6105:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":205,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":191,"src":"6111:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":203,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"6093:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6093:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"6093:26:0"}]},"documentation":{"id":187,"nodeType":"StructuredDocumentation","src":"5381:526:0","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":209,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5921:12:0","nodeType":"FunctionDefinition","overrides":{"id":193,"nodeType":"OverrideSpecifier","overrides":[],"src":"5980:8:0"},"parameters":{"id":192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":189,"mutability":"mutable","name":"role","nameLocation":"5942:4:0","nodeType":"VariableDeclaration","scope":209,"src":"5934:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":191,"mutability":"mutable","name":"account","nameLocation":"5956:7:0","nodeType":"VariableDeclaration","scope":209,"src":"5948:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"5948:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5933:31:0"},"returnParameters":{"id":194,"nodeType":"ParameterList","parameters":[],"src":"5989:0:0"},"scope":315,"src":"5912:214:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":222,"nodeType":"Block","src":"6879:42:0","statements":[{"expression":{"arguments":[{"id":218,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":212,"src":"6900:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":219,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"6906:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":217,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"6889:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6889:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":221,"nodeType":"ExpressionStatement","src":"6889:25:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"6132:674:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":223,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6820:10:0","nodeType":"FunctionDefinition","parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":212,"mutability":"mutable","name":"role","nameLocation":"6839:4:0","nodeType":"VariableDeclaration","scope":223,"src":"6831:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6831:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":214,"mutability":"mutable","name":"account","nameLocation":"6853:7:0","nodeType":"VariableDeclaration","scope":223,"src":"6845:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":213,"name":"address","nodeType":"ElementaryTypeName","src":"6845:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6830:31:0"},"returnParameters":{"id":216,"nodeType":"ParameterList","parameters":[],"src":"6879:0:0"},"scope":315,"src":"6811:110:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":250,"nodeType":"Block","src":"7119:174:0","statements":[{"assignments":[232],"declarations":[{"constant":false,"id":232,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7137:17:0","nodeType":"VariableDeclaration","scope":250,"src":"7129:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7129:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":236,"initialValue":{"arguments":[{"id":234,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"7170:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":233,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"7157:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7157:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7129:46:0"},{"expression":{"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":237,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7185:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":239,"indexExpression":{"id":238,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"7192:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7185:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"7185:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":241,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"7210:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7185:34:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":243,"nodeType":"ExpressionStatement","src":"7185:34:0"},{"eventCall":{"arguments":[{"id":245,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"7251:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":246,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"7257:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":247,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"7276:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":244,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"7234:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7234:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":249,"nodeType":"EmitStatement","src":"7229:57:0"}]},"documentation":{"id":224,"nodeType":"StructuredDocumentation","src":"6927:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":251,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7055:13:0","nodeType":"FunctionDefinition","parameters":{"id":229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"mutability":"mutable","name":"role","nameLocation":"7077:4:0","nodeType":"VariableDeclaration","scope":251,"src":"7069:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":228,"mutability":"mutable","name":"adminRole","nameLocation":"7091:9:0","nodeType":"VariableDeclaration","scope":251,"src":"7083:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7083:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:33:0"},"returnParameters":{"id":230,"nodeType":"ParameterList","parameters":[],"src":"7119:0:0"},"scope":315,"src":"7046:247:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":282,"nodeType":"Block","src":"7529:165:0","statements":[{"condition":{"id":263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7543:23:0","subExpression":{"arguments":[{"id":260,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"7552:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":261,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"7558:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":259,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"7544:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7544:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":281,"nodeType":"IfStatement","src":"7539:149:0","trueBody":{"id":280,"nodeType":"Block","src":"7568:120:0","statements":[{"expression":{"id":271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":264,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7582:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":266,"indexExpression":{"id":265,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"7589:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7582:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"7582:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":269,"indexExpression":{"id":268,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"7603:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7582:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7614:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7582:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":272,"nodeType":"ExpressionStatement","src":"7582:36:0"},{"eventCall":{"arguments":[{"id":274,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"7649:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":275,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"7655:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":276,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"7664:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7664:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":273,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"7637:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7637:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":279,"nodeType":"EmitStatement","src":"7632:45:0"}]}}]},"documentation":{"id":252,"nodeType":"StructuredDocumentation","src":"7299:157:0","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":283,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7470:10:0","nodeType":"FunctionDefinition","parameters":{"id":257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"role","nameLocation":"7489:4:0","nodeType":"VariableDeclaration","scope":283,"src":"7481:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7481:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":256,"mutability":"mutable","name":"account","nameLocation":"7503:7:0","nodeType":"VariableDeclaration","scope":283,"src":"7495:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":255,"name":"address","nodeType":"ElementaryTypeName","src":"7495:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7480:31:0"},"returnParameters":{"id":258,"nodeType":"ParameterList","parameters":[],"src":"7529:0:0"},"scope":315,"src":"7461:233:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":313,"nodeType":"Block","src":"7934:165:0","statements":[{"condition":{"arguments":[{"id":292,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":286,"src":"7956:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":293,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"7962:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":291,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"7948:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7948:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":312,"nodeType":"IfStatement","src":"7944:149:0","trueBody":{"id":311,"nodeType":"Block","src":"7972:121:0","statements":[{"expression":{"id":302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":295,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7986:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":297,"indexExpression":{"id":296,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":286,"src":"7993:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7986:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"7986:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":300,"indexExpression":{"id":299,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"8007:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7986:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8018:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7986:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":303,"nodeType":"ExpressionStatement","src":"7986:37:0"},{"eventCall":{"arguments":[{"id":305,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":286,"src":"8054:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":306,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"8060:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":307,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"8069:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8069:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":304,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"8042:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8042:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"EmitStatement","src":"8037:45:0"}]}}]},"documentation":{"id":284,"nodeType":"StructuredDocumentation","src":"7700:160:0","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":314,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7874:11:0","nodeType":"FunctionDefinition","parameters":{"id":289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":286,"mutability":"mutable","name":"role","nameLocation":"7894:4:0","nodeType":"VariableDeclaration","scope":314,"src":"7886:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7886:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":288,"mutability":"mutable","name":"account","nameLocation":"7908:7:0","nodeType":"VariableDeclaration","scope":314,"src":"7900:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":287,"name":"address","nodeType":"ElementaryTypeName","src":"7900:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7885:31:0"},"returnParameters":{"id":290,"nodeType":"ParameterList","parameters":[],"src":"7934:0:0"},"scope":315,"src":"7865:234:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":316,"src":"1806:6295:0","usedErrors":[]}],"src":"108:7994:0"},"id":0},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[388]},"id":389,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":317,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":318,"nodeType":"StructuredDocumentation","src":"119:89:1","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":388,"linearizedBaseContracts":[388],"name":"IAccessControl","nameLocation":"219:14:1","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":319,"nodeType":"StructuredDocumentation","src":"240:292:1","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":327,"name":"RoleAdminChanged","nameLocation":"543:16:1","nodeType":"EventDefinition","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:1","nodeType":"VariableDeclaration","scope":327,"src":"560:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":323,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:1","nodeType":"VariableDeclaration","scope":327,"src":"582:33:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":325,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:1","nodeType":"VariableDeclaration","scope":327,"src":"617:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:1"},"src":"537:110:1"},{"anonymous":false,"documentation":{"id":328,"nodeType":"StructuredDocumentation","src":"653:212:1","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":336,"name":"RoleGranted","nameLocation":"876:11:1","nodeType":"EventDefinition","parameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":330,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:1","nodeType":"VariableDeclaration","scope":336,"src":"888:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":332,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:1","nodeType":"VariableDeclaration","scope":336,"src":"910:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":334,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:1","nodeType":"VariableDeclaration","scope":336,"src":"935:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":333,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:1"},"src":"870:89:1"},{"anonymous":false,"documentation":{"id":337,"nodeType":"StructuredDocumentation","src":"965:275:1","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":345,"name":"RoleRevoked","nameLocation":"1251:11:1","nodeType":"EventDefinition","parameters":{"id":344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":339,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:1","nodeType":"VariableDeclaration","scope":345,"src":"1263:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":341,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:1","nodeType":"VariableDeclaration","scope":345,"src":"1285:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":340,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":343,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:1","nodeType":"VariableDeclaration","scope":345,"src":"1310:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":342,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:1"},"src":"1245:89:1"},{"documentation":{"id":346,"nodeType":"StructuredDocumentation","src":"1340:76:1","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":355,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:1","nodeType":"FunctionDefinition","parameters":{"id":351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":348,"mutability":"mutable","name":"role","nameLocation":"1446:4:1","nodeType":"VariableDeclaration","scope":355,"src":"1438:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":350,"mutability":"mutable","name":"account","nameLocation":"1460:7:1","nodeType":"VariableDeclaration","scope":355,"src":"1452:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":349,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:1"},"returnParameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":355,"src":"1492:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":352,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:1"},"scope":388,"src":"1421:77:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":356,"nodeType":"StructuredDocumentation","src":"1504:184:1","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":363,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:1","nodeType":"FunctionDefinition","parameters":{"id":359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":358,"mutability":"mutable","name":"role","nameLocation":"1723:4:1","nodeType":"VariableDeclaration","scope":363,"src":"1715:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:1"},"returnParameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":363,"src":"1752:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:1"},"scope":388,"src":"1693:68:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":364,"nodeType":"StructuredDocumentation","src":"1767:239:1","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":371,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:1","nodeType":"FunctionDefinition","parameters":{"id":369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":366,"mutability":"mutable","name":"role","nameLocation":"2038:4:1","nodeType":"VariableDeclaration","scope":371,"src":"2030:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":368,"mutability":"mutable","name":"account","nameLocation":"2052:7:1","nodeType":"VariableDeclaration","scope":371,"src":"2044:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":367,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:1"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[],"src":"2069:0:1"},"scope":388,"src":"2011:59:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":372,"nodeType":"StructuredDocumentation","src":"2076:223:1","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":379,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:1","nodeType":"FunctionDefinition","parameters":{"id":377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":374,"mutability":"mutable","name":"role","nameLocation":"2332:4:1","nodeType":"VariableDeclaration","scope":379,"src":"2324:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":376,"mutability":"mutable","name":"account","nameLocation":"2346:7:1","nodeType":"VariableDeclaration","scope":379,"src":"2338:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:1"},"returnParameters":{"id":378,"nodeType":"ParameterList","parameters":[],"src":"2363:0:1"},"scope":388,"src":"2304:60:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":380,"nodeType":"StructuredDocumentation","src":"2370:480:1","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":387,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:1","nodeType":"FunctionDefinition","parameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"role","nameLocation":"2885:4:1","nodeType":"VariableDeclaration","scope":387,"src":"2877:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":384,"mutability":"mutable","name":"account","nameLocation":"2899:7:1","nodeType":"VariableDeclaration","scope":387,"src":"2891:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:1"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[],"src":"2916:0:1"},"scope":388,"src":"2855:62:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":389,"src":"209:2710:1","usedErrors":[]}],"src":"94:2826:1"},"id":1},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[1356],"Ownable":[501]},"id":502,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":390,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:2"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":391,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":502,"sourceUnit":1357,"src":"127:30:2","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":393,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":1356,"src":"683:7:2"},"id":394,"nodeType":"InheritanceSpecifier","src":"683:7:2"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":392,"nodeType":"StructuredDocumentation","src":"159:494:2","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":501,"linearizedBaseContracts":[501,1356],"name":"Ownable","nameLocation":"672:7:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":396,"mutability":"mutable","name":"_owner","nameLocation":"713:6:2","nodeType":"VariableDeclaration","scope":501,"src":"697:22:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":402,"name":"OwnershipTransferred","nameLocation":"732:20:2","nodeType":"EventDefinition","parameters":{"id":401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":398,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:2","nodeType":"VariableDeclaration","scope":402,"src":"753:29:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":397,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":400,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:2","nodeType":"VariableDeclaration","scope":402,"src":"784:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":399,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:2"},"src":"726:84:2"},{"body":{"id":411,"nodeType":"Block","src":"926:49:2","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":407,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"955:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":406,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"936:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":410,"nodeType":"ExpressionStatement","src":"936:32:2"}]},"documentation":{"id":403,"nodeType":"StructuredDocumentation","src":"816:91:2","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":412,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":404,"nodeType":"ParameterList","parameters":[],"src":"923:2:2"},"returnParameters":{"id":405,"nodeType":"ParameterList","parameters":[],"src":"926:0:2"},"scope":501,"src":"912:63:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":419,"nodeType":"Block","src":"1084:41:2","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":415,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":443,"src":"1094:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":417,"nodeType":"ExpressionStatement","src":"1094:13:2"},{"id":418,"nodeType":"PlaceholderStatement","src":"1117:1:2"}]},"documentation":{"id":413,"nodeType":"StructuredDocumentation","src":"981:77:2","text":" @dev Throws if called by any account other than the owner."},"id":420,"name":"onlyOwner","nameLocation":"1072:9:2","nodeType":"ModifierDefinition","parameters":{"id":414,"nodeType":"ParameterList","parameters":[],"src":"1081:2:2"},"src":"1063:62:2","virtual":false,"visibility":"internal"},{"body":{"id":428,"nodeType":"Block","src":"1256:30:2","statements":[{"expression":{"id":426,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"1273:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":425,"id":427,"nodeType":"Return","src":"1266:13:2"}]},"documentation":{"id":421,"nodeType":"StructuredDocumentation","src":"1131:65:2","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":429,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:2","nodeType":"FunctionDefinition","parameters":{"id":422,"nodeType":"ParameterList","parameters":[],"src":"1215:2:2"},"returnParameters":{"id":425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":429,"src":"1247:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":423,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:2"},"scope":501,"src":"1201:85:2","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":442,"nodeType":"Block","src":"1404:85:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":434,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"1422:5:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":436,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"1433:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":441,"nodeType":"ExpressionStatement","src":"1414:68:2"}]},"documentation":{"id":430,"nodeType":"StructuredDocumentation","src":"1292:62:2","text":" @dev Throws if the sender is not the owner."},"id":443,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:2","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[],"src":"1379:2:2"},"returnParameters":{"id":432,"nodeType":"ParameterList","parameters":[],"src":"1404:0:2"},"scope":501,"src":"1359:130:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":456,"nodeType":"Block","src":"1885:47:2","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":450,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:2","typeDescriptions":{}}},"id":453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":449,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"1895:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":455,"nodeType":"ExpressionStatement","src":"1895:30:2"}]},"documentation":{"id":444,"nodeType":"StructuredDocumentation","src":"1495:331:2","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":457,"implemented":true,"kind":"function","modifiers":[{"id":447,"kind":"modifierInvocation","modifierName":{"id":446,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"1875:9:2"},"nodeType":"ModifierInvocation","src":"1875:9:2"}],"name":"renounceOwnership","nameLocation":"1840:17:2","nodeType":"FunctionDefinition","parameters":{"id":445,"nodeType":"ParameterList","parameters":[],"src":"1857:2:2"},"returnParameters":{"id":448,"nodeType":"ParameterList","parameters":[],"src":"1885:0:2"},"scope":501,"src":"1831:101:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":479,"nodeType":"Block","src":"2151:128:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":466,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"2169:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":467,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:2","typeDescriptions":{}}},"id":470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":474,"nodeType":"ExpressionStatement","src":"2161:73:2"},{"expression":{"arguments":[{"id":476,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"2263:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":475,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"2244:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":478,"nodeType":"ExpressionStatement","src":"2244:28:2"}]},"documentation":{"id":458,"nodeType":"StructuredDocumentation","src":"1938:138:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":480,"implemented":true,"kind":"function","modifiers":[{"id":463,"kind":"modifierInvocation","modifierName":{"id":462,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"2141:9:2"},"nodeType":"ModifierInvocation","src":"2141:9:2"}],"name":"transferOwnership","nameLocation":"2090:17:2","nodeType":"FunctionDefinition","parameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":460,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:2","nodeType":"VariableDeclaration","scope":480,"src":"2108:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":459,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:2"},"returnParameters":{"id":464,"nodeType":"ParameterList","parameters":[],"src":"2151:0:2"},"scope":501,"src":"2081:198:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":499,"nodeType":"Block","src":"2496:124:2","statements":[{"assignments":[487],"declarations":[{"constant":false,"id":487,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:2","nodeType":"VariableDeclaration","scope":499,"src":"2506:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":486,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":489,"initialValue":{"id":488,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"2525:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:2"},{"expression":{"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":490,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"2541:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":491,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"2550:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":493,"nodeType":"ExpressionStatement","src":"2541:17:2"},{"eventCall":{"arguments":[{"id":495,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"2594:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":496,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"2604:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":494,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":402,"src":"2573:20:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":498,"nodeType":"EmitStatement","src":"2568:45:2"}]},"documentation":{"id":481,"nodeType":"StructuredDocumentation","src":"2285:143:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":500,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:2","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":483,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:2","nodeType":"VariableDeclaration","scope":500,"src":"2461:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":482,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:2"},"returnParameters":{"id":485,"nodeType":"ParameterList","parameters":[],"src":"2496:0:2"},"scope":501,"src":"2433:187:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":502,"src":"654:1968:2","usedErrors":[]}],"src":"102:2521:2"},"id":2},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[1356],"Pausable":[609]},"id":610,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":503,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:3"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":504,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":610,"sourceUnit":1357,"src":"130:30:3","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":506,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":1356,"src":"632:7:3"},"id":507,"nodeType":"InheritanceSpecifier","src":"632:7:3"}],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":505,"nodeType":"StructuredDocumentation","src":"162:439:3","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":609,"linearizedBaseContracts":[609,1356],"name":"Pausable","nameLocation":"620:8:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":508,"nodeType":"StructuredDocumentation","src":"646:73:3","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":512,"name":"Paused","nameLocation":"730:6:3","nodeType":"EventDefinition","parameters":{"id":511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":510,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:3","nodeType":"VariableDeclaration","scope":512,"src":"737:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:3"},"src":"724:30:3"},{"anonymous":false,"documentation":{"id":513,"nodeType":"StructuredDocumentation","src":"760:70:3","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":517,"name":"Unpaused","nameLocation":"841:8:3","nodeType":"EventDefinition","parameters":{"id":516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":515,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:3","nodeType":"VariableDeclaration","scope":517,"src":"850:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":514,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:3"},"src":"835:32:3"},{"constant":false,"id":519,"mutability":"mutable","name":"_paused","nameLocation":"886:7:3","nodeType":"VariableDeclaration","scope":609,"src":"873:20:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":518,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":527,"nodeType":"Block","src":"986:32:3","statements":[{"expression":{"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":523,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":519,"src":"996:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":526,"nodeType":"ExpressionStatement","src":"996:15:3"}]},"documentation":{"id":520,"nodeType":"StructuredDocumentation","src":"900:67:3","text":" @dev Initializes the contract in unpaused state."},"id":528,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":521,"nodeType":"ParameterList","parameters":[],"src":"983:2:3"},"returnParameters":{"id":522,"nodeType":"ParameterList","parameters":[],"src":"986:0:3"},"scope":609,"src":"972:46:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":535,"nodeType":"Block","src":"1229:47:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":531,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":565,"src":"1239:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":533,"nodeType":"ExpressionStatement","src":"1239:19:3"},{"id":534,"nodeType":"PlaceholderStatement","src":"1268:1:3"}]},"documentation":{"id":529,"nodeType":"StructuredDocumentation","src":"1024:175:3","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":536,"name":"whenNotPaused","nameLocation":"1213:13:3","nodeType":"ModifierDefinition","parameters":{"id":530,"nodeType":"ParameterList","parameters":[],"src":"1226:2:3"},"src":"1204:72:3","virtual":false,"visibility":"internal"},{"body":{"id":543,"nodeType":"Block","src":"1476:44:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":539,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"1486:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":541,"nodeType":"ExpressionStatement","src":"1486:16:3"},{"id":542,"nodeType":"PlaceholderStatement","src":"1512:1:3"}]},"documentation":{"id":537,"nodeType":"StructuredDocumentation","src":"1282:167:3","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":544,"name":"whenPaused","nameLocation":"1463:10:3","nodeType":"ModifierDefinition","parameters":{"id":538,"nodeType":"ParameterList","parameters":[],"src":"1473:2:3"},"src":"1454:66:3","virtual":false,"visibility":"internal"},{"body":{"id":552,"nodeType":"Block","src":"1668:31:3","statements":[{"expression":{"id":550,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":519,"src":"1685:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":549,"id":551,"nodeType":"Return","src":"1678:14:3"}]},"documentation":{"id":545,"nodeType":"StructuredDocumentation","src":"1526:84:3","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":553,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:3","nodeType":"FunctionDefinition","parameters":{"id":546,"nodeType":"ParameterList","parameters":[],"src":"1630:2:3"},"returnParameters":{"id":549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":553,"src":"1662:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":547,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:3"},"scope":609,"src":"1615:84:3","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":564,"nodeType":"Block","src":"1818:55:3","statements":[{"expression":{"arguments":[{"id":560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:3","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":558,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"1837:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1828:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":563,"nodeType":"ExpressionStatement","src":"1828:38:3"}]},"documentation":{"id":554,"nodeType":"StructuredDocumentation","src":"1705:57:3","text":" @dev Throws if the contract is paused."},"id":565,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:3","nodeType":"FunctionDefinition","parameters":{"id":555,"nodeType":"ParameterList","parameters":[],"src":"1793:2:3"},"returnParameters":{"id":556,"nodeType":"ParameterList","parameters":[],"src":"1818:0:3"},"scope":609,"src":"1767:106:3","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":575,"nodeType":"Block","src":"1993:58:3","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":570,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"2011:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2003:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2003:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":574,"nodeType":"ExpressionStatement","src":"2003:41:3"}]},"documentation":{"id":566,"nodeType":"StructuredDocumentation","src":"1879:61:3","text":" @dev Throws if the contract is not paused."},"id":576,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:3","nodeType":"FunctionDefinition","parameters":{"id":567,"nodeType":"ParameterList","parameters":[],"src":"1968:2:3"},"returnParameters":{"id":568,"nodeType":"ParameterList","parameters":[],"src":"1993:0:3"},"scope":609,"src":"1945:106:3","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":591,"nodeType":"Block","src":"2235:66:3","statements":[{"expression":{"id":584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":582,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":519,"src":"2245:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":585,"nodeType":"ExpressionStatement","src":"2245:14:3"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":587,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"2281:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":586,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"2274:6:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":590,"nodeType":"EmitStatement","src":"2269:25:3"}]},"documentation":{"id":577,"nodeType":"StructuredDocumentation","src":"2057:124:3","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":592,"implemented":true,"kind":"function","modifiers":[{"id":580,"kind":"modifierInvocation","modifierName":{"id":579,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":536,"src":"2221:13:3"},"nodeType":"ModifierInvocation","src":"2221:13:3"}],"name":"_pause","nameLocation":"2195:6:3","nodeType":"FunctionDefinition","parameters":{"id":578,"nodeType":"ParameterList","parameters":[],"src":"2201:2:3"},"returnParameters":{"id":581,"nodeType":"ParameterList","parameters":[],"src":"2235:0:3"},"scope":609,"src":"2186:115:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":607,"nodeType":"Block","src":"2481:69:3","statements":[{"expression":{"id":600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":598,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":519,"src":"2491:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":601,"nodeType":"ExpressionStatement","src":"2491:15:3"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":603,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"2530:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":602,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":517,"src":"2521:8:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":606,"nodeType":"EmitStatement","src":"2516:27:3"}]},"documentation":{"id":593,"nodeType":"StructuredDocumentation","src":"2307:121:3","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":608,"implemented":true,"kind":"function","modifiers":[{"id":596,"kind":"modifierInvocation","modifierName":{"id":595,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":544,"src":"2470:10:3"},"nodeType":"ModifierInvocation","src":"2470:10:3"}],"name":"_unpause","nameLocation":"2442:8:3","nodeType":"FunctionDefinition","parameters":{"id":594,"nodeType":"ParameterList","parameters":[],"src":"2450:2:3"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[],"src":"2481:0:3"},"scope":609,"src":"2433:117:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":610,"src":"602:1950:3","usedErrors":[]}],"src":"105:2448:3"},"id":3},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[687]},"id":688,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":611,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":612,"nodeType":"StructuredDocumentation","src":"131:70:4","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":687,"linearizedBaseContracts":[687],"name":"IERC20","nameLocation":"212:6:4","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":613,"nodeType":"StructuredDocumentation","src":"225:158:4","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":621,"name":"Transfer","nameLocation":"394:8:4","nodeType":"EventDefinition","parameters":{"id":620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":615,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:4","nodeType":"VariableDeclaration","scope":621,"src":"403:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":614,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":617,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:4","nodeType":"VariableDeclaration","scope":621,"src":"425:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":616,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":619,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:4","nodeType":"VariableDeclaration","scope":621,"src":"445:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":618,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:4"},"src":"388:72:4"},{"anonymous":false,"documentation":{"id":622,"nodeType":"StructuredDocumentation","src":"466:148:4","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":630,"name":"Approval","nameLocation":"625:8:4","nodeType":"EventDefinition","parameters":{"id":629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":624,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:4","nodeType":"VariableDeclaration","scope":630,"src":"634:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":623,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":626,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:4","nodeType":"VariableDeclaration","scope":630,"src":"657:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":625,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":628,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:4","nodeType":"VariableDeclaration","scope":630,"src":"682:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":627,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:4"},"src":"619:78:4"},{"documentation":{"id":631,"nodeType":"StructuredDocumentation","src":"703:66:4","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":636,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:4","nodeType":"FunctionDefinition","parameters":{"id":632,"nodeType":"ParameterList","parameters":[],"src":"794:2:4"},"returnParameters":{"id":635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":636,"src":"820:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":633,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:4"},"scope":687,"src":"774:55:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":637,"nodeType":"StructuredDocumentation","src":"835:72:4","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":644,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:4","nodeType":"FunctionDefinition","parameters":{"id":640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":639,"mutability":"mutable","name":"account","nameLocation":"939:7:4","nodeType":"VariableDeclaration","scope":644,"src":"931:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":638,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:4"},"returnParameters":{"id":643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":644,"src":"971:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":641,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:4"},"scope":687,"src":"912:68:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":645,"nodeType":"StructuredDocumentation","src":"986:202:4","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":654,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:4","nodeType":"FunctionDefinition","parameters":{"id":650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":647,"mutability":"mutable","name":"to","nameLocation":"1219:2:4","nodeType":"VariableDeclaration","scope":654,"src":"1211:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":646,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":649,"mutability":"mutable","name":"amount","nameLocation":"1231:6:4","nodeType":"VariableDeclaration","scope":654,"src":"1223:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":648,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:4"},"returnParameters":{"id":653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":654,"src":"1257:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":651,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:4"},"scope":687,"src":"1193:70:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":655,"nodeType":"StructuredDocumentation","src":"1269:264:4","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":664,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:4","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":657,"mutability":"mutable","name":"owner","nameLocation":"1565:5:4","nodeType":"VariableDeclaration","scope":664,"src":"1557:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":656,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":659,"mutability":"mutable","name":"spender","nameLocation":"1580:7:4","nodeType":"VariableDeclaration","scope":664,"src":"1572:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:4"},"returnParameters":{"id":663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":664,"src":"1612:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":661,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:4"},"scope":687,"src":"1538:83:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":665,"nodeType":"StructuredDocumentation","src":"1627:642:4","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":674,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:4","nodeType":"FunctionDefinition","parameters":{"id":670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":667,"mutability":"mutable","name":"spender","nameLocation":"2299:7:4","nodeType":"VariableDeclaration","scope":674,"src":"2291:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":666,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":669,"mutability":"mutable","name":"amount","nameLocation":"2316:6:4","nodeType":"VariableDeclaration","scope":674,"src":"2308:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":668,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:4"},"returnParameters":{"id":673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":674,"src":"2342:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":671,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:4"},"scope":687,"src":"2274:74:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":675,"nodeType":"StructuredDocumentation","src":"2354:287:4","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":686,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:4","nodeType":"FunctionDefinition","parameters":{"id":682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":677,"mutability":"mutable","name":"from","nameLocation":"2685:4:4","nodeType":"VariableDeclaration","scope":686,"src":"2677:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":676,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":679,"mutability":"mutable","name":"to","nameLocation":"2707:2:4","nodeType":"VariableDeclaration","scope":686,"src":"2699:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":678,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":681,"mutability":"mutable","name":"amount","nameLocation":"2727:6:4","nodeType":"VariableDeclaration","scope":686,"src":"2719:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":680,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:4"},"returnParameters":{"id":685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":686,"src":"2758:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":683,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:4"},"scope":687,"src":"2646:118:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":688,"src":"202:2564:4","usedErrors":[]}],"src":"106:2661:4"},"id":4},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[723]},"id":724,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":689,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":690,"nodeType":"StructuredDocumentation","src":"139:480:5","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":723,"linearizedBaseContracts":[723],"name":"IERC20Permit","nameLocation":"630:12:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":691,"nodeType":"StructuredDocumentation","src":"649:792:5","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":708,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:5","nodeType":"FunctionDefinition","parameters":{"id":706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"owner","nameLocation":"1479:5:5","nodeType":"VariableDeclaration","scope":708,"src":"1471:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":692,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":695,"mutability":"mutable","name":"spender","nameLocation":"1502:7:5","nodeType":"VariableDeclaration","scope":708,"src":"1494:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":694,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"value","nameLocation":"1527:5:5","nodeType":"VariableDeclaration","scope":708,"src":"1519:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":696,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:5","nodeType":"VariableDeclaration","scope":708,"src":"1542:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":698,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":701,"mutability":"mutable","name":"v","nameLocation":"1574:1:5","nodeType":"VariableDeclaration","scope":708,"src":"1568:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":700,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":703,"mutability":"mutable","name":"r","nameLocation":"1593:1:5","nodeType":"VariableDeclaration","scope":708,"src":"1585:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":702,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":705,"mutability":"mutable","name":"s","nameLocation":"1612:1:5","nodeType":"VariableDeclaration","scope":708,"src":"1604:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:5"},"returnParameters":{"id":707,"nodeType":"ParameterList","parameters":[],"src":"1628:0:5"},"scope":723,"src":"1446:183:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":709,"nodeType":"StructuredDocumentation","src":"1635:294:5","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":716,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:5","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":711,"mutability":"mutable","name":"owner","nameLocation":"1958:5:5","nodeType":"VariableDeclaration","scope":716,"src":"1950:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":710,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:5"},"returnParameters":{"id":715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":716,"src":"1988:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":713,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:5"},"scope":723,"src":"1934:63:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":717,"nodeType":"StructuredDocumentation","src":"2003:128:5","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":722,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:5","nodeType":"FunctionDefinition","parameters":{"id":718,"nodeType":"ParameterList","parameters":[],"src":"2214:2:5"},"returnParameters":{"id":721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":722,"src":"2240:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:5"},"scope":723,"src":"2189:60:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":724,"src":"620:1631:5","usedErrors":[]}],"src":"114:2138:5"},"id":5},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[1334],"IERC20":[687],"IERC20Permit":[723],"SafeERC20":[1004]},"id":1005,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":725,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:6"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":726,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1005,"sourceUnit":688,"src":"140:23:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"../extensions/draft-IERC20Permit.sol","id":727,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1005,"sourceUnit":724,"src":"164:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":728,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1005,"sourceUnit":1335,"src":"211:36:6","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":729,"nodeType":"StructuredDocumentation","src":"249:457:6","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":1004,"linearizedBaseContracts":[1004],"name":"SafeERC20","nameLocation":"715:9:6","nodeType":"ContractDefinition","nodes":[{"global":false,"id":732,"libraryName":{"id":730,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":1334,"src":"737:7:6"},"nodeType":"UsingForDirective","src":"731:26:6","typeName":{"id":731,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":754,"nodeType":"Block","src":"865:103:6","statements":[{"expression":{"arguments":[{"id":743,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":735,"src":"895:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":746,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":735,"src":"925:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":654,"src":"925:14:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"925:23:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":749,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":737,"src":"950:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"954:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"902:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"902:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"902:58:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":742,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"875:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"875:86:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":753,"nodeType":"ExpressionStatement","src":"875:86:6"}]},"id":755,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"772:12:6","nodeType":"FunctionDefinition","parameters":{"id":740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":735,"mutability":"mutable","name":"token","nameLocation":"801:5:6","nodeType":"VariableDeclaration","scope":755,"src":"794:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":734,"nodeType":"UserDefinedTypeName","pathNode":{"id":733,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"794:6:6"},"referencedDeclaration":687,"src":"794:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":737,"mutability":"mutable","name":"to","nameLocation":"824:2:6","nodeType":"VariableDeclaration","scope":755,"src":"816:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":736,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":739,"mutability":"mutable","name":"value","nameLocation":"844:5:6","nodeType":"VariableDeclaration","scope":755,"src":"836:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":738,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"784:71:6"},"returnParameters":{"id":741,"nodeType":"ParameterList","parameters":[],"src":"865:0:6"},"scope":1004,"src":"763:205:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":780,"nodeType":"Block","src":"1102:113:6","statements":[{"expression":{"arguments":[{"id":768,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"1132:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":771,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"1162:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":686,"src":"1162:18:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1162:27:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":774,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":760,"src":"1191:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":775,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"1197:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":776,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":764,"src":"1201:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1139:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1139:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1139:68:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":767,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"1112:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:96:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":779,"nodeType":"ExpressionStatement","src":"1112:96:6"}]},"id":781,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"983:16:6","nodeType":"FunctionDefinition","parameters":{"id":765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":758,"mutability":"mutable","name":"token","nameLocation":"1016:5:6","nodeType":"VariableDeclaration","scope":781,"src":"1009:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":757,"nodeType":"UserDefinedTypeName","pathNode":{"id":756,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"1009:6:6"},"referencedDeclaration":687,"src":"1009:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":760,"mutability":"mutable","name":"from","nameLocation":"1039:4:6","nodeType":"VariableDeclaration","scope":781,"src":"1031:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":759,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":762,"mutability":"mutable","name":"to","nameLocation":"1061:2:6","nodeType":"VariableDeclaration","scope":781,"src":"1053:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":761,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":764,"mutability":"mutable","name":"value","nameLocation":"1081:5:6","nodeType":"VariableDeclaration","scope":781,"src":"1073:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"999:93:6"},"returnParameters":{"id":766,"nodeType":"ParameterList","parameters":[],"src":"1102:0:6"},"scope":1004,"src":"974:241:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":824,"nodeType":"Block","src":"1581:497:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"1830:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1839:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1830:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":796,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1829:12:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":801,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1870:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$1004","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$1004","typeString":"library SafeERC20"}],"id":800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1862:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":799,"name":"address","nodeType":"ElementaryTypeName","src":"1862:7:6","typeDescriptions":{}}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1862:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":803,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"1877:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":797,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"1846:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":664,"src":"1846:15:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1846:44:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":807,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1845:46:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1829:62:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1905:56:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1808:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1808:163:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":811,"nodeType":"ExpressionStatement","src":"1808:163:6"},{"expression":{"arguments":[{"id":813,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"2001:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":816,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"2031:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":674,"src":"2031:13:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2031:22:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":819,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"2055:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":820,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"2064:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2008:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2008:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2008:62:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":812,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"1981:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1981:90:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":823,"nodeType":"ExpressionStatement","src":"1981:90:6"}]},"documentation":{"id":782,"nodeType":"StructuredDocumentation","src":"1221:249:6","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":825,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1484:11:6","nodeType":"FunctionDefinition","parameters":{"id":790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":785,"mutability":"mutable","name":"token","nameLocation":"1512:5:6","nodeType":"VariableDeclaration","scope":825,"src":"1505:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":784,"nodeType":"UserDefinedTypeName","pathNode":{"id":783,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"1505:6:6"},"referencedDeclaration":687,"src":"1505:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":787,"mutability":"mutable","name":"spender","nameLocation":"1535:7:6","nodeType":"VariableDeclaration","scope":825,"src":"1527:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":786,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":789,"mutability":"mutable","name":"value","nameLocation":"1560:5:6","nodeType":"VariableDeclaration","scope":825,"src":"1552:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":788,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1495:76:6"},"returnParameters":{"id":791,"nodeType":"ParameterList","parameters":[],"src":"1581:0:6"},"scope":1004,"src":"1475:603:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":860,"nodeType":"Block","src":"2200:194:6","statements":[{"assignments":[836],"declarations":[{"constant":false,"id":836,"mutability":"mutable","name":"newAllowance","nameLocation":"2218:12:6","nodeType":"VariableDeclaration","scope":860,"src":"2210:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":835,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":847,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":841,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2257:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$1004","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$1004","typeString":"library SafeERC20"}],"id":840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2249:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":839,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:6","typeDescriptions":{}}},"id":842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":843,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":830,"src":"2264:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":837,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"2233:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":664,"src":"2233:15:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":832,"src":"2275:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2233:47:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2210:70:6"},{"expression":{"arguments":[{"id":849,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"2310:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":852,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"2340:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":674,"src":"2340:13:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2340:22:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":855,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":830,"src":"2364:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":856,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":836,"src":"2373:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2317:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2317:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":848,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"2290:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:97:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":859,"nodeType":"ExpressionStatement","src":"2290:97:6"}]},"id":861,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2093:21:6","nodeType":"FunctionDefinition","parameters":{"id":833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":828,"mutability":"mutable","name":"token","nameLocation":"2131:5:6","nodeType":"VariableDeclaration","scope":861,"src":"2124:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":827,"nodeType":"UserDefinedTypeName","pathNode":{"id":826,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"2124:6:6"},"referencedDeclaration":687,"src":"2124:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":830,"mutability":"mutable","name":"spender","nameLocation":"2154:7:6","nodeType":"VariableDeclaration","scope":861,"src":"2146:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":829,"name":"address","nodeType":"ElementaryTypeName","src":"2146:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":832,"mutability":"mutable","name":"value","nameLocation":"2179:5:6","nodeType":"VariableDeclaration","scope":861,"src":"2171:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":831,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2114:76:6"},"returnParameters":{"id":834,"nodeType":"ParameterList","parameters":[],"src":"2200:0:6"},"scope":1004,"src":"2084:310:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":908,"nodeType":"Block","src":"2516:370:6","statements":[{"id":907,"nodeType":"UncheckedBlock","src":"2526:354:6","statements":[{"assignments":[872],"declarations":[{"constant":false,"id":872,"mutability":"mutable","name":"oldAllowance","nameLocation":"2558:12:6","nodeType":"VariableDeclaration","scope":907,"src":"2550:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":881,"initialValue":{"arguments":[{"arguments":[{"id":877,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2597:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$1004","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$1004","typeString":"library SafeERC20"}],"id":876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2589:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":875,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:6","typeDescriptions":{}}},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":879,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"2604:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":873,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":864,"src":"2573:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":664,"src":"2573:15:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2550:62:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":883,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"2634:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":884,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":868,"src":"2650:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2634:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2657:43:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2626:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"ExpressionStatement","src":"2626:75:6"},{"assignments":[890],"declarations":[{"constant":false,"id":890,"mutability":"mutable","name":"newAllowance","nameLocation":"2723:12:6","nodeType":"VariableDeclaration","scope":907,"src":"2715:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2715:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":894,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":891,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"2738:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":892,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":868,"src":"2753:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2738:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2715:43:6"},{"expression":{"arguments":[{"id":896,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":864,"src":"2792:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":899,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":864,"src":"2822:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":674,"src":"2822:13:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2822:22:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":902,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"2846:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":903,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"2855:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2799:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":895,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"2772:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2772:97:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":906,"nodeType":"ExpressionStatement","src":"2772:97:6"}]}]},"id":909,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2409:21:6","nodeType":"FunctionDefinition","parameters":{"id":869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":864,"mutability":"mutable","name":"token","nameLocation":"2447:5:6","nodeType":"VariableDeclaration","scope":909,"src":"2440:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":863,"nodeType":"UserDefinedTypeName","pathNode":{"id":862,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"2440:6:6"},"referencedDeclaration":687,"src":"2440:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":866,"mutability":"mutable","name":"spender","nameLocation":"2470:7:6","nodeType":"VariableDeclaration","scope":909,"src":"2462:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":865,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":868,"mutability":"mutable","name":"value","nameLocation":"2495:5:6","nodeType":"VariableDeclaration","scope":909,"src":"2487:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2487:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:76:6"},"returnParameters":{"id":870,"nodeType":"ParameterList","parameters":[],"src":"2516:0:6"},"scope":1004,"src":"2400:486:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":964,"nodeType":"Block","src":"3107:257:6","statements":[{"assignments":[930],"declarations":[{"constant":false,"id":930,"mutability":"mutable","name":"nonceBefore","nameLocation":"3125:11:6","nodeType":"VariableDeclaration","scope":964,"src":"3117:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":929,"name":"uint256","nodeType":"ElementaryTypeName","src":"3117:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":935,"initialValue":{"arguments":[{"id":933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":914,"src":"3152:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":931,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"3139:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$723","typeString":"contract IERC20Permit"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":716,"src":"3139:12:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3139:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3117:41:6"},{"expression":{"arguments":[{"id":939,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":914,"src":"3181:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":940,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"3188:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":941,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":918,"src":"3197:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":942,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":920,"src":"3204:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":943,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"3214:1:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":944,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"3217:1:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":945,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"3220:1:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":936,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"3168:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$723","typeString":"contract IERC20Permit"}},"id":938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":708,"src":"3168:12:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:54:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":947,"nodeType":"ExpressionStatement","src":"3168:54:6"},{"assignments":[949],"declarations":[{"constant":false,"id":949,"mutability":"mutable","name":"nonceAfter","nameLocation":"3240:10:6","nodeType":"VariableDeclaration","scope":964,"src":"3232:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":948,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":954,"initialValue":{"arguments":[{"id":952,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":914,"src":"3266:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":950,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"3253:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$723","typeString":"contract IERC20Permit"}},"id":951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":716,"src":"3253:12:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3232:40:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":956,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":949,"src":"3290:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":957,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":930,"src":"3304:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3304:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3290:29:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3321:35:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3282:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":963,"nodeType":"ExpressionStatement","src":"3282:75:6"}]},"id":965,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"2901:10:6","nodeType":"FunctionDefinition","parameters":{"id":927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":912,"mutability":"mutable","name":"token","nameLocation":"2934:5:6","nodeType":"VariableDeclaration","scope":965,"src":"2921:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$723","typeString":"contract IERC20Permit"},"typeName":{"id":911,"nodeType":"UserDefinedTypeName","pathNode":{"id":910,"name":"IERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":723,"src":"2921:12:6"},"referencedDeclaration":723,"src":"2921:12:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$723","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":914,"mutability":"mutable","name":"owner","nameLocation":"2957:5:6","nodeType":"VariableDeclaration","scope":965,"src":"2949:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":913,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":916,"mutability":"mutable","name":"spender","nameLocation":"2980:7:6","nodeType":"VariableDeclaration","scope":965,"src":"2972:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":915,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":918,"mutability":"mutable","name":"value","nameLocation":"3005:5:6","nodeType":"VariableDeclaration","scope":965,"src":"2997:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":917,"name":"uint256","nodeType":"ElementaryTypeName","src":"2997:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":920,"mutability":"mutable","name":"deadline","nameLocation":"3028:8:6","nodeType":"VariableDeclaration","scope":965,"src":"3020:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":919,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":922,"mutability":"mutable","name":"v","nameLocation":"3052:1:6","nodeType":"VariableDeclaration","scope":965,"src":"3046:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":921,"name":"uint8","nodeType":"ElementaryTypeName","src":"3046:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":924,"mutability":"mutable","name":"r","nameLocation":"3071:1:6","nodeType":"VariableDeclaration","scope":965,"src":"3063:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3063:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"s","nameLocation":"3090:1:6","nodeType":"VariableDeclaration","scope":965,"src":"3082:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3082:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2911:186:6"},"returnParameters":{"id":928,"nodeType":"ParameterList","parameters":[],"src":"3107:0:6"},"scope":1004,"src":"2892:472:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1002,"nodeType":"Block","src":"3817:636:6","statements":[{"assignments":[975],"declarations":[{"constant":false,"id":975,"mutability":"mutable","name":"returndata","nameLocation":"4179:10:6","nodeType":"VariableDeclaration","scope":1002,"src":"4166:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":974,"name":"bytes","nodeType":"ElementaryTypeName","src":"4166:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":984,"initialValue":{"arguments":[{"id":981,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"4220:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":978,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"4200:5:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}],"id":977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4192:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":976,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:6","typeDescriptions":{}}},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"4192:27:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4166:95:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":985,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"4275:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4275:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4295:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4275:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1001,"nodeType":"IfStatement","src":"4271:176:6","trueBody":{"id":1000,"nodeType":"Block","src":"4298:149:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":992,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"4370:10:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4383:4:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":993,"name":"bool","nodeType":"ElementaryTypeName","src":"4383:4:6","typeDescriptions":{}}}],"id":995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4382:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":990,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4359:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"4359:10:6","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4359:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4391:44:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":989,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4351:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:85:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":999,"nodeType":"ExpressionStatement","src":"4351:85:6"}]}}]},"documentation":{"id":966,"nodeType":"StructuredDocumentation","src":"3370:372:6","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":1003,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3756:19:6","nodeType":"FunctionDefinition","parameters":{"id":972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":969,"mutability":"mutable","name":"token","nameLocation":"3783:5:6","nodeType":"VariableDeclaration","scope":1003,"src":"3776:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":968,"nodeType":"UserDefinedTypeName","pathNode":{"id":967,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"3776:6:6"},"referencedDeclaration":687,"src":"3776:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":971,"mutability":"mutable","name":"data","nameLocation":"3803:4:6","nodeType":"VariableDeclaration","scope":1003,"src":"3790:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":970,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:33:6"},"returnParameters":{"id":973,"nodeType":"ParameterList","parameters":[],"src":"3817:0:6"},"scope":1004,"src":"3747:706:6","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":1005,"src":"707:3748:6","usedErrors":[]}],"src":"115:4341:6"},"id":6},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[1334]},"id":1335,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1006,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:7"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":1007,"nodeType":"StructuredDocumentation","src":"126:67:7","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":1334,"linearizedBaseContracts":[1334],"name":"Address","nameLocation":"202:7:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":1021,"nodeType":"Block","src":"1241:254:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1015,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"1465:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1465:12:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1465:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1014,"id":1020,"nodeType":"Return","src":"1458:30:7"}]},"documentation":{"id":1008,"nodeType":"StructuredDocumentation","src":"216:954:7","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":1022,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:7","nodeType":"FunctionDefinition","parameters":{"id":1011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1010,"mutability":"mutable","name":"account","nameLocation":"1203:7:7","nodeType":"VariableDeclaration","scope":1022,"src":"1195:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1009,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:7"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1022,"src":"1235:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1012,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:7"},"scope":1334,"src":"1175:320:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1055,"nodeType":"Block","src":"2483:241:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1033,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1334","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1334","typeString":"library Address"}],"id":1032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1031,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:7","typeDescriptions":{}}},"id":1034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2501:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2501:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1036,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"2526:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":1038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":1030,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:73:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1040,"nodeType":"ExpressionStatement","src":"2493:73:7"},{"assignments":[1042,null],"declarations":[{"constant":false,"id":1042,"mutability":"mutable","name":"success","nameLocation":"2583:7:7","nodeType":"VariableDeclaration","scope":1055,"src":"2578:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1041,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1049,"initialValue":{"arguments":[{"hexValue":"","id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1043,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"2596:9:7","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2596:14:7","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1045,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"2618:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:7","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:7"},{"expression":{"arguments":[{"id":1051,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1042,"src":"2647:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":1052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":1050,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:78:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1054,"nodeType":"ExpressionStatement","src":"2639:78:7"}]},"documentation":{"id":1023,"nodeType":"StructuredDocumentation","src":"1501:906:7","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":1056,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:7","nodeType":"FunctionDefinition","parameters":{"id":1028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1025,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:7","nodeType":"VariableDeclaration","scope":1056,"src":"2431:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1024,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1027,"mutability":"mutable","name":"amount","nameLocation":"2466:6:7","nodeType":"VariableDeclaration","scope":1056,"src":"2458:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1026,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:7"},"returnParameters":{"id":1029,"nodeType":"ParameterList","parameters":[],"src":"2483:0:7"},"scope":1334,"src":"2412:312:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1073,"nodeType":"Block","src":"3555:96:7","statements":[{"expression":{"arguments":[{"id":1067,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"3594:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1068,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1061,"src":"3602:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":1069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3608:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":1070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3611:32:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":1066,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1114,1158],"referencedDeclaration":1158,"src":"3572:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":1071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1065,"id":1072,"nodeType":"Return","src":"3565:79:7"}]},"documentation":{"id":1057,"nodeType":"StructuredDocumentation","src":"2730:731:7","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":1074,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:7","nodeType":"FunctionDefinition","parameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1059,"mutability":"mutable","name":"target","nameLocation":"3496:6:7","nodeType":"VariableDeclaration","scope":1074,"src":"3488:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1058,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"data","nameLocation":"3517:4:7","nodeType":"VariableDeclaration","scope":1074,"src":"3504:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1060,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:7"},"returnParameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1074,"src":"3541:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1063,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:7"},"scope":1334,"src":"3466:185:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1093,"nodeType":"Block","src":"4020:76:7","statements":[{"expression":{"arguments":[{"id":1087,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"4059:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1088,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"4067:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":1089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4073:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":1090,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"4076:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1086,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1114,1158],"referencedDeclaration":1158,"src":"4037:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4037:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1085,"id":1092,"nodeType":"Return","src":"4030:59:7"}]},"documentation":{"id":1075,"nodeType":"StructuredDocumentation","src":"3657:211:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":1094,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3882:12:7","nodeType":"FunctionDefinition","parameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1077,"mutability":"mutable","name":"target","nameLocation":"3912:6:7","nodeType":"VariableDeclaration","scope":1094,"src":"3904:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1076,"name":"address","nodeType":"ElementaryTypeName","src":"3904:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1079,"mutability":"mutable","name":"data","nameLocation":"3941:4:7","nodeType":"VariableDeclaration","scope":1094,"src":"3928:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1078,"name":"bytes","nodeType":"ElementaryTypeName","src":"3928:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1081,"mutability":"mutable","name":"errorMessage","nameLocation":"3969:12:7","nodeType":"VariableDeclaration","scope":1094,"src":"3955:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1080,"name":"string","nodeType":"ElementaryTypeName","src":"3955:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3894:93:7"},"returnParameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1094,"src":"4006:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1083,"name":"bytes","nodeType":"ElementaryTypeName","src":"4006:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4005:14:7"},"scope":1334,"src":"3873:223:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1113,"nodeType":"Block","src":"4601:111:7","statements":[{"expression":{"arguments":[{"id":1107,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"4640:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1108,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1099,"src":"4648:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1109,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"4654:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4661:43:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":1106,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1114,1158],"referencedDeclaration":1158,"src":"4618:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4618:87:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1105,"id":1112,"nodeType":"Return","src":"4611:94:7"}]},"documentation":{"id":1095,"nodeType":"StructuredDocumentation","src":"4102:351:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":1114,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4467:21:7","nodeType":"FunctionDefinition","parameters":{"id":1102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1097,"mutability":"mutable","name":"target","nameLocation":"4506:6:7","nodeType":"VariableDeclaration","scope":1114,"src":"4498:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1096,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1099,"mutability":"mutable","name":"data","nameLocation":"4535:4:7","nodeType":"VariableDeclaration","scope":1114,"src":"4522:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1098,"name":"bytes","nodeType":"ElementaryTypeName","src":"4522:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1101,"mutability":"mutable","name":"value","nameLocation":"4557:5:7","nodeType":"VariableDeclaration","scope":1114,"src":"4549:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1100,"name":"uint256","nodeType":"ElementaryTypeName","src":"4549:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4488:80:7"},"returnParameters":{"id":1105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1114,"src":"4587:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1103,"name":"bytes","nodeType":"ElementaryTypeName","src":"4587:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4586:14:7"},"scope":1334,"src":"4458:254:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1157,"nodeType":"Block","src":"5139:267:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1131,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5165:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1334","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1334","typeString":"library Address"}],"id":1130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5157:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1129,"name":"address","nodeType":"ElementaryTypeName","src":"5157:7:7","typeDescriptions":{}}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5157:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5157:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1121,"src":"5182:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":1136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5189:40:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":1128,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5149:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5149:81:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1138,"nodeType":"ExpressionStatement","src":"5149:81:7"},{"assignments":[1140,1142],"declarations":[{"constant":false,"id":1140,"mutability":"mutable","name":"success","nameLocation":"5246:7:7","nodeType":"VariableDeclaration","scope":1157,"src":"5241:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1139,"name":"bool","nodeType":"ElementaryTypeName","src":"5241:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1142,"mutability":"mutable","name":"returndata","nameLocation":"5268:10:7","nodeType":"VariableDeclaration","scope":1157,"src":"5255:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1141,"name":"bytes","nodeType":"ElementaryTypeName","src":"5255:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1149,"initialValue":{"arguments":[{"id":1147,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1119,"src":"5308:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1143,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1117,"src":"5282:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5282:11:7","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1145,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1121,"src":"5301:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5282:25:7","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5282:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5240:73:7"},{"expression":{"arguments":[{"id":1151,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1117,"src":"5357:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"5365:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1153,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"5374:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1154,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1123,"src":"5386:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1150,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1289,"src":"5330:26:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5330:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1127,"id":1156,"nodeType":"Return","src":"5323:76:7"}]},"documentation":{"id":1115,"nodeType":"StructuredDocumentation","src":"4718:237:7","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":1158,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4969:21:7","nodeType":"FunctionDefinition","parameters":{"id":1124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1117,"mutability":"mutable","name":"target","nameLocation":"5008:6:7","nodeType":"VariableDeclaration","scope":1158,"src":"5000:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"5000:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1119,"mutability":"mutable","name":"data","nameLocation":"5037:4:7","nodeType":"VariableDeclaration","scope":1158,"src":"5024:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1118,"name":"bytes","nodeType":"ElementaryTypeName","src":"5024:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1121,"mutability":"mutable","name":"value","nameLocation":"5059:5:7","nodeType":"VariableDeclaration","scope":1158,"src":"5051:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1120,"name":"uint256","nodeType":"ElementaryTypeName","src":"5051:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1123,"mutability":"mutable","name":"errorMessage","nameLocation":"5088:12:7","nodeType":"VariableDeclaration","scope":1158,"src":"5074:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1122,"name":"string","nodeType":"ElementaryTypeName","src":"5074:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4990:116:7"},"returnParameters":{"id":1127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1158,"src":"5125:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1125,"name":"bytes","nodeType":"ElementaryTypeName","src":"5125:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5124:14:7"},"scope":1334,"src":"4960:446:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1174,"nodeType":"Block","src":"5683:97:7","statements":[{"expression":{"arguments":[{"id":1169,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"5719:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1170,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1163,"src":"5727:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":1171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5733:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":1168,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[1175,1204],"referencedDeclaration":1204,"src":"5700:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":1172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5700:73:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1167,"id":1173,"nodeType":"Return","src":"5693:80:7"}]},"documentation":{"id":1159,"nodeType":"StructuredDocumentation","src":"5412:166:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":1175,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5592:18:7","nodeType":"FunctionDefinition","parameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1161,"mutability":"mutable","name":"target","nameLocation":"5619:6:7","nodeType":"VariableDeclaration","scope":1175,"src":"5611:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1160,"name":"address","nodeType":"ElementaryTypeName","src":"5611:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1163,"mutability":"mutable","name":"data","nameLocation":"5640:4:7","nodeType":"VariableDeclaration","scope":1175,"src":"5627:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1162,"name":"bytes","nodeType":"ElementaryTypeName","src":"5627:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5610:35:7"},"returnParameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1175,"src":"5669:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1165,"name":"bytes","nodeType":"ElementaryTypeName","src":"5669:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5668:14:7"},"scope":1334,"src":"5583:197:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1203,"nodeType":"Block","src":"6122:168:7","statements":[{"assignments":[1188,1190],"declarations":[{"constant":false,"id":1188,"mutability":"mutable","name":"success","nameLocation":"6138:7:7","nodeType":"VariableDeclaration","scope":1203,"src":"6133:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1187,"name":"bool","nodeType":"ElementaryTypeName","src":"6133:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1190,"mutability":"mutable","name":"returndata","nameLocation":"6160:10:7","nodeType":"VariableDeclaration","scope":1203,"src":"6147:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1189,"name":"bytes","nodeType":"ElementaryTypeName","src":"6147:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1195,"initialValue":{"arguments":[{"id":1193,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"6192:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1191,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"6174:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6174:17:7","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":1194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6174:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6132:65:7"},{"expression":{"arguments":[{"id":1197,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"6241:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1198,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1188,"src":"6249:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1199,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"6258:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1200,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"6270:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1196,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1289,"src":"6214:26:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":1201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6214:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1186,"id":1202,"nodeType":"Return","src":"6207:76:7"}]},"documentation":{"id":1176,"nodeType":"StructuredDocumentation","src":"5786:173:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":1204,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5973:18:7","nodeType":"FunctionDefinition","parameters":{"id":1183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"target","nameLocation":"6009:6:7","nodeType":"VariableDeclaration","scope":1204,"src":"6001:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1180,"mutability":"mutable","name":"data","nameLocation":"6038:4:7","nodeType":"VariableDeclaration","scope":1204,"src":"6025:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1179,"name":"bytes","nodeType":"ElementaryTypeName","src":"6025:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1182,"mutability":"mutable","name":"errorMessage","nameLocation":"6066:12:7","nodeType":"VariableDeclaration","scope":1204,"src":"6052:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1181,"name":"string","nodeType":"ElementaryTypeName","src":"6052:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5991:93:7"},"returnParameters":{"id":1186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1204,"src":"6108:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1184,"name":"bytes","nodeType":"ElementaryTypeName","src":"6108:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6107:14:7"},"scope":1334,"src":"5964:326:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1220,"nodeType":"Block","src":"6566:101:7","statements":[{"expression":{"arguments":[{"id":1215,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"6604:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1216,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"6612:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6618:41:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":1214,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[1221,1250],"referencedDeclaration":1250,"src":"6583:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6583:77:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1213,"id":1219,"nodeType":"Return","src":"6576:84:7"}]},"documentation":{"id":1205,"nodeType":"StructuredDocumentation","src":"6296:168:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":1221,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6478:20:7","nodeType":"FunctionDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"target","nameLocation":"6507:6:7","nodeType":"VariableDeclaration","scope":1221,"src":"6499:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1206,"name":"address","nodeType":"ElementaryTypeName","src":"6499:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1209,"mutability":"mutable","name":"data","nameLocation":"6528:4:7","nodeType":"VariableDeclaration","scope":1221,"src":"6515:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1208,"name":"bytes","nodeType":"ElementaryTypeName","src":"6515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6498:35:7"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1221,"src":"6552:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1211,"name":"bytes","nodeType":"ElementaryTypeName","src":"6552:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6551:14:7"},"scope":1334,"src":"6469:198:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1249,"nodeType":"Block","src":"7008:170:7","statements":[{"assignments":[1234,1236],"declarations":[{"constant":false,"id":1234,"mutability":"mutable","name":"success","nameLocation":"7024:7:7","nodeType":"VariableDeclaration","scope":1249,"src":"7019:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1233,"name":"bool","nodeType":"ElementaryTypeName","src":"7019:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1236,"mutability":"mutable","name":"returndata","nameLocation":"7046:10:7","nodeType":"VariableDeclaration","scope":1249,"src":"7033:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1235,"name":"bytes","nodeType":"ElementaryTypeName","src":"7033:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1241,"initialValue":{"arguments":[{"id":1239,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"7080:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1237,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7060:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7060:19:7","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7060:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7018:67:7"},{"expression":{"arguments":[{"id":1243,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7129:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1244,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"7137:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1245,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"7146:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1246,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"7158:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1242,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1289,"src":"7102:26:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7102:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1232,"id":1248,"nodeType":"Return","src":"7095:76:7"}]},"documentation":{"id":1222,"nodeType":"StructuredDocumentation","src":"6673:175:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":1250,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6862:20:7","nodeType":"FunctionDefinition","parameters":{"id":1229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"mutability":"mutable","name":"target","nameLocation":"6900:6:7","nodeType":"VariableDeclaration","scope":1250,"src":"6892:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"6892:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1226,"mutability":"mutable","name":"data","nameLocation":"6929:4:7","nodeType":"VariableDeclaration","scope":1250,"src":"6916:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1225,"name":"bytes","nodeType":"ElementaryTypeName","src":"6916:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"errorMessage","nameLocation":"6957:12:7","nodeType":"VariableDeclaration","scope":1250,"src":"6943:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1227,"name":"string","nodeType":"ElementaryTypeName","src":"6943:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6882:93:7"},"returnParameters":{"id":1232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1250,"src":"6994:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1230,"name":"bytes","nodeType":"ElementaryTypeName","src":"6994:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6993:14:7"},"scope":1334,"src":"6853:325:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1288,"nodeType":"Block","src":"7660:434:7","statements":[{"condition":{"id":1264,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"7674:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1286,"nodeType":"Block","src":"8030:58:7","statements":[{"expression":{"arguments":[{"id":1282,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"8052:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1283,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"8064:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1281,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1333,"src":"8044:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":1284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8044:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1285,"nodeType":"ExpressionStatement","src":"8044:33:7"}]},"id":1287,"nodeType":"IfStatement","src":"7670:418:7","trueBody":{"id":1280,"nodeType":"Block","src":"7683:341:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1265,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"7701:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7701:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7722:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7701:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1277,"nodeType":"IfStatement","src":"7697:286:7","trueBody":{"id":1276,"nodeType":"Block","src":"7725:258:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1271,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"7927:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1270,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"7916:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7916:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":1273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7936:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":1269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7908:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7908:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1275,"nodeType":"ExpressionStatement","src":"7908:60:7"}]}},{"expression":{"id":1278,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"8003:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1263,"id":1279,"nodeType":"Return","src":"7996:17:7"}]}}]},"documentation":{"id":1251,"nodeType":"StructuredDocumentation","src":"7184:277:7","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":1289,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7475:26:7","nodeType":"FunctionDefinition","parameters":{"id":1260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1253,"mutability":"mutable","name":"target","nameLocation":"7519:6:7","nodeType":"VariableDeclaration","scope":1289,"src":"7511:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1252,"name":"address","nodeType":"ElementaryTypeName","src":"7511:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1255,"mutability":"mutable","name":"success","nameLocation":"7540:7:7","nodeType":"VariableDeclaration","scope":1289,"src":"7535:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1254,"name":"bool","nodeType":"ElementaryTypeName","src":"7535:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1257,"mutability":"mutable","name":"returndata","nameLocation":"7570:10:7","nodeType":"VariableDeclaration","scope":1289,"src":"7557:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1256,"name":"bytes","nodeType":"ElementaryTypeName","src":"7557:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1259,"mutability":"mutable","name":"errorMessage","nameLocation":"7604:12:7","nodeType":"VariableDeclaration","scope":1289,"src":"7590:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1258,"name":"string","nodeType":"ElementaryTypeName","src":"7590:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7501:121:7"},"returnParameters":{"id":1263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1289,"src":"7646:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1261,"name":"bytes","nodeType":"ElementaryTypeName","src":"7646:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7645:14:7"},"scope":1334,"src":"7466:628:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1312,"nodeType":"Block","src":"8475:135:7","statements":[{"condition":{"id":1301,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"8489:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1310,"nodeType":"Block","src":"8546:58:7","statements":[{"expression":{"arguments":[{"id":1306,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"8568:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1307,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"8580:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1305,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1333,"src":"8560:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":1308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1309,"nodeType":"ExpressionStatement","src":"8560:33:7"}]},"id":1311,"nodeType":"IfStatement","src":"8485:119:7","trueBody":{"id":1304,"nodeType":"Block","src":"8498:42:7","statements":[{"expression":{"id":1302,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"8519:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1300,"id":1303,"nodeType":"Return","src":"8512:17:7"}]}}]},"documentation":{"id":1290,"nodeType":"StructuredDocumentation","src":"8100:210:7","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":1313,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8324:16:7","nodeType":"FunctionDefinition","parameters":{"id":1297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1292,"mutability":"mutable","name":"success","nameLocation":"8355:7:7","nodeType":"VariableDeclaration","scope":1313,"src":"8350:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1291,"name":"bool","nodeType":"ElementaryTypeName","src":"8350:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1294,"mutability":"mutable","name":"returndata","nameLocation":"8385:10:7","nodeType":"VariableDeclaration","scope":1313,"src":"8372:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1293,"name":"bytes","nodeType":"ElementaryTypeName","src":"8372:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1296,"mutability":"mutable","name":"errorMessage","nameLocation":"8419:12:7","nodeType":"VariableDeclaration","scope":1313,"src":"8405:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1295,"name":"string","nodeType":"ElementaryTypeName","src":"8405:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8340:97:7"},"returnParameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1313,"src":"8461:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1298,"name":"bytes","nodeType":"ElementaryTypeName","src":"8461:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8460:14:7"},"scope":1334,"src":"8315:295:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1332,"nodeType":"Block","src":"8699:457:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1320,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1315,"src":"8775:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8775:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8795:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8775:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1330,"nodeType":"Block","src":"9105:45:7","statements":[{"expression":{"arguments":[{"id":1327,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1317,"src":"9126:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1326,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9119:6:7","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9119:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1329,"nodeType":"ExpressionStatement","src":"9119:20:7"}]},"id":1331,"nodeType":"IfStatement","src":"8771:379:7","trueBody":{"id":1325,"nodeType":"Block","src":"8798:301:7","statements":[{"AST":{"nodeType":"YulBlock","src":"8956:133:7","statements":[{"nodeType":"YulVariableDeclaration","src":"8974:40:7","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9003:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8997:5:7"},"nodeType":"YulFunctionCall","src":"8997:17:7"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8978:15:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9042:2:7","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9046:10:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9038:3:7"},"nodeType":"YulFunctionCall","src":"9038:19:7"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9059:15:7"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9031:6:7"},"nodeType":"YulFunctionCall","src":"9031:44:7"},"nodeType":"YulExpressionStatement","src":"9031:44:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":1315,"isOffset":false,"isSlot":false,"src":"9003:10:7","valueSize":1},{"declaration":1315,"isOffset":false,"isSlot":false,"src":"9046:10:7","valueSize":1}],"id":1324,"nodeType":"InlineAssembly","src":"8947:142:7"}]}}]},"id":1333,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8625:7:7","nodeType":"FunctionDefinition","parameters":{"id":1318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1315,"mutability":"mutable","name":"returndata","nameLocation":"8646:10:7","nodeType":"VariableDeclaration","scope":1333,"src":"8633:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1314,"name":"bytes","nodeType":"ElementaryTypeName","src":"8633:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1317,"mutability":"mutable","name":"errorMessage","nameLocation":"8672:12:7","nodeType":"VariableDeclaration","scope":1333,"src":"8658:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1316,"name":"string","nodeType":"ElementaryTypeName","src":"8658:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8632:53:7"},"returnParameters":{"id":1319,"nodeType":"ParameterList","parameters":[],"src":"8699:0:7"},"scope":1334,"src":"8616:540:7","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1335,"src":"194:8964:7","usedErrors":[]}],"src":"101:9058:7"},"id":7},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[1356]},"id":1357,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1336,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:8"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1337,"nodeType":"StructuredDocumentation","src":"111:496:8","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":1356,"linearizedBaseContracts":[1356],"name":"Context","nameLocation":"626:7:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":1345,"nodeType":"Block","src":"702:34:8","statements":[{"expression":{"expression":{"id":1342,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1341,"id":1344,"nodeType":"Return","src":"712:17:8"}]},"id":1346,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:8","nodeType":"FunctionDefinition","parameters":{"id":1338,"nodeType":"ParameterList","parameters":[],"src":"659:2:8"},"returnParameters":{"id":1341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1346,"src":"693:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:8"},"scope":1356,"src":"640:96:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1354,"nodeType":"Block","src":"809:32:8","statements":[{"expression":{"expression":{"id":1351,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1350,"id":1353,"nodeType":"Return","src":"819:15:8"}]},"id":1355,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:8","nodeType":"FunctionDefinition","parameters":{"id":1347,"nodeType":"ParameterList","parameters":[],"src":"759:2:8"},"returnParameters":{"id":1350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1355,"src":"793:14:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1348,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:8"},"scope":1356,"src":"742:99:8","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1357,"src":"608:235:8","usedErrors":[]}],"src":"86:758:8"},"id":8},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[2432],"Strings":[1531]},"id":1532,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1358,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:9"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1359,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1532,"sourceUnit":2433,"src":"126:25:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":1360,"nodeType":"StructuredDocumentation","src":"153:34:9","text":" @dev String operations."},"fullyImplemented":true,"id":1531,"linearizedBaseContracts":[1531],"name":"Strings","nameLocation":"196:7:9","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1363,"mutability":"constant","name":"_SYMBOLS","nameLocation":"235:8:9","nodeType":"VariableDeclaration","scope":1531,"src":"210:54:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1361,"name":"bytes16","nodeType":"ElementaryTypeName","src":"210:7:9","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":1362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246:18:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":1366,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"293:15:9","nodeType":"VariableDeclaration","scope":1531,"src":"270:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1364,"name":"uint8","nodeType":"ElementaryTypeName","src":"270:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":1365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:9","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":1413,"nodeType":"Block","src":"486:625:9","statements":[{"id":1412,"nodeType":"UncheckedBlock","src":"496:609:9","statements":[{"assignments":[1375],"declarations":[{"constant":false,"id":1375,"mutability":"mutable","name":"length","nameLocation":"528:6:9","nodeType":"VariableDeclaration","scope":1412,"src":"520:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1374,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1382,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1378,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"548:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1376,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2432,"src":"537:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2432_$","typeString":"type(library Math)"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":2269,"src":"537:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"537:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"557:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"537:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"520:38:9"},{"assignments":[1384],"declarations":[{"constant":false,"id":1384,"mutability":"mutable","name":"buffer","nameLocation":"586:6:9","nodeType":"VariableDeclaration","scope":1412,"src":"572:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1383,"name":"string","nodeType":"ElementaryTypeName","src":"572:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1389,"initialValue":{"arguments":[{"id":1387,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1375,"src":"606:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"595:10:9","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":1385,"name":"string","nodeType":"ElementaryTypeName","src":"599:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":1388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"595:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"572:41:9"},{"assignments":[1391],"declarations":[{"constant":false,"id":1391,"mutability":"mutable","name":"ptr","nameLocation":"635:3:9","nodeType":"VariableDeclaration","scope":1412,"src":"627:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1390,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1392,"nodeType":"VariableDeclarationStatement","src":"627:11:9"},{"AST":{"nodeType":"YulBlock","src":"708:67:9","statements":[{"nodeType":"YulAssignment","src":"726:35:9","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"737:6:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"749:2:9","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"753:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:9"},"nodeType":"YulFunctionCall","src":"745:15:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"733:3:9"},"nodeType":"YulFunctionCall","src":"733:28:9"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"726:3:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":1384,"isOffset":false,"isSlot":false,"src":"737:6:9","valueSize":1},{"declaration":1375,"isOffset":false,"isSlot":false,"src":"753:6:9","valueSize":1},{"declaration":1391,"isOffset":false,"isSlot":false,"src":"726:3:9","valueSize":1}],"id":1393,"nodeType":"InlineAssembly","src":"699:76:9"},{"body":{"id":1408,"nodeType":"Block","src":"801:267:9","statements":[{"expression":{"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"819:5:9","subExpression":{"id":1395,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"819:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1397,"nodeType":"ExpressionStatement","src":"819:5:9"},{"AST":{"nodeType":"YulBlock","src":"902:84:9","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"932:3:9"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"946:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"953:2:9","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"942:3:9"},"nodeType":"YulFunctionCall","src":"942:14:9"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"958:8:9"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"937:4:9"},"nodeType":"YulFunctionCall","src":"937:30:9"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"924:7:9"},"nodeType":"YulFunctionCall","src":"924:44:9"},"nodeType":"YulExpressionStatement","src":"924:44:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":1363,"isOffset":false,"isSlot":false,"src":"958:8:9","valueSize":1},{"declaration":1391,"isOffset":false,"isSlot":false,"src":"932:3:9","valueSize":1},{"declaration":1369,"isOffset":false,"isSlot":false,"src":"946:5:9","valueSize":1}],"id":1398,"nodeType":"InlineAssembly","src":"893:93:9"},{"expression":{"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"1003:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":1400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1012:2:9","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1003:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1402,"nodeType":"ExpressionStatement","src":"1003:11:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1403,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"1036:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1036:10:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1407,"nodeType":"IfStatement","src":"1032:21:9","trueBody":{"id":1406,"nodeType":"Break","src":"1048:5:9"}}]},"condition":{"hexValue":"74727565","id":1394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"795:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1409,"nodeType":"WhileStatement","src":"788:280:9"},{"expression":{"id":1410,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1384,"src":"1088:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1373,"id":1411,"nodeType":"Return","src":"1081:13:9"}]}]},"documentation":{"id":1367,"nodeType":"StructuredDocumentation","src":"320:90:9","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":1414,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"424:8:9","nodeType":"FunctionDefinition","parameters":{"id":1370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1369,"mutability":"mutable","name":"value","nameLocation":"441:5:9","nodeType":"VariableDeclaration","scope":1414,"src":"433:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"432:15:9"},"returnParameters":{"id":1373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1414,"src":"471:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1371,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"470:15:9"},"scope":1531,"src":"415:696:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1433,"nodeType":"Block","src":"1290:100:9","statements":[{"id":1432,"nodeType":"UncheckedBlock","src":"1300:84:9","statements":[{"expression":{"arguments":[{"id":1423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"1343:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"1362:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1424,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2432,"src":"1350:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2432_$","typeString":"type(library Math)"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":2392,"src":"1350:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1350:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1350:22:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1422,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1434,1510,1530],"referencedDeclaration":1510,"src":"1331:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1331:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1421,"id":1431,"nodeType":"Return","src":"1324:49:9"}]}]},"documentation":{"id":1415,"nodeType":"StructuredDocumentation","src":"1117:94:9","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":1434,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1225:11:9","nodeType":"FunctionDefinition","parameters":{"id":1418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1417,"mutability":"mutable","name":"value","nameLocation":"1245:5:9","nodeType":"VariableDeclaration","scope":1434,"src":"1237:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1236:15:9"},"returnParameters":{"id":1421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1434,"src":"1275:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1419,"name":"string","nodeType":"ElementaryTypeName","src":"1275:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1274:15:9"},"scope":1531,"src":"1216:174:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1509,"nodeType":"Block","src":"1603:347:9","statements":[{"assignments":[1445],"declarations":[{"constant":false,"id":1445,"mutability":"mutable","name":"buffer","nameLocation":"1626:6:9","nodeType":"VariableDeclaration","scope":1509,"src":"1613:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1444,"name":"bytes","nodeType":"ElementaryTypeName","src":"1613:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1454,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1449,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1439,"src":"1649:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1645:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1645:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1635:9:9","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1446,"name":"bytes","nodeType":"ElementaryTypeName","src":"1639:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1635:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1613:47:9"},{"expression":{"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1455,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"1670:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1457,"indexExpression":{"hexValue":"30","id":1456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1677:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1670:9:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1682:3:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1670:15:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1460,"nodeType":"ExpressionStatement","src":"1670:15:9"},{"expression":{"id":1465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1461,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"1695:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1463,"indexExpression":{"hexValue":"31","id":1462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1695:9:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":1464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1707:3:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1695:15:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1466,"nodeType":"ExpressionStatement","src":"1695:15:9"},{"body":{"id":1495,"nodeType":"Block","src":"1765:83:9","statements":[{"expression":{"id":1489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1481,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"1779:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1483,"indexExpression":{"id":1482,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"1786:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1779:9:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1484,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1363,"src":"1791:8:9","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1488,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1485,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1437,"src":"1800:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:3:9","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1800:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1791:21:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1779:33:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1490,"nodeType":"ExpressionStatement","src":"1779:33:9"},{"expression":{"id":1493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1437,"src":"1826:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1836:1:9","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1826:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1494,"nodeType":"ExpressionStatement","src":"1826:11:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"1753:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1753:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1496,"initializationExpression":{"assignments":[1468],"declarations":[{"constant":false,"id":1468,"mutability":"mutable","name":"i","nameLocation":"1733:1:9","nodeType":"VariableDeclaration","scope":1496,"src":"1725:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1725:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1474,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1737:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1470,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1439,"src":"1741:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1737:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1750:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1737:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1725:26:9"},"loopExpression":{"expression":{"id":1479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1760:3:9","subExpression":{"id":1478,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"1762:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1480,"nodeType":"ExpressionStatement","src":"1760:3:9"},"nodeType":"ForStatement","src":"1720:128:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1437,"src":"1865:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1874:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1865:10:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":1501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1877:34:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":1497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1857:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1857:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1503,"nodeType":"ExpressionStatement","src":"1857:55:9"},{"expression":{"arguments":[{"id":1506,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"1936:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1929:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1504,"name":"string","nodeType":"ElementaryTypeName","src":"1929:6:9","typeDescriptions":{}}},"id":1507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1929:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1443,"id":1508,"nodeType":"Return","src":"1922:21:9"}]},"documentation":{"id":1435,"nodeType":"StructuredDocumentation","src":"1396:112:9","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":1510,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1522:11:9","nodeType":"FunctionDefinition","parameters":{"id":1440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1437,"mutability":"mutable","name":"value","nameLocation":"1542:5:9","nodeType":"VariableDeclaration","scope":1510,"src":"1534:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1436,"name":"uint256","nodeType":"ElementaryTypeName","src":"1534:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1439,"mutability":"mutable","name":"length","nameLocation":"1557:6:9","nodeType":"VariableDeclaration","scope":1510,"src":"1549:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1533:31:9"},"returnParameters":{"id":1443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1510,"src":"1588:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1441,"name":"string","nodeType":"ElementaryTypeName","src":"1588:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1587:15:9"},"scope":1531,"src":"1513:437:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1529,"nodeType":"Block","src":"2175:76:9","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1523,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1513,"src":"2220:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2212:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1521,"name":"uint160","nodeType":"ElementaryTypeName","src":"2212:7:9","typeDescriptions":{}}},"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2212:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2204:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1519,"name":"uint256","nodeType":"ElementaryTypeName","src":"2204:7:9","typeDescriptions":{}}},"id":1525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2204:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1526,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"2228:15:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1518,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1434,1510,1530],"referencedDeclaration":1510,"src":"2192:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2192:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1517,"id":1528,"nodeType":"Return","src":"2185:59:9"}]},"documentation":{"id":1511,"nodeType":"StructuredDocumentation","src":"1956:141:9","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":1530,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2111:11:9","nodeType":"FunctionDefinition","parameters":{"id":1514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1513,"mutability":"mutable","name":"addr","nameLocation":"2131:4:9","nodeType":"VariableDeclaration","scope":1530,"src":"2123:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1512,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2122:14:9"},"returnParameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1530,"src":"2160:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1515,"name":"string","nodeType":"ElementaryTypeName","src":"2160:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2159:15:9"},"scope":1531,"src":"2102:149:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1532,"src":"188:2065:9","usedErrors":[]}],"src":"101:2153:9"},"id":9},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[1555],"IERC165":[1567]},"id":1556,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1533,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:10"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":1534,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1556,"sourceUnit":1568,"src":"124:23:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1536,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":1567,"src":"754:7:10"},"id":1537,"nodeType":"InheritanceSpecifier","src":"754:7:10"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":1535,"nodeType":"StructuredDocumentation","src":"149:576:10","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":1555,"linearizedBaseContracts":[1555,1567],"name":"ERC165","nameLocation":"744:6:10","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[1566],"body":{"id":1553,"nodeType":"Block","src":"920:64:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1546,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"937:11:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1548,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"957:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$1567_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$1567_$","typeString":"type(contract IERC165)"}],"id":1547,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$1567","typeString":"type(contract IERC165)"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1545,"id":1552,"nodeType":"Return","src":"930:47:10"}]},"documentation":{"id":1538,"nodeType":"StructuredDocumentation","src":"768:56:10","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1554,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:10","nodeType":"FunctionDefinition","overrides":{"id":1542,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:10"},"parameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:10","nodeType":"VariableDeclaration","scope":1554,"src":"856:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1539,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:10"},"returnParameters":{"id":1545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1554,"src":"914:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1543,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:10"},"scope":1555,"src":"829:155:10","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":1556,"src":"726:260:10","usedErrors":[]}],"src":"99:888:10"},"id":10},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[1567]},"id":1568,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1557,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":1558,"nodeType":"StructuredDocumentation","src":"125:279:11","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":1567,"linearizedBaseContracts":[1567],"name":"IERC165","nameLocation":"415:7:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1559,"nodeType":"StructuredDocumentation","src":"429:340:11","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":1566,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:11","nodeType":"FunctionDefinition","parameters":{"id":1562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1561,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:11","nodeType":"VariableDeclaration","scope":1566,"src":"801:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1560,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:11"},"returnParameters":{"id":1565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1566,"src":"844:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1563,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:11"},"scope":1567,"src":"774:76:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1568,"src":"405:447:11","usedErrors":[]}],"src":"100:753:11"},"id":11},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[2432]},"id":2433,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1569,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":1570,"nodeType":"StructuredDocumentation","src":"128:73:12","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":2432,"linearizedBaseContracts":[2432],"name":"Math","nameLocation":"210:4:12","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":1574,"members":[{"id":1571,"name":"Down","nameLocation":"245:4:12","nodeType":"EnumValue","src":"245:4:12"},{"id":1572,"name":"Up","nameLocation":"287:2:12","nodeType":"EnumValue","src":"287:2:12"},{"id":1573,"name":"Zero","nameLocation":"318:4:12","nodeType":"EnumValue","src":"318:4:12"}],"name":"Rounding","nameLocation":"226:8:12","nodeType":"EnumDefinition","src":"221:122:12"},{"body":{"id":1591,"nodeType":"Block","src":"480:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1584,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"497:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1585,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"501:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1588,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"509:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:12","trueExpression":{"id":1587,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"505:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1583,"id":1590,"nodeType":"Return","src":"490:20:12"}]},"documentation":{"id":1575,"nodeType":"StructuredDocumentation","src":"349:59:12","text":" @dev Returns the largest of two numbers."},"id":1592,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:12","nodeType":"FunctionDefinition","parameters":{"id":1580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1577,"mutability":"mutable","name":"a","nameLocation":"434:1:12","nodeType":"VariableDeclaration","scope":1592,"src":"426:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1579,"mutability":"mutable","name":"b","nameLocation":"445:1:12","nodeType":"VariableDeclaration","scope":1592,"src":"437:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1578,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:12"},"returnParameters":{"id":1583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1592,"src":"471:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1581,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:12"},"scope":2432,"src":"413:104:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1609,"nodeType":"Block","src":"655:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1602,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"672:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1603,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1597,"src":"676:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1606,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1597,"src":"684:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:12","trueExpression":{"id":1605,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"680:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1601,"id":1608,"nodeType":"Return","src":"665:20:12"}]},"documentation":{"id":1593,"nodeType":"StructuredDocumentation","src":"523:60:12","text":" @dev Returns the smallest of two numbers."},"id":1610,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:12","nodeType":"FunctionDefinition","parameters":{"id":1598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1595,"mutability":"mutable","name":"a","nameLocation":"609:1:12","nodeType":"VariableDeclaration","scope":1610,"src":"601:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1594,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1597,"mutability":"mutable","name":"b","nameLocation":"620:1:12","nodeType":"VariableDeclaration","scope":1610,"src":"612:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1596,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:12"},"returnParameters":{"id":1601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1610,"src":"646:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1599,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:12"},"scope":2432,"src":"588:104:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1632,"nodeType":"Block","src":"876:82:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1620,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":1621,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"935:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1623,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1624,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"941:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":1625,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"945:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":1628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1619,"id":1631,"nodeType":"Return","src":"923:28:12"}]},"documentation":{"id":1611,"nodeType":"StructuredDocumentation","src":"698:102:12","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":1633,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:12","nodeType":"FunctionDefinition","parameters":{"id":1616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1613,"mutability":"mutable","name":"a","nameLocation":"830:1:12","nodeType":"VariableDeclaration","scope":1633,"src":"822:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1612,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1615,"mutability":"mutable","name":"b","nameLocation":"841:1:12","nodeType":"VariableDeclaration","scope":1633,"src":"833:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1614,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:12"},"returnParameters":{"id":1619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1633,"src":"867:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1617,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:12"},"scope":2432,"src":"805:153:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1657,"nodeType":"Block","src":"1228:123:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1643,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1636,"src":"1316:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1647,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1636,"src":"1330:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1651,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"1339:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:12","trueExpression":{"hexValue":"30","id":1646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1642,"id":1656,"nodeType":"Return","src":"1309:35:12"}]},"documentation":{"id":1634,"nodeType":"StructuredDocumentation","src":"964:188:12","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":1658,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:12","nodeType":"FunctionDefinition","parameters":{"id":1639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1636,"mutability":"mutable","name":"a","nameLocation":"1182:1:12","nodeType":"VariableDeclaration","scope":1658,"src":"1174:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1638,"mutability":"mutable","name":"b","nameLocation":"1193:1:12","nodeType":"VariableDeclaration","scope":1658,"src":"1185:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1637,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:12"},"returnParameters":{"id":1642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1658,"src":"1219:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:12"},"scope":2432,"src":"1157:194:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1779,"nodeType":"Block","src":"1795:3797:12","statements":[{"id":1778,"nodeType":"UncheckedBlock","src":"1805:3781:12","statements":[{"assignments":[1671],"declarations":[{"constant":false,"id":1671,"mutability":"mutable","name":"prod0","nameLocation":"2134:5:12","nodeType":"VariableDeclaration","scope":1778,"src":"2126:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1670,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1672,"nodeType":"VariableDeclarationStatement","src":"2126:13:12"},{"assignments":[1674],"declarations":[{"constant":false,"id":1674,"mutability":"mutable","name":"prod1","nameLocation":"2206:5:12","nodeType":"VariableDeclaration","scope":1778,"src":"2198:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1673,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1675,"nodeType":"VariableDeclarationStatement","src":"2198:13:12"},{"AST":{"nodeType":"YulBlock","src":"2278:157:12","statements":[{"nodeType":"YulVariableDeclaration","src":"2296:30:12","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2313:1:12"},{"name":"y","nodeType":"YulIdentifier","src":"2316:1:12"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2323:1:12","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2319:3:12"},"nodeType":"YulFunctionCall","src":"2319:6:12"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2306:6:12"},"nodeType":"YulFunctionCall","src":"2306:20:12"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2300:2:12","type":""}]},{"nodeType":"YulAssignment","src":"2343:18:12","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2356:1:12"},{"name":"y","nodeType":"YulIdentifier","src":"2359:1:12"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2352:3:12"},"nodeType":"YulFunctionCall","src":"2352:9:12"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2343:5:12"}]},{"nodeType":"YulAssignment","src":"2378:43:12","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2395:2:12"},{"name":"prod0","nodeType":"YulIdentifier","src":"2399:5:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2391:3:12"},"nodeType":"YulFunctionCall","src":"2391:14:12"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2410:2:12"},{"name":"prod0","nodeType":"YulIdentifier","src":"2414:5:12"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2407:2:12"},"nodeType":"YulFunctionCall","src":"2407:13:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2387:3:12"},"nodeType":"YulFunctionCall","src":"2387:34:12"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2378:5:12"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1671,"isOffset":false,"isSlot":false,"src":"2343:5:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"2399:5:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"2414:5:12","valueSize":1},{"declaration":1674,"isOffset":false,"isSlot":false,"src":"2378:5:12","valueSize":1},{"declaration":1661,"isOffset":false,"isSlot":false,"src":"2313:1:12","valueSize":1},{"declaration":1661,"isOffset":false,"isSlot":false,"src":"2356:1:12","valueSize":1},{"declaration":1663,"isOffset":false,"isSlot":false,"src":"2316:1:12","valueSize":1},{"declaration":1663,"isOffset":false,"isSlot":false,"src":"2359:1:12","valueSize":1}],"id":1676,"nodeType":"InlineAssembly","src":"2269:166:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1677,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"2516:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2525:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2516:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1685,"nodeType":"IfStatement","src":"2512:75:12","trueBody":{"id":1684,"nodeType":"Block","src":"2528:59:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1680,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"2553:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1681,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"2561:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2553:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1669,"id":1683,"nodeType":"Return","src":"2546:26:12"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1687,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"2697:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1688,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"2711:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2697:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1686,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2689:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2689:28:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1691,"nodeType":"ExpressionStatement","src":"2689:28:12"},{"assignments":[1693],"declarations":[{"constant":false,"id":1693,"mutability":"mutable","name":"remainder","nameLocation":"2981:9:12","nodeType":"VariableDeclaration","scope":1778,"src":"2973:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1692,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1694,"nodeType":"VariableDeclarationStatement","src":"2973:17:12"},{"AST":{"nodeType":"YulBlock","src":"3013:291:12","statements":[{"nodeType":"YulAssignment","src":"3082:38:12","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3102:1:12"},{"name":"y","nodeType":"YulIdentifier","src":"3105:1:12"},{"name":"denominator","nodeType":"YulIdentifier","src":"3108:11:12"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3095:6:12"},"nodeType":"YulFunctionCall","src":"3095:25:12"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3082:9:12"}]},{"nodeType":"YulAssignment","src":"3202:41:12","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3215:5:12"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3225:9:12"},{"name":"prod0","nodeType":"YulIdentifier","src":"3236:5:12"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3222:2:12"},"nodeType":"YulFunctionCall","src":"3222:20:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3211:3:12"},"nodeType":"YulFunctionCall","src":"3211:32:12"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3202:5:12"}]},{"nodeType":"YulAssignment","src":"3260:30:12","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3273:5:12"},{"name":"remainder","nodeType":"YulIdentifier","src":"3280:9:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3269:3:12"},"nodeType":"YulFunctionCall","src":"3269:21:12"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3260:5:12"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1665,"isOffset":false,"isSlot":false,"src":"3108:11:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"3236:5:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"3260:5:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"3273:5:12","valueSize":1},{"declaration":1674,"isOffset":false,"isSlot":false,"src":"3202:5:12","valueSize":1},{"declaration":1674,"isOffset":false,"isSlot":false,"src":"3215:5:12","valueSize":1},{"declaration":1693,"isOffset":false,"isSlot":false,"src":"3082:9:12","valueSize":1},{"declaration":1693,"isOffset":false,"isSlot":false,"src":"3225:9:12","valueSize":1},{"declaration":1693,"isOffset":false,"isSlot":false,"src":"3280:9:12","valueSize":1},{"declaration":1661,"isOffset":false,"isSlot":false,"src":"3102:1:12","valueSize":1},{"declaration":1663,"isOffset":false,"isSlot":false,"src":"3105:1:12","valueSize":1}],"id":1695,"nodeType":"InlineAssembly","src":"3004:300:12"},{"assignments":[1697],"declarations":[{"constant":false,"id":1697,"mutability":"mutable","name":"twos","nameLocation":"3619:4:12","nodeType":"VariableDeclaration","scope":1778,"src":"3611:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1696,"name":"uint256","nodeType":"ElementaryTypeName","src":"3611:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1705,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1698,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"3626:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3641:12:12","subExpression":{"id":1699,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"3642:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3656:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3641:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1703,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3640:18:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3626:32:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3611:47:12"},{"AST":{"nodeType":"YulBlock","src":"3681:362:12","statements":[{"nodeType":"YulAssignment","src":"3746:37:12","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"3765:11:12"},{"name":"twos","nodeType":"YulIdentifier","src":"3778:4:12"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3761:3:12"},"nodeType":"YulFunctionCall","src":"3761:22:12"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"3746:11:12"}]},{"nodeType":"YulAssignment","src":"3850:25:12","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3863:5:12"},{"name":"twos","nodeType":"YulIdentifier","src":"3870:4:12"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3859:3:12"},"nodeType":"YulFunctionCall","src":"3859:16:12"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3850:5:12"}]},{"nodeType":"YulAssignment","src":"3990:39:12","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4010:1:12","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4013:4:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4006:3:12"},"nodeType":"YulFunctionCall","src":"4006:12:12"},{"name":"twos","nodeType":"YulIdentifier","src":"4020:4:12"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4002:3:12"},"nodeType":"YulFunctionCall","src":"4002:23:12"},{"kind":"number","nodeType":"YulLiteral","src":"4027:1:12","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:12"},"nodeType":"YulFunctionCall","src":"3998:31:12"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3990:4:12"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1665,"isOffset":false,"isSlot":false,"src":"3746:11:12","valueSize":1},{"declaration":1665,"isOffset":false,"isSlot":false,"src":"3765:11:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"3850:5:12","valueSize":1},{"declaration":1671,"isOffset":false,"isSlot":false,"src":"3863:5:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"3778:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"3870:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"3990:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4013:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4020:4:12","valueSize":1}],"id":1706,"nodeType":"InlineAssembly","src":"3672:371:12"},{"expression":{"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1707,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"4109:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1708,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"4118:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1709,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"4126:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4118:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4109:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1712,"nodeType":"ExpressionStatement","src":"4109:21:12"},{"assignments":[1714],"declarations":[{"constant":false,"id":1714,"mutability":"mutable","name":"inverse","nameLocation":"4456:7:12","nodeType":"VariableDeclaration","scope":1778,"src":"4448:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1713,"name":"uint256","nodeType":"ElementaryTypeName","src":"4448:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1721,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":1715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1716,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"4471:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4467:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4466:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":1719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4486:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4466:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4448:39:12"},{"expression":{"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1722,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4704:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4715:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1724,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"4719:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1725,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4733:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4719:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4715:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4704:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1729,"nodeType":"ExpressionStatement","src":"4704:36:12"},{"expression":{"id":1736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1730,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4773:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4784:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1732,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"4788:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1733,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4802:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4788:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4784:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4773:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1737,"nodeType":"ExpressionStatement","src":"4773:36:12"},{"expression":{"id":1744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1738,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4843:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4854:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1740,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"4858:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1741,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4872:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4858:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4854:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1745,"nodeType":"ExpressionStatement","src":"4843:36:12"},{"expression":{"id":1752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1746,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4913:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4924:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1748,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"4928:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1749,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4942:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4924:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4913:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1753,"nodeType":"ExpressionStatement","src":"4913:36:12"},{"expression":{"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1754,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4983:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4994:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"4998:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1757,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5012:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4994:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1761,"nodeType":"ExpressionStatement","src":"4983:36:12"},{"expression":{"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1762,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5054:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5065:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1764,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"5069:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1765,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5083:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5054:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1769,"nodeType":"ExpressionStatement","src":"5054:36:12"},{"expression":{"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1770,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1668,"src":"5524:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1771,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"5533:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1772,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5541:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5533:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5524:24:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1775,"nodeType":"ExpressionStatement","src":"5524:24:12"},{"expression":{"id":1776,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1668,"src":"5569:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1669,"id":1777,"nodeType":"Return","src":"5562:13:12"}]}]},"documentation":{"id":1659,"nodeType":"StructuredDocumentation","src":"1357:305:12","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":1780,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:12","nodeType":"FunctionDefinition","parameters":{"id":1666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1661,"mutability":"mutable","name":"x","nameLocation":"1700:1:12","nodeType":"VariableDeclaration","scope":1780,"src":"1692:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1660,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1663,"mutability":"mutable","name":"y","nameLocation":"1719:1:12","nodeType":"VariableDeclaration","scope":1780,"src":"1711:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1662,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1665,"mutability":"mutable","name":"denominator","nameLocation":"1738:11:12","nodeType":"VariableDeclaration","scope":1780,"src":"1730:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:73:12"},"returnParameters":{"id":1669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1668,"mutability":"mutable","name":"result","nameLocation":"1787:6:12","nodeType":"VariableDeclaration","scope":1780,"src":"1779:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1667,"name":"uint256","nodeType":"ElementaryTypeName","src":"1779:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1778:16:12"},"scope":2432,"src":"1667:3925:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1823,"nodeType":"Block","src":"5872:189:12","statements":[{"assignments":[1796],"declarations":[{"constant":false,"id":1796,"mutability":"mutable","name":"result","nameLocation":"5890:6:12","nodeType":"VariableDeclaration","scope":1823,"src":"5882:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1795,"name":"uint256","nodeType":"ElementaryTypeName","src":"5882:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1802,"initialValue":{"arguments":[{"id":1798,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"5906:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1799,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"5909:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1800,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"5912:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1797,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[1780,1824],"referencedDeclaration":1780,"src":"5899:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5899:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5882:42:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1803,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1790,"src":"5938:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1804,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"5950:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1574_$","typeString":"type(enum Math.Rounding)"}},"id":1805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"5950:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"src":"5938:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1808,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"5972:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1809,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"5975:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1810,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"5978:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1807,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5965:6:12","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5965:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5993:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5965:29:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5938:56:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1820,"nodeType":"IfStatement","src":"5934:98:12","trueBody":{"id":1819,"nodeType":"Block","src":"5996:36:12","statements":[{"expression":{"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1815,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"6010:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6020:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6010:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1818,"nodeType":"ExpressionStatement","src":"6010:11:12"}]}},{"expression":{"id":1821,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"6048:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1794,"id":1822,"nodeType":"Return","src":"6041:13:12"}]},"documentation":{"id":1781,"nodeType":"StructuredDocumentation","src":"5598:121:12","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5733:6:12","nodeType":"FunctionDefinition","parameters":{"id":1791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1783,"mutability":"mutable","name":"x","nameLocation":"5757:1:12","nodeType":"VariableDeclaration","scope":1824,"src":"5749:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1782,"name":"uint256","nodeType":"ElementaryTypeName","src":"5749:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1785,"mutability":"mutable","name":"y","nameLocation":"5776:1:12","nodeType":"VariableDeclaration","scope":1824,"src":"5768:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1784,"name":"uint256","nodeType":"ElementaryTypeName","src":"5768:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1787,"mutability":"mutable","name":"denominator","nameLocation":"5795:11:12","nodeType":"VariableDeclaration","scope":1824,"src":"5787:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1786,"name":"uint256","nodeType":"ElementaryTypeName","src":"5787:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1790,"mutability":"mutable","name":"rounding","nameLocation":"5825:8:12","nodeType":"VariableDeclaration","scope":1824,"src":"5816:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"typeName":{"id":1789,"nodeType":"UserDefinedTypeName","pathNode":{"id":1788,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":1574,"src":"5816:8:12"},"referencedDeclaration":1574,"src":"5816:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"5739:100:12"},"returnParameters":{"id":1794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1824,"src":"5863:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1792,"name":"uint256","nodeType":"ElementaryTypeName","src":"5863:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5862:9:12"},"scope":2432,"src":"5724:337:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1935,"nodeType":"Block","src":"6337:1585:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1832,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"6351:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6356:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6351:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1838,"nodeType":"IfStatement","src":"6347:45:12","trueBody":{"id":1837,"nodeType":"Block","src":"6359:33:12","statements":[{"expression":{"hexValue":"30","id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6380:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1831,"id":1836,"nodeType":"Return","src":"6373:8:12"}]}},{"assignments":[1840],"declarations":[{"constant":false,"id":1840,"mutability":"mutable","name":"result","nameLocation":"7079:6:12","nodeType":"VariableDeclaration","scope":1935,"src":"7071:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1839,"name":"uint256","nodeType":"ElementaryTypeName","src":"7071:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1849,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7088:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1843,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7099:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1842,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2104,2140],"referencedDeclaration":2104,"src":"7094:4:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7094:7:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7105:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7094:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1847,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7093:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7088:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7071:36:12"},{"id":1934,"nodeType":"UncheckedBlock","src":"7508:408:12","statements":[{"expression":{"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7532:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1851,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7542:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1852,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7551:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1853,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7555:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7551:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7542:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1856,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7541:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7566:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7541:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7532:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1860,"nodeType":"ExpressionStatement","src":"7532:35:12"},{"expression":{"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1861,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7581:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1862,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7591:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1863,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7600:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1864,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7604:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7600:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7591:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1867,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7590:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7590:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7581:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1871,"nodeType":"ExpressionStatement","src":"7581:35:12"},{"expression":{"id":1881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1872,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7630:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1873,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7640:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1874,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7649:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1875,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7653:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7649:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7639:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7664:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7639:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7630:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1882,"nodeType":"ExpressionStatement","src":"7630:35:12"},{"expression":{"id":1892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1883,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7679:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1884,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7689:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1885,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7698:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7702:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7698:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7689:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1889,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7688:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7713:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7688:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7679:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1893,"nodeType":"ExpressionStatement","src":"7679:35:12"},{"expression":{"id":1903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1894,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7728:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1895,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7738:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1896,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7747:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1897,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7751:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7747:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7738:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7737:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7762:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7737:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7728:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1904,"nodeType":"ExpressionStatement","src":"7728:35:12"},{"expression":{"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1905,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7777:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1906,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7787:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1907,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7796:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1908,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7800:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7796:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7787:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7786:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7811:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7786:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7777:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1915,"nodeType":"ExpressionStatement","src":"7777:35:12"},{"expression":{"id":1925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1916,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7826:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1917,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7836:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1918,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7845:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7849:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7845:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7836:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1922,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7835:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7860:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7835:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7826:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1926,"nodeType":"ExpressionStatement","src":"7826:35:12"},{"expression":{"arguments":[{"id":1928,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7886:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1929,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7894:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1930,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7898:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7894:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1927,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"7882:3:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7882:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1831,"id":1933,"nodeType":"Return","src":"7875:30:12"}]}]},"documentation":{"id":1825,"nodeType":"StructuredDocumentation","src":"6067:208:12","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":1936,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6289:4:12","nodeType":"FunctionDefinition","parameters":{"id":1828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1827,"mutability":"mutable","name":"a","nameLocation":"6302:1:12","nodeType":"VariableDeclaration","scope":1936,"src":"6294:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1826,"name":"uint256","nodeType":"ElementaryTypeName","src":"6294:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6293:11:12"},"returnParameters":{"id":1831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1936,"src":"6328:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1829,"name":"uint256","nodeType":"ElementaryTypeName","src":"6328:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6327:9:12"},"scope":2432,"src":"6280:1642:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1971,"nodeType":"Block","src":"8098:161:12","statements":[{"id":1970,"nodeType":"UncheckedBlock","src":"8108:145:12","statements":[{"assignments":[1948],"declarations":[{"constant":false,"id":1948,"mutability":"mutable","name":"result","nameLocation":"8140:6:12","nodeType":"VariableDeclaration","scope":1970,"src":"8132:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1947,"name":"uint256","nodeType":"ElementaryTypeName","src":"8132:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1952,"initialValue":{"arguments":[{"id":1950,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"8154:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1949,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[1936,1972],"referencedDeclaration":1936,"src":"8149:4:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8149:7:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8132:24:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1953,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"8177:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1954,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8187:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1955,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"8199:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1574_$","typeString":"type(enum Math.Rounding)"}},"id":1956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"8199:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"src":"8187:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1958,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"8214:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1959,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"8223:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1961,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"8232:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8187:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":1965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8240:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":1966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8187:54:12","trueExpression":{"hexValue":"31","id":1964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8236:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1967,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8186:56:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8177:65:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1946,"id":1969,"nodeType":"Return","src":"8170:72:12"}]}]},"documentation":{"id":1937,"nodeType":"StructuredDocumentation","src":"7928:89:12","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":1972,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8031:4:12","nodeType":"FunctionDefinition","parameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1939,"mutability":"mutable","name":"a","nameLocation":"8044:1:12","nodeType":"VariableDeclaration","scope":1972,"src":"8036:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1938,"name":"uint256","nodeType":"ElementaryTypeName","src":"8036:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1942,"mutability":"mutable","name":"rounding","nameLocation":"8056:8:12","nodeType":"VariableDeclaration","scope":1972,"src":"8047:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"typeName":{"id":1941,"nodeType":"UserDefinedTypeName","pathNode":{"id":1940,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":1574,"src":"8047:8:12"},"referencedDeclaration":1574,"src":"8047:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8035:30:12"},"returnParameters":{"id":1946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1972,"src":"8089:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1944,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8088:9:12"},"scope":2432,"src":"8022:237:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2103,"nodeType":"Block","src":"8444:922:12","statements":[{"assignments":[1981],"declarations":[{"constant":false,"id":1981,"mutability":"mutable","name":"result","nameLocation":"8462:6:12","nodeType":"VariableDeclaration","scope":2103,"src":"8454:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1980,"name":"uint256","nodeType":"ElementaryTypeName","src":"8454:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1983,"initialValue":{"hexValue":"30","id":1982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8454:18:12"},{"id":2100,"nodeType":"UncheckedBlock","src":"8482:855:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8510:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8519:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8510:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8525:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8510:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1998,"nodeType":"IfStatement","src":"8506:99:12","trueBody":{"id":1997,"nodeType":"Block","src":"8528:77:12","statements":[{"expression":{"id":1991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8546:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":1990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8556:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8546:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1992,"nodeType":"ExpressionStatement","src":"8546:13:12"},{"expression":{"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1993,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"8577:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8587:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8577:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1996,"nodeType":"ExpressionStatement","src":"8577:13:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1999,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8622:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8631:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8622:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8636:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8622:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2013,"nodeType":"IfStatement","src":"8618:96:12","trueBody":{"id":2012,"nodeType":"Block","src":"8639:75:12","statements":[{"expression":{"id":2006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8657:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8667:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8657:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2007,"nodeType":"ExpressionStatement","src":"8657:12:12"},{"expression":{"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2008,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"8687:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8697:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8687:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2011,"nodeType":"ExpressionStatement","src":"8687:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8731:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8740:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8731:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8745:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8731:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2028,"nodeType":"IfStatement","src":"8727:96:12","trueBody":{"id":2027,"nodeType":"Block","src":"8748:75:12","statements":[{"expression":{"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8766:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8776:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8766:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2022,"nodeType":"ExpressionStatement","src":"8766:12:12"},{"expression":{"id":2025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2023,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"8796:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8796:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2026,"nodeType":"ExpressionStatement","src":"8796:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8840:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8849:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8840:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8854:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8840:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2043,"nodeType":"IfStatement","src":"8836:96:12","trueBody":{"id":2042,"nodeType":"Block","src":"8857:75:12","statements":[{"expression":{"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8875:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8885:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8875:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2037,"nodeType":"ExpressionStatement","src":"8875:12:12"},{"expression":{"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2038,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"8905:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8905:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2041,"nodeType":"ExpressionStatement","src":"8905:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2044,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8949:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8958:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8949:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8962:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8949:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2058,"nodeType":"IfStatement","src":"8945:93:12","trueBody":{"id":2057,"nodeType":"Block","src":"8965:73:12","statements":[{"expression":{"id":2051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2049,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8983:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":2050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8993:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8983:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2052,"nodeType":"ExpressionStatement","src":"8983:11:12"},{"expression":{"id":2055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2053,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9012:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9022:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9012:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2056,"nodeType":"ExpressionStatement","src":"9012:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9055:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":2060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9064:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9055:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9068:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9055:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2073,"nodeType":"IfStatement","src":"9051:93:12","trueBody":{"id":2072,"nodeType":"Block","src":"9071:73:12","statements":[{"expression":{"id":2066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2064,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9089:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9089:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2067,"nodeType":"ExpressionStatement","src":"9089:11:12"},{"expression":{"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2068,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9118:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9128:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9118:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2071,"nodeType":"ExpressionStatement","src":"9118:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9161:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9170:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9161:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9174:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9161:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2088,"nodeType":"IfStatement","src":"9157:93:12","trueBody":{"id":2087,"nodeType":"Block","src":"9177:73:12","statements":[{"expression":{"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2079,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9195:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":2080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9205:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9195:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2082,"nodeType":"ExpressionStatement","src":"9195:11:12"},{"expression":{"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2083,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9224:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9234:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9224:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2086,"nodeType":"ExpressionStatement","src":"9224:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9267:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9276:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9267:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9280:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9267:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2099,"nodeType":"IfStatement","src":"9263:64:12","trueBody":{"id":2098,"nodeType":"Block","src":"9283:44:12","statements":[{"expression":{"id":2096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2094,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9301:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9301:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2097,"nodeType":"ExpressionStatement","src":"9301:11:12"}]}}]},{"expression":{"id":2101,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9353:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1979,"id":2102,"nodeType":"Return","src":"9346:13:12"}]},"documentation":{"id":1973,"nodeType":"StructuredDocumentation","src":"8265:113:12","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":2104,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8392:4:12","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1975,"mutability":"mutable","name":"value","nameLocation":"8405:5:12","nodeType":"VariableDeclaration","scope":2104,"src":"8397:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1974,"name":"uint256","nodeType":"ElementaryTypeName","src":"8397:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8396:15:12"},"returnParameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2104,"src":"8435:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1977,"name":"uint256","nodeType":"ElementaryTypeName","src":"8435:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8434:9:12"},"scope":2432,"src":"8383:983:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2139,"nodeType":"Block","src":"9599:165:12","statements":[{"id":2138,"nodeType":"UncheckedBlock","src":"9609:149:12","statements":[{"assignments":[2116],"declarations":[{"constant":false,"id":2116,"mutability":"mutable","name":"result","nameLocation":"9641:6:12","nodeType":"VariableDeclaration","scope":2138,"src":"9633:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2120,"initialValue":{"arguments":[{"id":2118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"9655:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2117,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2104,2140],"referencedDeclaration":2104,"src":"9650:4:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9650:11:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9633:28:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2121,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"9682:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2122,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"9692:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2123,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"9704:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1574_$","typeString":"type(enum Math.Rounding)"}},"id":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"9704:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"src":"9692:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9719:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2127,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"9724:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"9733:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9692:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9745:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9692:54:12","trueExpression":{"hexValue":"31","id":2132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9741:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9691:56:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9682:65:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2114,"id":2137,"nodeType":"Return","src":"9675:72:12"}]}]},"documentation":{"id":2105,"nodeType":"StructuredDocumentation","src":"9372:142:12","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2140,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9528:4:12","nodeType":"FunctionDefinition","parameters":{"id":2111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2107,"mutability":"mutable","name":"value","nameLocation":"9541:5:12","nodeType":"VariableDeclaration","scope":2140,"src":"9533:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2106,"name":"uint256","nodeType":"ElementaryTypeName","src":"9533:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2110,"mutability":"mutable","name":"rounding","nameLocation":"9557:8:12","nodeType":"VariableDeclaration","scope":2140,"src":"9548:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"typeName":{"id":2109,"nodeType":"UserDefinedTypeName","pathNode":{"id":2108,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":1574,"src":"9548:8:12"},"referencedDeclaration":1574,"src":"9548:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9532:34:12"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2140,"src":"9590:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9590:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9589:9:12"},"scope":2432,"src":"9519:245:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2268,"nodeType":"Block","src":"9951:828:12","statements":[{"assignments":[2149],"declarations":[{"constant":false,"id":2149,"mutability":"mutable","name":"result","nameLocation":"9969:6:12","nodeType":"VariableDeclaration","scope":2268,"src":"9961:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2148,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2151,"initialValue":{"hexValue":"30","id":2150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9961:18:12"},{"id":2265,"nodeType":"UncheckedBlock","src":"9989:761:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2152,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10017:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":2155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10026:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10030:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10026:6:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10017:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2168,"nodeType":"IfStatement","src":"10013:99:12","trueBody":{"id":2167,"nodeType":"Block","src":"10034:78:12","statements":[{"expression":{"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10052:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10065:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10061:6:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10052:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2162,"nodeType":"ExpressionStatement","src":"10052:15:12"},{"expression":{"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2163,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10085:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10095:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10085:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2166,"nodeType":"ExpressionStatement","src":"10085:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2169,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10129:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":2172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10138:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10142:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10138:6:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10129:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2185,"nodeType":"IfStatement","src":"10125:99:12","trueBody":{"id":2184,"nodeType":"Block","src":"10146:78:12","statements":[{"expression":{"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10164:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":2177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10173:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10177:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10173:6:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10164:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2179,"nodeType":"ExpressionStatement","src":"10164:15:12"},{"expression":{"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2180,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10197:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10207:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10197:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2183,"nodeType":"ExpressionStatement","src":"10197:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10241:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10254:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10250:6:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10241:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2202,"nodeType":"IfStatement","src":"10237:99:12","trueBody":{"id":2201,"nodeType":"Block","src":"10258:78:12","statements":[{"expression":{"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10276:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10285:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10289:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10285:6:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10276:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2196,"nodeType":"ExpressionStatement","src":"10276:15:12"},{"expression":{"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2197,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10309:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10309:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2200,"nodeType":"ExpressionStatement","src":"10309:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10353:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10362:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10366:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10362:5:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10353:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2219,"nodeType":"IfStatement","src":"10349:96:12","trueBody":{"id":2218,"nodeType":"Block","src":"10369:76:12","statements":[{"expression":{"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10387:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10396:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10400:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10396:5:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10387:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2213,"nodeType":"ExpressionStatement","src":"10387:14:12"},{"expression":{"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2214,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10419:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10419:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2217,"nodeType":"ExpressionStatement","src":"10419:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2220,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10462:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10471:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10475:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10471:5:12","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10462:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2236,"nodeType":"IfStatement","src":"10458:96:12","trueBody":{"id":2235,"nodeType":"Block","src":"10478:76:12","statements":[{"expression":{"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2225,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10496:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10505:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10509:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10505:5:12","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10496:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2230,"nodeType":"ExpressionStatement","src":"10496:14:12"},{"expression":{"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2231,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10528:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10538:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10528:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2234,"nodeType":"ExpressionStatement","src":"10528:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10571:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10580:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10584:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10580:5:12","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10571:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2253,"nodeType":"IfStatement","src":"10567:96:12","trueBody":{"id":2252,"nodeType":"Block","src":"10587:76:12","statements":[{"expression":{"id":2246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10605:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10614:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10618:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10614:5:12","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10605:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2247,"nodeType":"ExpressionStatement","src":"10605:14:12"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2248,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10637:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10647:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10637:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2251,"nodeType":"ExpressionStatement","src":"10637:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2254,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10680:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":2257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10689:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":2256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10693:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10689:5:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10680:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2264,"nodeType":"IfStatement","src":"10676:64:12","trueBody":{"id":2263,"nodeType":"Block","src":"10696:44:12","statements":[{"expression":{"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2259,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10714:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10724:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10714:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2262,"nodeType":"ExpressionStatement","src":"10714:11:12"}]}}]},{"expression":{"id":2266,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10766:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2147,"id":2267,"nodeType":"Return","src":"10759:13:12"}]},"documentation":{"id":2141,"nodeType":"StructuredDocumentation","src":"9770:114:12","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":2269,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"9898:5:12","nodeType":"FunctionDefinition","parameters":{"id":2144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"value","nameLocation":"9912:5:12","nodeType":"VariableDeclaration","scope":2269,"src":"9904:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2142,"name":"uint256","nodeType":"ElementaryTypeName","src":"9904:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9903:15:12"},"returnParameters":{"id":2147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2269,"src":"9942:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2145,"name":"uint256","nodeType":"ElementaryTypeName","src":"9942:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9941:9:12"},"scope":2432,"src":"9889:890:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2304,"nodeType":"Block","src":"11014:165:12","statements":[{"id":2303,"nodeType":"UncheckedBlock","src":"11024:149:12","statements":[{"assignments":[2281],"declarations":[{"constant":false,"id":2281,"mutability":"mutable","name":"result","nameLocation":"11056:6:12","nodeType":"VariableDeclaration","scope":2303,"src":"11048:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2280,"name":"uint256","nodeType":"ElementaryTypeName","src":"11048:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2285,"initialValue":{"arguments":[{"id":2283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"11071:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2282,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[2269,2305],"referencedDeclaration":2269,"src":"11065:5:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11065:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11048:29:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2286,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2281,"src":"11098:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2287,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"11108:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2288,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"11120:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1574_$","typeString":"type(enum Math.Rounding)"}},"id":2289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"11120:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"src":"11108:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11135:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":2292,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2281,"src":"11139:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2294,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"11148:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:18:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11108:45:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11160:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11108:53:12","trueExpression":{"hexValue":"31","id":2297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11156:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2300,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11107:55:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11098:64:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2279,"id":2302,"nodeType":"Return","src":"11091:71:12"}]}]},"documentation":{"id":2270,"nodeType":"StructuredDocumentation","src":"10785:143:12","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2305,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10942:5:12","nodeType":"FunctionDefinition","parameters":{"id":2276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2272,"mutability":"mutable","name":"value","nameLocation":"10956:5:12","nodeType":"VariableDeclaration","scope":2305,"src":"10948:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2271,"name":"uint256","nodeType":"ElementaryTypeName","src":"10948:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2275,"mutability":"mutable","name":"rounding","nameLocation":"10972:8:12","nodeType":"VariableDeclaration","scope":2305,"src":"10963:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"typeName":{"id":2274,"nodeType":"UserDefinedTypeName","pathNode":{"id":2273,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":1574,"src":"10963:8:12"},"referencedDeclaration":1574,"src":"10963:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10947:34:12"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2305,"src":"11005:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2277,"name":"uint256","nodeType":"ElementaryTypeName","src":"11005:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11004:9:12"},"scope":2432,"src":"10933:246:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2391,"nodeType":"Block","src":"11493:600:12","statements":[{"assignments":[2314],"declarations":[{"constant":false,"id":2314,"mutability":"mutable","name":"result","nameLocation":"11511:6:12","nodeType":"VariableDeclaration","scope":2391,"src":"11503:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2313,"name":"uint256","nodeType":"ElementaryTypeName","src":"11503:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2316,"initialValue":{"hexValue":"30","id":2315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11520:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11503:18:12"},{"id":2388,"nodeType":"UncheckedBlock","src":"11531:533:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11559:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11568:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11559:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11574:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11559:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2331,"nodeType":"IfStatement","src":"11555:98:12","trueBody":{"id":2330,"nodeType":"Block","src":"11577:76:12","statements":[{"expression":{"id":2324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2322,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11595:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11605:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11595:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2325,"nodeType":"ExpressionStatement","src":"11595:13:12"},{"expression":{"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"11626:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11636:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11626:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2329,"nodeType":"ExpressionStatement","src":"11626:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2332,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11670:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11679:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11670:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11684:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11670:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2346,"nodeType":"IfStatement","src":"11666:95:12","trueBody":{"id":2345,"nodeType":"Block","src":"11687:74:12","statements":[{"expression":{"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2337,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11705:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11705:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2340,"nodeType":"ExpressionStatement","src":"11705:12:12"},{"expression":{"id":2343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2341,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"11735:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11745:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11735:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2344,"nodeType":"ExpressionStatement","src":"11735:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2347,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11778:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11787:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11778:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11792:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11778:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2361,"nodeType":"IfStatement","src":"11774:95:12","trueBody":{"id":2360,"nodeType":"Block","src":"11795:74:12","statements":[{"expression":{"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11813:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11823:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11813:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2355,"nodeType":"ExpressionStatement","src":"11813:12:12"},{"expression":{"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2356,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"11843:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11853:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11843:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2359,"nodeType":"ExpressionStatement","src":"11843:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11886:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11895:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11886:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11900:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11886:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2376,"nodeType":"IfStatement","src":"11882:95:12","trueBody":{"id":2375,"nodeType":"Block","src":"11903:74:12","statements":[{"expression":{"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11921:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11931:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11921:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2370,"nodeType":"ExpressionStatement","src":"11921:12:12"},{"expression":{"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2371,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"11951:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11961:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11951:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2374,"nodeType":"ExpressionStatement","src":"11951:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11994:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12003:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11994:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12007:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11994:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2387,"nodeType":"IfStatement","src":"11990:64:12","trueBody":{"id":2386,"nodeType":"Block","src":"12010:44:12","statements":[{"expression":{"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12028:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12028:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2385,"nodeType":"ExpressionStatement","src":"12028:11:12"}]}}]},{"expression":{"id":2389,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12080:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2312,"id":2390,"nodeType":"Return","src":"12073:13:12"}]},"documentation":{"id":2306,"nodeType":"StructuredDocumentation","src":"11185:240:12","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":2392,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11439:6:12","nodeType":"FunctionDefinition","parameters":{"id":2309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2308,"mutability":"mutable","name":"value","nameLocation":"11454:5:12","nodeType":"VariableDeclaration","scope":2392,"src":"11446:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2307,"name":"uint256","nodeType":"ElementaryTypeName","src":"11446:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11445:15:12"},"returnParameters":{"id":2312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2392,"src":"11484:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2310,"name":"uint256","nodeType":"ElementaryTypeName","src":"11484:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11483:9:12"},"scope":2432,"src":"11430:663:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2430,"nodeType":"Block","src":"12329:173:12","statements":[{"id":2429,"nodeType":"UncheckedBlock","src":"12339:157:12","statements":[{"assignments":[2404],"declarations":[{"constant":false,"id":2404,"mutability":"mutable","name":"result","nameLocation":"12371:6:12","nodeType":"VariableDeclaration","scope":2429,"src":"12363:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2403,"name":"uint256","nodeType":"ElementaryTypeName","src":"12363:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2408,"initialValue":{"arguments":[{"id":2406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2395,"src":"12387:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2405,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[2392,2431],"referencedDeclaration":2392,"src":"12380:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12380:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12363:30:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"12414:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"id":2413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2410,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"12424:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2411,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"12436:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1574_$","typeString":"type(enum Math.Rounding)"}},"id":2412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"12436:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"src":"12424:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2415,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"12457:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":2416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12466:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12457:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12456:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2395,"src":"12471:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:25:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12424:52:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12483:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12424:60:12","trueExpression":{"hexValue":"31","id":2423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12479:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12423:62:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12414:71:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2402,"id":2428,"nodeType":"Return","src":"12407:78:12"}]}]},"documentation":{"id":2393,"nodeType":"StructuredDocumentation","src":"12099:143:12","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2431,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12256:6:12","nodeType":"FunctionDefinition","parameters":{"id":2399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2395,"mutability":"mutable","name":"value","nameLocation":"12271:5:12","nodeType":"VariableDeclaration","scope":2431,"src":"12263:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2394,"name":"uint256","nodeType":"ElementaryTypeName","src":"12263:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2398,"mutability":"mutable","name":"rounding","nameLocation":"12287:8:12","nodeType":"VariableDeclaration","scope":2431,"src":"12278:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"},"typeName":{"id":2397,"nodeType":"UserDefinedTypeName","pathNode":{"id":2396,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":1574,"src":"12278:8:12"},"referencedDeclaration":1574,"src":"12278:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1574","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12262:34:12"},"returnParameters":{"id":2402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2431,"src":"12320:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2400,"name":"uint256","nodeType":"ElementaryTypeName","src":"12320:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12319:9:12"},"scope":2432,"src":"12247:255:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2433,"src":"202:12302:12","usedErrors":[]}],"src":"103:12402:12"},"id":12},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[3045]},"id":3046,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2434,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"205:23:13"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":2435,"nodeType":"StructuredDocumentation","src":"230:1090:13","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":3045,"linearizedBaseContracts":[3045],"name":"EnumerableSet","nameLocation":"1329:13:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":2443,"members":[{"constant":false,"id":2438,"mutability":"mutable","name":"_values","nameLocation":"1853:7:13","nodeType":"VariableDeclaration","scope":2443,"src":"1843:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1843:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2437,"nodeType":"ArrayTypeName","src":"1843:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2442,"mutability":"mutable","name":"_indexes","nameLocation":"2021:8:13","nodeType":"VariableDeclaration","scope":2443,"src":"1993:36:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":2441,"keyType":{"id":2439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2001:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1993:27:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":2440,"name":"uint256","nodeType":"ElementaryTypeName","src":"2012:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1796:3:13","nodeType":"StructDefinition","scope":3045,"src":"1789:247:13","visibility":"public"},{"body":{"id":2484,"nodeType":"Block","src":"2275:335:13","statements":[{"condition":{"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2289:22:13","subExpression":{"arguments":[{"id":2455,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"2300:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":2456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"2305:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2454,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"2290:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":2457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:21:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2482,"nodeType":"Block","src":"2567:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":2480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2588:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":2453,"id":2481,"nodeType":"Return","src":"2581:12:13"}]},"id":2483,"nodeType":"IfStatement","src":"2285:319:13","trueBody":{"id":2479,"nodeType":"Block","src":"2313:248:13","statements":[{"expression":{"arguments":[{"id":2464,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"2344:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":2459,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"2327:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"2327:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2327:16:13","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2327:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2466,"nodeType":"ExpressionStatement","src":"2327:23:13"},{"expression":{"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2467,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"2485:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":2442,"src":"2485:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2471,"indexExpression":{"id":2469,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"2498:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2485:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":2472,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"2507:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"2507:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2507:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2485:40:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2476,"nodeType":"ExpressionStatement","src":"2485:40:13"},{"expression":{"hexValue":"74727565","id":2477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2546:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2453,"id":2478,"nodeType":"Return","src":"2539:11:13"}]}}]},"documentation":{"id":2444,"nodeType":"StructuredDocumentation","src":"2042:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":2485,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2215:4:13","nodeType":"FunctionDefinition","parameters":{"id":2450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2447,"mutability":"mutable","name":"set","nameLocation":"2232:3:13","nodeType":"VariableDeclaration","scope":2485,"src":"2220:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2446,"nodeType":"UserDefinedTypeName","pathNode":{"id":2445,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"2220:3:13"},"referencedDeclaration":2443,"src":"2220:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":2449,"mutability":"mutable","name":"value","nameLocation":"2245:5:13","nodeType":"VariableDeclaration","scope":2485,"src":"2237:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2237:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2219:32:13"},"returnParameters":{"id":2453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2485,"src":"2269:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2451,"name":"bool","nodeType":"ElementaryTypeName","src":"2269:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2268:6:13"},"scope":3045,"src":"2206:404:13","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2568,"nodeType":"Block","src":"2850:1316:13","statements":[{"assignments":[2497],"declarations":[{"constant":false,"id":2497,"mutability":"mutable","name":"valueIndex","nameLocation":"2968:10:13","nodeType":"VariableDeclaration","scope":2568,"src":"2960:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2496,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2502,"initialValue":{"baseExpression":{"expression":{"id":2498,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"2981:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":2442,"src":"2981:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2501,"indexExpression":{"id":2500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"2994:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2981:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2960:40:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2503,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"3015:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3029:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3015:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2566,"nodeType":"Block","src":"4123:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":2564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4144:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":2495,"id":2565,"nodeType":"Return","src":"4137:12:13"}]},"id":2567,"nodeType":"IfStatement","src":"3011:1149:13","trueBody":{"id":2563,"nodeType":"Block","src":"3032:1085:13","statements":[{"assignments":[2507],"declarations":[{"constant":false,"id":2507,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3392:13:13","nodeType":"VariableDeclaration","scope":2563,"src":"3384:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2506,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2511,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2508,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"3408:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3421:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3408:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3384:38:13"},{"assignments":[2513],"declarations":[{"constant":false,"id":2513,"mutability":"mutable","name":"lastIndex","nameLocation":"3444:9:13","nodeType":"VariableDeclaration","scope":2563,"src":"3436:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2512,"name":"uint256","nodeType":"ElementaryTypeName","src":"3436:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2519,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2514,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3456:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"3456:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3456:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3477:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3456:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3436:42:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2520,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"3497:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2521,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2507,"src":"3510:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3497:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2547,"nodeType":"IfStatement","src":"3493:398:13","trueBody":{"id":2546,"nodeType":"Block","src":"3525:366:13","statements":[{"assignments":[2524],"declarations":[{"constant":false,"id":2524,"mutability":"mutable","name":"lastValue","nameLocation":"3551:9:13","nodeType":"VariableDeclaration","scope":2546,"src":"3543:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3543:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2529,"initialValue":{"baseExpression":{"expression":{"id":2525,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3563:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"3563:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2528,"indexExpression":{"id":2527,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"3575:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3563:22:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3543:42:13"},{"expression":{"id":2536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2530,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3685:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"3685:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2534,"indexExpression":{"id":2532,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2507,"src":"3697:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3685:26:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2535,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2524,"src":"3714:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3685:38:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2537,"nodeType":"ExpressionStatement","src":"3685:38:13"},{"expression":{"id":2544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2538,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3797:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":2442,"src":"3797:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2542,"indexExpression":{"id":2540,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2524,"src":"3810:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3797:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2543,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"3823:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3797:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2545,"nodeType":"ExpressionStatement","src":"3797:36:13"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":2548,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3969:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"3969:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"3969:15:13","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":2553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3969:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2554,"nodeType":"ExpressionStatement","src":"3969:17:13"},{"expression":{"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4054:26:13","subExpression":{"baseExpression":{"expression":{"id":2555,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"4061:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":2442,"src":"4061:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2558,"indexExpression":{"id":2557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"4074:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4061:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2560,"nodeType":"ExpressionStatement","src":"4054:26:13"},{"expression":{"hexValue":"74727565","id":2561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4102:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2495,"id":2562,"nodeType":"Return","src":"4095:11:13"}]}}]},"documentation":{"id":2486,"nodeType":"StructuredDocumentation","src":"2616:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":2569,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2787:7:13","nodeType":"FunctionDefinition","parameters":{"id":2492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2489,"mutability":"mutable","name":"set","nameLocation":"2807:3:13","nodeType":"VariableDeclaration","scope":2569,"src":"2795:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2488,"nodeType":"UserDefinedTypeName","pathNode":{"id":2487,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"2795:3:13"},"referencedDeclaration":2443,"src":"2795:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":2491,"mutability":"mutable","name":"value","nameLocation":"2820:5:13","nodeType":"VariableDeclaration","scope":2569,"src":"2812:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2812:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2794:32:13"},"returnParameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2569,"src":"2844:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2493,"name":"bool","nodeType":"ElementaryTypeName","src":"2844:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2843:6:13"},"scope":3045,"src":"2778:1388:13","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2587,"nodeType":"Block","src":"4326:48:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":2580,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"4343:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":2442,"src":"4343:12:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2583,"indexExpression":{"id":2582,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2575,"src":"4356:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4343:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4366:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4343:24:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2579,"id":2586,"nodeType":"Return","src":"4336:31:13"}]},"documentation":{"id":2570,"nodeType":"StructuredDocumentation","src":"4172:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":2588,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4256:9:13","nodeType":"FunctionDefinition","parameters":{"id":2576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2573,"mutability":"mutable","name":"set","nameLocation":"4278:3:13","nodeType":"VariableDeclaration","scope":2588,"src":"4266:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2572,"nodeType":"UserDefinedTypeName","pathNode":{"id":2571,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"4266:3:13"},"referencedDeclaration":2443,"src":"4266:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":2575,"mutability":"mutable","name":"value","nameLocation":"4291:5:13","nodeType":"VariableDeclaration","scope":2588,"src":"4283:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4283:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4265:32:13"},"returnParameters":{"id":2579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2588,"src":"4320:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2577,"name":"bool","nodeType":"ElementaryTypeName","src":"4320:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4319:6:13"},"scope":3045,"src":"4247:127:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":2601,"nodeType":"Block","src":"4520:42:13","statements":[{"expression":{"expression":{"expression":{"id":2597,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"4537:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"4537:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4537:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2596,"id":2600,"nodeType":"Return","src":"4530:25:13"}]},"documentation":{"id":2589,"nodeType":"StructuredDocumentation","src":"4380:70:13","text":" @dev Returns the number of values on the set. O(1)."},"id":2602,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4464:7:13","nodeType":"FunctionDefinition","parameters":{"id":2593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2592,"mutability":"mutable","name":"set","nameLocation":"4484:3:13","nodeType":"VariableDeclaration","scope":2602,"src":"4472:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2591,"nodeType":"UserDefinedTypeName","pathNode":{"id":2590,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"4472:3:13"},"referencedDeclaration":2443,"src":"4472:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4471:17:13"},"returnParameters":{"id":2596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2602,"src":"4511:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2594,"name":"uint256","nodeType":"ElementaryTypeName","src":"4511:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4510:9:13"},"scope":3045,"src":"4455:107:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":2618,"nodeType":"Block","src":"4980:42:13","statements":[{"expression":{"baseExpression":{"expression":{"id":2613,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2606,"src":"4997:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"4997:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2616,"indexExpression":{"id":2615,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"5009:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4997:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2612,"id":2617,"nodeType":"Return","src":"4990:25:13"}]},"documentation":{"id":2603,"nodeType":"StructuredDocumentation","src":"4568:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":2619,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4913:3:13","nodeType":"FunctionDefinition","parameters":{"id":2609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2606,"mutability":"mutable","name":"set","nameLocation":"4929:3:13","nodeType":"VariableDeclaration","scope":2619,"src":"4917:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2605,"nodeType":"UserDefinedTypeName","pathNode":{"id":2604,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"4917:3:13"},"referencedDeclaration":2443,"src":"4917:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":2608,"mutability":"mutable","name":"index","nameLocation":"4942:5:13","nodeType":"VariableDeclaration","scope":2619,"src":"4934:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"4934:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4916:32:13"},"returnParameters":{"id":2612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2619,"src":"4971:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4971:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4970:9:13"},"scope":3045,"src":"4904:118:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":2632,"nodeType":"Block","src":"5636:35:13","statements":[{"expression":{"expression":{"id":2629,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2623,"src":"5653:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":2630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":2438,"src":"5653:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":2628,"id":2631,"nodeType":"Return","src":"5646:18:13"}]},"documentation":{"id":2620,"nodeType":"StructuredDocumentation","src":"5028:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":2633,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5571:7:13","nodeType":"FunctionDefinition","parameters":{"id":2624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"set","nameLocation":"5591:3:13","nodeType":"VariableDeclaration","scope":2633,"src":"5579:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2622,"nodeType":"UserDefinedTypeName","pathNode":{"id":2621,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"5579:3:13"},"referencedDeclaration":2443,"src":"5579:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5578:17:13"},"returnParameters":{"id":2628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2633,"src":"5618:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5618:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2626,"nodeType":"ArrayTypeName","src":"5618:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5617:18:13"},"scope":3045,"src":"5562:109:13","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":2637,"members":[{"constant":false,"id":2636,"mutability":"mutable","name":"_inner","nameLocation":"5728:6:13","nodeType":"VariableDeclaration","scope":2637,"src":"5724:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2635,"nodeType":"UserDefinedTypeName","pathNode":{"id":2634,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"5724:3:13"},"referencedDeclaration":2443,"src":"5724:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5703:10:13","nodeType":"StructDefinition","scope":3045,"src":"5696:45:13","visibility":"public"},{"body":{"id":2654,"nodeType":"Block","src":"5987:47:13","statements":[{"expression":{"arguments":[{"expression":{"id":2649,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"6009:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":2650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2636,"src":"6009:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":2651,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2643,"src":"6021:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2648,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"6004:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6004:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2647,"id":2653,"nodeType":"Return","src":"5997:30:13"}]},"documentation":{"id":2638,"nodeType":"StructuredDocumentation","src":"5747:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":2655,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5920:3:13","nodeType":"FunctionDefinition","parameters":{"id":2644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2641,"mutability":"mutable","name":"set","nameLocation":"5943:3:13","nodeType":"VariableDeclaration","scope":2655,"src":"5924:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":2640,"nodeType":"UserDefinedTypeName","pathNode":{"id":2639,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":2637,"src":"5924:10:13"},"referencedDeclaration":2637,"src":"5924:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":2643,"mutability":"mutable","name":"value","nameLocation":"5956:5:13","nodeType":"VariableDeclaration","scope":2655,"src":"5948:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5948:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5923:39:13"},"returnParameters":{"id":2647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2655,"src":"5981:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2645,"name":"bool","nodeType":"ElementaryTypeName","src":"5981:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5980:6:13"},"scope":3045,"src":"5911:123:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2672,"nodeType":"Block","src":"6281:50:13","statements":[{"expression":{"arguments":[{"expression":{"id":2667,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2659,"src":"6306:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":2668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2636,"src":"6306:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":2669,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"6318:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2666,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"6298:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":2670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6298:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2665,"id":2671,"nodeType":"Return","src":"6291:33:13"}]},"documentation":{"id":2656,"nodeType":"StructuredDocumentation","src":"6040:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":2673,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6211:6:13","nodeType":"FunctionDefinition","parameters":{"id":2662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2659,"mutability":"mutable","name":"set","nameLocation":"6237:3:13","nodeType":"VariableDeclaration","scope":2673,"src":"6218:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":2658,"nodeType":"UserDefinedTypeName","pathNode":{"id":2657,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":2637,"src":"6218:10:13"},"referencedDeclaration":2637,"src":"6218:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":2661,"mutability":"mutable","name":"value","nameLocation":"6250:5:13","nodeType":"VariableDeclaration","scope":2673,"src":"6242:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6242:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6217:39:13"},"returnParameters":{"id":2665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2673,"src":"6275:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2663,"name":"bool","nodeType":"ElementaryTypeName","src":"6275:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6274:6:13"},"scope":3045,"src":"6202:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2690,"nodeType":"Block","src":"6498:52:13","statements":[{"expression":{"arguments":[{"expression":{"id":2685,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2677,"src":"6525:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":2686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2636,"src":"6525:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":2687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2679,"src":"6537:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2684,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"6515:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6515:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2683,"id":2689,"nodeType":"Return","src":"6508:35:13"}]},"documentation":{"id":2674,"nodeType":"StructuredDocumentation","src":"6337:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":2691,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6421:8:13","nodeType":"FunctionDefinition","parameters":{"id":2680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2677,"mutability":"mutable","name":"set","nameLocation":"6449:3:13","nodeType":"VariableDeclaration","scope":2691,"src":"6430:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":2676,"nodeType":"UserDefinedTypeName","pathNode":{"id":2675,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":2637,"src":"6430:10:13"},"referencedDeclaration":2637,"src":"6430:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":2679,"mutability":"mutable","name":"value","nameLocation":"6462:5:13","nodeType":"VariableDeclaration","scope":2691,"src":"6454:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6454:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6429:39:13"},"returnParameters":{"id":2683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2691,"src":"6492:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2681,"name":"bool","nodeType":"ElementaryTypeName","src":"6492:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6491:6:13"},"scope":3045,"src":"6412:138:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2705,"nodeType":"Block","src":"6703:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":2701,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"6728:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":2702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2636,"src":"6728:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":2700,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"6720:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":2703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2699,"id":2704,"nodeType":"Return","src":"6713:26:13"}]},"documentation":{"id":2692,"nodeType":"StructuredDocumentation","src":"6556:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":2706,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6640:6:13","nodeType":"FunctionDefinition","parameters":{"id":2696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2695,"mutability":"mutable","name":"set","nameLocation":"6666:3:13","nodeType":"VariableDeclaration","scope":2706,"src":"6647:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":2694,"nodeType":"UserDefinedTypeName","pathNode":{"id":2693,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":2637,"src":"6647:10:13"},"referencedDeclaration":2637,"src":"6647:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6646:24:13"},"returnParameters":{"id":2699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2706,"src":"6694:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2697,"name":"uint256","nodeType":"ElementaryTypeName","src":"6694:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6693:9:13"},"scope":3045,"src":"6631:115:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2723,"nodeType":"Block","src":"7171:46:13","statements":[{"expression":{"arguments":[{"expression":{"id":2718,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"7192:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":2719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2636,"src":"7192:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":2720,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2712,"src":"7204:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2717,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"7188:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":2721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7188:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2716,"id":2722,"nodeType":"Return","src":"7181:29:13"}]},"documentation":{"id":2707,"nodeType":"StructuredDocumentation","src":"6752:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":2724,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7097:2:13","nodeType":"FunctionDefinition","parameters":{"id":2713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2710,"mutability":"mutable","name":"set","nameLocation":"7119:3:13","nodeType":"VariableDeclaration","scope":2724,"src":"7100:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":2709,"nodeType":"UserDefinedTypeName","pathNode":{"id":2708,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":2637,"src":"7100:10:13"},"referencedDeclaration":2637,"src":"7100:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":2712,"mutability":"mutable","name":"index","nameLocation":"7132:5:13","nodeType":"VariableDeclaration","scope":2724,"src":"7124:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2711,"name":"uint256","nodeType":"ElementaryTypeName","src":"7124:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7099:39:13"},"returnParameters":{"id":2716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2724,"src":"7162:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7162:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7161:9:13"},"scope":3045,"src":"7088:129:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2753,"nodeType":"Block","src":"7838:219:13","statements":[{"assignments":[2738],"declarations":[{"constant":false,"id":2738,"mutability":"mutable","name":"store","nameLocation":"7865:5:13","nodeType":"VariableDeclaration","scope":2753,"src":"7848:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7848:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2737,"nodeType":"ArrayTypeName","src":"7848:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":2743,"initialValue":{"arguments":[{"expression":{"id":2740,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2728,"src":"7881:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":2741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2636,"src":"7881:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":2739,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"7873:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7873:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7848:44:13"},{"assignments":[2748],"declarations":[{"constant":false,"id":2748,"mutability":"mutable","name":"result","nameLocation":"7919:6:13","nodeType":"VariableDeclaration","scope":2753,"src":"7902:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7902:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2747,"nodeType":"ArrayTypeName","src":"7902:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":2749,"nodeType":"VariableDeclarationStatement","src":"7902:23:13"},{"AST":{"nodeType":"YulBlock","src":"7988:39:13","statements":[{"nodeType":"YulAssignment","src":"8002:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"8012:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8002:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2748,"isOffset":false,"isSlot":false,"src":"8002:6:13","valueSize":1},{"declaration":2738,"isOffset":false,"isSlot":false,"src":"8012:5:13","valueSize":1}],"id":2750,"nodeType":"InlineAssembly","src":"7979:48:13"},{"expression":{"id":2751,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"8044:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":2733,"id":2752,"nodeType":"Return","src":"8037:13:13"}]},"documentation":{"id":2725,"nodeType":"StructuredDocumentation","src":"7223:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":2754,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7766:6:13","nodeType":"FunctionDefinition","parameters":{"id":2729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2728,"mutability":"mutable","name":"set","nameLocation":"7792:3:13","nodeType":"VariableDeclaration","scope":2754,"src":"7773:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":2727,"nodeType":"UserDefinedTypeName","pathNode":{"id":2726,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":2637,"src":"7773:10:13"},"referencedDeclaration":2637,"src":"7773:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$2637_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7772:24:13"},"returnParameters":{"id":2733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2754,"src":"7820:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7820:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2731,"nodeType":"ArrayTypeName","src":"7820:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7819:18:13"},"scope":3045,"src":"7757:300:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":2758,"members":[{"constant":false,"id":2757,"mutability":"mutable","name":"_inner","nameLocation":"8114:6:13","nodeType":"VariableDeclaration","scope":2758,"src":"8110:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2756,"nodeType":"UserDefinedTypeName","pathNode":{"id":2755,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"8110:3:13"},"referencedDeclaration":2443,"src":"8110:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8089:10:13","nodeType":"StructDefinition","scope":3045,"src":"8082:45:13","visibility":"public"},{"body":{"id":2784,"nodeType":"Block","src":"8373:74:13","statements":[{"expression":{"arguments":[{"expression":{"id":2770,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"8395:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":2771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"8395:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":2778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2764,"src":"8431:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8423:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2776,"name":"uint160","nodeType":"ElementaryTypeName","src":"8423:7:13","typeDescriptions":{}}},"id":2779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8423:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8415:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2774,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:13","typeDescriptions":{}}},"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8415:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8407:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8407:7:13","typeDescriptions":{}}},"id":2781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8407:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2769,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"8390:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8390:50:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2768,"id":2783,"nodeType":"Return","src":"8383:57:13"}]},"documentation":{"id":2759,"nodeType":"StructuredDocumentation","src":"8133:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":2785,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8306:3:13","nodeType":"FunctionDefinition","parameters":{"id":2765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2762,"mutability":"mutable","name":"set","nameLocation":"8329:3:13","nodeType":"VariableDeclaration","scope":2785,"src":"8310:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":2761,"nodeType":"UserDefinedTypeName","pathNode":{"id":2760,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"8310:10:13"},"referencedDeclaration":2758,"src":"8310:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":2764,"mutability":"mutable","name":"value","nameLocation":"8342:5:13","nodeType":"VariableDeclaration","scope":2785,"src":"8334:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2763,"name":"address","nodeType":"ElementaryTypeName","src":"8334:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8309:39:13"},"returnParameters":{"id":2768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2785,"src":"8367:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2766,"name":"bool","nodeType":"ElementaryTypeName","src":"8367:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8366:6:13"},"scope":3045,"src":"8297:150:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2811,"nodeType":"Block","src":"8694:77:13","statements":[{"expression":{"arguments":[{"expression":{"id":2797,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2789,"src":"8719:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":2798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"8719:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":2805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2791,"src":"8755:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8747:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2803,"name":"uint160","nodeType":"ElementaryTypeName","src":"8747:7:13","typeDescriptions":{}}},"id":2806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8747:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2801,"name":"uint256","nodeType":"ElementaryTypeName","src":"8739:7:13","typeDescriptions":{}}},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8739:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8731:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8731:7:13","typeDescriptions":{}}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8731:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2796,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"8711:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":2809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8711:53:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2795,"id":2810,"nodeType":"Return","src":"8704:60:13"}]},"documentation":{"id":2786,"nodeType":"StructuredDocumentation","src":"8453:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":2812,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8624:6:13","nodeType":"FunctionDefinition","parameters":{"id":2792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2789,"mutability":"mutable","name":"set","nameLocation":"8650:3:13","nodeType":"VariableDeclaration","scope":2812,"src":"8631:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":2788,"nodeType":"UserDefinedTypeName","pathNode":{"id":2787,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"8631:10:13"},"referencedDeclaration":2758,"src":"8631:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":2791,"mutability":"mutable","name":"value","nameLocation":"8663:5:13","nodeType":"VariableDeclaration","scope":2812,"src":"8655:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2790,"name":"address","nodeType":"ElementaryTypeName","src":"8655:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8630:39:13"},"returnParameters":{"id":2795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2812,"src":"8688:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2793,"name":"bool","nodeType":"ElementaryTypeName","src":"8688:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8687:6:13"},"scope":3045,"src":"8615:156:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2838,"nodeType":"Block","src":"8938:79:13","statements":[{"expression":{"arguments":[{"expression":{"id":2824,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2816,"src":"8965:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":2825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"8965:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":2832,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2818,"src":"9001:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8993:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2830,"name":"uint160","nodeType":"ElementaryTypeName","src":"8993:7:13","typeDescriptions":{}}},"id":2833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8993:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8985:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2828,"name":"uint256","nodeType":"ElementaryTypeName","src":"8985:7:13","typeDescriptions":{}}},"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8985:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8977:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8977:7:13","typeDescriptions":{}}},"id":2835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8977:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2823,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"8955:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8955:55:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2822,"id":2837,"nodeType":"Return","src":"8948:62:13"}]},"documentation":{"id":2813,"nodeType":"StructuredDocumentation","src":"8777:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":2839,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8861:8:13","nodeType":"FunctionDefinition","parameters":{"id":2819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2816,"mutability":"mutable","name":"set","nameLocation":"8889:3:13","nodeType":"VariableDeclaration","scope":2839,"src":"8870:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":2815,"nodeType":"UserDefinedTypeName","pathNode":{"id":2814,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"8870:10:13"},"referencedDeclaration":2758,"src":"8870:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":2818,"mutability":"mutable","name":"value","nameLocation":"8902:5:13","nodeType":"VariableDeclaration","scope":2839,"src":"8894:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2817,"name":"address","nodeType":"ElementaryTypeName","src":"8894:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8869:39:13"},"returnParameters":{"id":2822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2839,"src":"8932:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2820,"name":"bool","nodeType":"ElementaryTypeName","src":"8932:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8931:6:13"},"scope":3045,"src":"8852:165:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2853,"nodeType":"Block","src":"9170:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":2849,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"9195:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":2850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"9195:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":2848,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"9187:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":2851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9187:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2847,"id":2852,"nodeType":"Return","src":"9180:26:13"}]},"documentation":{"id":2840,"nodeType":"StructuredDocumentation","src":"9023:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":2854,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9107:6:13","nodeType":"FunctionDefinition","parameters":{"id":2844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2843,"mutability":"mutable","name":"set","nameLocation":"9133:3:13","nodeType":"VariableDeclaration","scope":2854,"src":"9114:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":2842,"nodeType":"UserDefinedTypeName","pathNode":{"id":2841,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"9114:10:13"},"referencedDeclaration":2758,"src":"9114:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9113:24:13"},"returnParameters":{"id":2847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2854,"src":"9161:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2845,"name":"uint256","nodeType":"ElementaryTypeName","src":"9161:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9160:9:13"},"scope":3045,"src":"9098:115:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2880,"nodeType":"Block","src":"9638:73:13","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":2872,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"9683:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":2873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"9683:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":2874,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"9695:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2871,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"9679:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9679:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9671:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2869,"name":"uint256","nodeType":"ElementaryTypeName","src":"9671:7:13","typeDescriptions":{}}},"id":2876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9671:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9663:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2867,"name":"uint160","nodeType":"ElementaryTypeName","src":"9663:7:13","typeDescriptions":{}}},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9663:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9655:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2865,"name":"address","nodeType":"ElementaryTypeName","src":"9655:7:13","typeDescriptions":{}}},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9655:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2864,"id":2879,"nodeType":"Return","src":"9648:56:13"}]},"documentation":{"id":2855,"nodeType":"StructuredDocumentation","src":"9219:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":2881,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9564:2:13","nodeType":"FunctionDefinition","parameters":{"id":2861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2858,"mutability":"mutable","name":"set","nameLocation":"9586:3:13","nodeType":"VariableDeclaration","scope":2881,"src":"9567:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":2857,"nodeType":"UserDefinedTypeName","pathNode":{"id":2856,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"9567:10:13"},"referencedDeclaration":2758,"src":"9567:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":2860,"mutability":"mutable","name":"index","nameLocation":"9599:5:13","nodeType":"VariableDeclaration","scope":2881,"src":"9591:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2859,"name":"uint256","nodeType":"ElementaryTypeName","src":"9591:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9566:39:13"},"returnParameters":{"id":2864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2881,"src":"9629:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2862,"name":"address","nodeType":"ElementaryTypeName","src":"9629:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9628:9:13"},"scope":3045,"src":"9555:156:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2910,"nodeType":"Block","src":"10332:219:13","statements":[{"assignments":[2895],"declarations":[{"constant":false,"id":2895,"mutability":"mutable","name":"store","nameLocation":"10359:5:13","nodeType":"VariableDeclaration","scope":2910,"src":"10342:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10342:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2894,"nodeType":"ArrayTypeName","src":"10342:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":2900,"initialValue":{"arguments":[{"expression":{"id":2897,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"10375:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":2898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"10375:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":2896,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"10367:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":2899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10367:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10342:44:13"},{"assignments":[2905],"declarations":[{"constant":false,"id":2905,"mutability":"mutable","name":"result","nameLocation":"10413:6:13","nodeType":"VariableDeclaration","scope":2910,"src":"10396:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2903,"name":"address","nodeType":"ElementaryTypeName","src":"10396:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2904,"nodeType":"ArrayTypeName","src":"10396:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":2906,"nodeType":"VariableDeclarationStatement","src":"10396:23:13"},{"AST":{"nodeType":"YulBlock","src":"10482:39:13","statements":[{"nodeType":"YulAssignment","src":"10496:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"10506:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10496:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2905,"isOffset":false,"isSlot":false,"src":"10496:6:13","valueSize":1},{"declaration":2895,"isOffset":false,"isSlot":false,"src":"10506:5:13","valueSize":1}],"id":2907,"nodeType":"InlineAssembly","src":"10473:48:13"},{"expression":{"id":2908,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"10538:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":2890,"id":2909,"nodeType":"Return","src":"10531:13:13"}]},"documentation":{"id":2882,"nodeType":"StructuredDocumentation","src":"9717:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":2911,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10260:6:13","nodeType":"FunctionDefinition","parameters":{"id":2886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2885,"mutability":"mutable","name":"set","nameLocation":"10286:3:13","nodeType":"VariableDeclaration","scope":2911,"src":"10267:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":2884,"nodeType":"UserDefinedTypeName","pathNode":{"id":2883,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"10267:10:13"},"referencedDeclaration":2758,"src":"10267:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10266:24:13"},"returnParameters":{"id":2890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2911,"src":"10314:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2887,"name":"address","nodeType":"ElementaryTypeName","src":"10314:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2888,"nodeType":"ArrayTypeName","src":"10314:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10313:18:13"},"scope":3045,"src":"10251:300:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":2915,"members":[{"constant":false,"id":2914,"mutability":"mutable","name":"_inner","nameLocation":"10602:6:13","nodeType":"VariableDeclaration","scope":2915,"src":"10598:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":2913,"nodeType":"UserDefinedTypeName","pathNode":{"id":2912,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":2443,"src":"10598:3:13"},"referencedDeclaration":2443,"src":"10598:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10580:7:13","nodeType":"StructDefinition","scope":3045,"src":"10573:42:13","visibility":"public"},{"body":{"id":2935,"nodeType":"Block","src":"10858:56:13","statements":[{"expression":{"arguments":[{"expression":{"id":2927,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"10880:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":2928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2914,"src":"10880:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":2931,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2921,"src":"10900:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10892:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10892:7:13","typeDescriptions":{}}},"id":2932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10892:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2926,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"10875:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10875:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2925,"id":2934,"nodeType":"Return","src":"10868:39:13"}]},"documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"10621:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":2936,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10794:3:13","nodeType":"FunctionDefinition","parameters":{"id":2922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2919,"mutability":"mutable","name":"set","nameLocation":"10814:3:13","nodeType":"VariableDeclaration","scope":2936,"src":"10798:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":2918,"nodeType":"UserDefinedTypeName","pathNode":{"id":2917,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"10798:7:13"},"referencedDeclaration":2915,"src":"10798:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":2921,"mutability":"mutable","name":"value","nameLocation":"10827:5:13","nodeType":"VariableDeclaration","scope":2936,"src":"10819:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2920,"name":"uint256","nodeType":"ElementaryTypeName","src":"10819:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10797:36:13"},"returnParameters":{"id":2925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2936,"src":"10852:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2923,"name":"bool","nodeType":"ElementaryTypeName","src":"10852:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10851:6:13"},"scope":3045,"src":"10785:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2956,"nodeType":"Block","src":"11158:59:13","statements":[{"expression":{"arguments":[{"expression":{"id":2948,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"11183:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":2949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2914,"src":"11183:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":2952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2942,"src":"11203:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11195:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11195:7:13","typeDescriptions":{}}},"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11195:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2947,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"11175:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":2954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11175:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2946,"id":2955,"nodeType":"Return","src":"11168:42:13"}]},"documentation":{"id":2937,"nodeType":"StructuredDocumentation","src":"10920:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":2957,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11091:6:13","nodeType":"FunctionDefinition","parameters":{"id":2943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2940,"mutability":"mutable","name":"set","nameLocation":"11114:3:13","nodeType":"VariableDeclaration","scope":2957,"src":"11098:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":2939,"nodeType":"UserDefinedTypeName","pathNode":{"id":2938,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"11098:7:13"},"referencedDeclaration":2915,"src":"11098:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":2942,"mutability":"mutable","name":"value","nameLocation":"11127:5:13","nodeType":"VariableDeclaration","scope":2957,"src":"11119:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2941,"name":"uint256","nodeType":"ElementaryTypeName","src":"11119:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11097:36:13"},"returnParameters":{"id":2946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2957,"src":"11152:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2944,"name":"bool","nodeType":"ElementaryTypeName","src":"11152:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11151:6:13"},"scope":3045,"src":"11082:135:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2977,"nodeType":"Block","src":"11381:61:13","statements":[{"expression":{"arguments":[{"expression":{"id":2969,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"11408:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":2970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2914,"src":"11408:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":2973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"11428:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11420:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11420:7:13","typeDescriptions":{}}},"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11420:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2968,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"11398:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":2975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11398:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2967,"id":2976,"nodeType":"Return","src":"11391:44:13"}]},"documentation":{"id":2958,"nodeType":"StructuredDocumentation","src":"11223:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":2978,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11307:8:13","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2961,"mutability":"mutable","name":"set","nameLocation":"11332:3:13","nodeType":"VariableDeclaration","scope":2978,"src":"11316:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":2960,"nodeType":"UserDefinedTypeName","pathNode":{"id":2959,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"11316:7:13"},"referencedDeclaration":2915,"src":"11316:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":2963,"mutability":"mutable","name":"value","nameLocation":"11345:5:13","nodeType":"VariableDeclaration","scope":2978,"src":"11337:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2962,"name":"uint256","nodeType":"ElementaryTypeName","src":"11337:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11315:36:13"},"returnParameters":{"id":2967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2978,"src":"11375:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2965,"name":"bool","nodeType":"ElementaryTypeName","src":"11375:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11374:6:13"},"scope":3045,"src":"11298:144:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2992,"nodeType":"Block","src":"11592:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":2988,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2982,"src":"11617:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":2989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2914,"src":"11617:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":2987,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"11609:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":2990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11609:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2986,"id":2991,"nodeType":"Return","src":"11602:26:13"}]},"documentation":{"id":2979,"nodeType":"StructuredDocumentation","src":"11448:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":2993,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11532:6:13","nodeType":"FunctionDefinition","parameters":{"id":2983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2982,"mutability":"mutable","name":"set","nameLocation":"11555:3:13","nodeType":"VariableDeclaration","scope":2993,"src":"11539:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":2981,"nodeType":"UserDefinedTypeName","pathNode":{"id":2980,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"11539:7:13"},"referencedDeclaration":2915,"src":"11539:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11538:21:13"},"returnParameters":{"id":2986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2993,"src":"11583:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2984,"name":"uint256","nodeType":"ElementaryTypeName","src":"11583:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11582:9:13"},"scope":3045,"src":"11523:112:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3013,"nodeType":"Block","src":"12057:55:13","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3007,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"12086:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2914,"src":"12086:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3009,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"12098:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3006,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"12082:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12082:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12074:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3004,"name":"uint256","nodeType":"ElementaryTypeName","src":"12074:7:13","typeDescriptions":{}}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12074:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3003,"id":3012,"nodeType":"Return","src":"12067:38:13"}]},"documentation":{"id":2994,"nodeType":"StructuredDocumentation","src":"11641:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3014,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11986:2:13","nodeType":"FunctionDefinition","parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2997,"mutability":"mutable","name":"set","nameLocation":"12005:3:13","nodeType":"VariableDeclaration","scope":3014,"src":"11989:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":2996,"nodeType":"UserDefinedTypeName","pathNode":{"id":2995,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"11989:7:13"},"referencedDeclaration":2915,"src":"11989:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":2999,"mutability":"mutable","name":"index","nameLocation":"12018:5:13","nodeType":"VariableDeclaration","scope":3014,"src":"12010:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2998,"name":"uint256","nodeType":"ElementaryTypeName","src":"12010:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11988:36:13"},"returnParameters":{"id":3003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3014,"src":"12048:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3001,"name":"uint256","nodeType":"ElementaryTypeName","src":"12048:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12047:9:13"},"scope":3045,"src":"11977:135:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3043,"nodeType":"Block","src":"12730:219:13","statements":[{"assignments":[3028],"declarations":[{"constant":false,"id":3028,"mutability":"mutable","name":"store","nameLocation":"12757:5:13","nodeType":"VariableDeclaration","scope":3043,"src":"12740:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12740:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3027,"nodeType":"ArrayTypeName","src":"12740:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3033,"initialValue":{"arguments":[{"expression":{"id":3030,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"12773:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":2914,"src":"12773:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$2443_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3029,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"12765:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$2443_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12765:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12740:44:13"},{"assignments":[3038],"declarations":[{"constant":false,"id":3038,"mutability":"mutable","name":"result","nameLocation":"12811:6:13","nodeType":"VariableDeclaration","scope":3043,"src":"12794:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3036,"name":"uint256","nodeType":"ElementaryTypeName","src":"12794:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3037,"nodeType":"ArrayTypeName","src":"12794:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":3039,"nodeType":"VariableDeclarationStatement","src":"12794:23:13"},{"AST":{"nodeType":"YulBlock","src":"12880:39:13","statements":[{"nodeType":"YulAssignment","src":"12894:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"12904:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12894:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3038,"isOffset":false,"isSlot":false,"src":"12894:6:13","valueSize":1},{"declaration":3028,"isOffset":false,"isSlot":false,"src":"12904:5:13","valueSize":1}],"id":3040,"nodeType":"InlineAssembly","src":"12871:48:13"},{"expression":{"id":3041,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"12936:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":3023,"id":3042,"nodeType":"Return","src":"12929:13:13"}]},"documentation":{"id":3015,"nodeType":"StructuredDocumentation","src":"12118:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3044,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12661:6:13","nodeType":"FunctionDefinition","parameters":{"id":3019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"set","nameLocation":"12684:3:13","nodeType":"VariableDeclaration","scope":3044,"src":"12668:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3017,"nodeType":"UserDefinedTypeName","pathNode":{"id":3016,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"12668:7:13"},"referencedDeclaration":2915,"src":"12668:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$2915_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12667:21:13"},"returnParameters":{"id":3023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3044,"src":"12712:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3020,"name":"uint256","nodeType":"ElementaryTypeName","src":"12712:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3021,"nodeType":"ArrayTypeName","src":"12712:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12711:18:13"},"scope":3045,"src":"12652:297:13","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3046,"src":"1321:11630:13","usedErrors":[]}],"src":"205:12747:13"},"id":13},"contracts/Claimable.sol":{"ast":{"absolutePath":"contracts/Claimable.sol","exportedSymbols":{"Claimable":[3131],"Context":[1356],"Ownable":[501]},"id":3132,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3047,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:14"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":3048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3132,"sourceUnit":502,"src":"60:52:14","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3049,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":501,"src":"147:7:14"},"id":3050,"nodeType":"InheritanceSpecifier","src":"147:7:14"}],"canonicalName":"Claimable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3131,"linearizedBaseContracts":[3131,501,1356],"name":"Claimable","nameLocation":"134:9:14","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3052,"mutability":"mutable","name":"_pendingOwner","nameLocation":"178:13:14","nodeType":"VariableDeclaration","scope":3131,"src":"162:29:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3051,"name":"address","nodeType":"ElementaryTypeName","src":"162:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"68f49b346b94582a8b5f9d10e3fe3365318fe8f191ff8dce7c59c6cad06b02f5","id":3056,"name":"PendingOwnerSet","nameLocation":"206:15:14","nodeType":"EventDefinition","parameters":{"id":3055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3054,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"238:12:14","nodeType":"VariableDeclaration","scope":3056,"src":"222:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3053,"name":"address","nodeType":"ElementaryTypeName","src":"222:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"221:30:14"},"src":"200:52:14"},{"body":{"id":3064,"nodeType":"Block","src":"274:47:14","statements":[{"expression":{"id":3062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3059,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"285:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":3060,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"301:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"285:28:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3063,"nodeType":"ExpressionStatement","src":"285:28:14"}]},"id":3065,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3057,"nodeType":"ParameterList","parameters":[],"src":"271:2:14"},"returnParameters":{"id":3058,"nodeType":"ParameterList","parameters":[],"src":"274:0:14"},"scope":3131,"src":"260:61:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3080,"nodeType":"Block","src":"364:133:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3069,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"383:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"383:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3071,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"399:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"383:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436c61696d61626c653a206e6f742070656e64696e67206f776e6572","id":3073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"414:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4d1e7dfd90f1a9f5ff7eb15697c8849def6789d3dd644f128b7a0451146bc601","typeString":"literal_string \"Claimable: not pending owner\""},"value":"Claimable: not pending owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4d1e7dfd90f1a9f5ff7eb15697c8849def6789d3dd644f128b7a0451146bc601","typeString":"literal_string \"Claimable: not pending owner\""}],"id":3068,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"375:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"375:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3075,"nodeType":"ExpressionStatement","src":"375:70:14"},{"expression":{"arguments":[{"id":3077,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"475:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3076,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"456:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"456:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3079,"nodeType":"ExpressionStatement","src":"456:33:14"}]},"functionSelector":"4e71e0c8","id":3081,"implemented":true,"kind":"function","modifiers":[],"name":"claimOwnership","nameLocation":"338:14:14","nodeType":"FunctionDefinition","parameters":{"id":3066,"nodeType":"ParameterList","parameters":[],"src":"352:2:14"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[],"src":"364:0:14"},"scope":3131,"src":"329:168:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[480],"body":{"id":3097,"nodeType":"Block","src":"584:84:14","statements":[{"expression":{"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3089,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"595:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3090,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"611:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"595:24:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3092,"nodeType":"ExpressionStatement","src":"595:24:14"},{"eventCall":{"arguments":[{"id":3094,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"651:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3093,"name":"PendingOwnerSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"635:15:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"635:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3096,"nodeType":"EmitStatement","src":"630:30:14"}]},"functionSelector":"f2fde38b","id":3098,"implemented":true,"kind":"function","modifiers":[{"id":3087,"kind":"modifierInvocation","modifierName":{"id":3086,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"574:9:14"},"nodeType":"ModifierInvocation","src":"574:9:14"}],"name":"transferOwnership","nameLocation":"514:17:14","nodeType":"FunctionDefinition","overrides":{"id":3085,"nodeType":"OverrideSpecifier","overrides":[],"src":"565:8:14"},"parameters":{"id":3084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3083,"mutability":"mutable","name":"newOwner","nameLocation":"540:8:14","nodeType":"VariableDeclaration","scope":3098,"src":"532:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3082,"name":"address","nodeType":"ElementaryTypeName","src":"532:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"531:18:14"},"returnParameters":{"id":3088,"nodeType":"ParameterList","parameters":[],"src":"584:0:14"},"scope":3131,"src":"505:163:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[457],"body":{"id":3121,"nodeType":"Block","src":"739:141:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3105,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"758:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"783:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"775:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3106,"name":"address","nodeType":"ElementaryTypeName","src":"775:7:14","typeDescriptions":{}}},"id":3109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"775:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"758:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436c61696d61626c653a2070656e64696e67206f776e6572206e6f74207a65726f2061646472657373","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"787:43:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ad45a29af4d1a11fffff7cb7a07ebeb55a5b27ee49d3e4255f3e6f2fe8d4aa1","typeString":"literal_string \"Claimable: pending owner not zero address\""},"value":"Claimable: pending owner not zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4ad45a29af4d1a11fffff7cb7a07ebeb55a5b27ee49d3e4255f3e6f2fe8d4aa1","typeString":"literal_string \"Claimable: pending owner not zero address\""}],"id":3104,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"750:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"750:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3113,"nodeType":"ExpressionStatement","src":"750:81:14"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"869:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"861:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3115,"name":"address","nodeType":"ElementaryTypeName","src":"861:7:14","typeDescriptions":{}}},"id":3118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"861:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3114,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"842:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"842:30:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3120,"nodeType":"ExpressionStatement","src":"842:30:14"}]},"functionSelector":"715018a6","id":3122,"implemented":true,"kind":"function","modifiers":[{"id":3102,"kind":"modifierInvocation","modifierName":{"id":3101,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"729:9:14"},"nodeType":"ModifierInvocation","src":"729:9:14"}],"name":"renounceOwnership","nameLocation":"685:17:14","nodeType":"FunctionDefinition","overrides":{"id":3100,"nodeType":"OverrideSpecifier","overrides":[],"src":"720:8:14"},"parameters":{"id":3099,"nodeType":"ParameterList","parameters":[],"src":"702:2:14"},"returnParameters":{"id":3103,"nodeType":"ParameterList","parameters":[],"src":"739:0:14"},"scope":3131,"src":"676:204:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3129,"nodeType":"Block","src":"950:39:14","statements":[{"expression":{"id":3127,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"968:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3126,"id":3128,"nodeType":"Return","src":"961:20:14"}]},"functionSelector":"e30c3978","id":3130,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"897:12:14","nodeType":"FunctionDefinition","parameters":{"id":3123,"nodeType":"ParameterList","parameters":[],"src":"909:2:14"},"returnParameters":{"id":3126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3130,"src":"941:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3124,"name":"address","nodeType":"ElementaryTypeName","src":"941:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"940:9:14"},"scope":3131,"src":"888:101:14","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3132,"src":"116:876:14","usedErrors":[]}],"src":"33:961:14"},"id":14},"contracts/allocation-vester/AllocationVester.sol":{"ast":{"absolutePath":"contracts/allocation-vester/AllocationVester.sol","exportedSymbols":{"Address":[1334],"AllocationVester":[3673],"Claimable":[3131],"Context":[1356],"EnumerableSet":[3045],"IERC20":[687],"IERC20Permit":[723],"Ownable":[501],"SafeERC20":[1004]},"id":3674,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3133,"literals":["solidity","0.8",".13"],"nodeType":"PragmaDirective","src":"33:23:15"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":3134,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3674,"sourceUnit":1005,"src":"60:65:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":3135,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3674,"sourceUnit":3046,"src":"127:65:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Claimable.sol","file":"../Claimable.sol","id":3136,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3674,"sourceUnit":3132,"src":"194:26:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3138,"name":"Claimable","nodeType":"IdentifierPath","referencedDeclaration":3131,"src":"485:9:15"},"id":3139,"nodeType":"InheritanceSpecifier","src":"485:9:15"}],"canonicalName":"AllocationVester","contractDependencies":[],"contractKind":"contract","documentation":{"id":3137,"nodeType":"StructuredDocumentation","src":"224:230:15","text":" @title Allocation Vester\n @author shung for Pangolin\n @notice This contract allows allocating and distributing tokens to recipients by vesting (i.e.,\n streaming) it for arbitrary durations for each recipient."},"fullyImplemented":true,"id":3673,"linearizedBaseContracts":[3673,3131,501,1356],"name":"AllocationVester","nameLocation":"465:16:15","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3143,"libraryName":{"id":3140,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":1004,"src":"508:9:15"},"nodeType":"UsingForDirective","src":"502:27:15","typeName":{"id":3142,"nodeType":"UserDefinedTypeName","pathNode":{"id":3141,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"522:6:15"},"referencedDeclaration":687,"src":"522:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}}},{"global":false,"id":3147,"libraryName":{"id":3144,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":3045,"src":"541:13:15"},"nodeType":"UsingForDirective","src":"535:49:15","typeName":{"id":3146,"nodeType":"UserDefinedTypeName","pathNode":{"id":3145,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"559:24:15"},"referencedDeclaration":2758,"src":"559:24:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"canonicalName":"AllocationVester.Member","id":3156,"members":[{"constant":false,"id":3149,"mutability":"mutable","name":"reserve","nameLocation":"924:7:15","nodeType":"VariableDeclaration","scope":3156,"src":"917:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3148,"name":"uint96","nodeType":"ElementaryTypeName","src":"917:6:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":3151,"mutability":"mutable","name":"stash","nameLocation":"949:5:15","nodeType":"VariableDeclaration","scope":3156,"src":"942:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3150,"name":"uint96","nodeType":"ElementaryTypeName","src":"942:6:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":3153,"mutability":"mutable","name":"lastUpdate","nameLocation":"972:10:15","nodeType":"VariableDeclaration","scope":3156,"src":"965:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3152,"name":"uint64","nodeType":"ElementaryTypeName","src":"965:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3155,"mutability":"mutable","name":"rate","nameLocation":"1001:4:15","nodeType":"VariableDeclaration","scope":3156,"src":"993:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3154,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Member","nameLocation":"899:6:15","nodeType":"StructDefinition","scope":3673,"src":"892:121:15","visibility":"public"},{"constant":false,"documentation":{"id":3157,"nodeType":"StructuredDocumentation","src":"1021:81:15","text":" @notice The mapping of member addresses to their properties."},"functionSelector":"08ae4b0c","id":3162,"mutability":"mutable","name":"members","nameLocation":"1142:7:15","nodeType":"VariableDeclaration","scope":3673,"src":"1108:41:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$3156_storage_$","typeString":"mapping(address => struct AllocationVester.Member)"},"typeName":{"id":3161,"keyType":{"id":3158,"name":"address","nodeType":"ElementaryTypeName","src":"1116:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1108:26:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$3156_storage_$","typeString":"mapping(address => struct AllocationVester.Member)"},"valueType":{"id":3160,"nodeType":"UserDefinedTypeName","pathNode":{"id":3159,"name":"Member","nodeType":"IdentifierPath","referencedDeclaration":3156,"src":"1127:6:15"},"referencedDeclaration":3156,"src":"1127:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member"}}},"visibility":"public"},{"constant":false,"documentation":{"id":3163,"nodeType":"StructuredDocumentation","src":"1158:82:15","text":" @notice The set of members who have any remaining allocation."},"id":3166,"mutability":"mutable","name":"_membersAddresses","nameLocation":"1279:17:15","nodeType":"VariableDeclaration","scope":3673,"src":"1246:50:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3165,"nodeType":"UserDefinedTypeName","pathNode":{"id":3164,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":2758,"src":"1246:24:15"},"referencedDeclaration":2758,"src":"1246:24:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"constant":false,"documentation":{"id":3167,"nodeType":"StructuredDocumentation","src":"1305:72:15","text":" @notice The address of the token being distributed."},"functionSelector":"fc0c546a","id":3170,"mutability":"immutable","name":"token","nameLocation":"1407:5:15","nodeType":"VariableDeclaration","scope":3673,"src":"1383:29:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":3169,"nodeType":"UserDefinedTypeName","pathNode":{"id":3168,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"1383:6:15"},"referencedDeclaration":687,"src":"1383:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"documentation":{"id":3171,"nodeType":"StructuredDocumentation","src":"1421:88:15","text":" @notice The total amount of tokens set to be vested to all members."},"functionSelector":"cd3293de","id":3173,"mutability":"mutable","name":"reserve","nameLocation":"1530:7:15","nodeType":"VariableDeclaration","scope":3673,"src":"1515:22:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1515:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":3174,"nodeType":"StructuredDocumentation","src":"1546:69:15","text":" @notice The minimum duration a vesting can last."},"functionSelector":"56715761","id":3177,"mutability":"mutable","name":"minDuration","nameLocation":"1636:11:15","nodeType":"VariableDeclaration","scope":3673,"src":"1621:36:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3175,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":3176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1650:7:15","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_1209600_by_1","typeString":"int_const 1209600"},"value":"2"},"visibility":"public"},{"anonymous":false,"documentation":{"id":3178,"nodeType":"StructuredDocumentation","src":"1666:316:15","text":" @notice Emit an event whenever an allocation is changed.\n @param member The address of the member whose allocation was changed.\n @param allocation The new amount of tokens allocated for the member.\n @param duration The time it will take to distribute the whole `allocation`."},"eventSelector":"159e9e56dec3d6bf3e3c20510a7b005a0b9f89bd991ff9eb0c4f387b1fd3682d","id":3186,"name":"AllocationSet","nameLocation":"1994:13:15","nodeType":"EventDefinition","parameters":{"id":3185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3180,"indexed":true,"mutability":"mutable","name":"member","nameLocation":"2024:6:15","nodeType":"VariableDeclaration","scope":3186,"src":"2008:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3179,"name":"address","nodeType":"ElementaryTypeName","src":"2008:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3182,"indexed":false,"mutability":"mutable","name":"allocation","nameLocation":"2040:10:15","nodeType":"VariableDeclaration","scope":3186,"src":"2032:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3181,"name":"uint256","nodeType":"ElementaryTypeName","src":"2032:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3184,"indexed":false,"mutability":"mutable","name":"duration","nameLocation":"2060:8:15","nodeType":"VariableDeclaration","scope":3186,"src":"2052:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3183,"name":"uint256","nodeType":"ElementaryTypeName","src":"2052:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2007:62:15"},"src":"1988:82:15"},{"anonymous":false,"documentation":{"id":3187,"nodeType":"StructuredDocumentation","src":"2078:201:15","text":" @notice Emit an event whenever the `minDuration` is changed.\n @param newMinDuration The minimum duration that can be defined for any allocation set after\n this event."},"eventSelector":"850b0d4898947ead6a23251622e8c2ea46d217fa5ff2c1f06638f92e91880bfe","id":3191,"name":"MinDurationSet","nameLocation":"2291:14:15","nodeType":"EventDefinition","parameters":{"id":3190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3189,"indexed":false,"mutability":"mutable","name":"newMinDuration","nameLocation":"2314:14:15","nodeType":"VariableDeclaration","scope":3191,"src":"2306:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3188,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2305:24:15"},"src":"2285:45:15"},{"anonymous":false,"documentation":{"id":3192,"nodeType":"StructuredDocumentation","src":"2338:241:15","text":" @notice Emit an event whenever a member's pending rewards are harvested.\n @param member The address of the member whose rewards were harvested.\n @param amount The amount of reward tokens that was harvested."},"eventSelector":"121c5042302bae5fc561fbc64368f297ca60a880878e1e3a7f7e9380377260bf","id":3198,"name":"Harvested","nameLocation":"2591:9:15","nodeType":"EventDefinition","parameters":{"id":3197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3194,"indexed":true,"mutability":"mutable","name":"member","nameLocation":"2617:6:15","nodeType":"VariableDeclaration","scope":3198,"src":"2601:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3193,"name":"address","nodeType":"ElementaryTypeName","src":"2601:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3196,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2633:6:15","nodeType":"VariableDeclaration","scope":3198,"src":"2625:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3195,"name":"uint256","nodeType":"ElementaryTypeName","src":"2625:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2600:40:15"},"src":"2585:56:15"},{"anonymous":false,"documentation":{"id":3199,"nodeType":"StructuredDocumentation","src":"2649:200:15","text":" @notice Emit an event when unallocated tokens from the contract are withdrawn by the admin.\n @param amount The amount of reward tokens that was withdrawn from the contract."},"eventSelector":"430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b56","id":3203,"name":"Withdrawn","nameLocation":"2861:9:15","nodeType":"EventDefinition","parameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3201,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2879:6:15","nodeType":"VariableDeclaration","scope":3203,"src":"2871:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3200,"name":"uint256","nodeType":"ElementaryTypeName","src":"2871:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2870:16:15"},"src":"2855:32:15"},{"body":{"id":3225,"nodeType":"Block","src":"3089:234:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3210,"name":"distributionToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"3162:17:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3191:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3183:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3211,"name":"address","nodeType":"ElementaryTypeName","src":"3183:7:15","typeDescriptions":{}}},"id":3214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3183:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3162:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7a65726f2061646472657373","id":3216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3195:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7","typeString":"literal_string \"zero address\""},"value":"zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7","typeString":"literal_string \"zero address\""}],"id":3209,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3154:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3154:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3218,"nodeType":"ExpressionStatement","src":"3154:56:15"},{"expression":{"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3219,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"3282:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3221,"name":"distributionToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"3297:17:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3220,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"3290:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":3222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3290:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"src":"3282:33:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":3224,"nodeType":"ExpressionStatement","src":"3282:33:15"}]},"documentation":{"id":3204,"nodeType":"StructuredDocumentation","src":"2895:149:15","text":" @notice Constructs a new AllocationVester contract.\n @param distributionToken The address of the token to be distributed."},"id":3226,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3206,"mutability":"mutable","name":"distributionToken","nameLocation":"3070:17:15","nodeType":"VariableDeclaration","scope":3226,"src":"3062:25:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3205,"name":"address","nodeType":"ElementaryTypeName","src":"3062:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3061:27:15"},"returnParameters":{"id":3208,"nodeType":"ParameterList","parameters":[],"src":"3089:0:15"},"scope":3673,"src":"3050:273:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3308,"nodeType":"Block","src":"3451:889:15","statements":[{"assignments":[3232],"declarations":[{"constant":false,"id":3232,"mutability":"mutable","name":"member","nameLocation":"3529:6:15","nodeType":"VariableDeclaration","scope":3308,"src":"3514:21:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member"},"typeName":{"id":3231,"nodeType":"UserDefinedTypeName","pathNode":{"id":3230,"name":"Member","nodeType":"IdentifierPath","referencedDeclaration":3156,"src":"3514:6:15"},"referencedDeclaration":3156,"src":"3514:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member"}},"visibility":"internal"}],"id":3237,"initialValue":{"baseExpression":{"id":3233,"name":"members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3162,"src":"3538:7:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$3156_storage_$","typeString":"mapping(address => struct AllocationVester.Member storage ref)"}},"id":3236,"indexExpression":{"expression":{"id":3234,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3546:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3546:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3538:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage","typeString":"struct AllocationVester.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3514:43:15"},{"assignments":[3239],"declarations":[{"constant":false,"id":3239,"mutability":"mutable","name":"amount","nameLocation":"3631:6:15","nodeType":"VariableDeclaration","scope":3308,"src":"3623:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3238,"name":"uint256","nodeType":"ElementaryTypeName","src":"3623:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3244,"initialValue":{"arguments":[{"expression":{"id":3241,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3655:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3655:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3240,"name":"pendingHarvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"3640:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3640:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3623:43:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3246,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"3685:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3695:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3685:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f2070656e64696e672068617276657374","id":3249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3698:20:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ecc0a3380755da3568d31401b31e8b3872e01c3836eb4b80fe4866793cf44c8e","typeString":"literal_string \"no pending harvest\""},"value":"no pending harvest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ecc0a3380755da3568d31401b31e8b3872e01c3836eb4b80fe4866793cf44c8e","typeString":"literal_string \"no pending harvest\""}],"id":3245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3677:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3677:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3251,"nodeType":"ExpressionStatement","src":"3677:42:15"},{"expression":{"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3252,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3232,"src":"3774:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":3153,"src":"3774:17:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3257,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3801:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3801:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3794:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3255,"name":"uint64","nodeType":"ElementaryTypeName","src":"3794:6:15","typeDescriptions":{}}},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3794:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3774:43:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3261,"nodeType":"ExpressionStatement","src":"3774:43:15"},{"expression":{"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3262,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3232,"src":"3828:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stash","nodeType":"MemberAccess","referencedDeclaration":3151,"src":"3828:12:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3828:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3267,"nodeType":"ExpressionStatement","src":"3828:16:15"},{"expression":{"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3268,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3232,"src":"3855:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reserve","nodeType":"MemberAccess","referencedDeclaration":3149,"src":"3855:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":3273,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"3880:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3873:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":3271,"name":"uint96","nodeType":"ElementaryTypeName","src":"3873:6:15","typeDescriptions":{}}},"id":3274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3873:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"3855:32:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3276,"nodeType":"ExpressionStatement","src":"3855:32:15"},{"expression":{"id":3279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3277,"name":"reserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"3951:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":3278,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"3962:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3951:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3280,"nodeType":"ExpressionStatement","src":"3951:17:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3281,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3232,"src":"4063:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reserve","nodeType":"MemberAccess","referencedDeclaration":3149,"src":"4063:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4081:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4063:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3293,"nodeType":"IfStatement","src":"4059:88:15","trueBody":{"id":3292,"nodeType":"Block","src":"4084:63:15","statements":[{"expression":{"arguments":[{"expression":{"id":3288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4124:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4124:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3285,"name":"_membersAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"4099:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"4099:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$2758_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$2758_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":3290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4099:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3291,"nodeType":"ExpressionStatement","src":"4099:36:15"}]}},{"expression":{"arguments":[{"expression":{"id":3297,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4268:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4268:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"4280:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3294,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"4249:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":3296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"4249:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4249:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3301,"nodeType":"ExpressionStatement","src":"4249:38:15"},{"eventCall":{"arguments":[{"expression":{"id":3303,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4313:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4313:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3305,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"4325:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3302,"name":"Harvested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"4303:9:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4303:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3307,"nodeType":"EmitStatement","src":"4298:34:15"}]},"documentation":{"id":3227,"nodeType":"StructuredDocumentation","src":"3331:86:15","text":" @notice External function to claim pending rewards of the caller."},"functionSelector":"4641257d","id":3309,"implemented":true,"kind":"function","modifiers":[],"name":"harvest","nameLocation":"3432:7:15","nodeType":"FunctionDefinition","parameters":{"id":3228,"nodeType":"ParameterList","parameters":[],"src":"3439:2:15"},"returnParameters":{"id":3229,"nodeType":"ParameterList","parameters":[],"src":"3451:0:15"},"scope":3673,"src":"3423:917:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3337,"nodeType":"Block","src":"4570:308:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3318,"name":"unreserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3672,"src":"4660:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4660:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3320,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"4676:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4660:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6c6f772062616c616e6365","id":3322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4684:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1","typeString":"literal_string \"low balance\""},"value":"low balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1","typeString":"literal_string \"low balance\""}],"id":3317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4652:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4652:46:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3324,"nodeType":"ExpressionStatement","src":"4652:46:15"},{"expression":{"arguments":[{"expression":{"id":3328,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4818:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4818:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3330,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"4830:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3325,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"4799:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"4799:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":3331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4799:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3332,"nodeType":"ExpressionStatement","src":"4799:38:15"},{"eventCall":{"arguments":[{"id":3334,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"4863:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3333,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"4853:9:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4853:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3336,"nodeType":"EmitStatement","src":"4848:22:15"}]},"documentation":{"id":3310,"nodeType":"StructuredDocumentation","src":"4348:163:15","text":" @notice External restricted function to withdraw unallocated tokens from the contract.\n @param amount The amount of tokens to withdraw."},"functionSelector":"2e1a7d4d","id":3338,"implemented":true,"kind":"function","modifiers":[{"id":3315,"kind":"modifierInvocation","modifierName":{"id":3314,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"4560:9:15"},"nodeType":"ModifierInvocation","src":"4560:9:15"}],"name":"withdraw","nameLocation":"4526:8:15","nodeType":"FunctionDefinition","parameters":{"id":3313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3312,"mutability":"mutable","name":"amount","nameLocation":"4543:6:15","nodeType":"VariableDeclaration","scope":3338,"src":"4535:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3311,"name":"uint256","nodeType":"ElementaryTypeName","src":"4535:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4534:16:15"},"returnParameters":{"id":3316,"nodeType":"ParameterList","parameters":[],"src":"4570:0:15"},"scope":3673,"src":"4517:361:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3577,"nodeType":"Block","src":"5400:3362:15","statements":[{"assignments":[3354],"declarations":[{"constant":false,"id":3354,"mutability":"mutable","name":"length","nameLocation":"5484:6:15","nodeType":"VariableDeclaration","scope":3577,"src":"5476:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3353,"name":"uint256","nodeType":"ElementaryTypeName","src":"5476:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3357,"initialValue":{"expression":{"id":3355,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3342,"src":"5493:8:15","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5493:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5476:32:15"},{"assignments":[3359],"declarations":[{"constant":false,"id":3359,"mutability":"mutable","name":"tmpReserve","nameLocation":"5527:10:15","nodeType":"VariableDeclaration","scope":3577,"src":"5519:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3358,"name":"uint256","nodeType":"ElementaryTypeName","src":"5519:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3361,"initialValue":{"id":3360,"name":"reserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"5540:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5519:28:15"},{"assignments":[3363],"declarations":[{"constant":false,"id":3363,"mutability":"mutable","name":"tmpMinDuration","nameLocation":"5566:14:15","nodeType":"VariableDeclaration","scope":3577,"src":"5558:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3362,"name":"uint256","nodeType":"ElementaryTypeName","src":"5558:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3365,"initialValue":{"id":3364,"name":"minDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"5583:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5558:36:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3367,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"5676:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5686:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5676:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656d707479206172726179","id":3370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5689:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a4cf96a83d0a38785b2b1a0589568d8f7d392fad654884d30a3f6c440683520","typeString":"literal_string \"empty array\""},"value":"empty array"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a4cf96a83d0a38785b2b1a0589568d8f7d392fad654884d30a3f6c440683520","typeString":"literal_string \"empty array\""}],"id":3366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5668:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5668:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3372,"nodeType":"ExpressionStatement","src":"5668:35:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3374,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"5736:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3375,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3345,"src":"5746:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5746:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5736:28:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3378,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"5768:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3379,"name":"durations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"5778:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5778:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5768:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5736:58:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76617279696e672d6c656e67746820617272617973","id":3383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5809:23:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_14ceb87ab7af812e92c4e3834f3009df06974b8f915e614b208227f229f7b205","typeString":"literal_string \"varying-length arrays\""},"value":"varying-length arrays"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14ceb87ab7af812e92c4e3834f3009df06974b8f915e614b208227f229f7b205","typeString":"literal_string \"varying-length arrays\""}],"id":3373,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5714:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5714:129:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3385,"nodeType":"ExpressionStatement","src":"5714:129:15"},{"body":{"id":3558,"nodeType":"Block","src":"5940:2568:15","statements":[{"assignments":[3396],"declarations":[{"constant":false,"id":3396,"mutability":"mutable","name":"account","nameLocation":"6019:7:15","nodeType":"VariableDeclaration","scope":3558,"src":"6011:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3395,"name":"address","nodeType":"ElementaryTypeName","src":"6011:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3400,"initialValue":{"baseExpression":{"id":3397,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3342,"src":"6029:8:15","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":3399,"indexExpression":{"id":3398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"6038:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6029:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6011:29:15"},{"assignments":[3402],"declarations":[{"constant":false,"id":3402,"mutability":"mutable","name":"allocation","nameLocation":"6063:10:15","nodeType":"VariableDeclaration","scope":3558,"src":"6055:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3401,"name":"uint256","nodeType":"ElementaryTypeName","src":"6055:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3406,"initialValue":{"baseExpression":{"id":3403,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3345,"src":"6076:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":3405,"indexExpression":{"id":3404,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"6088:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6076:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6055:35:15"},{"assignments":[3408],"declarations":[{"constant":false,"id":3408,"mutability":"mutable","name":"duration","nameLocation":"6113:8:15","nodeType":"VariableDeclaration","scope":3558,"src":"6105:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3407,"name":"uint256","nodeType":"ElementaryTypeName","src":"6105:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3412,"initialValue":{"baseExpression":{"id":3409,"name":"durations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"6124:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":3411,"indexExpression":{"id":3410,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"6134:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6124:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6105:31:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3414,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"6225:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6244:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6236:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3415,"name":"address","nodeType":"ElementaryTypeName","src":"6236:7:15","typeDescriptions":{}}},"id":3418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6236:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6225:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"62616420726563697069656e74","id":3420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6248:15:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4acb2f2dca5bce49f355e714f7431e47358d79e6463dc0451fed1877b7a6eb2","typeString":"literal_string \"bad recipient\""},"value":"bad recipient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4acb2f2dca5bce49f355e714f7431e47358d79e6463dc0451fed1877b7a6eb2","typeString":"literal_string \"bad recipient\""}],"id":3413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6217:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6217:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3422,"nodeType":"ExpressionStatement","src":"6217:47:15"},{"assignments":[3425],"declarations":[{"constant":false,"id":3425,"mutability":"mutable","name":"member","nameLocation":"6376:6:15","nodeType":"VariableDeclaration","scope":3558,"src":"6361:21:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member"},"typeName":{"id":3424,"nodeType":"UserDefinedTypeName","pathNode":{"id":3423,"name":"Member","nodeType":"IdentifierPath","referencedDeclaration":3156,"src":"6361:6:15"},"referencedDeclaration":3156,"src":"6361:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member"}},"visibility":"internal"}],"id":3429,"initialValue":{"baseExpression":{"id":3426,"name":"members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3162,"src":"6385:7:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$3156_storage_$","typeString":"mapping(address => struct AllocationVester.Member storage ref)"}},"id":3428,"indexExpression":{"id":3427,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"6393:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6385:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage","typeString":"struct AllocationVester.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6361:40:15"},{"assignments":[3431],"declarations":[{"constant":false,"id":3431,"mutability":"mutable","name":"tmpMemberReserve","nameLocation":"6423:16:15","nodeType":"VariableDeclaration","scope":3558,"src":"6416:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3430,"name":"uint96","nodeType":"ElementaryTypeName","src":"6416:6:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":3434,"initialValue":{"expression":{"id":3432,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"6442:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reserve","nodeType":"MemberAccess","referencedDeclaration":3149,"src":"6442:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"6416:40:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3435,"name":"tmpMemberReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"6534:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6554:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6534:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3465,"nodeType":"IfStatement","src":"6530:521:15","trueBody":{"id":3464,"nodeType":"Block","src":"6557:494:15","statements":[{"assignments":[3439],"declarations":[{"constant":false,"id":3439,"mutability":"mutable","name":"tmpMemberStash","nameLocation":"6668:14:15","nodeType":"VariableDeclaration","scope":3464,"src":"6661:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3438,"name":"uint96","nodeType":"ElementaryTypeName","src":"6661:6:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":3446,"initialValue":{"arguments":[{"arguments":[{"id":3443,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"6707:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3442,"name":"pendingHarvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"6692:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6692:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6685:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":3440,"name":"uint96","nodeType":"ElementaryTypeName","src":"6685:6:15","typeDescriptions":{}}},"id":3445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6685:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"6661:55:15"},{"expression":{"id":3451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3447,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"6735:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stash","nodeType":"MemberAccess","referencedDeclaration":3151,"src":"6735:12:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3450,"name":"tmpMemberStash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"6750:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6735:29:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3452,"nodeType":"ExpressionStatement","src":"6735:29:15"},{"expression":{"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3453,"name":"tmpReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"6864:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3454,"name":"tmpMemberReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"6879:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3455,"name":"tmpMemberStash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"6898:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6879:33:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"id":3457,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6878:35:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6864:49:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3459,"nodeType":"ExpressionStatement","src":"6864:49:15"},{"expression":{"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3460,"name":"tmpMemberReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"7002:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3461,"name":"tmpMemberStash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"7021:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"7002:33:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3463,"nodeType":"ExpressionStatement","src":"7002:33:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3466,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"7122:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7136:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7122:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":3536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3534,"name":"tmpMemberReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"8076:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8096:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8076:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3544,"nodeType":"IfStatement","src":"8072:172:15","trueBody":{"id":3543,"nodeType":"Block","src":"8099:145:15","statements":[{"expression":{"arguments":[{"id":3540,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"8220:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3537,"name":"_membersAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"8195:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"8195:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$2758_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$2758_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8195:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3542,"nodeType":"ExpressionStatement","src":"8195:33:15"}]}},"id":3545,"nodeType":"IfStatement","src":"7118:1126:15","trueBody":{"id":3533,"nodeType":"Block","src":"7139:927:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3470,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"7267:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3471,"name":"tmpMinDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"7279:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7267:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73686f72742076657374696e67206475726174696f6e","id":3473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7295:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_91549934cd3ddb3b69848a33bb3e6f2f6c6e5aeb53ecdfce1296983a8e8f9ae3","typeString":"literal_string \"short vesting duration\""},"value":"short vesting duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91549934cd3ddb3b69848a33bb3e6f2f6c6e5aeb53ecdfce1296983a8e8f9ae3","typeString":"literal_string \"short vesting duration\""}],"id":3469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7259:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7259:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3475,"nodeType":"ExpressionStatement","src":"7259:61:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3477,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"7347:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":3480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7366:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":3479,"name":"uint96","nodeType":"ElementaryTypeName","src":"7366:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":3478,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7361:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7361:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":3482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"7361:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"7347:30:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420616c6c6f636174696f6e","id":3484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7379:20:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d696d95254cfbddd7f9c4536fe32fc4aff9a76fa75ac9e194155d25390e9a490","typeString":"literal_string \"invalid allocation\""},"value":"invalid allocation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d696d95254cfbddd7f9c4536fe32fc4aff9a76fa75ac9e194155d25390e9a490","typeString":"literal_string \"invalid allocation\""}],"id":3476,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7339:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7339:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3486,"nodeType":"ExpressionStatement","src":"7339:61:15"},{"expression":{"id":3489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3487,"name":"tmpReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"7477:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3488,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"7491:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7477:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3490,"nodeType":"ExpressionStatement","src":"7477:24:15"},{"assignments":[3492],"declarations":[{"constant":false,"id":3492,"mutability":"mutable","name":"rate","nameLocation":"7608:4:15","nodeType":"VariableDeclaration","scope":3533,"src":"7600:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3491,"name":"uint256","nodeType":"ElementaryTypeName","src":"7600:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3496,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3493,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"7615:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3494,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"7628:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7615:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7600:36:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3498,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3492,"src":"7663:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7671:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7663:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"72617465207472756e636174656420746f207a65726f","id":3501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7674:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_454b82c3995abe0e17d215facdf0517a8bee51b5d963b4725d38a121058a9200","typeString":"literal_string \"rate truncated to zero\""},"value":"rate truncated to zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_454b82c3995abe0e17d215facdf0517a8bee51b5d963b4725d38a121058a9200","typeString":"literal_string \"rate truncated to zero\""}],"id":3497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7655:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7655:44:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3503,"nodeType":"ExpressionStatement","src":"7655:44:15"},{"expression":{"id":3509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3504,"name":"tmpMemberReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"7766:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":3507,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"7793:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7786:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":3505,"name":"uint96","nodeType":"ElementaryTypeName","src":"7786:6:15","typeDescriptions":{}}},"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7786:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"7766:38:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3510,"nodeType":"ExpressionStatement","src":"7766:38:15"},{"expression":{"id":3515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3511,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"7823:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rate","nodeType":"MemberAccess","referencedDeclaration":3155,"src":"7823:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3514,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3492,"src":"7837:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7823:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3516,"nodeType":"ExpressionStatement","src":"7823:18:15"},{"expression":{"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3517,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"7860:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":3153,"src":"7860:17:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3522,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7887:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7887:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7880:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3520,"name":"uint64","nodeType":"ElementaryTypeName","src":"7880:6:15","typeDescriptions":{}}},"id":3524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7880:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7860:43:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3526,"nodeType":"ExpressionStatement","src":"7860:43:15"},{"expression":{"arguments":[{"id":3530,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"8042:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3527,"name":"_membersAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"8020:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":2785,"src":"8020:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$2758_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$2758_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":3531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8020:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3532,"nodeType":"ExpressionStatement","src":"8020:30:15"}]}},{"expression":{"id":3550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3546,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"8343:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member storage pointer"}},"id":3548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reserve","nodeType":"MemberAccess","referencedDeclaration":3149,"src":"8343:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3549,"name":"tmpMemberReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"8360:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"8343:33:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3551,"nodeType":"ExpressionStatement","src":"8343:33:15"},{"eventCall":{"arguments":[{"id":3553,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"8466:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3554,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"8475:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3555,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"8487:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3552,"name":"AllocationSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"8452:13:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":3556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8452:44:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3557,"nodeType":"EmitStatement","src":"8447:49:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3389,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"5923:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3390,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"5927:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5923:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3559,"initializationExpression":{"assignments":[3387],"declarations":[{"constant":false,"id":3387,"mutability":"mutable","name":"i","nameLocation":"5920:1:15","nodeType":"VariableDeclaration","scope":3559,"src":"5912:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3386,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3388,"nodeType":"VariableDeclarationStatement","src":"5912:9:15"},"loopExpression":{"expression":{"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5935:3:15","subExpression":{"id":3392,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"5937:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3394,"nodeType":"ExpressionStatement","src":"5935:3:15"},"nodeType":"ForStatement","src":"5907:2601:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":3565,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8622:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AllocationVester_$3673","typeString":"contract AllocationVester"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AllocationVester_$3673","typeString":"contract AllocationVester"}],"id":3564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3563,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:15","typeDescriptions":{}}},"id":3566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8614:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3561,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"8598:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":644,"src":"8598:15:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8598:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3568,"name":"tmpReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"8632:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8598:44:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6c6f772062616c616e6365","id":3570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8644:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1","typeString":"literal_string \"low balance\""},"value":"low balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1","typeString":"literal_string \"low balance\""}],"id":3560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8590:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8590:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3572,"nodeType":"ExpressionStatement","src":"8590:68:15"},{"expression":{"id":3575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3573,"name":"reserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"8734:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3574,"name":"tmpReserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"8744:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8734:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3576,"nodeType":"ExpressionStatement","src":"8734:20:15"}]},"documentation":{"id":3339,"nodeType":"StructuredDocumentation","src":"4888:338:15","text":" @notice External restricted function to add or removes members, or change their allocations.\n @param accounts An array of member addresses.\n @param allocations The amount of tokens to allocate to the corresponding member.\n @param durations The duration the corresponding allocation will last for."},"functionSelector":"182a89e6","id":3578,"implemented":true,"kind":"function","modifiers":[{"id":3351,"kind":"modifierInvocation","modifierName":{"id":3350,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"5390:9:15"},"nodeType":"ModifierInvocation","src":"5390:9:15"}],"name":"setAllocations","nameLocation":"5241:14:15","nodeType":"FunctionDefinition","parameters":{"id":3349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3342,"mutability":"mutable","name":"accounts","nameLocation":"5285:8:15","nodeType":"VariableDeclaration","scope":3578,"src":"5266:27:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3340,"name":"address","nodeType":"ElementaryTypeName","src":"5266:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3341,"nodeType":"ArrayTypeName","src":"5266:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":3345,"mutability":"mutable","name":"allocations","nameLocation":"5323:11:15","nodeType":"VariableDeclaration","scope":3578,"src":"5304:30:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3343,"name":"uint256","nodeType":"ElementaryTypeName","src":"5304:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3344,"nodeType":"ArrayTypeName","src":"5304:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"durations","nameLocation":"5364:9:15","nodeType":"VariableDeclaration","scope":3578,"src":"5345:28:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5345:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3347,"nodeType":"ArrayTypeName","src":"5345:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5255:125:15"},"returnParameters":{"id":3352,"nodeType":"ParameterList","parameters":[],"src":"5400:0:15"},"scope":3673,"src":"5232:3530:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3601,"nodeType":"Block","src":"9011:257:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3587,"name":"newMinDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"9084:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9102:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9084:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7a65726f206475726174696f6e","id":3590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9105:15:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5d4526f829be465ccbde8596dd019082d9287da875164147f9d3b62eb798278","typeString":"literal_string \"zero duration\""},"value":"zero duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5d4526f829be465ccbde8596dd019082d9287da875164147f9d3b62eb798278","typeString":"literal_string \"zero duration\""}],"id":3586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9076:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9076:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3592,"nodeType":"ExpressionStatement","src":"9076:45:15"},{"expression":{"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3593,"name":"minDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"9186:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3594,"name":"newMinDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"9200:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9186:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3596,"nodeType":"ExpressionStatement","src":"9186:28:15"},{"eventCall":{"arguments":[{"id":3598,"name":"newMinDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"9245:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3597,"name":"MinDurationSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"9230:14:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9230:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3600,"nodeType":"EmitStatement","src":"9225:35:15"}]},"documentation":{"id":3579,"nodeType":"StructuredDocumentation","src":"8770:168:15","text":" @notice External restricted function to change the minimum duration.\n @param newMinDuration The new minimum duration a vesting can last for."},"functionSelector":"1674bade","id":3602,"implemented":true,"kind":"function","modifiers":[{"id":3584,"kind":"modifierInvocation","modifierName":{"id":3583,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":420,"src":"9001:9:15"},"nodeType":"ModifierInvocation","src":"9001:9:15"}],"name":"setMinDuration","nameLocation":"8953:14:15","nodeType":"FunctionDefinition","parameters":{"id":3582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"newMinDuration","nameLocation":"8976:14:15","nodeType":"VariableDeclaration","scope":3602,"src":"8968:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3580,"name":"uint256","nodeType":"ElementaryTypeName","src":"8968:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8967:24:15"},"returnParameters":{"id":3585,"nodeType":"ParameterList","parameters":[],"src":"9011:0:15"},"scope":3673,"src":"8944:324:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3613,"nodeType":"Block","src":"9498:52:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3609,"name":"_membersAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"9516:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$2758_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":2911,"src":"9516:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$2758_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$bound_to$_t_struct$_AddressSet_$2758_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":3608,"id":3612,"nodeType":"Return","src":"9509:33:15"}]},"documentation":{"id":3603,"nodeType":"StructuredDocumentation","src":"9276:153:15","text":" @notice External view function to get all active the members.\n @return The list of all members who have remaining allocation."},"functionSelector":"9eab5253","id":3614,"implemented":true,"kind":"function","modifiers":[],"name":"getMembers","nameLocation":"9444:10:15","nodeType":"FunctionDefinition","parameters":{"id":3604,"nodeType":"ParameterList","parameters":[],"src":"9454:2:15"},"returnParameters":{"id":3608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3614,"src":"9480:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3605,"name":"address","nodeType":"ElementaryTypeName","src":"9480:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3606,"nodeType":"ArrayTypeName","src":"9480:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9479:18:15"},"scope":3673,"src":"9435:115:15","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3654,"nodeType":"Block","src":"9861:422:15","statements":[{"assignments":[3624],"declarations":[{"constant":false,"id":3624,"mutability":"mutable","name":"member","nameLocation":"9930:6:15","nodeType":"VariableDeclaration","scope":3654,"src":"9916:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_memory_ptr","typeString":"struct AllocationVester.Member"},"typeName":{"id":3623,"nodeType":"UserDefinedTypeName","pathNode":{"id":3622,"name":"Member","nodeType":"IdentifierPath","referencedDeclaration":3156,"src":"9916:6:15"},"referencedDeclaration":3156,"src":"9916:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage_ptr","typeString":"struct AllocationVester.Member"}},"visibility":"internal"}],"id":3628,"initialValue":{"baseExpression":{"id":3625,"name":"members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3162,"src":"9939:7:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$3156_storage_$","typeString":"mapping(address => struct AllocationVester.Member storage ref)"}},"id":3627,"indexExpression":{"id":3626,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3617,"src":"9947:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9939:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_storage","typeString":"struct AllocationVester.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9916:39:15"},{"assignments":[3630],"declarations":[{"constant":false,"id":3630,"mutability":"mutable","name":"amount","nameLocation":"10063:6:15","nodeType":"VariableDeclaration","scope":3654,"src":"10055:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3629,"name":"uint256","nodeType":"ElementaryTypeName","src":"10055:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3644,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3631,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"10072:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_memory_ptr","typeString":"struct AllocationVester.Member memory"}},"id":3632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stash","nodeType":"MemberAccess","referencedDeclaration":3151,"src":"10072:12:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3633,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10089:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10089:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":3635,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"10107:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_memory_ptr","typeString":"struct AllocationVester.Member memory"}},"id":3636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":3153,"src":"10107:17:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10089:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10088:37:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":3639,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"10128:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_memory_ptr","typeString":"struct AllocationVester.Member memory"}},"id":3640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rate","nodeType":"MemberAccess","referencedDeclaration":3155,"src":"10128:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10088:51:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3642,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10087:53:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10072:68:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10055:85:15"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3645,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"10226:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":3646,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"10235:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_memory_ptr","typeString":"struct AllocationVester.Member memory"}},"id":3647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reserve","nodeType":"MemberAccess","referencedDeclaration":3149,"src":"10235:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"10226:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3651,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"10269:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10226:49:15","trueExpression":{"expression":{"id":3649,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"10252:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$3156_memory_ptr","typeString":"struct AllocationVester.Member memory"}},"id":3650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reserve","nodeType":"MemberAccess","referencedDeclaration":3149,"src":"10252:14:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3621,"id":3653,"nodeType":"Return","src":"10219:56:15"}]},"documentation":{"id":3615,"nodeType":"StructuredDocumentation","src":"9558:226:15","text":" @notice Public view function to get the amount of pending reward tokens of a member.\n @param account The address of the member.\n @return The amount of harvestable reward tokens of the member."},"functionSelector":"07d41e79","id":3655,"implemented":true,"kind":"function","modifiers":[],"name":"pendingHarvest","nameLocation":"9799:14:15","nodeType":"FunctionDefinition","parameters":{"id":3618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3617,"mutability":"mutable","name":"account","nameLocation":"9822:7:15","nodeType":"VariableDeclaration","scope":3655,"src":"9814:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3616,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9813:17:15"},"returnParameters":{"id":3621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3655,"src":"9852:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3619,"name":"uint256","nodeType":"ElementaryTypeName","src":"9852:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9851:9:15"},"scope":3673,"src":"9790:493:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3671,"nodeType":"Block","src":"10535:66:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":3665,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10577:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AllocationVester_$3673","typeString":"contract AllocationVester"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AllocationVester_$3673","typeString":"contract AllocationVester"}],"id":3664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10569:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3663,"name":"address","nodeType":"ElementaryTypeName","src":"10569:7:15","typeDescriptions":{}}},"id":3666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10569:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3661,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"10553:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":3662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":644,"src":"10553:15:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10553:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3668,"name":"reserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"10586:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10553:40:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3660,"id":3670,"nodeType":"Return","src":"10546:47:15"}]},"documentation":{"id":3656,"nodeType":"StructuredDocumentation","src":"10291:186:15","text":" @notice Public view function to get the amount of unallocated reward tokens in the contract.\n @return The amount of unallocated reward tokens in the contract."},"functionSelector":"c6728c6c","id":3672,"implemented":true,"kind":"function","modifiers":[],"name":"unreserved","nameLocation":"10492:10:15","nodeType":"FunctionDefinition","parameters":{"id":3657,"nodeType":"ParameterList","parameters":[],"src":"10502:2:15"},"returnParameters":{"id":3660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3672,"src":"10526:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3658,"name":"uint256","nodeType":"ElementaryTypeName","src":"10526:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10525:9:15"},"scope":3673,"src":"10483:118:15","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":3674,"src":"456:10148:15","usedErrors":[]}],"src":"33:10573:15"},"id":15},"contracts/fee-collector/FeeCollector.sol":{"ast":{"absolutePath":"contracts/fee-collector/FeeCollector.sol","exportedSymbols":{"AccessControl":[315],"Address":[1334],"Context":[1356],"ERC165":[1555],"FeeCollector":[4864],"IAccessControl":[388],"IERC165":[1567],"IERC20":[687],"IERC20Permit":[723],"IMiniChef":[3733],"IPangolinPair":[3725],"IStakingRewards":[3754],"Math":[2432],"Pausable":[609],"SafeERC20":[1004],"Strings":[1531]},"id":4865,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3675,"literals":["solidity","0.8",".13"],"nodeType":"PragmaDirective","src":"35:23:16"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":3676,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4865,"sourceUnit":316,"src":"62:58:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":3677,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4865,"sourceUnit":610,"src":"122:55:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":3678,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4865,"sourceUnit":1005,"src":"179:65:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinPair","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3725,"linearizedBaseContracts":[3725],"name":"IPangolinPair","nameLocation":"258:13:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"0dfe1681","id":3683,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nameLocation":"288:6:16","nodeType":"FunctionDefinition","parameters":{"id":3679,"nodeType":"ParameterList","parameters":[],"src":"294:2:16"},"returnParameters":{"id":3682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3683,"src":"320:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3680,"name":"address","nodeType":"ElementaryTypeName","src":"320:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"319:9:16"},"scope":3725,"src":"279:50:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d21220a7","id":3688,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nameLocation":"344:6:16","nodeType":"FunctionDefinition","parameters":{"id":3684,"nodeType":"ParameterList","parameters":[],"src":"350:2:16"},"returnParameters":{"id":3687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3688,"src":"376:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3685,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"375:9:16"},"scope":3725,"src":"335:50:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"89afcb44","id":3697,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"400:4:16","nodeType":"FunctionDefinition","parameters":{"id":3691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3690,"mutability":"mutable","name":"to","nameLocation":"413:2:16","nodeType":"VariableDeclaration","scope":3697,"src":"405:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"405:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"404:12:16"},"returnParameters":{"id":3696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3693,"mutability":"mutable","name":"amount0","nameLocation":"440:7:16","nodeType":"VariableDeclaration","scope":3697,"src":"435:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3692,"name":"uint","nodeType":"ElementaryTypeName","src":"435:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3695,"mutability":"mutable","name":"amount1","nameLocation":"454:7:16","nodeType":"VariableDeclaration","scope":3697,"src":"449:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3694,"name":"uint","nodeType":"ElementaryTypeName","src":"449:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"434:28:16"},"scope":3725,"src":"391:72:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"022c0d9f","id":3708,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"478:4:16","nodeType":"FunctionDefinition","parameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3699,"mutability":"mutable","name":"amount0Out","nameLocation":"488:10:16","nodeType":"VariableDeclaration","scope":3708,"src":"483:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3698,"name":"uint","nodeType":"ElementaryTypeName","src":"483:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3701,"mutability":"mutable","name":"amount1Out","nameLocation":"505:10:16","nodeType":"VariableDeclaration","scope":3708,"src":"500:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3700,"name":"uint","nodeType":"ElementaryTypeName","src":"500:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3703,"mutability":"mutable","name":"to","nameLocation":"525:2:16","nodeType":"VariableDeclaration","scope":3708,"src":"517:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3702,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3705,"mutability":"mutable","name":"data","nameLocation":"544:4:16","nodeType":"VariableDeclaration","scope":3708,"src":"529:19:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3704,"name":"bytes","nodeType":"ElementaryTypeName","src":"529:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"482:67:16"},"returnParameters":{"id":3707,"nodeType":"ParameterList","parameters":[],"src":"558:0:16"},"scope":3725,"src":"469:90:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0902f1ac","id":3717,"implemented":false,"kind":"function","modifiers":[],"name":"getReserves","nameLocation":"574:11:16","nodeType":"FunctionDefinition","parameters":{"id":3709,"nodeType":"ParameterList","parameters":[],"src":"585:2:16"},"returnParameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3711,"mutability":"mutable","name":"reserve0","nameLocation":"619:8:16","nodeType":"VariableDeclaration","scope":3717,"src":"611:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":3710,"name":"uint112","nodeType":"ElementaryTypeName","src":"611:7:16","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":3713,"mutability":"mutable","name":"reserve1","nameLocation":"637:8:16","nodeType":"VariableDeclaration","scope":3717,"src":"629:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":3712,"name":"uint112","nodeType":"ElementaryTypeName","src":"629:7:16","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":3715,"mutability":"mutable","name":"blockTimestampLast","nameLocation":"654:18:16","nodeType":"VariableDeclaration","scope":3717,"src":"647:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3714,"name":"uint32","nodeType":"ElementaryTypeName","src":"647:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"610:63:16"},"scope":3725,"src":"565:109:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":3724,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"689:9:16","nodeType":"FunctionDefinition","parameters":{"id":3720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3719,"mutability":"mutable","name":"owner","nameLocation":"707:5:16","nodeType":"VariableDeclaration","scope":3724,"src":"699:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3718,"name":"address","nodeType":"ElementaryTypeName","src":"699:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"698:15:16"},"returnParameters":{"id":3723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3724,"src":"737:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3721,"name":"uint","nodeType":"ElementaryTypeName","src":"737:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"736:6:16"},"scope":3725,"src":"680:63:16","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4865,"src":"248:498:16","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IMiniChef","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3733,"linearizedBaseContracts":[3733],"name":"IMiniChef","nameLocation":"760:9:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"18fccc76","id":3732,"implemented":false,"kind":"function","modifiers":[],"name":"harvest","nameLocation":"786:7:16","nodeType":"FunctionDefinition","parameters":{"id":3730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3727,"mutability":"mutable","name":"pid","nameLocation":"802:3:16","nodeType":"VariableDeclaration","scope":3732,"src":"794:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3726,"name":"uint256","nodeType":"ElementaryTypeName","src":"794:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3729,"mutability":"mutable","name":"to","nameLocation":"815:2:16","nodeType":"VariableDeclaration","scope":3732,"src":"807:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3728,"name":"address","nodeType":"ElementaryTypeName","src":"807:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:25:16"},"returnParameters":{"id":3731,"nodeType":"ParameterList","parameters":[],"src":"827:0:16"},"scope":3733,"src":"777:51:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4865,"src":"750:81:16","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IStakingRewards","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3754,"linearizedBaseContracts":[3754],"name":"IStakingRewards","nameLocation":"845:15:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d1af0c7d","id":3738,"implemented":false,"kind":"function","modifiers":[],"name":"rewardsToken","nameLocation":"877:12:16","nodeType":"FunctionDefinition","parameters":{"id":3734,"nodeType":"ParameterList","parameters":[],"src":"889:2:16"},"returnParameters":{"id":3737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3738,"src":"915:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3735,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"914:9:16"},"scope":3754,"src":"868:56:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3c6b16ab","id":3743,"implemented":false,"kind":"function","modifiers":[],"name":"notifyRewardAmount","nameLocation":"939:18:16","nodeType":"FunctionDefinition","parameters":{"id":3741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3740,"mutability":"mutable","name":"reward","nameLocation":"966:6:16","nodeType":"VariableDeclaration","scope":3743,"src":"958:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3739,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"957:16:16"},"returnParameters":{"id":3742,"nodeType":"ParameterList","parameters":[],"src":"982:0:16"},"scope":3754,"src":"930:53:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cc1a378f","id":3748,"implemented":false,"kind":"function","modifiers":[],"name":"setRewardsDuration","nameLocation":"998:18:16","nodeType":"FunctionDefinition","parameters":{"id":3746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3745,"mutability":"mutable","name":"_rewardsDuration","nameLocation":"1025:16:16","nodeType":"VariableDeclaration","scope":3748,"src":"1017:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3744,"name":"uint256","nodeType":"ElementaryTypeName","src":"1017:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1016:26:16"},"returnParameters":{"id":3747,"nodeType":"ParameterList","parameters":[],"src":"1051:0:16"},"scope":3754,"src":"989:63:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":3753,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"1067:17:16","nodeType":"FunctionDefinition","parameters":{"id":3751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3750,"mutability":"mutable","name":"newOwner","nameLocation":"1093:8:16","nodeType":"VariableDeclaration","scope":3753,"src":"1085:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3749,"name":"address","nodeType":"ElementaryTypeName","src":"1085:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1084:18:16"},"returnParameters":{"id":3752,"nodeType":"ParameterList","parameters":[],"src":"1111:0:16"},"scope":3754,"src":"1058:54:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4865,"src":"835:280:16","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":3755,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":315,"src":"1144:13:16"},"id":3756,"nodeType":"InheritanceSpecifier","src":"1144:13:16"},{"baseName":{"id":3757,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":609,"src":"1159:8:16"},"id":3758,"nodeType":"InheritanceSpecifier","src":"1159:8:16"}],"canonicalName":"FeeCollector","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4864,"linearizedBaseContracts":[4864,609,315,1555,1567,388,1356],"name":"FeeCollector","nameLocation":"1128:12:16","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3762,"libraryName":{"id":3759,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":1004,"src":"1183:9:16"},"nodeType":"UsingForDirective","src":"1177:27:16","typeName":{"id":3761,"nodeType":"UserDefinedTypeName","pathNode":{"id":3760,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"1197:6:16"},"referencedDeclaration":687,"src":"1197:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}}},{"constant":false,"functionSelector":"2dd31000","id":3764,"mutability":"immutable","name":"FACTORY","nameLocation":"1237:7:16","nodeType":"VariableDeclaration","scope":4864,"src":"1212:32:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3763,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"fa881298","id":3766,"mutability":"immutable","name":"PAIR_INIT_HASH","nameLocation":"1276:14:16","nodeType":"VariableDeclaration","scope":4864,"src":"1251:39:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1251:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"b7c71db4","id":3768,"mutability":"immutable","name":"WRAPPED_TOKEN","nameLocation":"1342:13:16","nodeType":"VariableDeclaration","scope":4864,"src":"1317:38:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3767,"name":"address","nodeType":"ElementaryTypeName","src":"1317:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"functionSelector":"fbb12d07","id":3773,"mutability":"constant","name":"HARVEST_ROLE","nameLocation":"1388:12:16","nodeType":"VariableDeclaration","scope":4864,"src":"1364:64:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1364:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"484152564553545f524f4c45","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1413:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c","typeString":"literal_string \"HARVEST_ROLE\""},"value":"HARVEST_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c","typeString":"literal_string \"HARVEST_ROLE\""}],"id":3770,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1403:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"389ed267","id":3778,"mutability":"constant","name":"PAUSE_ROLE","nameLocation":"1459:10:16","nodeType":"VariableDeclaration","scope":4864,"src":"1435:60:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1435:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50415553455f524f4c45","id":3776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1482:12:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d","typeString":"literal_string \"PAUSE_ROLE\""},"value":"PAUSE_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d","typeString":"literal_string \"PAUSE_ROLE\""}],"id":3775,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1472:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1472:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"31993a1c","id":3783,"mutability":"constant","name":"RECOVERY_ROLE","nameLocation":"1526:13:16","nodeType":"VariableDeclaration","scope":4864,"src":"1502:66:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1502:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245434f564552595f524f4c45","id":3781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1552:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff8","typeString":"literal_string \"RECOVERY_ROLE\""},"value":"RECOVERY_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff8","typeString":"literal_string \"RECOVERY_ROLE\""}],"id":3780,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1542:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1542:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"ccc57490","id":3788,"mutability":"constant","name":"GOVERNOR_ROLE","nameLocation":"1599:13:16","nodeType":"VariableDeclaration","scope":4864,"src":"1575:66:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1575:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"474f5645524e4f525f524f4c45","id":3786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1625:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55","typeString":"literal_string \"GOVERNOR_ROLE\""},"value":"GOVERNOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55","typeString":"literal_string \"GOVERNOR_ROLE\""}],"id":3785,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1615:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1615:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"d73792a9","id":3791,"mutability":"constant","name":"FEE_DENOMINATOR","nameLocation":"1674:15:16","nodeType":"VariableDeclaration","scope":4864,"src":"1650:48:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3789,"name":"uint256","nodeType":"ElementaryTypeName","src":"1650:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31305f303030","id":3790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1692:6:16","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10_000"},"visibility":"public"},{"constant":true,"functionSelector":"cf3b69b6","id":3794,"mutability":"constant","name":"MAX_HARVEST_INCENTIVE","nameLocation":"1729:21:16","nodeType":"VariableDeclaration","scope":4864,"src":"1705:51:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323030","id":3793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1753:3:16","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"visibility":"public"},{"constant":false,"functionSelector":"64b87a70","id":3796,"mutability":"mutable","name":"stakingRewards","nameLocation":"1786:14:16","nodeType":"VariableDeclaration","scope":4864,"src":"1771:29:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3795,"name":"address","nodeType":"ElementaryTypeName","src":"1771:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"86da6f7c","id":3798,"mutability":"mutable","name":"stakingRewardsRewardToken","nameLocation":"1822:25:16","nodeType":"VariableDeclaration","scope":4864,"src":"1807:40:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3797,"name":"address","nodeType":"ElementaryTypeName","src":"1807:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"61d027b3","id":3800,"mutability":"mutable","name":"treasury","nameLocation":"1871:8:16","nodeType":"VariableDeclaration","scope":4864,"src":"1856:23:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3799,"name":"address","nodeType":"ElementaryTypeName","src":"1856:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"cc32d176","id":3803,"mutability":"mutable","name":"treasuryFee","nameLocation":"1901:11:16","nodeType":"VariableDeclaration","scope":4864,"src":"1886:33:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3801,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31353030","id":3802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:4:16","typeDescriptions":{"typeIdentifier":"t_rational_1500_by_1","typeString":"int_const 1500"},"value":"1500"},"visibility":"public"},{"constant":false,"functionSelector":"cd6e7def","id":3806,"mutability":"mutable","name":"harvestIncentive","nameLocation":"1948:16:16","nodeType":"VariableDeclaration","scope":4864,"src":"1933:36:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3804,"name":"uint256","nodeType":"ElementaryTypeName","src":"1933:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":3805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:2:16","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"constant":false,"functionSelector":"4005760a","id":3808,"mutability":"mutable","name":"miniChef","nameLocation":"2001:8:16","nodeType":"VariableDeclaration","scope":4864,"src":"1986:23:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3807,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"3024a307","id":3810,"mutability":"mutable","name":"miniChefPoolId","nameLocation":"2031:14:16","nodeType":"VariableDeclaration","scope":4864,"src":"2016:29:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3809,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"2851bbc9","id":3814,"mutability":"mutable","name":"isRecoverable","nameLocation":"2086:13:16","nodeType":"VariableDeclaration","scope":4864,"src":"2054:45:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":3813,"keyType":{"id":3811,"name":"address","nodeType":"ElementaryTypeName","src":"2062:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2054:24:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":3812,"name":"bool","nodeType":"ElementaryTypeName","src":"2073:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":3930,"nodeType":"Block","src":"2380:969:16","statements":[{"expression":{"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3835,"name":"WRAPPED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"2391:13:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3836,"name":"_wrappedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"2407:13:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2391:29:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3838,"nodeType":"ExpressionStatement","src":"2391:29:16"},{"expression":{"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3839,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"2431:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3840,"name":"_factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"2441:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2431:18:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3842,"nodeType":"ExpressionStatement","src":"2431:18:16"},{"expression":{"id":3845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3843,"name":"PAIR_INIT_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"2460:14:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3844,"name":"_initHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3820,"src":"2477:9:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2460:26:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3846,"nodeType":"ExpressionStatement","src":"2460:26:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3848,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"2507:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2534:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2526:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3849,"name":"address","nodeType":"ElementaryTypeName","src":"2526:7:16","typeDescriptions":{}}},"id":3852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2526:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2507:29:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646472657373","id":3854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:17:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""},"value":"Invalid address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""}],"id":3847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2499:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2499:57:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3856,"nodeType":"ExpressionStatement","src":"2499:57:16"},{"assignments":[3858],"declarations":[{"constant":false,"id":3858,"mutability":"mutable","name":"_stakingRewardsRewardToken","nameLocation":"2575:26:16","nodeType":"VariableDeclaration","scope":3930,"src":"2567:34:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3857,"name":"address","nodeType":"ElementaryTypeName","src":"2567:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3860,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"2620:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3859,"name":"IStakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"2604:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStakingRewards_$3754_$","typeString":"type(contract IStakingRewards)"}},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2604:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStakingRewards_$3754","typeString":"contract IStakingRewards"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rewardsToken","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"2604:45:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2604:47:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2567:84:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3866,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"2670:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2708:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2700:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3867,"name":"address","nodeType":"ElementaryTypeName","src":"2700:7:16","typeDescriptions":{}}},"id":3870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2700:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2670:40:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207374616b696e6720726577617264","id":3872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2712:24:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237","typeString":"literal_string \"Invalid staking reward\""},"value":"Invalid staking reward"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237","typeString":"literal_string \"Invalid staking reward\""}],"id":3865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2662:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2662:75:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3874,"nodeType":"ExpressionStatement","src":"2662:75:16"},{"expression":{"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3875,"name":"stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"2748:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3876,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"2765:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2748:32:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3878,"nodeType":"ExpressionStatement","src":"2748:32:16"},{"expression":{"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3879,"name":"stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"2791:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3880,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"2819:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2791:54:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3882,"nodeType":"ExpressionStatement","src":"2791:54:16"},{"expression":{"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3883,"name":"miniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"2858:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3884,"name":"_miniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"2869:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2858:20:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3886,"nodeType":"ExpressionStatement","src":"2858:20:16"},{"expression":{"id":3889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3887,"name":"miniChefPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3810,"src":"2889:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3888,"name":"_pid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"2906:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2889:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3890,"nodeType":"ExpressionStatement","src":"2889:21:16"},{"expression":{"id":3893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3891,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"2921:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3892,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3828,"src":"2932:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2921:20:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3894,"nodeType":"ExpressionStatement","src":"2921:20:16"},{"expression":{"arguments":[{"id":3896,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"2965:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3897,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"2985:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3895,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"2954:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2954:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3899,"nodeType":"ExpressionStatement","src":"2954:38:16"},{"expression":{"arguments":[{"id":3901,"name":"HARVEST_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3014:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3902,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"3028:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3900,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"3003:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3003:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3904,"nodeType":"ExpressionStatement","src":"3003:32:16"},{"expression":{"arguments":[{"id":3906,"name":"PAUSE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3778,"src":"3057:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3907,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"3069:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3905,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"3046:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3046:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3909,"nodeType":"ExpressionStatement","src":"3046:30:16"},{"expression":{"arguments":[{"id":3911,"name":"RECOVERY_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"3098:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3912,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"3113:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3910,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"3087:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3087:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3914,"nodeType":"ExpressionStatement","src":"3087:33:16"},{"expression":{"arguments":[{"id":3916,"name":"RECOVERY_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"3145:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3917,"name":"RECOVERY_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"3160:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3915,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"3131:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3131:43:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3919,"nodeType":"ExpressionStatement","src":"3131:43:16"},{"expression":{"arguments":[{"id":3921,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"3229:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3922,"name":"_governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"3244:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3920,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"3218:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3218:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3924,"nodeType":"ExpressionStatement","src":"3218:36:16"},{"expression":{"arguments":[{"id":3926,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"3279:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3927,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"3294:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3925,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"3265:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3265:43:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3929,"nodeType":"ExpressionStatement","src":"3265:43:16"}]},"id":3931,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3816,"mutability":"mutable","name":"_wrappedToken","nameLocation":"2138:13:16","nodeType":"VariableDeclaration","scope":3931,"src":"2130:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3815,"name":"address","nodeType":"ElementaryTypeName","src":"2130:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3818,"mutability":"mutable","name":"_factory","nameLocation":"2170:8:16","nodeType":"VariableDeclaration","scope":3931,"src":"2162:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3817,"name":"address","nodeType":"ElementaryTypeName","src":"2162:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3820,"mutability":"mutable","name":"_initHash","nameLocation":"2197:9:16","nodeType":"VariableDeclaration","scope":3931,"src":"2189:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2189:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3822,"mutability":"mutable","name":"_stakingRewards","nameLocation":"2225:15:16","nodeType":"VariableDeclaration","scope":3931,"src":"2217:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3821,"name":"address","nodeType":"ElementaryTypeName","src":"2217:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3824,"mutability":"mutable","name":"_miniChef","nameLocation":"2259:9:16","nodeType":"VariableDeclaration","scope":3931,"src":"2251:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3823,"name":"address","nodeType":"ElementaryTypeName","src":"2251:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3826,"mutability":"mutable","name":"_pid","nameLocation":"2287:4:16","nodeType":"VariableDeclaration","scope":3931,"src":"2279:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3825,"name":"uint256","nodeType":"ElementaryTypeName","src":"2279:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3828,"mutability":"mutable","name":"_treasury","nameLocation":"2310:9:16","nodeType":"VariableDeclaration","scope":3931,"src":"2302:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3827,"name":"address","nodeType":"ElementaryTypeName","src":"2302:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3830,"mutability":"mutable","name":"_governor","nameLocation":"2338:9:16","nodeType":"VariableDeclaration","scope":3931,"src":"2330:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3829,"name":"address","nodeType":"ElementaryTypeName","src":"2330:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3832,"mutability":"mutable","name":"_admin","nameLocation":"2366:6:16","nodeType":"VariableDeclaration","scope":3931,"src":"2358:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3831,"name":"address","nodeType":"ElementaryTypeName","src":"2358:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2119:260:16"},"returnParameters":{"id":3834,"nodeType":"ParameterList","parameters":[],"src":"2380:0:16"},"scope":4864,"src":"2108:1241:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3976,"nodeType":"Block","src":"3560:365:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3941,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"3579:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3606:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3598:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3942,"name":"address","nodeType":"ElementaryTypeName","src":"3598:7:16","typeDescriptions":{}}},"id":3945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3598:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3579:29:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646472657373","id":3947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3610:17:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""},"value":"Invalid address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""}],"id":3940,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3571:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3571:57:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3949,"nodeType":"ExpressionStatement","src":"3571:57:16"},{"assignments":[3951],"declarations":[{"constant":false,"id":3951,"mutability":"mutable","name":"_stakingRewardsRewardToken","nameLocation":"3647:26:16","nodeType":"VariableDeclaration","scope":3976,"src":"3639:34:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3950,"name":"address","nodeType":"ElementaryTypeName","src":"3639:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3957,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3953,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"3692:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3952,"name":"IStakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"3676:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStakingRewards_$3754_$","typeString":"type(contract IStakingRewards)"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3676:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStakingRewards_$3754","typeString":"contract IStakingRewards"}},"id":3955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rewardsToken","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"3676:45:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3676:47:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3639:84:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3959,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"3742:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3780:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3772:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3960,"name":"address","nodeType":"ElementaryTypeName","src":"3772:7:16","typeDescriptions":{}}},"id":3963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3772:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:40:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207374616b696e6720726577617264","id":3965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3784:24:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237","typeString":"literal_string \"Invalid staking reward\""},"value":"Invalid staking reward"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237","typeString":"literal_string \"Invalid staking reward\""}],"id":3958,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3734:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3734:75:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3967,"nodeType":"ExpressionStatement","src":"3734:75:16"},{"expression":{"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3968,"name":"stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"3820:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3969,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"3837:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3820:32:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3971,"nodeType":"ExpressionStatement","src":"3820:32:16"},{"expression":{"id":3974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3972,"name":"stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"3863:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3973,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"3891:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3863:54:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3975,"nodeType":"ExpressionStatement","src":"3863:54:16"}]},"documentation":{"id":3932,"nodeType":"StructuredDocumentation","src":"3357:106:16","text":"@notice Change staking rewards contract address\n @param _stakingRewards - New contract address"},"functionSelector":"dfa0dfa5","id":3977,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3937,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"3540:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3938,"kind":"modifierInvocation","modifierName":{"id":3936,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"3531:8:16"},"nodeType":"ModifierInvocation","src":"3531:28:16"}],"name":"setRewardsContract","nameLocation":"3478:18:16","nodeType":"FunctionDefinition","parameters":{"id":3935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3934,"mutability":"mutable","name":"_stakingRewards","nameLocation":"3505:15:16","nodeType":"VariableDeclaration","scope":3977,"src":"3497:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3933,"name":"address","nodeType":"ElementaryTypeName","src":"3497:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3496:25:16"},"returnParameters":{"id":3939,"nodeType":"ParameterList","parameters":[],"src":"3560:0:16"},"scope":4864,"src":"3469:456:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4006,"nodeType":"Block","src":"4170:236:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3987,"name":"_harvestIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"4189:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3988,"name":"MAX_HARVEST_INCENTIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"4210:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4189:42:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e63656e7469766520746f6f206c61726765","id":3990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4233:21:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a845d0b81b644719e5819264d8c4c6738666e960bd64554dedf9f417f516194","typeString":"literal_string \"Incentive too large\""},"value":"Incentive too large"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a845d0b81b644719e5819264d8c4c6738666e960bd64554dedf9f417f516194","typeString":"literal_string \"Incentive too large\""}],"id":3986,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4181:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4181:74:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3992,"nodeType":"ExpressionStatement","src":"4181:74:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3994,"name":"_harvestIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"4274:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3995,"name":"treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"4294:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4274:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3997,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3791,"src":"4309:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4274:50:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546f74616c2066656573206d757374203c3d20313030","id":3999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4326:24:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2","typeString":"literal_string \"Total fees must <= 100\""},"value":"Total fees must <= 100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2","typeString":"literal_string \"Total fees must <= 100\""}],"id":3993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4266:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4266:85:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4001,"nodeType":"ExpressionStatement","src":"4266:85:16"},{"expression":{"id":4004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4002,"name":"harvestIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"4362:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4003,"name":"_harvestIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"4381:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4362:36:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4005,"nodeType":"ExpressionStatement","src":"4362:36:16"}]},"documentation":{"id":3978,"nodeType":"StructuredDocumentation","src":"3933:137:16","text":"@notice Change the percentage of each harvest that goes to the caller\n @param _harvestIncentive - New incentive ratio in bips"},"functionSelector":"7e2be195","id":4007,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3983,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"4150:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3984,"kind":"modifierInvocation","modifierName":{"id":3982,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4141:8:16"},"nodeType":"ModifierInvocation","src":"4141:28:16"}],"name":"setHarvestIncentive","nameLocation":"4085:19:16","nodeType":"FunctionDefinition","parameters":{"id":3981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3980,"mutability":"mutable","name":"_harvestIncentive","nameLocation":"4113:17:16","nodeType":"VariableDeclaration","scope":4007,"src":"4105:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4105:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4104:27:16"},"returnParameters":{"id":3985,"nodeType":"ParameterList","parameters":[],"src":"4170:0:16"},"scope":4864,"src":"4076:330:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4017,"nodeType":"Block","src":"4520:27:16","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4014,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":592,"src":"4531:6:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4531:8:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4016,"nodeType":"ExpressionStatement","src":"4531:8:16"}]},"documentation":{"id":4008,"nodeType":"StructuredDocumentation","src":"4414:53:16","text":"@notice Disable the harvest and recover functions"},"functionSelector":"8456cb59","id":4018,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4011,"name":"PAUSE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3778,"src":"4508:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4012,"kind":"modifierInvocation","modifierName":{"id":4010,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4499:8:16"},"nodeType":"ModifierInvocation","src":"4499:20:16"}],"name":"pause","nameLocation":"4482:5:16","nodeType":"FunctionDefinition","parameters":{"id":4009,"nodeType":"ParameterList","parameters":[],"src":"4487:2:16"},"returnParameters":{"id":4013,"nodeType":"ParameterList","parameters":[],"src":"4520:0:16"},"scope":4864,"src":"4473:74:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4028,"nodeType":"Block","src":"4665:29:16","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4025,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"4676:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4676:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4027,"nodeType":"ExpressionStatement","src":"4676:10:16"}]},"documentation":{"id":4019,"nodeType":"StructuredDocumentation","src":"4555:55:16","text":"@notice Re-enable the harvest and recover functions"},"functionSelector":"3f4ba83a","id":4029,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4022,"name":"PAUSE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3778,"src":"4653:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4023,"kind":"modifierInvocation","modifierName":{"id":4021,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4644:8:16"},"nodeType":"ModifierInvocation","src":"4644:20:16"}],"name":"unpause","nameLocation":"4625:7:16","nodeType":"FunctionDefinition","parameters":{"id":4020,"nodeType":"ParameterList","parameters":[],"src":"4632:2:16"},"returnParameters":{"id":4024,"nodeType":"ParameterList","parameters":[],"src":"4665:0:16"},"scope":4864,"src":"4616:78:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4046,"nodeType":"Block","src":"4951:49:16","statements":[{"expression":{"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4040,"name":"isRecoverable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3814,"src":"4962:13:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4042,"indexExpression":{"id":4041,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4032,"src":"4976:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4962:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4043,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4034,"src":"4985:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4962:30:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4045,"nodeType":"ExpressionStatement","src":"4962:30:16"}]},"documentation":{"id":4030,"nodeType":"StructuredDocumentation","src":"4702:157:16","text":"@notice Allows a liquidity token to be withdrawn fully without a buyback\n @dev Intended for recovering LP involving a token with fees on transfer"},"functionSelector":"16242bee","id":4047,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4037,"name":"RECOVERY_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"4936:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4038,"kind":"modifierInvocation","modifierName":{"id":4036,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4927:8:16"},"nodeType":"ModifierInvocation","src":"4927:23:16"}],"name":"setRecoverable","nameLocation":"4874:14:16","nodeType":"FunctionDefinition","parameters":{"id":4035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4032,"mutability":"mutable","name":"token","nameLocation":"4897:5:16","nodeType":"VariableDeclaration","scope":4047,"src":"4889:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4031,"name":"address","nodeType":"ElementaryTypeName","src":"4889:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4034,"mutability":"mutable","name":"allowed","nameLocation":"4909:7:16","nodeType":"VariableDeclaration","scope":4047,"src":"4904:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4033,"name":"bool","nodeType":"ElementaryTypeName","src":"4904:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4888:29:16"},"returnParameters":{"id":4039,"nodeType":"ParameterList","parameters":[],"src":"4951:0:16"},"scope":4864,"src":"4865:135:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4069,"nodeType":"Block","src":"5217:141:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4057,"name":"harvestIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"5236:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4058,"name":"_treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"5255:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5236:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":4060,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3791,"src":"5271:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5236:50:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546f74616c2066656573206d757374203c3d20313030","id":4062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5288:24:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2","typeString":"literal_string \"Total fees must <= 100\""},"value":"Total fees must <= 100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2","typeString":"literal_string \"Total fees must <= 100\""}],"id":4056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5228:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:85:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4064,"nodeType":"ExpressionStatement","src":"5228:85:16"},{"expression":{"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4065,"name":"treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"5324:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4066,"name":"_treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"5338:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5324:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4068,"nodeType":"ExpressionStatement","src":"5324:26:16"}]},"documentation":{"id":4048,"nodeType":"StructuredDocumentation","src":"5008:124:16","text":"@notice Change the percentage of each harvest that goes to the treasury\n @param _treasuryFee - New ratio in bips"},"functionSelector":"77e741c7","id":4070,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4053,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"5202:13:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4054,"kind":"modifierInvocation","modifierName":{"id":4052,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5193:8:16"},"nodeType":"ModifierInvocation","src":"5193:23:16"}],"name":"setTreasuryFee","nameLocation":"5147:14:16","nodeType":"FunctionDefinition","parameters":{"id":4051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4050,"mutability":"mutable","name":"_treasuryFee","nameLocation":"5170:12:16","nodeType":"VariableDeclaration","scope":4070,"src":"5162:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4049,"name":"uint256","nodeType":"ElementaryTypeName","src":"5162:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5161:22:16"},"returnParameters":{"id":4055,"nodeType":"ParameterList","parameters":[],"src":"5217:0:16"},"scope":4864,"src":"5138:220:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4092,"nodeType":"Block","src":"5548:82:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4080,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4073,"src":"5567:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5588:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5580:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4081,"name":"address","nodeType":"ElementaryTypeName","src":"5580:7:16","typeDescriptions":{}}},"id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5580:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5567:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4079,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5559:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5559:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4087,"nodeType":"ExpressionStatement","src":"5559:32:16"},{"expression":{"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4088,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"5602:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4089,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4073,"src":"5613:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5602:20:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4091,"nodeType":"ExpressionStatement","src":"5602:20:16"}]},"documentation":{"id":4071,"nodeType":"StructuredDocumentation","src":"5366:98:16","text":"@notice Updates the recipient of treasury fees\n @param _treasury - New treasury wallet"},"functionSelector":"f0f44260","id":4093,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4076,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"5528:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4077,"kind":"modifierInvocation","modifierName":{"id":4075,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5519:8:16"},"nodeType":"ModifierInvocation","src":"5519:28:16"}],"name":"setTreasury","nameLocation":"5479:11:16","nodeType":"FunctionDefinition","parameters":{"id":4074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4073,"mutability":"mutable","name":"_treasury","nameLocation":"5499:9:16","nodeType":"VariableDeclaration","scope":4093,"src":"5491:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4072,"name":"address","nodeType":"ElementaryTypeName","src":"5491:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5490:19:16"},"returnParameters":{"id":4078,"nodeType":"ParameterList","parameters":[],"src":"5548:0:16"},"scope":4864,"src":"5470:160:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4115,"nodeType":"Block","src":"5832:82:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4103,"name":"_miniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4096,"src":"5851:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5872:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5864:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4104,"name":"address","nodeType":"ElementaryTypeName","src":"5864:7:16","typeDescriptions":{}}},"id":4107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5864:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5851:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4102,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5843:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5843:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4110,"nodeType":"ExpressionStatement","src":"5843:32:16"},{"expression":{"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4111,"name":"miniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"5886:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4112,"name":"_miniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4096,"src":"5897:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5886:20:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4114,"nodeType":"ExpressionStatement","src":"5886:20:16"}]},"documentation":{"id":4094,"nodeType":"StructuredDocumentation","src":"5638:110:16","text":"@notice Sets the MiniChef address to collect rewards from\n @param _miniChef - New MiniChef address"},"functionSelector":"572996c7","id":4116,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4099,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"5812:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4100,"kind":"modifierInvocation","modifierName":{"id":4098,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5803:8:16"},"nodeType":"ModifierInvocation","src":"5803:28:16"}],"name":"setMiniChef","nameLocation":"5763:11:16","nodeType":"FunctionDefinition","parameters":{"id":4097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4096,"mutability":"mutable","name":"_miniChef","nameLocation":"5783:9:16","nodeType":"VariableDeclaration","scope":4116,"src":"5775:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4095,"name":"address","nodeType":"ElementaryTypeName","src":"5775:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5774:19:16"},"returnParameters":{"id":4101,"nodeType":"ParameterList","parameters":[],"src":"5832:0:16"},"scope":4864,"src":"5754:160:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4129,"nodeType":"Block","src":"6131:40:16","statements":[{"expression":{"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4125,"name":"miniChefPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3810,"src":"6142:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4126,"name":"_pid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"6159:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6142:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4128,"nodeType":"ExpressionStatement","src":"6142:21:16"}]},"documentation":{"id":4117,"nodeType":"StructuredDocumentation","src":"5922:126:16","text":"@notice Sets the MiniChef pool used to accumulate rewards from emissions\n @param _pid - ID of the pool on MiniChef"},"functionSelector":"3792a7fb","id":4130,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4122,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"6111:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4123,"kind":"modifierInvocation","modifierName":{"id":4121,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"6102:8:16"},"nodeType":"ModifierInvocation","src":"6102:28:16"}],"name":"setMiniChefPool","nameLocation":"6063:15:16","nodeType":"FunctionDefinition","parameters":{"id":4120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4119,"mutability":"mutable","name":"_pid","nameLocation":"6087:4:16","nodeType":"VariableDeclaration","scope":4130,"src":"6079:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4118,"name":"uint256","nodeType":"ElementaryTypeName","src":"6079:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6078:14:16"},"returnParameters":{"id":4124,"nodeType":"ParameterList","parameters":[],"src":"6131:0:16"},"scope":4864,"src":"6054:117:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4146,"nodeType":"Block","src":"6416:87:16","statements":[{"expression":{"arguments":[{"id":4143,"name":"_rewardsDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4133,"src":"6478:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4140,"name":"stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"6443:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4139,"name":"IStakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"6427:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStakingRewards_$3754_$","typeString":"type(contract IStakingRewards)"}},"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6427:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStakingRewards_$3754","typeString":"contract IStakingRewards"}},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setRewardsDuration","nodeType":"MemberAccess","referencedDeclaration":3748,"src":"6427:50:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6427:68:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4145,"nodeType":"ExpressionStatement","src":"6427:68:16"}]},"documentation":{"id":4131,"nodeType":"StructuredDocumentation","src":"6179:139:16","text":"@notice Proxy function to set reward duration on the staking contract\n @param _rewardsDuration - the duration of the new period"},"functionSelector":"cc1a378f","id":4147,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4136,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"6396:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4137,"kind":"modifierInvocation","modifierName":{"id":4135,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"6387:8:16"},"nodeType":"ModifierInvocation","src":"6387:28:16"}],"name":"setRewardsDuration","nameLocation":"6333:18:16","nodeType":"FunctionDefinition","parameters":{"id":4134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4133,"mutability":"mutable","name":"_rewardsDuration","nameLocation":"6360:16:16","nodeType":"VariableDeclaration","scope":4147,"src":"6352:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4132,"name":"uint256","nodeType":"ElementaryTypeName","src":"6352:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6351:26:16"},"returnParameters":{"id":4138,"nodeType":"ParameterList","parameters":[],"src":"6416:0:16"},"scope":4864,"src":"6324:179:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4163,"nodeType":"Block","src":"6739:79:16","statements":[{"expression":{"arguments":[{"id":4160,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4150,"src":"6800:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":4157,"name":"stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"6766:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4156,"name":"IStakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"6750:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStakingRewards_$3754_$","typeString":"type(contract IStakingRewards)"}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6750:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStakingRewards_$3754","typeString":"contract IStakingRewards"}},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":3753,"src":"6750:49:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6750:60:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4162,"nodeType":"ExpressionStatement","src":"6750:60:16"}]},"documentation":{"id":4148,"nodeType":"StructuredDocumentation","src":"6511:131:16","text":"@notice Proxy function to change ownership of the staking contract\n @param _newOwner - address to transfer ownership to"},"functionSelector":"cfabe8ed","id":4164,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4153,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"6719:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4154,"kind":"modifierInvocation","modifierName":{"id":4152,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"6710:8:16"},"nodeType":"ModifierInvocation","src":"6710:28:16"}],"name":"transferStakingOwnership","nameLocation":"6657:24:16","nodeType":"FunctionDefinition","parameters":{"id":4151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4150,"mutability":"mutable","name":"_newOwner","nameLocation":"6690:9:16","nodeType":"VariableDeclaration","scope":4164,"src":"6682:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4149,"name":"address","nodeType":"ElementaryTypeName","src":"6682:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6681:19:16"},"returnParameters":{"id":4155,"nodeType":"ParameterList","parameters":[],"src":"6739:0:16"},"scope":4864,"src":"6648:170:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4228,"nodeType":"Block","src":"7429:297:16","statements":[{"expression":{"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4180,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4172,"src":"7440:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4182,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"7463:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4181,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"7449:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7449:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"token0","nodeType":"MemberAccess","referencedDeclaration":3683,"src":"7449:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":4185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7449:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7440:37:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4187,"nodeType":"ExpressionStatement","src":"7440:37:16"},{"expression":{"id":4194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4188,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"7488:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4190,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"7511:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4189,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"7497:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7497:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":3688,"src":"7497:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7497:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7488:37:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4195,"nodeType":"ExpressionStatement","src":"7488:37:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4198,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4172,"src":"7554:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4199,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"7562:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4197,"name":"pairFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4863,"src":"7546:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view returns (address)"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7546:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4201,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"7573:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7546:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642070616972","id":4203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7579:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fc389bc00670d4c2895432c0160675ee55ab241421a2665fe34f10079e93332","typeString":"literal_string \"Invalid pair\""},"value":"Invalid pair"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1fc389bc00670d4c2895432c0160675ee55ab241421a2665fe34f10079e93332","typeString":"literal_string \"Invalid pair\""}],"id":4196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7538:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7538:56:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4205,"nodeType":"ExpressionStatement","src":"7538:56:16"},{"expression":{"arguments":[{"id":4210,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"7633:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4211,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4169,"src":"7639:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4207,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"7614:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4206,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"7607:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"7607:25:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4213,"nodeType":"ExpressionStatement","src":"7607:40:16"},{"expression":{"id":4226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4214,"name":"amount0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4174,"src":"7659:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4215,"name":"amount1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4178,"src":"7668:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4216,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7658:18:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4223,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7712:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7704:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4221,"name":"address","nodeType":"ElementaryTypeName","src":"7704:7:16","typeDescriptions":{}}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7704:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":4218,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"7693:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4217,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"7679:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7679:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":3697,"src":"7679:24:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) external returns (uint256,uint256)"}},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7679:39:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"7658:60:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4227,"nodeType":"ExpressionStatement","src":"7658:60:16"}]},"documentation":{"id":4165,"nodeType":"StructuredDocumentation","src":"6826:391:16","text":"@notice Remove liquidity associated with a pair\n @param pair - The pair from which to retrieve liquidity\n @param balance - The amount to pull\n @return token0 - token0 address of the pair\n @return amount0 - Amount of token0 received via burn\n @return token1 - token1 address of the pair\n @return amount1 - Amount of token1 received via burn"},"id":4229,"implemented":true,"kind":"function","modifiers":[],"name":"_pullLiquidity","nameLocation":"7232:14:16","nodeType":"FunctionDefinition","parameters":{"id":4170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4167,"mutability":"mutable","name":"pair","nameLocation":"7265:4:16","nodeType":"VariableDeclaration","scope":4229,"src":"7257:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4166,"name":"address","nodeType":"ElementaryTypeName","src":"7257:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4169,"mutability":"mutable","name":"balance","nameLocation":"7288:7:16","nodeType":"VariableDeclaration","scope":4229,"src":"7280:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4168,"name":"uint256","nodeType":"ElementaryTypeName","src":"7280:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:56:16"},"returnParameters":{"id":4179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4172,"mutability":"mutable","name":"token0","nameLocation":"7338:6:16","nodeType":"VariableDeclaration","scope":4229,"src":"7330:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4171,"name":"address","nodeType":"ElementaryTypeName","src":"7330:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4174,"mutability":"mutable","name":"amount0","nameLocation":"7363:7:16","nodeType":"VariableDeclaration","scope":4229,"src":"7355:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4173,"name":"uint256","nodeType":"ElementaryTypeName","src":"7355:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4176,"mutability":"mutable","name":"token1","nameLocation":"7389:6:16","nodeType":"VariableDeclaration","scope":4229,"src":"7381:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4175,"name":"address","nodeType":"ElementaryTypeName","src":"7381:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4178,"mutability":"mutable","name":"amount1","nameLocation":"7414:7:16","nodeType":"VariableDeclaration","scope":4229,"src":"7406:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4177,"name":"uint256","nodeType":"ElementaryTypeName","src":"7406:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7319:109:16"},"scope":4864,"src":"7223:503:16","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4262,"nodeType":"Block","src":"8065:231:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4239,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"8080:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4240,"name":"WRAPPED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"8089:13:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8080:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4242,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"8106:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4243,"name":"WRAPPED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"8121:13:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8106:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8080:54:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4260,"nodeType":"Block","src":"8208:81:16","statements":[{"expression":{"arguments":[{"id":4254,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"8235:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4255,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"8243:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4256,"name":"WRAPPED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"8250:13:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4257,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"8265:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4253,"name":"direct3Swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4745,"src":"8223:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address,address)"}},"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8223:54:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4259,"nodeType":"ExpressionStatement","src":"8223:54:16"}]},"id":4261,"nodeType":"IfStatement","src":"8076:213:16","trueBody":{"id":4252,"nodeType":"Block","src":"8136:66:16","statements":[{"expression":{"arguments":[{"id":4247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"8163:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4248,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"8171:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4249,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"8178:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4246,"name":"direct2Swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4623,"src":"8151:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address)"}},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8151:39:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4251,"nodeType":"ExpressionStatement","src":"8151:39:16"}]}}]},"documentation":{"id":4230,"nodeType":"StructuredDocumentation","src":"7734:250:16","text":"@notice Swap a token for the specified output token\n @param token - address of the token to swap\n @param amount - amount of the token to swap\n @dev Swaps are executed directly against pairs with infinite slippage tolerance"},"id":4263,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nameLocation":"7999:5:16","nodeType":"FunctionDefinition","parameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4232,"mutability":"mutable","name":"token","nameLocation":"8013:5:16","nodeType":"VariableDeclaration","scope":4263,"src":"8005:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4231,"name":"address","nodeType":"ElementaryTypeName","src":"8005:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4234,"mutability":"mutable","name":"outputToken","nameLocation":"8028:11:16","nodeType":"VariableDeclaration","scope":4263,"src":"8020:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4233,"name":"address","nodeType":"ElementaryTypeName","src":"8020:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"amount","nameLocation":"8049:6:16","nodeType":"VariableDeclaration","scope":4263,"src":"8041:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4235,"name":"uint256","nodeType":"ElementaryTypeName","src":"8041:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8004:52:16"},"returnParameters":{"id":4238,"nodeType":"ParameterList","parameters":[],"src":"8065:0:16"},"scope":4864,"src":"7990:306:16","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4345,"nodeType":"Block","src":"8649:771:16","statements":[{"body":{"id":4343,"nodeType":"Block","src":"8708:705:16","statements":[{"assignments":[4285],"declarations":[{"constant":false,"id":4285,"mutability":"mutable","name":"liquidityPair","nameLocation":"8737:13:16","nodeType":"VariableDeclaration","scope":4343,"src":"8723:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"},"typeName":{"id":4284,"nodeType":"UserDefinedTypeName","pathNode":{"id":4283,"name":"IPangolinPair","nodeType":"IdentifierPath","referencedDeclaration":3725,"src":"8723:13:16"},"referencedDeclaration":3725,"src":"8723:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"visibility":"internal"}],"id":4289,"initialValue":{"baseExpression":{"id":4286,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"8753:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_memory_ptr","typeString":"contract IPangolinPair[] memory"}},"id":4288,"indexExpression":{"id":4287,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4274,"src":"8768:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8753:17:16","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"nodeType":"VariableDeclarationStatement","src":"8723:47:16"},{"assignments":[4291],"declarations":[{"constant":false,"id":4291,"mutability":"mutable","name":"pglBalance","nameLocation":"8793:10:16","nodeType":"VariableDeclaration","scope":4343,"src":"8785:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4290,"name":"uint256","nodeType":"ElementaryTypeName","src":"8785:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4299,"initialValue":{"arguments":[{"arguments":[{"id":4296,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8838:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8830:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4294,"name":"address","nodeType":"ElementaryTypeName","src":"8830:7:16","typeDescriptions":{}}},"id":4297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8830:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4292,"name":"liquidityPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"8806:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"8806:23:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8806:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8785:59:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4300,"name":"pglBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4291,"src":"8863:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8876:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8863:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4342,"nodeType":"IfStatement","src":"8859:543:16","trueBody":{"id":4341,"nodeType":"Block","src":"8879:523:16","statements":[{"assignments":[4304,4306,4308,4310],"declarations":[{"constant":false,"id":4304,"mutability":"mutable","name":"token0","nameLocation":"8929:6:16","nodeType":"VariableDeclaration","scope":4341,"src":"8921:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4303,"name":"address","nodeType":"ElementaryTypeName","src":"8921:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4306,"mutability":"mutable","name":"token0Pulled","nameLocation":"8966:12:16","nodeType":"VariableDeclaration","scope":4341,"src":"8958:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4305,"name":"uint256","nodeType":"ElementaryTypeName","src":"8958:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4308,"mutability":"mutable","name":"token1","nameLocation":"9009:6:16","nodeType":"VariableDeclaration","scope":4341,"src":"9001:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4307,"name":"address","nodeType":"ElementaryTypeName","src":"9001:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4310,"mutability":"mutable","name":"token1Pulled","nameLocation":"9046:12:16","nodeType":"VariableDeclaration","scope":4341,"src":"9038:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4309,"name":"uint256","nodeType":"ElementaryTypeName","src":"9038:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4318,"initialValue":{"arguments":[{"arguments":[{"id":4314,"name":"liquidityPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"9103:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}],"id":4313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9095:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4312,"name":"address","nodeType":"ElementaryTypeName","src":"9095:7:16","typeDescriptions":{}}},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9095:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4316,"name":"pglBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4291,"src":"9119:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4311,"name":"_pullLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"9080:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$_t_uint256_$_t_address_$_t_uint256_$","typeString":"function (address,uint256) returns (address,uint256,address,uint256)"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9080:50:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256,address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8898:232:16"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4319,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4304,"src":"9153:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4320,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"9163:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9153:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4329,"nodeType":"IfStatement","src":"9149:110:16","trueBody":{"id":4328,"nodeType":"Block","src":"9176:83:16","statements":[{"expression":{"arguments":[{"id":4323,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4304,"src":"9205:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4324,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"9213:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4325,"name":"token0Pulled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"9226:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4322,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4263,"src":"9199:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9199:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4327,"nodeType":"ExpressionStatement","src":"9199:40:16"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4330,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4308,"src":"9281:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4331,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"9291:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9281:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4340,"nodeType":"IfStatement","src":"9277:110:16","trueBody":{"id":4339,"nodeType":"Block","src":"9304:83:16","statements":[{"expression":{"arguments":[{"id":4334,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4308,"src":"9333:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4335,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"9341:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4336,"name":"token1Pulled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4310,"src":"9354:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4333,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4263,"src":"9327:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9327:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4338,"nodeType":"ExpressionStatement","src":"9327:40:16"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4274,"src":"8676:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4277,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"8680:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_memory_ptr","typeString":"contract IPangolinPair[] memory"}},"id":4278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8680:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8676:25:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4344,"initializationExpression":{"assignments":[4274],"declarations":[{"constant":false,"id":4274,"mutability":"mutable","name":"i","nameLocation":"8673:1:16","nodeType":"VariableDeclaration","scope":4344,"src":"8665:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4273,"name":"uint256","nodeType":"ElementaryTypeName","src":"8665:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4275,"nodeType":"VariableDeclarationStatement","src":"8665:9:16"},"loopExpression":{"expression":{"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8703:3:16","subExpression":{"id":4280,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4274,"src":"8705:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4282,"nodeType":"ExpressionStatement","src":"8703:3:16"},"nodeType":"ForStatement","src":"8660:753:16"}]},"documentation":{"id":4264,"nodeType":"StructuredDocumentation","src":"8304:244:16","text":"@notice For a list of liquidity pairs, withdraws all liquidity and swaps it to a specified token\n @param liquidityPairs - list of all the pairs to pull\n @param outputToken - the token into which all liquidity will be swapped"},"id":4346,"implemented":true,"kind":"function","modifiers":[],"name":"_convertLiquidity","nameLocation":"8563:17:16","nodeType":"FunctionDefinition","parameters":{"id":4271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4268,"mutability":"mutable","name":"liquidityPairs","nameLocation":"8604:14:16","nodeType":"VariableDeclaration","scope":4346,"src":"8581:37:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_memory_ptr","typeString":"contract IPangolinPair[]"},"typeName":{"baseType":{"id":4266,"nodeType":"UserDefinedTypeName","pathNode":{"id":4265,"name":"IPangolinPair","nodeType":"IdentifierPath","referencedDeclaration":3725,"src":"8581:13:16"},"referencedDeclaration":3725,"src":"8581:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4267,"nodeType":"ArrayTypeName","src":"8581:15:16","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_storage_ptr","typeString":"contract IPangolinPair[]"}},"visibility":"internal"},{"constant":false,"id":4270,"mutability":"mutable","name":"outputToken","nameLocation":"8628:11:16","nodeType":"VariableDeclaration","scope":4346,"src":"8620:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4269,"name":"address","nodeType":"ElementaryTypeName","src":"8620:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8580:60:16"},"returnParameters":{"id":4272,"nodeType":"ParameterList","parameters":[],"src":"8649:0:16"},"scope":4864,"src":"8554:866:16","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4486,"nodeType":"Block","src":"10019:1293:16","statements":[{"assignments":[4364],"declarations":[{"constant":false,"id":4364,"mutability":"mutable","name":"_stakingRewardsRewardToken","nameLocation":"10038:26:16","nodeType":"VariableDeclaration","scope":4486,"src":"10030:34:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4363,"name":"address","nodeType":"ElementaryTypeName","src":"10030:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4366,"initialValue":{"id":4365,"name":"stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"10067:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10030:62:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4367,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"10124:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptr","typeString":"contract IPangolinPair[] calldata"}},"id":4368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10124:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10148:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10124:25:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4377,"nodeType":"IfStatement","src":"10120:119:16","trueBody":{"id":4376,"nodeType":"Block","src":"10151:88:16","statements":[{"expression":{"arguments":[{"id":4372,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"10184:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptr","typeString":"contract IPangolinPair[] calldata"}},{"id":4373,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"10200:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptr","typeString":"contract IPangolinPair[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4371,"name":"_convertLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"10166:17:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_contract$_IPangolinPair_$3725_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (contract IPangolinPair[] memory,address)"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10166:61:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4375,"nodeType":"ExpressionStatement","src":"10166:61:16"}]}},{"condition":{"id":4378,"name":"claimMiniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"10255:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4391,"nodeType":"IfStatement","src":"10251:104:16","trueBody":{"id":4390,"nodeType":"Block","src":"10270:85:16","statements":[{"expression":{"arguments":[{"id":4383,"name":"miniChefPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3810,"src":"10313:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":4386,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10337:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10329:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4384,"name":"address","nodeType":"ElementaryTypeName","src":"10329:7:16","typeDescriptions":{}}},"id":4387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10329:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":4380,"name":"miniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"10295:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4379,"name":"IMiniChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"10285:9:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiniChef_$3733_$","typeString":"type(contract IMiniChef)"}},"id":4381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10285:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiniChef_$3733","typeString":"contract IMiniChef"}},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"harvest","nodeType":"MemberAccess","referencedDeclaration":3732,"src":"10285:27:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":4388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10285:58:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4389,"nodeType":"ExpressionStatement","src":"10285:58:16"}]}},{"assignments":[4393],"declarations":[{"constant":false,"id":4393,"mutability":"mutable","name":"finalBalance","nameLocation":"10375:12:16","nodeType":"VariableDeclaration","scope":4486,"src":"10367:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4392,"name":"uint256","nodeType":"ElementaryTypeName","src":"10367:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4403,"initialValue":{"arguments":[{"arguments":[{"id":4400,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10443:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10435:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4398,"name":"address","nodeType":"ElementaryTypeName","src":"10435:7:16","typeDescriptions":{}}},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10435:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":4395,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"10397:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4394,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"10390:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10390:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":644,"src":"10390:44:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10390:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10367:82:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4405,"name":"finalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4393,"src":"10468:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4406,"name":"minFinalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4355,"src":"10484:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10468:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4869676820536c697070616765","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10501:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_170fb541e2b36e11ce629c830863665c9d83f3af17f1866063a64770ae59bed1","typeString":"literal_string \"High Slippage\""},"value":"High Slippage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_170fb541e2b36e11ce629c830863665c9d83f3af17f1866063a64770ae59bed1","typeString":"literal_string \"High Slippage\""}],"id":4404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10460:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10460:57:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4410,"nodeType":"ExpressionStatement","src":"10460:57:16"},{"assignments":[4412],"declarations":[{"constant":false,"id":4412,"mutability":"mutable","name":"_callIncentive","nameLocation":"10538:14:16","nodeType":"VariableDeclaration","scope":4486,"src":"10530:22:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4411,"name":"uint256","nodeType":"ElementaryTypeName","src":"10530:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4418,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4413,"name":"finalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4393,"src":"10555:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4414,"name":"harvestIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"10570:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10555:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4416,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3791,"src":"10589:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10555:49:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10530:74:16"},{"assignments":[4420],"declarations":[{"constant":false,"id":4420,"mutability":"mutable","name":"_treasuryFee","nameLocation":"10623:12:16","nodeType":"VariableDeclaration","scope":4486,"src":"10615:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4419,"name":"uint256","nodeType":"ElementaryTypeName","src":"10615:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4426,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4421,"name":"finalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4393,"src":"10638:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4422,"name":"treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"10653:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10638:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4424,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3791,"src":"10667:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10638:44:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10615:67:16"},{"assignments":[4428],"declarations":[{"constant":false,"id":4428,"mutability":"mutable","name":"_totalRewards","nameLocation":"10701:13:16","nodeType":"VariableDeclaration","scope":4486,"src":"10693:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4427,"name":"uint256","nodeType":"ElementaryTypeName","src":"10693:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4434,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4429,"name":"finalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4393,"src":"10717:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4430,"name":"_callIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"10732:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10717:29:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4432,"name":"_treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"10749:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10717:44:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10693:68:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4435,"name":"_totalRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10778:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10794:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10778:17:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4458,"nodeType":"IfStatement","src":"10774:265:16","trueBody":{"id":4457,"nodeType":"Block","src":"10797:242:16","statements":[{"assignments":[4439],"declarations":[{"constant":false,"id":4439,"mutability":"mutable","name":"_stakingRewards","nameLocation":"10820:15:16","nodeType":"VariableDeclaration","scope":4457,"src":"10812:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4438,"name":"address","nodeType":"ElementaryTypeName","src":"10812:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4441,"initialValue":{"id":4440,"name":"stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"10838:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10812:40:16"},{"expression":{"arguments":[{"id":4446,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"10915:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4447,"name":"_totalRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10932:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4443,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"10874:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4442,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"10867:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10867:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"10867:47:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10867:79:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4449,"nodeType":"ExpressionStatement","src":"10867:79:16"},{"expression":{"arguments":[{"id":4454,"name":"_totalRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"11013:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4451,"name":"_stakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"10977:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4450,"name":"IStakingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"10961:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStakingRewards_$3754_$","typeString":"type(contract IStakingRewards)"}},"id":4452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10961:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStakingRewards_$3754","typeString":"contract IStakingRewards"}},"id":4453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"notifyRewardAmount","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"10961:51:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10961:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4456,"nodeType":"ExpressionStatement","src":"10961:66:16"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4459,"name":"_treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"11053:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11068:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11053:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4471,"nodeType":"IfStatement","src":"11049:120:16","trueBody":{"id":4470,"nodeType":"Block","src":"11071:98:16","statements":[{"expression":{"arguments":[{"id":4466,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"11134:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4467,"name":"_treasuryFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"11144:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4463,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"11093:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4462,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"11086:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11086:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"11086:47:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11086:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4469,"nodeType":"ExpressionStatement","src":"11086:71:16"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4472,"name":"_callIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"11183:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11200:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11183:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4485,"nodeType":"IfStatement","src":"11179:126:16","trueBody":{"id":4484,"nodeType":"Block","src":"11203:102:16","statements":[{"expression":{"arguments":[{"expression":{"id":4479,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11266:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11266:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4481,"name":"_callIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"11278:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4476,"name":"_stakingRewardsRewardToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"11225:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4475,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"11218:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11218:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"11218:47:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11218:75:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4483,"nodeType":"ExpressionStatement","src":"11218:75:16"}]}}]},"documentation":{"id":4347,"nodeType":"StructuredDocumentation","src":"9428:402:16","text":"@notice - Converts all the LP tokens specified to the rewards token and\n transfers it to the staking contract, treasury, and caller\n @param liquidityPairs - list of all the pairs to harvest\n @param claimMiniChef - whether to also harvest additional rewards accrued via MiniChef\n @param minFinalBalance - required min png balance after the buybacks (slippage control)"},"functionSelector":"635cc7b8","id":4487,"implemented":true,"kind":"function","modifiers":[{"id":4358,"kind":"modifierInvocation","modifierName":{"id":4357,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":536,"src":"9982:13:16"},"nodeType":"ModifierInvocation","src":"9982:13:16"},{"arguments":[{"id":4360,"name":"HARVEST_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"10005:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4361,"kind":"modifierInvocation","modifierName":{"id":4359,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"9996:8:16"},"nodeType":"ModifierInvocation","src":"9996:22:16"}],"name":"harvest","nameLocation":"9845:7:16","nodeType":"FunctionDefinition","parameters":{"id":4356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"liquidityPairs","nameLocation":"9888:14:16","nodeType":"VariableDeclaration","scope":4487,"src":"9863:39:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptr","typeString":"contract IPangolinPair[]"},"typeName":{"baseType":{"id":4349,"nodeType":"UserDefinedTypeName","pathNode":{"id":4348,"name":"IPangolinPair","nodeType":"IdentifierPath","referencedDeclaration":3725,"src":"9863:13:16"},"referencedDeclaration":3725,"src":"9863:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4350,"nodeType":"ArrayTypeName","src":"9863:15:16","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IPangolinPair_$3725_$dyn_storage_ptr","typeString":"contract IPangolinPair[]"}},"visibility":"internal"},{"constant":false,"id":4353,"mutability":"mutable","name":"claimMiniChef","nameLocation":"9918:13:16","nodeType":"VariableDeclaration","scope":4487,"src":"9913:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4352,"name":"bool","nodeType":"ElementaryTypeName","src":"9913:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4355,"mutability":"mutable","name":"minFinalBalance","nameLocation":"9950:15:16","nodeType":"VariableDeclaration","scope":4487,"src":"9942:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4354,"name":"uint256","nodeType":"ElementaryTypeName","src":"9942:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9852:120:16"},"returnParameters":{"id":4362,"nodeType":"ParameterList","parameters":[],"src":"10019:0:16"},"scope":4864,"src":"9836:1476:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4550,"nodeType":"Block","src":"11670:374:16","statements":[{"assignments":[4500],"declarations":[{"constant":false,"id":4500,"mutability":"mutable","name":"_treasury","nameLocation":"11689:9:16","nodeType":"VariableDeclaration","scope":4550,"src":"11681:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4499,"name":"address","nodeType":"ElementaryTypeName","src":"11681:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4502,"initialValue":{"id":4501,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"11701:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11681:28:16"},{"assignments":[4504],"declarations":[{"constant":false,"id":4504,"mutability":"mutable","name":"len","nameLocation":"11728:3:16","nodeType":"VariableDeclaration","scope":4550,"src":"11720:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4503,"name":"uint256","nodeType":"ElementaryTypeName","src":"11720:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4507,"initialValue":{"expression":{"id":4505,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"11734:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11734:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11720:35:16"},{"body":{"id":4548,"nodeType":"Block","src":"11796:241:16","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4518,"name":"isRecoverable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3814,"src":"11819:13:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4522,"indexExpression":{"baseExpression":{"id":4519,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"11833:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":4521,"indexExpression":{"id":4520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4509,"src":"11848:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11833:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11819:32:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f74207265636f766572","id":4523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11853:16:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_356fa128b111a78c16f9f5610237700b9b03c95c9cf18624beceff426daa62b1","typeString":"literal_string \"Cannot recover\""},"value":"Cannot recover"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_356fa128b111a78c16f9f5610237700b9b03c95c9cf18624beceff426daa62b1","typeString":"literal_string \"Cannot recover\""}],"id":4517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11811:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11811:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4525,"nodeType":"ExpressionStatement","src":"11811:59:16"},{"assignments":[4528],"declarations":[{"constant":false,"id":4528,"mutability":"mutable","name":"liquidityPair","nameLocation":"11892:13:16","nodeType":"VariableDeclaration","scope":4548,"src":"11885:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"},"typeName":{"id":4527,"nodeType":"UserDefinedTypeName","pathNode":{"id":4526,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":687,"src":"11885:6:16"},"referencedDeclaration":687,"src":"11885:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"visibility":"internal"}],"id":4534,"initialValue":{"arguments":[{"baseExpression":{"id":4530,"name":"liquidityPairs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"11915:14:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":4532,"indexExpression":{"id":4531,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4509,"src":"11930:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11915:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4529,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"11908:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11908:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"11885:48:16"},{"expression":{"arguments":[{"id":4538,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"11975:9:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":4543,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12018:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12010:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4541,"name":"address","nodeType":"ElementaryTypeName","src":"12010:7:16","typeDescriptions":{}}},"id":4544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12010:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4539,"name":"liquidityPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"11986:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":644,"src":"11986:23:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":4545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11986:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4535,"name":"liquidityPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"11948:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"11948:26:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11948:77:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4547,"nodeType":"ExpressionStatement","src":"11948:77:16"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4509,"src":"11782:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4512,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"11786:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11782:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4549,"initializationExpression":{"assignments":[4509],"declarations":[{"constant":false,"id":4509,"mutability":"mutable","name":"i","nameLocation":"11779:1:16","nodeType":"VariableDeclaration","scope":4549,"src":"11771:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4508,"name":"uint256","nodeType":"ElementaryTypeName","src":"11771:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4510,"nodeType":"VariableDeclarationStatement","src":"11771:9:16"},"loopExpression":{"expression":{"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11791:3:16","subExpression":{"id":4514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4509,"src":"11793:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4516,"nodeType":"ExpressionStatement","src":"11791:3:16"},"nodeType":"ForStatement","src":"11766:271:16"}]},"documentation":{"id":4488,"nodeType":"StructuredDocumentation","src":"11320:238:16","text":"@notice Recovers LP tokens to the treasury. Requires LP is whitelisted by the RECOVERY_ROLE\n @param liquidityPairs - list of all the pairs to recover\n @dev Intended to recover LP involving a token with fees on transfer"},"functionSelector":"ce306b80","id":4551,"implemented":true,"kind":"function","modifiers":[{"id":4494,"kind":"modifierInvocation","modifierName":{"id":4493,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":536,"src":"11627:13:16"},"nodeType":"ModifierInvocation","src":"11627:13:16"},{"arguments":[{"id":4496,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"11650:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4497,"kind":"modifierInvocation","modifierName":{"id":4495,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"11641:8:16"},"nodeType":"ModifierInvocation","src":"11641:28:16"}],"name":"recoverLP","nameLocation":"11573:9:16","nodeType":"FunctionDefinition","parameters":{"id":4492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4491,"mutability":"mutable","name":"liquidityPairs","nameLocation":"11602:14:16","nodeType":"VariableDeclaration","scope":4551,"src":"11583:33:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4489,"name":"address","nodeType":"ElementaryTypeName","src":"11583:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4490,"nodeType":"ArrayTypeName","src":"11583:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11582:35:16"},"returnParameters":{"id":4498,"nodeType":"ParameterList","parameters":[],"src":"11670:0:16"},"scope":4864,"src":"11564:480:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4622,"nodeType":"Block","src":"12132:433:16","statements":[{"assignments":[4561],"declarations":[{"constant":false,"id":4561,"mutability":"mutable","name":"pairAB","nameLocation":"12151:6:16","nodeType":"VariableDeclaration","scope":4622,"src":"12143:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4560,"name":"address","nodeType":"ElementaryTypeName","src":"12143:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4566,"initialValue":{"arguments":[{"id":4563,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"12168:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4564,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"12176:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4562,"name":"pairFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4863,"src":"12160:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view returns (address)"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12160:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12143:40:16"},{"assignments":[4568],"declarations":[{"constant":false,"id":4568,"mutability":"mutable","name":"amountOutAB","nameLocation":"12204:11:16","nodeType":"VariableDeclaration","scope":4622,"src":"12196:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4567,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4575,"initialValue":{"arguments":[{"id":4570,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"12231:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4571,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"12241:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4572,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"12249:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4573,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"12257:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4569,"name":"getAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4811,"src":"12218:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address) view returns (uint256)"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12218:46:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12196:68:16"},{"expression":{"arguments":[{"id":4580,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"12305:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4581,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"12313:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4577,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"12284:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4576,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"12277:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12277:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"12277:27:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12277:45:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4583,"nodeType":"ExpressionStatement","src":"12277:45:16"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4584,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"12339:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4585,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"12348:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12339:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4620,"nodeType":"Block","src":"12460:98:16","statements":[{"expression":{"arguments":[{"id":4608,"name":"amountOutAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4568,"src":"12502:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":4609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12515:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":4612,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12526:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12518:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4610,"name":"address","nodeType":"ElementaryTypeName","src":"12518:7:16","typeDescriptions":{}}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12518:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12543:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12533:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4614,"name":"bytes","nodeType":"ElementaryTypeName","src":"12537:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12533:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4605,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"12489:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4604,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"12475:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12475:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":3708,"src":"12475:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":4618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12475:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4619,"nodeType":"ExpressionStatement","src":"12475:71:16"}]},"id":4621,"nodeType":"IfStatement","src":"12335:223:16","trueBody":{"id":4603,"nodeType":"Block","src":"12356:98:16","statements":[{"expression":{"arguments":[{"hexValue":"30","id":4591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12398:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4592,"name":"amountOutAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4568,"src":"12401:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":4595,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12422:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12414:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4593,"name":"address","nodeType":"ElementaryTypeName","src":"12414:7:16","typeDescriptions":{}}},"id":4596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12414:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12439:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12429:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4597,"name":"bytes","nodeType":"ElementaryTypeName","src":"12433:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12429:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4588,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"12385:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4587,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"12371:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12371:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":3708,"src":"12371:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":4601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12371:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4602,"nodeType":"ExpressionStatement","src":"12371:71:16"}]}}]},"id":4623,"implemented":true,"kind":"function","modifiers":[],"name":"direct2Swap","nameLocation":"12061:11:16","nodeType":"FunctionDefinition","parameters":{"id":4558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4553,"mutability":"mutable","name":"amountIn","nameLocation":"12081:8:16","nodeType":"VariableDeclaration","scope":4623,"src":"12073:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4552,"name":"uint256","nodeType":"ElementaryTypeName","src":"12073:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4555,"mutability":"mutable","name":"tokenA","nameLocation":"12099:6:16","nodeType":"VariableDeclaration","scope":4623,"src":"12091:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4554,"name":"address","nodeType":"ElementaryTypeName","src":"12091:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4557,"mutability":"mutable","name":"tokenB","nameLocation":"12115:6:16","nodeType":"VariableDeclaration","scope":4623,"src":"12107:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4556,"name":"address","nodeType":"ElementaryTypeName","src":"12107:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12072:50:16"},"returnParameters":{"id":4559,"nodeType":"ParameterList","parameters":[],"src":"12132:0:16"},"scope":4864,"src":"12052:513:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4744,"nodeType":"Block","src":"12669:787:16","statements":[{"assignments":[4635],"declarations":[{"constant":false,"id":4635,"mutability":"mutable","name":"pairAB","nameLocation":"12688:6:16","nodeType":"VariableDeclaration","scope":4744,"src":"12680:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4634,"name":"address","nodeType":"ElementaryTypeName","src":"12680:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4640,"initialValue":{"arguments":[{"id":4637,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"12705:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4638,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"12713:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4636,"name":"pairFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4863,"src":"12697:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view returns (address)"}},"id":4639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12697:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12680:40:16"},{"assignments":[4642],"declarations":[{"constant":false,"id":4642,"mutability":"mutable","name":"pairBC","nameLocation":"12739:6:16","nodeType":"VariableDeclaration","scope":4744,"src":"12731:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4641,"name":"address","nodeType":"ElementaryTypeName","src":"12731:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4647,"initialValue":{"arguments":[{"id":4644,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"12756:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4645,"name":"tokenC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4631,"src":"12764:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4643,"name":"pairFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4863,"src":"12748:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view returns (address)"}},"id":4646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12748:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12731:40:16"},{"assignments":[4649],"declarations":[{"constant":false,"id":4649,"mutability":"mutable","name":"amountOutAB","nameLocation":"12792:11:16","nodeType":"VariableDeclaration","scope":4744,"src":"12784:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4648,"name":"uint256","nodeType":"ElementaryTypeName","src":"12784:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4656,"initialValue":{"arguments":[{"id":4651,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4625,"src":"12819:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4652,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4635,"src":"12829:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4653,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"12837:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4654,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"12845:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4650,"name":"getAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4811,"src":"12806:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address) view returns (uint256)"}},"id":4655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12806:46:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12784:68:16"},{"assignments":[4658],"declarations":[{"constant":false,"id":4658,"mutability":"mutable","name":"amountOutBC","nameLocation":"12871:11:16","nodeType":"VariableDeclaration","scope":4744,"src":"12863:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4657,"name":"uint256","nodeType":"ElementaryTypeName","src":"12863:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4665,"initialValue":{"arguments":[{"id":4660,"name":"amountOutAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"12898:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4661,"name":"pairBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"12911:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4662,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"12919:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4663,"name":"tokenC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4631,"src":"12927:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4659,"name":"getAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4811,"src":"12885:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address) view returns (uint256)"}},"id":4664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12885:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12863:71:16"},{"expression":{"arguments":[{"id":4670,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4635,"src":"12975:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4671,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4625,"src":"12983:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4667,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"12954:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4666,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"12947:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$687_$","typeString":"type(contract IERC20)"}},"id":4668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12947:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$687","typeString":"contract IERC20"}},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":755,"src":"12947:27:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$687_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$687_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12947:45:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4673,"nodeType":"ExpressionStatement","src":"12947:45:16"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4674,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"13009:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4675,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"13018:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13009:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4704,"nodeType":"Block","src":"13123:91:16","statements":[{"expression":{"arguments":[{"id":4695,"name":"amountOutAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"13165:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":4696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13178:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4697,"name":"pairBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"13181:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13199:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13189:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4698,"name":"bytes","nodeType":"ElementaryTypeName","src":"13193:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13189:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4692,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4635,"src":"13152:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4691,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"13138:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13138:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":3708,"src":"13138:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13138:64:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4703,"nodeType":"ExpressionStatement","src":"13138:64:16"}]},"id":4705,"nodeType":"IfStatement","src":"13005:209:16","trueBody":{"id":4690,"nodeType":"Block","src":"13026:91:16","statements":[{"expression":{"arguments":[{"hexValue":"30","id":4681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13068:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4682,"name":"amountOutAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"13071:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4683,"name":"pairBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"13084:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13102:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13092:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4684,"name":"bytes","nodeType":"ElementaryTypeName","src":"13096:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13092:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4678,"name":"pairAB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4635,"src":"13055:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4677,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"13041:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13041:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":3708,"src":"13041:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":4688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13041:64:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4689,"nodeType":"ExpressionStatement","src":"13041:64:16"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4706,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"13230:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4707,"name":"tokenC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4631,"src":"13239:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13230:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4742,"nodeType":"Block","src":"13351:98:16","statements":[{"expression":{"arguments":[{"id":4730,"name":"amountOutBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"13393:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":4731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13406:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":4734,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13417:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13409:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4732,"name":"address","nodeType":"ElementaryTypeName","src":"13409:7:16","typeDescriptions":{}}},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13409:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13434:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13424:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4736,"name":"bytes","nodeType":"ElementaryTypeName","src":"13428:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13424:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4727,"name":"pairBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"13380:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4726,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"13366:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13366:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":3708,"src":"13366:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":4740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13366:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4741,"nodeType":"ExpressionStatement","src":"13366:71:16"}]},"id":4743,"nodeType":"IfStatement","src":"13226:223:16","trueBody":{"id":4725,"nodeType":"Block","src":"13247:98:16","statements":[{"expression":{"arguments":[{"hexValue":"30","id":4713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13289:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4714,"name":"amountOutBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"13292:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":4717,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13313:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FeeCollector_$4864","typeString":"contract FeeCollector"}],"id":4716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13305:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4715,"name":"address","nodeType":"ElementaryTypeName","src":"13305:7:16","typeDescriptions":{}}},"id":4718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13305:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13330:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13320:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4719,"name":"bytes","nodeType":"ElementaryTypeName","src":"13324:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13320:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4710,"name":"pairBC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"13276:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4709,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"13262:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13262:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":3708,"src":"13262:26:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":4723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13262:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4724,"nodeType":"ExpressionStatement","src":"13262:71:16"}]}}]},"id":4745,"implemented":true,"kind":"function","modifiers":[],"name":"direct3Swap","nameLocation":"12582:11:16","nodeType":"FunctionDefinition","parameters":{"id":4632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4625,"mutability":"mutable","name":"amountIn","nameLocation":"12602:8:16","nodeType":"VariableDeclaration","scope":4745,"src":"12594:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4624,"name":"uint256","nodeType":"ElementaryTypeName","src":"12594:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4627,"mutability":"mutable","name":"tokenA","nameLocation":"12620:6:16","nodeType":"VariableDeclaration","scope":4745,"src":"12612:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4626,"name":"address","nodeType":"ElementaryTypeName","src":"12612:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4629,"mutability":"mutable","name":"tokenB","nameLocation":"12636:6:16","nodeType":"VariableDeclaration","scope":4745,"src":"12628:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4628,"name":"address","nodeType":"ElementaryTypeName","src":"12628:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4631,"mutability":"mutable","name":"tokenC","nameLocation":"12652:6:16","nodeType":"VariableDeclaration","scope":4745,"src":"12644:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4630,"name":"address","nodeType":"ElementaryTypeName","src":"12644:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12593:66:16"},"returnParameters":{"id":4633,"nodeType":"ParameterList","parameters":[],"src":"12669:0:16"},"scope":4864,"src":"12573:883:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4810,"nodeType":"Block","src":"13753:433:16","statements":[{"assignments":[4759,4761,null],"declarations":[{"constant":false,"id":4759,"mutability":"mutable","name":"reserve0","nameLocation":"13773:8:16","nodeType":"VariableDeclaration","scope":4810,"src":"13765:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4758,"name":"uint256","nodeType":"ElementaryTypeName","src":"13765:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4761,"mutability":"mutable","name":"reserve1","nameLocation":"13791:8:16","nodeType":"VariableDeclaration","scope":4810,"src":"13783:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4760,"name":"uint256","nodeType":"ElementaryTypeName","src":"13783:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":4767,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4763,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"13818:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4762,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"13804:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$3725_$","typeString":"type(contract IPangolinPair)"}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13804:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$3725","typeString":"contract IPangolinPair"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":3717,"src":"13804:31:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13804:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"13764:73:16"},{"assignments":[4769,4771],"declarations":[{"constant":false,"id":4769,"mutability":"mutable","name":"reserveIn","nameLocation":"13857:9:16","nodeType":"VariableDeclaration","scope":4810,"src":"13849:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4768,"name":"uint256","nodeType":"ElementaryTypeName","src":"13849:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4771,"mutability":"mutable","name":"reserveOut","nameLocation":"13876:10:16","nodeType":"VariableDeclaration","scope":4810,"src":"13868:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4770,"name":"uint256","nodeType":"ElementaryTypeName","src":"13868:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4782,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4772,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"13890:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4773,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"13899:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13890:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":4778,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"13932:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4779,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4759,"src":"13942:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4780,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13931:20:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13890:61:16","trueExpression":{"components":[{"id":4775,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4759,"src":"13909:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4776,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"13919:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4777,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13908:20:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13848:103:16"},{"assignments":[4784],"declarations":[{"constant":false,"id":4784,"mutability":"mutable","name":"amountInWithFee","nameLocation":"13972:15:16","nodeType":"VariableDeclaration","scope":4810,"src":"13964:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4783,"name":"uint256","nodeType":"ElementaryTypeName","src":"13964:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4788,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4785,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4747,"src":"13990:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"393937","id":4786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14001:3:16","typeDescriptions":{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"},"value":"997"},"src":"13990:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13964:40:16"},{"assignments":[4790],"declarations":[{"constant":false,"id":4790,"mutability":"mutable","name":"numerator","nameLocation":"14023:9:16","nodeType":"VariableDeclaration","scope":4810,"src":"14015:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4789,"name":"uint256","nodeType":"ElementaryTypeName","src":"14015:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4794,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4791,"name":"amountInWithFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"14035:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4792,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4771,"src":"14053:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14035:28:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14015:48:16"},{"assignments":[4796],"declarations":[{"constant":false,"id":4796,"mutability":"mutable","name":"denominator","nameLocation":"14082:11:16","nodeType":"VariableDeclaration","scope":4810,"src":"14074:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4795,"name":"uint256","nodeType":"ElementaryTypeName","src":"14074:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4803,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4797,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4769,"src":"14097:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31303030","id":4798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14109:4:16","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"14097:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4800,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14096:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4801,"name":"amountInWithFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"14117:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14096:36:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14074:58:16"},{"expression":{"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4804,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4756,"src":"14143:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4805,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"14155:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4806,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"14167:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14155:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14143:35:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4809,"nodeType":"ExpressionStatement","src":"14143:35:16"}]},"id":4811,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountOut","nameLocation":"13591:12:16","nodeType":"FunctionDefinition","parameters":{"id":4754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4747,"mutability":"mutable","name":"amountIn","nameLocation":"13622:8:16","nodeType":"VariableDeclaration","scope":4811,"src":"13614:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4746,"name":"uint256","nodeType":"ElementaryTypeName","src":"13614:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4749,"mutability":"mutable","name":"pair","nameLocation":"13649:4:16","nodeType":"VariableDeclaration","scope":4811,"src":"13641:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4748,"name":"address","nodeType":"ElementaryTypeName","src":"13641:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4751,"mutability":"mutable","name":"tokenA","nameLocation":"13672:6:16","nodeType":"VariableDeclaration","scope":4811,"src":"13664:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4750,"name":"address","nodeType":"ElementaryTypeName","src":"13664:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4753,"mutability":"mutable","name":"tokenB","nameLocation":"13697:6:16","nodeType":"VariableDeclaration","scope":4811,"src":"13689:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4752,"name":"address","nodeType":"ElementaryTypeName","src":"13689:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13603:107:16"},"returnParameters":{"id":4757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4756,"mutability":"mutable","name":"amountOut","nameLocation":"13742:9:16","nodeType":"VariableDeclaration","scope":4811,"src":"13734:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4755,"name":"uint256","nodeType":"ElementaryTypeName","src":"13734:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13733:19:16"},"scope":4864,"src":"13582:604:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4862,"nodeType":"Block","src":"14410:321:16","statements":[{"assignments":[4821,4823],"declarations":[{"constant":false,"id":4821,"mutability":"mutable","name":"token0","nameLocation":"14430:6:16","nodeType":"VariableDeclaration","scope":4862,"src":"14422:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4820,"name":"address","nodeType":"ElementaryTypeName","src":"14422:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4823,"mutability":"mutable","name":"token1","nameLocation":"14446:6:16","nodeType":"VariableDeclaration","scope":4862,"src":"14438:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4822,"name":"address","nodeType":"ElementaryTypeName","src":"14438:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4834,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4824,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4813,"src":"14456:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4825,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"14465:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14456:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":4830,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"14494:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4831,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4813,"src":"14502:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4832,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14493:16:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14456:53:16","trueExpression":{"components":[{"id":4827,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4813,"src":"14475:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4828,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"14483:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4829,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14474:16:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"14421:88:16"},{"expression":{"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4835,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"14520:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"ff","id":4845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14592:7:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string hex\"ff\""}},{"id":4846,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"14614:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":4850,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4821,"src":"14663:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4851,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4823,"src":"14671:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14646:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"14646:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14646:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4847,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14636:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14636:43:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4854,"name":"PAIR_INIT_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"14694:14:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string hex\"ff\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14561:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"14561:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14561:158:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4842,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14551:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14551:169:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14543:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4840,"name":"uint256","nodeType":"ElementaryTypeName","src":"14543:7:16","typeDescriptions":{}}},"id":4857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14543:178:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14535:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4838,"name":"uint160","nodeType":"ElementaryTypeName","src":"14535:7:16","typeDescriptions":{}}},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14535:187:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14527:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4836,"name":"address","nodeType":"ElementaryTypeName","src":"14527:7:16","typeDescriptions":{}}},"id":4859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14527:196:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14520:203:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4861,"nodeType":"ExpressionStatement","src":"14520:203:16"}]},"id":4863,"implemented":true,"kind":"function","modifiers":[],"name":"pairFor","nameLocation":"14334:7:16","nodeType":"FunctionDefinition","parameters":{"id":4816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4813,"mutability":"mutable","name":"tokenA","nameLocation":"14350:6:16","nodeType":"VariableDeclaration","scope":4863,"src":"14342:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4812,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4815,"mutability":"mutable","name":"tokenB","nameLocation":"14366:6:16","nodeType":"VariableDeclaration","scope":4863,"src":"14358:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4814,"name":"address","nodeType":"ElementaryTypeName","src":"14358:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14341:32:16"},"returnParameters":{"id":4819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4818,"mutability":"mutable","name":"pair","nameLocation":"14404:4:16","nodeType":"VariableDeclaration","scope":4863,"src":"14396:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4817,"name":"address","nodeType":"ElementaryTypeName","src":"14396:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14395:14:16"},"scope":4864,"src":"14325:406:16","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":4865,"src":"1119:13615:16","usedErrors":[]}],"src":"35:14701:16"},"id":16},"contracts/pangolin-core/interfaces/IPangolinFactory.sol":{"ast":{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinFactory.sol","exportedSymbols":{"IPangolinFactory":[4927]},"id":4928,"nodeType":"SourceUnit","nodes":[{"id":4866,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:17"},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinFactory","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4927,"linearizedBaseContracts":[4927],"name":"IPangolinFactory","nameLocation":"38:16:17","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","id":4876,"name":"PairCreated","nameLocation":"68:11:17","nodeType":"EventDefinition","parameters":{"id":4875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4868,"indexed":true,"mutability":"mutable","name":"token0","nameLocation":"96:6:17","nodeType":"VariableDeclaration","scope":4876,"src":"80:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4867,"name":"address","nodeType":"ElementaryTypeName","src":"80:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4870,"indexed":true,"mutability":"mutable","name":"token1","nameLocation":"120:6:17","nodeType":"VariableDeclaration","scope":4876,"src":"104:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4869,"name":"address","nodeType":"ElementaryTypeName","src":"104:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4872,"indexed":false,"mutability":"mutable","name":"pair","nameLocation":"136:4:17","nodeType":"VariableDeclaration","scope":4876,"src":"128:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4871,"name":"address","nodeType":"ElementaryTypeName","src":"128:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4874,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4876,"src":"142:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4873,"name":"uint","nodeType":"ElementaryTypeName","src":"142:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"79:68:17"},"src":"62:86:17"},{"functionSelector":"017e7e58","id":4881,"implemented":false,"kind":"function","modifiers":[],"name":"feeTo","nameLocation":"165:5:17","nodeType":"FunctionDefinition","parameters":{"id":4877,"nodeType":"ParameterList","parameters":[],"src":"170:2:17"},"returnParameters":{"id":4880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4881,"src":"196:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4878,"name":"address","nodeType":"ElementaryTypeName","src":"196:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"195:9:17"},"scope":4927,"src":"156:49:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"094b7415","id":4886,"implemented":false,"kind":"function","modifiers":[],"name":"feeToSetter","nameLocation":"220:11:17","nodeType":"FunctionDefinition","parameters":{"id":4882,"nodeType":"ParameterList","parameters":[],"src":"231:2:17"},"returnParameters":{"id":4885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4886,"src":"257:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4883,"name":"address","nodeType":"ElementaryTypeName","src":"257:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"256:9:17"},"scope":4927,"src":"211:55:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e6a43905","id":4895,"implemented":false,"kind":"function","modifiers":[],"name":"getPair","nameLocation":"283:7:17","nodeType":"FunctionDefinition","parameters":{"id":4891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4888,"mutability":"mutable","name":"tokenA","nameLocation":"299:6:17","nodeType":"VariableDeclaration","scope":4895,"src":"291:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4887,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4890,"mutability":"mutable","name":"tokenB","nameLocation":"315:6:17","nodeType":"VariableDeclaration","scope":4895,"src":"307:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4889,"name":"address","nodeType":"ElementaryTypeName","src":"307:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:32:17"},"returnParameters":{"id":4894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4893,"mutability":"mutable","name":"pair","nameLocation":"354:4:17","nodeType":"VariableDeclaration","scope":4895,"src":"346:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4892,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"345:14:17"},"scope":4927,"src":"274:86:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1e3dd18b","id":4902,"implemented":false,"kind":"function","modifiers":[],"name":"allPairs","nameLocation":"375:8:17","nodeType":"FunctionDefinition","parameters":{"id":4898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4902,"src":"384:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4896,"name":"uint","nodeType":"ElementaryTypeName","src":"384:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"383:6:17"},"returnParameters":{"id":4901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4900,"mutability":"mutable","name":"pair","nameLocation":"421:4:17","nodeType":"VariableDeclaration","scope":4902,"src":"413:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4899,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"412:14:17"},"scope":4927,"src":"366:61:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"574f2ba3","id":4907,"implemented":false,"kind":"function","modifiers":[],"name":"allPairsLength","nameLocation":"442:14:17","nodeType":"FunctionDefinition","parameters":{"id":4903,"nodeType":"ParameterList","parameters":[],"src":"456:2:17"},"returnParameters":{"id":4906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4907,"src":"482:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4904,"name":"uint","nodeType":"ElementaryTypeName","src":"482:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"481:6:17"},"scope":4927,"src":"433:55:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c9c65396","id":4916,"implemented":false,"kind":"function","modifiers":[],"name":"createPair","nameLocation":"505:10:17","nodeType":"FunctionDefinition","parameters":{"id":4912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4909,"mutability":"mutable","name":"tokenA","nameLocation":"524:6:17","nodeType":"VariableDeclaration","scope":4916,"src":"516:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4908,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4911,"mutability":"mutable","name":"tokenB","nameLocation":"540:6:17","nodeType":"VariableDeclaration","scope":4916,"src":"532:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4910,"name":"address","nodeType":"ElementaryTypeName","src":"532:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"515:32:17"},"returnParameters":{"id":4915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4914,"mutability":"mutable","name":"pair","nameLocation":"574:4:17","nodeType":"VariableDeclaration","scope":4916,"src":"566:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4913,"name":"address","nodeType":"ElementaryTypeName","src":"566:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"565:14:17"},"scope":4927,"src":"496:84:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f46901ed","id":4921,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeTo","nameLocation":"597:8:17","nodeType":"FunctionDefinition","parameters":{"id":4919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4921,"src":"606:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4917,"name":"address","nodeType":"ElementaryTypeName","src":"606:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"605:9:17"},"returnParameters":{"id":4920,"nodeType":"ParameterList","parameters":[],"src":"623:0:17"},"scope":4927,"src":"588:36:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a2e74af6","id":4926,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeToSetter","nameLocation":"639:14:17","nodeType":"FunctionDefinition","parameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4926,"src":"654:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4922,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"653:9:17"},"returnParameters":{"id":4925,"nodeType":"ParameterList","parameters":[],"src":"671:0:17"},"scope":4927,"src":"630:42:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4928,"src":"28:647:17","usedErrors":[]}],"src":"0:677:17"},"id":17},"contracts/pangolin-core/interfaces/IPangolinPair.sol":{"ast":{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinPair.sol","exportedSymbols":{"IPangolinPair":[5169]},"id":5170,"nodeType":"SourceUnit","nodes":[{"id":4929,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinPair","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5169,"linearizedBaseContracts":[5169],"name":"IPangolinPair","nameLocation":"38:13:18","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":4937,"name":"Approval","nameLocation":"65:8:18","nodeType":"EventDefinition","parameters":{"id":4936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4931,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"90:5:18","nodeType":"VariableDeclaration","scope":4937,"src":"74:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4930,"name":"address","nodeType":"ElementaryTypeName","src":"74:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4933,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"113:7:18","nodeType":"VariableDeclaration","scope":4937,"src":"97:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4932,"name":"address","nodeType":"ElementaryTypeName","src":"97:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4935,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"127:5:18","nodeType":"VariableDeclaration","scope":4937,"src":"122:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4934,"name":"uint","nodeType":"ElementaryTypeName","src":"122:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73:60:18"},"src":"59:75:18"},{"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":4945,"name":"Transfer","nameLocation":"146:8:18","nodeType":"EventDefinition","parameters":{"id":4944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4939,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"171:4:18","nodeType":"VariableDeclaration","scope":4945,"src":"155:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4938,"name":"address","nodeType":"ElementaryTypeName","src":"155:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4941,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"193:2:18","nodeType":"VariableDeclaration","scope":4945,"src":"177:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4940,"name":"address","nodeType":"ElementaryTypeName","src":"177:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4943,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"202:5:18","nodeType":"VariableDeclaration","scope":4945,"src":"197:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4942,"name":"uint","nodeType":"ElementaryTypeName","src":"197:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"154:54:18"},"src":"140:69:18"},{"functionSelector":"06fdde03","id":4950,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"226:4:18","nodeType":"FunctionDefinition","parameters":{"id":4946,"nodeType":"ParameterList","parameters":[],"src":"230:2:18"},"returnParameters":{"id":4949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4950,"src":"256:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4947,"name":"string","nodeType":"ElementaryTypeName","src":"256:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"255:15:18"},"scope":5169,"src":"217:54:18","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":4955,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"286:6:18","nodeType":"FunctionDefinition","parameters":{"id":4951,"nodeType":"ParameterList","parameters":[],"src":"292:2:18"},"returnParameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4955,"src":"318:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4952,"name":"string","nodeType":"ElementaryTypeName","src":"318:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"317:15:18"},"scope":5169,"src":"277:56:18","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":4960,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"348:8:18","nodeType":"FunctionDefinition","parameters":{"id":4956,"nodeType":"ParameterList","parameters":[],"src":"356:2:18"},"returnParameters":{"id":4959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4960,"src":"382:5:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4957,"name":"uint8","nodeType":"ElementaryTypeName","src":"382:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"381:7:18"},"scope":5169,"src":"339:50:18","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":4965,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"404:11:18","nodeType":"FunctionDefinition","parameters":{"id":4961,"nodeType":"ParameterList","parameters":[],"src":"415:2:18"},"returnParameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4965,"src":"441:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4962,"name":"uint","nodeType":"ElementaryTypeName","src":"441:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"440:6:18"},"scope":5169,"src":"395:52:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":4972,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"462:9:18","nodeType":"FunctionDefinition","parameters":{"id":4968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4967,"mutability":"mutable","name":"owner","nameLocation":"480:5:18","nodeType":"VariableDeclaration","scope":4972,"src":"472:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4966,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"471:15:18"},"returnParameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4972,"src":"510:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4969,"name":"uint","nodeType":"ElementaryTypeName","src":"510:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"509:6:18"},"scope":5169,"src":"453:63:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd62ed3e","id":4981,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"531:9:18","nodeType":"FunctionDefinition","parameters":{"id":4977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4974,"mutability":"mutable","name":"owner","nameLocation":"549:5:18","nodeType":"VariableDeclaration","scope":4981,"src":"541:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4973,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4976,"mutability":"mutable","name":"spender","nameLocation":"564:7:18","nodeType":"VariableDeclaration","scope":4981,"src":"556:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4975,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"540:32:18"},"returnParameters":{"id":4980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4981,"src":"596:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4978,"name":"uint","nodeType":"ElementaryTypeName","src":"596:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:6:18"},"scope":5169,"src":"522:80:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":4990,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"619:7:18","nodeType":"FunctionDefinition","parameters":{"id":4986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4983,"mutability":"mutable","name":"spender","nameLocation":"635:7:18","nodeType":"VariableDeclaration","scope":4990,"src":"627:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4982,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4985,"mutability":"mutable","name":"value","nameLocation":"649:5:18","nodeType":"VariableDeclaration","scope":4990,"src":"644:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4984,"name":"uint","nodeType":"ElementaryTypeName","src":"644:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"626:29:18"},"returnParameters":{"id":4989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4990,"src":"674:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4987,"name":"bool","nodeType":"ElementaryTypeName","src":"674:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"673:6:18"},"scope":5169,"src":"610:70:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":4999,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"695:8:18","nodeType":"FunctionDefinition","parameters":{"id":4995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4992,"mutability":"mutable","name":"to","nameLocation":"712:2:18","nodeType":"VariableDeclaration","scope":4999,"src":"704:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4991,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4994,"mutability":"mutable","name":"value","nameLocation":"721:5:18","nodeType":"VariableDeclaration","scope":4999,"src":"716:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4993,"name":"uint","nodeType":"ElementaryTypeName","src":"716:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"703:24:18"},"returnParameters":{"id":4998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4999,"src":"746:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4996,"name":"bool","nodeType":"ElementaryTypeName","src":"746:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"745:6:18"},"scope":5169,"src":"686:66:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":5010,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"767:12:18","nodeType":"FunctionDefinition","parameters":{"id":5006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5001,"mutability":"mutable","name":"from","nameLocation":"788:4:18","nodeType":"VariableDeclaration","scope":5010,"src":"780:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5000,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5003,"mutability":"mutable","name":"to","nameLocation":"802:2:18","nodeType":"VariableDeclaration","scope":5010,"src":"794:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5002,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5005,"mutability":"mutable","name":"value","nameLocation":"811:5:18","nodeType":"VariableDeclaration","scope":5010,"src":"806:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5004,"name":"uint","nodeType":"ElementaryTypeName","src":"806:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"779:38:18"},"returnParameters":{"id":5009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5010,"src":"836:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5007,"name":"bool","nodeType":"ElementaryTypeName","src":"836:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"835:6:18"},"scope":5169,"src":"758:84:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3644e515","id":5015,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"859:16:18","nodeType":"FunctionDefinition","parameters":{"id":5011,"nodeType":"ParameterList","parameters":[],"src":"875:2:18"},"returnParameters":{"id":5014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5015,"src":"901:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"901:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"900:9:18"},"scope":5169,"src":"850:60:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"30adf81f","id":5020,"implemented":false,"kind":"function","modifiers":[],"name":"PERMIT_TYPEHASH","nameLocation":"925:15:18","nodeType":"FunctionDefinition","parameters":{"id":5016,"nodeType":"ParameterList","parameters":[],"src":"940:2:18"},"returnParameters":{"id":5019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5020,"src":"966:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"966:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"965:9:18"},"scope":5169,"src":"916:59:18","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"7ecebe00","id":5027,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"990:6:18","nodeType":"FunctionDefinition","parameters":{"id":5023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5022,"mutability":"mutable","name":"owner","nameLocation":"1005:5:18","nodeType":"VariableDeclaration","scope":5027,"src":"997:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5021,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"996:15:18"},"returnParameters":{"id":5026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5027,"src":"1035:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5024,"name":"uint","nodeType":"ElementaryTypeName","src":"1035:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1034:6:18"},"scope":5169,"src":"981:60:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d505accf","id":5044,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1058:6:18","nodeType":"FunctionDefinition","parameters":{"id":5042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5029,"mutability":"mutable","name":"owner","nameLocation":"1073:5:18","nodeType":"VariableDeclaration","scope":5044,"src":"1065:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5028,"name":"address","nodeType":"ElementaryTypeName","src":"1065:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5031,"mutability":"mutable","name":"spender","nameLocation":"1088:7:18","nodeType":"VariableDeclaration","scope":5044,"src":"1080:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5030,"name":"address","nodeType":"ElementaryTypeName","src":"1080:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5033,"mutability":"mutable","name":"value","nameLocation":"1102:5:18","nodeType":"VariableDeclaration","scope":5044,"src":"1097:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5032,"name":"uint","nodeType":"ElementaryTypeName","src":"1097:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5035,"mutability":"mutable","name":"deadline","nameLocation":"1114:8:18","nodeType":"VariableDeclaration","scope":5044,"src":"1109:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5034,"name":"uint","nodeType":"ElementaryTypeName","src":"1109:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5037,"mutability":"mutable","name":"v","nameLocation":"1130:1:18","nodeType":"VariableDeclaration","scope":5044,"src":"1124:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5036,"name":"uint8","nodeType":"ElementaryTypeName","src":"1124:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5039,"mutability":"mutable","name":"r","nameLocation":"1141:1:18","nodeType":"VariableDeclaration","scope":5044,"src":"1133:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1133:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5041,"mutability":"mutable","name":"s","nameLocation":"1152:1:18","nodeType":"VariableDeclaration","scope":5044,"src":"1144:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1144:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1064:90:18"},"returnParameters":{"id":5043,"nodeType":"ParameterList","parameters":[],"src":"1163:0:18"},"scope":5169,"src":"1049:115:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"eventSelector":"4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","id":5052,"name":"Mint","nameLocation":"1178:4:18","nodeType":"EventDefinition","parameters":{"id":5051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5046,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1199:6:18","nodeType":"VariableDeclaration","scope":5052,"src":"1183:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5045,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5048,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"1212:7:18","nodeType":"VariableDeclaration","scope":5052,"src":"1207:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5047,"name":"uint","nodeType":"ElementaryTypeName","src":"1207:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5050,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"1226:7:18","nodeType":"VariableDeclaration","scope":5052,"src":"1221:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5049,"name":"uint","nodeType":"ElementaryTypeName","src":"1221:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1182:52:18"},"src":"1172:63:18"},{"anonymous":false,"eventSelector":"dccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496","id":5062,"name":"Burn","nameLocation":"1247:4:18","nodeType":"EventDefinition","parameters":{"id":5061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5054,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1268:6:18","nodeType":"VariableDeclaration","scope":5062,"src":"1252:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5053,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5056,"indexed":false,"mutability":"mutable","name":"amount0","nameLocation":"1281:7:18","nodeType":"VariableDeclaration","scope":5062,"src":"1276:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5055,"name":"uint","nodeType":"ElementaryTypeName","src":"1276:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5058,"indexed":false,"mutability":"mutable","name":"amount1","nameLocation":"1295:7:18","nodeType":"VariableDeclaration","scope":5062,"src":"1290:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5057,"name":"uint","nodeType":"ElementaryTypeName","src":"1290:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5060,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1320:2:18","nodeType":"VariableDeclaration","scope":5062,"src":"1304:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5059,"name":"address","nodeType":"ElementaryTypeName","src":"1304:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1251:72:18"},"src":"1241:83:18"},{"anonymous":false,"eventSelector":"d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822","id":5076,"name":"Swap","nameLocation":"1336:4:18","nodeType":"EventDefinition","parameters":{"id":5075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5064,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1367:6:18","nodeType":"VariableDeclaration","scope":5076,"src":"1351:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5063,"name":"address","nodeType":"ElementaryTypeName","src":"1351:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5066,"indexed":false,"mutability":"mutable","name":"amount0In","nameLocation":"1389:9:18","nodeType":"VariableDeclaration","scope":5076,"src":"1384:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5065,"name":"uint","nodeType":"ElementaryTypeName","src":"1384:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5068,"indexed":false,"mutability":"mutable","name":"amount1In","nameLocation":"1414:9:18","nodeType":"VariableDeclaration","scope":5076,"src":"1409:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5067,"name":"uint","nodeType":"ElementaryTypeName","src":"1409:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5070,"indexed":false,"mutability":"mutable","name":"amount0Out","nameLocation":"1439:10:18","nodeType":"VariableDeclaration","scope":5076,"src":"1434:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5069,"name":"uint","nodeType":"ElementaryTypeName","src":"1434:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5072,"indexed":false,"mutability":"mutable","name":"amount1Out","nameLocation":"1465:10:18","nodeType":"VariableDeclaration","scope":5076,"src":"1460:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5071,"name":"uint","nodeType":"ElementaryTypeName","src":"1460:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5074,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1502:2:18","nodeType":"VariableDeclaration","scope":5076,"src":"1486:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5073,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1340:171:18"},"src":"1330:182:18"},{"anonymous":false,"eventSelector":"1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1","id":5082,"name":"Sync","nameLocation":"1524:4:18","nodeType":"EventDefinition","parameters":{"id":5081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5078,"indexed":false,"mutability":"mutable","name":"reserve0","nameLocation":"1537:8:18","nodeType":"VariableDeclaration","scope":5082,"src":"1529:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":5077,"name":"uint112","nodeType":"ElementaryTypeName","src":"1529:7:18","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":5080,"indexed":false,"mutability":"mutable","name":"reserve1","nameLocation":"1555:8:18","nodeType":"VariableDeclaration","scope":5082,"src":"1547:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":5079,"name":"uint112","nodeType":"ElementaryTypeName","src":"1547:7:18","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"1528:36:18"},"src":"1518:47:18"},{"functionSelector":"ba9a7a56","id":5087,"implemented":false,"kind":"function","modifiers":[],"name":"MINIMUM_LIQUIDITY","nameLocation":"1582:17:18","nodeType":"FunctionDefinition","parameters":{"id":5083,"nodeType":"ParameterList","parameters":[],"src":"1599:2:18"},"returnParameters":{"id":5086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5087,"src":"1625:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5084,"name":"uint","nodeType":"ElementaryTypeName","src":"1625:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1624:6:18"},"scope":5169,"src":"1573:58:18","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"c45a0155","id":5092,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nameLocation":"1646:7:18","nodeType":"FunctionDefinition","parameters":{"id":5088,"nodeType":"ParameterList","parameters":[],"src":"1653:2:18"},"returnParameters":{"id":5091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5092,"src":"1679:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5089,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:9:18"},"scope":5169,"src":"1637:51:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0dfe1681","id":5097,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nameLocation":"1703:6:18","nodeType":"FunctionDefinition","parameters":{"id":5093,"nodeType":"ParameterList","parameters":[],"src":"1709:2:18"},"returnParameters":{"id":5096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5097,"src":"1735:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5094,"name":"address","nodeType":"ElementaryTypeName","src":"1735:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1734:9:18"},"scope":5169,"src":"1694:50:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d21220a7","id":5102,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nameLocation":"1759:6:18","nodeType":"FunctionDefinition","parameters":{"id":5098,"nodeType":"ParameterList","parameters":[],"src":"1765:2:18"},"returnParameters":{"id":5101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5102,"src":"1791:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5099,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1790:9:18"},"scope":5169,"src":"1750:50:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0902f1ac","id":5111,"implemented":false,"kind":"function","modifiers":[],"name":"getReserves","nameLocation":"1815:11:18","nodeType":"FunctionDefinition","parameters":{"id":5103,"nodeType":"ParameterList","parameters":[],"src":"1826:2:18"},"returnParameters":{"id":5110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5105,"mutability":"mutable","name":"reserve0","nameLocation":"1860:8:18","nodeType":"VariableDeclaration","scope":5111,"src":"1852:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":5104,"name":"uint112","nodeType":"ElementaryTypeName","src":"1852:7:18","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":5107,"mutability":"mutable","name":"reserve1","nameLocation":"1878:8:18","nodeType":"VariableDeclaration","scope":5111,"src":"1870:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":5106,"name":"uint112","nodeType":"ElementaryTypeName","src":"1870:7:18","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":5109,"mutability":"mutable","name":"blockTimestampLast","nameLocation":"1895:18:18","nodeType":"VariableDeclaration","scope":5111,"src":"1888:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5108,"name":"uint32","nodeType":"ElementaryTypeName","src":"1888:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1851:63:18"},"scope":5169,"src":"1806:109:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5909c0d5","id":5116,"implemented":false,"kind":"function","modifiers":[],"name":"price0CumulativeLast","nameLocation":"1930:20:18","nodeType":"FunctionDefinition","parameters":{"id":5112,"nodeType":"ParameterList","parameters":[],"src":"1950:2:18"},"returnParameters":{"id":5115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5116,"src":"1976:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5113,"name":"uint","nodeType":"ElementaryTypeName","src":"1976:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1975:6:18"},"scope":5169,"src":"1921:61:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5a3d5493","id":5121,"implemented":false,"kind":"function","modifiers":[],"name":"price1CumulativeLast","nameLocation":"1997:20:18","nodeType":"FunctionDefinition","parameters":{"id":5117,"nodeType":"ParameterList","parameters":[],"src":"2017:2:18"},"returnParameters":{"id":5120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5121,"src":"2043:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5118,"name":"uint","nodeType":"ElementaryTypeName","src":"2043:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2042:6:18"},"scope":5169,"src":"1988:61:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7464fc3d","id":5126,"implemented":false,"kind":"function","modifiers":[],"name":"kLast","nameLocation":"2064:5:18","nodeType":"FunctionDefinition","parameters":{"id":5122,"nodeType":"ParameterList","parameters":[],"src":"2069:2:18"},"returnParameters":{"id":5125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5126,"src":"2095:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5123,"name":"uint","nodeType":"ElementaryTypeName","src":"2095:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2094:6:18"},"scope":5169,"src":"2055:46:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6a627842","id":5133,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"2118:4:18","nodeType":"FunctionDefinition","parameters":{"id":5129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5128,"mutability":"mutable","name":"to","nameLocation":"2131:2:18","nodeType":"VariableDeclaration","scope":5133,"src":"2123:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5127,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2122:12:18"},"returnParameters":{"id":5132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5131,"mutability":"mutable","name":"liquidity","nameLocation":"2158:9:18","nodeType":"VariableDeclaration","scope":5133,"src":"2153:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5130,"name":"uint","nodeType":"ElementaryTypeName","src":"2153:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2152:16:18"},"scope":5169,"src":"2109:60:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89afcb44","id":5142,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2184:4:18","nodeType":"FunctionDefinition","parameters":{"id":5136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5135,"mutability":"mutable","name":"to","nameLocation":"2197:2:18","nodeType":"VariableDeclaration","scope":5142,"src":"2189:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5134,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2188:12:18"},"returnParameters":{"id":5141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5138,"mutability":"mutable","name":"amount0","nameLocation":"2224:7:18","nodeType":"VariableDeclaration","scope":5142,"src":"2219:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5137,"name":"uint","nodeType":"ElementaryTypeName","src":"2219:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5140,"mutability":"mutable","name":"amount1","nameLocation":"2238:7:18","nodeType":"VariableDeclaration","scope":5142,"src":"2233:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5139,"name":"uint","nodeType":"ElementaryTypeName","src":"2233:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2218:28:18"},"scope":5169,"src":"2175:72:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"022c0d9f","id":5153,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"2262:4:18","nodeType":"FunctionDefinition","parameters":{"id":5151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5144,"mutability":"mutable","name":"amount0Out","nameLocation":"2272:10:18","nodeType":"VariableDeclaration","scope":5153,"src":"2267:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5143,"name":"uint","nodeType":"ElementaryTypeName","src":"2267:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5146,"mutability":"mutable","name":"amount1Out","nameLocation":"2289:10:18","nodeType":"VariableDeclaration","scope":5153,"src":"2284:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5145,"name":"uint","nodeType":"ElementaryTypeName","src":"2284:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5148,"mutability":"mutable","name":"to","nameLocation":"2309:2:18","nodeType":"VariableDeclaration","scope":5153,"src":"2301:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5147,"name":"address","nodeType":"ElementaryTypeName","src":"2301:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5150,"mutability":"mutable","name":"data","nameLocation":"2328:4:18","nodeType":"VariableDeclaration","scope":5153,"src":"2313:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5149,"name":"bytes","nodeType":"ElementaryTypeName","src":"2313:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2266:67:18"},"returnParameters":{"id":5152,"nodeType":"ParameterList","parameters":[],"src":"2342:0:18"},"scope":5169,"src":"2253:90:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bc25cf77","id":5158,"implemented":false,"kind":"function","modifiers":[],"name":"skim","nameLocation":"2358:4:18","nodeType":"FunctionDefinition","parameters":{"id":5156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"mutability":"mutable","name":"to","nameLocation":"2371:2:18","nodeType":"VariableDeclaration","scope":5158,"src":"2363:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5154,"name":"address","nodeType":"ElementaryTypeName","src":"2363:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2362:12:18"},"returnParameters":{"id":5157,"nodeType":"ParameterList","parameters":[],"src":"2383:0:18"},"scope":5169,"src":"2349:35:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fff6cae9","id":5161,"implemented":false,"kind":"function","modifiers":[],"name":"sync","nameLocation":"2399:4:18","nodeType":"FunctionDefinition","parameters":{"id":5159,"nodeType":"ParameterList","parameters":[],"src":"2403:2:18"},"returnParameters":{"id":5160,"nodeType":"ParameterList","parameters":[],"src":"2414:0:18"},"scope":5169,"src":"2390:25:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"485cc955","id":5168,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2432:10:18","nodeType":"FunctionDefinition","parameters":{"id":5166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5168,"src":"2443:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5162,"name":"address","nodeType":"ElementaryTypeName","src":"2443:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5168,"src":"2452:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5164,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2442:18:18"},"returnParameters":{"id":5167,"nodeType":"ParameterList","parameters":[],"src":"2469:0:18"},"scope":5169,"src":"2423:47:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5170,"src":"28:2445:18","usedErrors":[]}],"src":"0:2475:18"},"id":18},"contracts/pangolin-lib/libraries/TransferHelper.sol":{"ast":{"absolutePath":"contracts/pangolin-lib/libraries/TransferHelper.sol","exportedSymbols":{"TransferHelper":[5329]},"id":5330,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":5171,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"48:24:19"},{"abstract":false,"baseContracts":[],"canonicalName":"TransferHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":5329,"linearizedBaseContracts":[5329],"name":"TransferHelper","nameLocation":"197:14:19","nodeType":"ContractDefinition","nodes":[{"body":{"id":5213,"nodeType":"Block","src":"325:289:19","statements":[{"assignments":[5181,5183],"declarations":[{"constant":false,"id":5181,"mutability":"mutable","name":"success","nameLocation":"408:7:19","nodeType":"VariableDeclaration","scope":5213,"src":"403:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5180,"name":"bool","nodeType":"ElementaryTypeName","src":"403:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5183,"mutability":"mutable","name":"data","nameLocation":"430:4:19","nodeType":"VariableDeclaration","scope":5213,"src":"417:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5182,"name":"bytes","nodeType":"ElementaryTypeName","src":"417:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5193,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783039356561376233","id":5188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"472:10:19","typeDescriptions":{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},"value":"0x095ea7b3"},{"id":5189,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"484:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5190,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"488:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"449:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"449:22:19","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"449:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5184,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"438:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"438:10:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"438:57:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"402:93:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5195,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"514:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5196,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"526:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"526:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"541:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"526:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5202,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"557:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:4:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5203,"name":"bool","nodeType":"ElementaryTypeName","src":"564:4:19","typeDescriptions":{}}}],"id":5205,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"563:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":5200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"546:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"546:10:19","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"546:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"526:44:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"525:46:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"514:57:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a20415050524f56455f4641494c4544","id":5210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"573:32:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00","typeString":"literal_string \"TransferHelper: APPROVE_FAILED\""},"value":"TransferHelper: APPROVE_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00","typeString":"literal_string \"TransferHelper: APPROVE_FAILED\""}],"id":5194,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"506:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"506:100:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5212,"nodeType":"ExpressionStatement","src":"506:100:19"}]},"id":5214,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"228:11:19","nodeType":"FunctionDefinition","parameters":{"id":5178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5173,"mutability":"mutable","name":"token","nameLocation":"258:5:19","nodeType":"VariableDeclaration","scope":5214,"src":"250:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5172,"name":"address","nodeType":"ElementaryTypeName","src":"250:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5175,"mutability":"mutable","name":"to","nameLocation":"282:2:19","nodeType":"VariableDeclaration","scope":5214,"src":"274:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5174,"name":"address","nodeType":"ElementaryTypeName","src":"274:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5177,"mutability":"mutable","name":"value","nameLocation":"303:5:19","nodeType":"VariableDeclaration","scope":5214,"src":"295:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5176,"name":"uint256","nodeType":"ElementaryTypeName","src":"295:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"239:76:19"},"returnParameters":{"id":5179,"nodeType":"ParameterList","parameters":[],"src":"325:0:19"},"scope":5329,"src":"219:395:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5256,"nodeType":"Block","src":"729:291:19","statements":[{"assignments":[5224,5226],"declarations":[{"constant":false,"id":5224,"mutability":"mutable","name":"success","nameLocation":"813:7:19","nodeType":"VariableDeclaration","scope":5256,"src":"808:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5223,"name":"bool","nodeType":"ElementaryTypeName","src":"808:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5226,"mutability":"mutable","name":"data","nameLocation":"835:4:19","nodeType":"VariableDeclaration","scope":5256,"src":"822:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5225,"name":"bytes","nodeType":"ElementaryTypeName","src":"822:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5236,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30786139303539636262","id":5231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:10:19","typeDescriptions":{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},"value":"0xa9059cbb"},{"id":5232,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"889:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5220,"src":"893:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"854:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"854:22:19","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"854:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5227,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5216,"src":"843:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"843:10:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"843:57:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"807:93:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5238,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5224,"src":"919:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5239,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"931:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"931:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"931:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5245,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"962:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"969:4:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5246,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:19","typeDescriptions":{}}}],"id":5248,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"968:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":5243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"951:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"951:10:19","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"951:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"931:44:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5251,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:46:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"919:57:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a205452414e534645525f4641494c4544","id":5253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"978:33:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426","typeString":"literal_string \"TransferHelper: TRANSFER_FAILED\""},"value":"TransferHelper: TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426","typeString":"literal_string \"TransferHelper: TRANSFER_FAILED\""}],"id":5237,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"911:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"911:101:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5255,"nodeType":"ExpressionStatement","src":"911:101:19"}]},"id":5257,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"631:12:19","nodeType":"FunctionDefinition","parameters":{"id":5221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5216,"mutability":"mutable","name":"token","nameLocation":"662:5:19","nodeType":"VariableDeclaration","scope":5257,"src":"654:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5215,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5218,"mutability":"mutable","name":"to","nameLocation":"686:2:19","nodeType":"VariableDeclaration","scope":5257,"src":"678:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"678:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5220,"mutability":"mutable","name":"value","nameLocation":"707:5:19","nodeType":"VariableDeclaration","scope":5257,"src":"699:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5219,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"643:76:19"},"returnParameters":{"id":5222,"nodeType":"ParameterList","parameters":[],"src":"729:0:19"},"scope":5329,"src":"622:398:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5302,"nodeType":"Block","src":"1162:314:19","statements":[{"assignments":[5269,5271],"declarations":[{"constant":false,"id":5269,"mutability":"mutable","name":"success","nameLocation":"1258:7:19","nodeType":"VariableDeclaration","scope":5302,"src":"1253:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5268,"name":"bool","nodeType":"ElementaryTypeName","src":"1253:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5271,"mutability":"mutable","name":"data","nameLocation":"1280:4:19","nodeType":"VariableDeclaration","scope":5302,"src":"1267:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5270,"name":"bytes","nodeType":"ElementaryTypeName","src":"1267:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5282,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783233623837326464","id":5276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:10:19","typeDescriptions":{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},"value":"0x23b872dd"},{"id":5277,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"1334:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5278,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5263,"src":"1340:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5279,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"1344:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1299:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1299:22:19","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1299:51:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5272,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5259,"src":"1288:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1288:10:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1288:63:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1252:99:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5284,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1370:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5285,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"1382:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1382:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1397:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1382:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5291,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"1413:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1420:4:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5292,"name":"bool","nodeType":"ElementaryTypeName","src":"1420:4:19","typeDescriptions":{}}}],"id":5294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1419:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":5289,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1402:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1402:10:19","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1402:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1382:44:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5297,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1381:46:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1370:57:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544","id":5299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1429:38:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18","typeString":"literal_string \"TransferHelper: TRANSFER_FROM_FAILED\""},"value":"TransferHelper: TRANSFER_FROM_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18","typeString":"literal_string \"TransferHelper: TRANSFER_FROM_FAILED\""}],"id":5283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1362:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1362:106:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5301,"nodeType":"ExpressionStatement","src":"1362:106:19"}]},"id":5303,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1037:16:19","nodeType":"FunctionDefinition","parameters":{"id":5266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5259,"mutability":"mutable","name":"token","nameLocation":"1072:5:19","nodeType":"VariableDeclaration","scope":5303,"src":"1064:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5258,"name":"address","nodeType":"ElementaryTypeName","src":"1064:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5261,"mutability":"mutable","name":"from","nameLocation":"1096:4:19","nodeType":"VariableDeclaration","scope":5303,"src":"1088:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5260,"name":"address","nodeType":"ElementaryTypeName","src":"1088:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5263,"mutability":"mutable","name":"to","nameLocation":"1119:2:19","nodeType":"VariableDeclaration","scope":5303,"src":"1111:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5262,"name":"address","nodeType":"ElementaryTypeName","src":"1111:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5265,"mutability":"mutable","name":"value","nameLocation":"1140:5:19","nodeType":"VariableDeclaration","scope":5303,"src":"1132:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5264,"name":"uint256","nodeType":"ElementaryTypeName","src":"1132:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1053:99:19"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[],"src":"1162:0:19"},"scope":5329,"src":"1028:448:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5327,"nodeType":"Block","src":"1546:140:19","statements":[{"assignments":[5311,null],"declarations":[{"constant":false,"id":5311,"mutability":"mutable","name":"success","nameLocation":"1563:7:19","nodeType":"VariableDeclaration","scope":5327,"src":"1558:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5310,"name":"bool","nodeType":"ElementaryTypeName","src":"1558:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":5321,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":5318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1608:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1598:9:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5316,"name":"bytes","nodeType":"ElementaryTypeName","src":"1602:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1598:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5312,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5305,"src":"1576:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1576:7:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":5314,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"1591:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1576:21:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1576:35:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1557:54:19"},{"expression":{"arguments":[{"id":5323,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"1630:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a20415641585f5452414e534645525f4641494c4544","id":5324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1639:38:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a","typeString":"literal_string \"TransferHelper: AVAX_TRANSFER_FAILED\""},"value":"TransferHelper: AVAX_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a","typeString":"literal_string \"TransferHelper: AVAX_TRANSFER_FAILED\""}],"id":5322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1622:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1622:56:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5326,"nodeType":"ExpressionStatement","src":"1622:56:19"}]},"id":5328,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAVAX","nameLocation":"1493:16:19","nodeType":"FunctionDefinition","parameters":{"id":5308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5305,"mutability":"mutable","name":"to","nameLocation":"1518:2:19","nodeType":"VariableDeclaration","scope":5328,"src":"1510:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5304,"name":"address","nodeType":"ElementaryTypeName","src":"1510:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5307,"mutability":"mutable","name":"value","nameLocation":"1530:5:19","nodeType":"VariableDeclaration","scope":5328,"src":"1522:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5306,"name":"uint256","nodeType":"ElementaryTypeName","src":"1522:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1509:27:19"},"returnParameters":{"id":5309,"nodeType":"ParameterList","parameters":[],"src":"1546:0:19"},"scope":5329,"src":"1484:202:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":5330,"src":"189:1500:19","usedErrors":[]}],"src":"48:1643:19"},"id":19},"contracts/pangolin-periphery/PangolinRouterSupportingFees.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/PangolinRouterSupportingFees.sol","exportedSymbols":{"Context":[1356],"IERC20":[7695],"IPangolinFactory":[4927],"IPangolinPair":[5169],"IPangolinRouterSupportingFees":[8068],"IWAVAX":[8095],"Ownable":[501],"PangolinLibrary8":[8561],"PangolinRouterSupportingFees":[7611],"TransferHelper":[5329]},"id":7612,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5331,"literals":["solidity","0.8",".13"],"nodeType":"PragmaDirective","src":"0:23:20"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":5332,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7612,"sourceUnit":502,"src":"27:52:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-lib/libraries/TransferHelper.sol","file":"../pangolin-lib/libraries/TransferHelper.sol","id":5333,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7612,"sourceUnit":5330,"src":"81:54:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol","file":"./libraries/PangolinLibrary8.sol","id":5334,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7612,"sourceUnit":8562,"src":"137:42:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/interfaces/IERC20.sol","file":"./interfaces/IERC20.sol","id":5335,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7612,"sourceUnit":7696,"src":"183:33:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol","file":"./interfaces/IPangolinRouterSupportingFees.sol","id":5336,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7612,"sourceUnit":8069,"src":"218:56:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/interfaces/IWAVAX.sol","file":"./interfaces/IWAVAX.sol","id":5337,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7612,"sourceUnit":8096,"src":"276:33:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5338,"name":"IPangolinRouterSupportingFees","nodeType":"IdentifierPath","referencedDeclaration":8068,"src":"471:29:20"},"id":5339,"nodeType":"InheritanceSpecifier","src":"471:29:20"},{"baseName":{"id":5340,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":501,"src":"502:7:20"},"id":5341,"nodeType":"InheritanceSpecifier","src":"502:7:20"}],"canonicalName":"PangolinRouterSupportingFees","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7611,"linearizedBaseContracts":[7611,501,1356,8068],"name":"PangolinRouterSupportingFees","nameLocation":"439:28:20","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[7702],"constant":false,"functionSelector":"2dd31000","id":5344,"mutability":"immutable","name":"FACTORY","nameLocation":"551:7:20","nodeType":"VariableDeclaration","overrides":{"id":5343,"nodeType":"OverrideSpecifier","overrides":[],"src":"542:8:20"},"scope":7611,"src":"517:41:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5342,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[7707],"constant":false,"functionSelector":"73b295c2","id":5347,"mutability":"immutable","name":"WAVAX","nameLocation":"599:5:20","nodeType":"VariableDeclaration","overrides":{"id":5346,"nodeType":"OverrideSpecifier","overrides":[],"src":"590:8:20"},"scope":7611,"src":"565:39:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5345,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"id":5350,"mutability":"constant","name":"BIPS","nameLocation":"637:4:20","nodeType":"VariableDeclaration","scope":7611,"src":"613:37:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5348,"name":"uint24","nodeType":"ElementaryTypeName","src":"613:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"value":{"hexValue":"3130305f3030","id":5349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"644:6:20","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"100_00"},"visibility":"private"},{"constant":true,"id":5353,"mutability":"constant","name":"MAX_FEE_CUT","nameLocation":"681:11:20","nodeType":"VariableDeclaration","scope":7611,"src":"657:43:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5351,"name":"uint24","nodeType":"ElementaryTypeName","src":"657:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"value":{"hexValue":"35305f3030","id":5352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"695:5:20","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"50_00"},"visibility":"private"},{"constant":true,"id":5356,"mutability":"constant","name":"MAX_FEE_FLOOR","nameLocation":"731:13:20","nodeType":"VariableDeclaration","scope":7611,"src":"707:42:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5354,"name":"uint24","nodeType":"ElementaryTypeName","src":"707:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"value":{"hexValue":"3330","id":5355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"747:2:20","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"visibility":"private"},{"baseFunctions":[7712],"constant":true,"functionSelector":"bc063e1a","id":5359,"mutability":"constant","name":"MAX_FEE","nameLocation":"779:7:20","nodeType":"VariableDeclaration","scope":7611,"src":"756:37:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5357,"name":"uint24","nodeType":"ElementaryTypeName","src":"756:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"value":{"hexValue":"325f3030","id":5358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"789:4:20","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"2_00"},"visibility":"public"},{"baseFunctions":[7717],"constant":false,"functionSelector":"18d73e9b","id":5362,"mutability":"mutable","name":"FEE_FLOOR","nameLocation":"814:9:20","nodeType":"VariableDeclaration","scope":7611,"src":"800:27:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5360,"name":"uint24","nodeType":"ElementaryTypeName","src":"800:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"value":{"hexValue":"30","id":5361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"826:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":false,"id":5367,"mutability":"mutable","name":"feeInfos","nameLocation":"928:8:20","nodeType":"VariableDeclaration","scope":7611,"src":"892:44:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo)"},"typeName":{"id":5366,"keyType":{"id":5363,"name":"address","nodeType":"ElementaryTypeName","src":"900:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"892:27:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo)"},"valueType":{"id":5365,"nodeType":"UserDefinedTypeName","pathNode":{"id":5364,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"911:7:20"},"referencedDeclaration":7728,"src":"911:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}}},"visibility":"private"},{"baseFunctions":[7812],"constant":false,"functionSelector":"3fe9bd7c","id":5373,"mutability":"mutable","name":"managers","nameLocation":"1037:8:20","nodeType":"VariableDeclaration","scope":7611,"src":"985:60:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":5372,"keyType":{"id":5368,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"985:44:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":5371,"keyType":{"id":5369,"name":"address","nodeType":"ElementaryTypeName","src":"1012:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1004:24:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":5370,"name":"bool","nodeType":"ElementaryTypeName","src":"1023:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"body":{"id":5386,"nodeType":"Block","src":"1088:78:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5378,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"1107:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":5379,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1119:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"1119:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1107:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45585049524544","id":5382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1136:9:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a","typeString":"literal_string \"EXPIRED\""},"value":"EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a","typeString":"literal_string \"EXPIRED\""}],"id":5377,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1099:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1099:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5384,"nodeType":"ExpressionStatement","src":"1099:47:20"},{"id":5385,"nodeType":"PlaceholderStatement","src":"1157:1:20"}]},"id":5387,"name":"ensure","nameLocation":"1063:6:20","nodeType":"ModifierDefinition","parameters":{"id":5376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"deadline","nameLocation":"1078:8:20","nodeType":"VariableDeclaration","scope":5387,"src":"1070:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5374,"name":"uint256","nodeType":"ElementaryTypeName","src":"1070:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1069:18:20"},"src":"1054:112:20","virtual":false,"visibility":"internal"},{"body":{"id":5438,"nodeType":"Block","src":"1240:298:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5397,"name":"_FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"1259:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1279:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1271:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5398,"name":"address","nodeType":"ElementaryTypeName","src":"1271:7:20","typeDescriptions":{}}},"id":5401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1271:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1259:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420666163746f7279","id":5403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd78db41aeb1b482220e74d8a1f3d0122aafb31cbeace251134940ab1f9c0002","typeString":"literal_string \"Invalid factory\""},"value":"Invalid factory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd78db41aeb1b482220e74d8a1f3d0122aafb31cbeace251134940ab1f9c0002","typeString":"literal_string \"Invalid factory\""}],"id":5396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1251:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1251:50:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5405,"nodeType":"ExpressionStatement","src":"1251:50:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5407,"name":"_WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"1320:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1338:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5408,"name":"address","nodeType":"ElementaryTypeName","src":"1330:7:20","typeDescriptions":{}}},"id":5411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1330:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1320:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420777261707065642063757272656e6379","id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1342:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ddc3cbbe07914fb66ab04ac72c3abb0366e86ffb1c6b0fed4ff8de47b020d69","typeString":"literal_string \"Invalid wrapped currency\""},"value":"Invalid wrapped currency"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4ddc3cbbe07914fb66ab04ac72c3abb0366e86ffb1c6b0fed4ff8de47b020d69","typeString":"literal_string \"Invalid wrapped currency\""}],"id":5406,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1312:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1312:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5415,"nodeType":"ExpressionStatement","src":"1312:57:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5417,"name":"firstOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"1388:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1410:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1402:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5418,"name":"address","nodeType":"ElementaryTypeName","src":"1402:7:20","typeDescriptions":{}}},"id":5421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1402:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1388:24:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964206669727374206f776e6572","id":5423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1414:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_10b9ce8af142467925ca568eca10a22d164612f6c5bcce7f67dda653dc161c9a","typeString":"literal_string \"Invalid first owner\""},"value":"Invalid first owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_10b9ce8af142467925ca568eca10a22d164612f6c5bcce7f67dda653dc161c9a","typeString":"literal_string \"Invalid first owner\""}],"id":5416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1380:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1380:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5425,"nodeType":"ExpressionStatement","src":"1380:56:20"},{"expression":{"id":5428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5426,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"1447:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5427,"name":"_FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"1457:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1447:18:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5429,"nodeType":"ExpressionStatement","src":"1447:18:20"},{"expression":{"id":5432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5430,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"1476:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5431,"name":"_WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"1484:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1476:14:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5433,"nodeType":"ExpressionStatement","src":"1476:14:20"},{"expression":{"arguments":[{"id":5435,"name":"firstOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"1519:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5434,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"1501:17:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1501:29:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5437,"nodeType":"ExpressionStatement","src":"1501:29:20"}]},"id":5439,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"mutability":"mutable","name":"_FACTORY","nameLocation":"1194:8:20","nodeType":"VariableDeclaration","scope":5439,"src":"1186:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5388,"name":"address","nodeType":"ElementaryTypeName","src":"1186:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5391,"mutability":"mutable","name":"_WAVAX","nameLocation":"1212:6:20","nodeType":"VariableDeclaration","scope":5439,"src":"1204:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5390,"name":"address","nodeType":"ElementaryTypeName","src":"1204:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5393,"mutability":"mutable","name":"firstOwner","nameLocation":"1228:10:20","nodeType":"VariableDeclaration","scope":5439,"src":"1220:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5392,"name":"address","nodeType":"ElementaryTypeName","src":"1220:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1185:54:20"},"returnParameters":{"id":5395,"nodeType":"ParameterList","parameters":[],"src":"1240:0:20"},"scope":7611,"src":"1174:364:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5449,"nodeType":"Block","src":"1573:103:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5443,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1591:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1591:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5445,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"1605:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1591:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5442,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1584:6:20","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1584:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5448,"nodeType":"ExpressionStatement","src":"1584:27:20"}]},"id":5450,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5440,"nodeType":"ParameterList","parameters":[],"src":"1553:2:20"},"returnParameters":{"id":5441,"nodeType":"ParameterList","parameters":[],"src":"1573:0:20"},"scope":7611,"src":"1546:130:20","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":5566,"nodeType":"Block","src":"1911:665:20","statements":[{"body":{"id":5564,"nodeType":"Block","src":"1964:605:20","statements":[{"assignments":[5472,5474],"declarations":[{"constant":false,"id":5472,"mutability":"mutable","name":"input","nameLocation":"1988:5:20","nodeType":"VariableDeclaration","scope":5564,"src":"1980:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5471,"name":"address","nodeType":"ElementaryTypeName","src":"1980:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"output","nameLocation":"2003:6:20","nodeType":"VariableDeclaration","scope":5564,"src":"1995:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5473,"name":"address","nodeType":"ElementaryTypeName","src":"1995:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5484,"initialValue":{"components":[{"baseExpression":{"id":5475,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"2014:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5477,"indexExpression":{"id":5476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2019:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2014:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5478,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"2023:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5482,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2028:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2032:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2028:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2023:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5483,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2013:22:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"1979:56:20"},{"assignments":[5486,null],"declarations":[{"constant":false,"id":5486,"mutability":"mutable","name":"token0","nameLocation":"2059:6:20","nodeType":"VariableDeclaration","scope":5564,"src":"2051:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5485,"name":"address","nodeType":"ElementaryTypeName","src":"2051:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":5492,"initialValue":{"arguments":[{"id":5489,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"2098:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5490,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"2105:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5487,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"2070:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sortTokens","nodeType":"MemberAccess","referencedDeclaration":8143,"src":"2070:27:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":5491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2070:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"2050:62:20"},{"assignments":[5494],"declarations":[{"constant":false,"id":5494,"mutability":"mutable","name":"amountOut","nameLocation":"2135:9:20","nodeType":"VariableDeclaration","scope":5564,"src":"2127:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5493,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5500,"initialValue":{"baseExpression":{"id":5495,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"2147:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5499,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5496,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2155:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2159:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2155:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2147:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2127:34:20"},{"assignments":[5502,5504],"declarations":[{"constant":false,"id":5502,"mutability":"mutable","name":"amount0Out","nameLocation":"2185:10:20","nodeType":"VariableDeclaration","scope":5564,"src":"2177:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5501,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5504,"mutability":"mutable","name":"amount1Out","nameLocation":"2205:10:20","nodeType":"VariableDeclaration","scope":5564,"src":"2197:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5503,"name":"uint256","nodeType":"ElementaryTypeName","src":"2197:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5521,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5505,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"2219:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5506,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5486,"src":"2228:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2219:15:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":5514,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"2261:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":5517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2277:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2272:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5515,"name":"uint","nodeType":"ElementaryTypeName","src":"2272:4:20","typeDescriptions":{}}},"id":5518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5519,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2260:20:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2219:61:20","trueExpression":{"components":[{"arguments":[{"hexValue":"30","id":5510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2238:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5508,"name":"uint","nodeType":"ElementaryTypeName","src":"2238:4:20","typeDescriptions":{}}},"id":5511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2238:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5512,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"2247:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5513,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2237:20:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2176:104:20"},{"assignments":[5523],"declarations":[{"constant":false,"id":5523,"mutability":"mutable","name":"to","nameLocation":"2303:2:20","nodeType":"VariableDeclaration","scope":5564,"src":"2295:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5522,"name":"address","nodeType":"ElementaryTypeName","src":"2295:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5545,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5524,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2308:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5525,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"2312:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2312:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":5527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2326:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2312:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2308:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":5542,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2395:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":5541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5540,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:20","typeDescriptions":{}}},"id":5543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2387:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2308:92:20","trueExpression":{"arguments":[{"id":5532,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"2355:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5533,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"2364:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5534,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"2372:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5538,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5535,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2377:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":5536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2381:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2377:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2372:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5530,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"2330:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"2330:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":5539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2330:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2295:105:20"},{"expression":{"arguments":[{"id":5555,"name":"amount0Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5502,"src":"2502:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5556,"name":"amount1Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5504,"src":"2514:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5557,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"2526:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2540:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2530:9:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5558,"name":"bytes","nodeType":"ElementaryTypeName","src":"2534:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[{"id":5549,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"2454:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5550,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"2463:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5551,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"2470:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5547,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"2429:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"2429:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2429:48:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5546,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"2415:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$5169_$","typeString":"type(contract IPangolinPair)"}},"id":5553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2415:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}},"id":5554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":5153,"src":"2415:68:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":5562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2415:142:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5563,"nodeType":"ExpressionStatement","src":"2415:142:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"1938:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5463,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"1942:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1942:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1956:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1942:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1938:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5565,"initializationExpression":{"assignments":[5460],"declarations":[{"constant":false,"id":5460,"mutability":"mutable","name":"i","nameLocation":"1935:1:20","nodeType":"VariableDeclaration","scope":5565,"src":"1927:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1927:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5461,"nodeType":"VariableDeclarationStatement","src":"1927:9:20"},"loopExpression":{"expression":{"id":5469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1959:3:20","subExpression":{"id":5468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"1961:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5470,"nodeType":"ExpressionStatement","src":"1959:3:20"},"nodeType":"ForStatement","src":"1922:647:20"}]},"id":5567,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nameLocation":"1847:5:20","nodeType":"FunctionDefinition","parameters":{"id":5457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5453,"mutability":"mutable","name":"amounts","nameLocation":"1870:7:20","nodeType":"VariableDeclaration","scope":5567,"src":"1853:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5451,"name":"uint256","nodeType":"ElementaryTypeName","src":"1853:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5452,"nodeType":"ArrayTypeName","src":"1853:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":5456,"mutability":"mutable","name":"path","nameLocation":"1896:4:20","nodeType":"VariableDeclaration","scope":5567,"src":"1879:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5454,"name":"address","nodeType":"ElementaryTypeName","src":"1879:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5455,"nodeType":"ArrayTypeName","src":"1879:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1852:49:20"},"returnParameters":{"id":5458,"nodeType":"ParameterList","parameters":[],"src":"1911:0:20"},"scope":7611,"src":"1838:738:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5634,"nodeType":"Block","src":"2792:549:20","statements":[{"assignments":[5583],"declarations":[{"constant":false,"id":5583,"mutability":"mutable","name":"pangolinFeeAmount","nameLocation":"2811:17:20","nodeType":"VariableDeclaration","scope":5634,"src":"2803:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2803:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5589,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5584,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"2831:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5585,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5577,"src":"2848:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2831:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5587,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"2857:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"2831:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2803:58:20"},{"assignments":[5591],"declarations":[{"constant":false,"id":5591,"mutability":"mutable","name":"partnerFeeAmount","nameLocation":"2880:16:20","nodeType":"VariableDeclaration","scope":5634,"src":"2872:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5590,"name":"uint256","nodeType":"ElementaryTypeName","src":"2872:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5595,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5592,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"2899:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5593,"name":"pangolinFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"2916:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:34:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2872:61:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5596,"name":"pangolinFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"2950:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2970:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2950:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5606,"nodeType":"IfStatement","src":"2946:113:20","trueBody":{"id":5605,"nodeType":"Block","src":"2973:86:20","statements":[{"eventCall":{"arguments":[{"id":5600,"name":"partnerFeeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"3005:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5601,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"3019:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5602,"name":"pangolinFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"3029:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5599,"name":"ProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7775,"src":"2993:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2993:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5604,"nodeType":"EmitStatement","src":"2988:59:20"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5607,"name":"partnerFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"3073:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3092:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3073:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5625,"nodeType":"IfStatement","src":"3069:194:20","trueBody":{"id":5624,"nodeType":"Block","src":"3095:168:20","statements":[{"expression":{"arguments":[{"id":5613,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"3138:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5614,"name":"partnerFeeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"3148:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5615,"name":"partnerFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"3162:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5610,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"3110:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"3110:27:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3110:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5617,"nodeType":"ExpressionStatement","src":"3110:69:20"},{"eventCall":{"arguments":[{"id":5619,"name":"partnerFeeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"3210:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5620,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"3224:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5621,"name":"partnerFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"3234:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5618,"name":"PartnerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7783,"src":"3199:10:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3199:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5623,"nodeType":"EmitStatement","src":"3194:57:20"}]}},{"expression":{"arguments":[{"id":5629,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"3301:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5630,"name":"userTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5573,"src":"3311:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5631,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5569,"src":"3319:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5626,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"3273:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":5628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"3273:27:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3273:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5633,"nodeType":"ExpressionStatement","src":"3273:60:20"}]},"id":5635,"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"2591:11:20","nodeType":"FunctionDefinition","parameters":{"id":5580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5569,"mutability":"mutable","name":"userAmountOut","nameLocation":"2621:13:20","nodeType":"VariableDeclaration","scope":5635,"src":"2613:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5568,"name":"uint256","nodeType":"ElementaryTypeName","src":"2613:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5571,"mutability":"mutable","name":"tokenOut","nameLocation":"2653:8:20","nodeType":"VariableDeclaration","scope":5635,"src":"2645:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5570,"name":"address","nodeType":"ElementaryTypeName","src":"2645:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5573,"mutability":"mutable","name":"userTo","nameLocation":"2680:6:20","nodeType":"VariableDeclaration","scope":5635,"src":"2672:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5572,"name":"address","nodeType":"ElementaryTypeName","src":"2672:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5575,"mutability":"mutable","name":"partnerFeeTo","nameLocation":"2705:12:20","nodeType":"VariableDeclaration","scope":5635,"src":"2697:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5574,"name":"address","nodeType":"ElementaryTypeName","src":"2697:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5577,"mutability":"mutable","name":"feeCut","nameLocation":"2736:6:20","nodeType":"VariableDeclaration","scope":5635,"src":"2728:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5576,"name":"uint256","nodeType":"ElementaryTypeName","src":"2728:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5579,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"2761:14:20","nodeType":"VariableDeclaration","scope":5635,"src":"2753:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2753:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2602:180:20"},"returnParameters":{"id":5581,"nodeType":"ParameterList","parameters":[],"src":"2792:0:20"},"scope":7611,"src":"2582:759:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5706,"nodeType":"Block","src":"3534:582:20","statements":[{"assignments":[5649],"declarations":[{"constant":false,"id":5649,"mutability":"mutable","name":"pangolinFeeAmount","nameLocation":"3553:17:20","nodeType":"VariableDeclaration","scope":5706,"src":"3545:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5648,"name":"uint256","nodeType":"ElementaryTypeName","src":"3545:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5655,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5650,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5645,"src":"3573:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5651,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"3590:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3573:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5653,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"3599:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"3573:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3545:58:20"},{"assignments":[5657],"declarations":[{"constant":false,"id":5657,"mutability":"mutable","name":"partnerFeeAmount","nameLocation":"3622:16:20","nodeType":"VariableDeclaration","scope":5706,"src":"3614:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5656,"name":"uint256","nodeType":"ElementaryTypeName","src":"3614:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5661,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5658,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5645,"src":"3641:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5659,"name":"pangolinFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"3658:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3641:34:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3614:61:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5662,"name":"pangolinFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"3692:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3712:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3692:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5672,"nodeType":"IfStatement","src":"3688:110:20","trueBody":{"id":5671,"nodeType":"Block","src":"3715:83:20","statements":[{"eventCall":{"arguments":[{"id":5666,"name":"partnerFeeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"3747:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5667,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"3761:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5668,"name":"pangolinFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"3768:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5665,"name":"ProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7775,"src":"3735:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3735:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5670,"nodeType":"EmitStatement","src":"3730:56:20"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5673,"name":"partnerFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"3812:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3831:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3812:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5691,"nodeType":"IfStatement","src":"3808:188:20","trueBody":{"id":5690,"nodeType":"Block","src":"3834:162:20","statements":[{"expression":{"arguments":[{"id":5679,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"3877:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5680,"name":"partnerFeeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"3884:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5681,"name":"partnerFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"3898:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5676,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"3849:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"3849:27:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3849:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5683,"nodeType":"ExpressionStatement","src":"3849:66:20"},{"eventCall":{"arguments":[{"id":5685,"name":"partnerFeeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"3946:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5686,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"3960:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5687,"name":"partnerFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"3967:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5684,"name":"PartnerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7783,"src":"3935:10:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3935:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5689,"nodeType":"EmitStatement","src":"3930:54:20"}]}},{"expression":{"arguments":[{"id":5696,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"4029:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5693,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"4013:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5692,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"4006:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":5694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4006:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":5695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":8094,"src":"4006:22:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":5697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4006:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5698,"nodeType":"ExpressionStatement","src":"4006:37:20"},{"expression":{"arguments":[{"id":5702,"name":"userTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"4086:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5703,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"4094:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5699,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"4054:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":5328,"src":"4054:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4054:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5705,"nodeType":"ExpressionStatement","src":"4054:54:20"}]},"id":5707,"implemented":true,"kind":"function","modifiers":[],"name":"_distributeAVAX","nameLocation":"3356:15:20","nodeType":"FunctionDefinition","parameters":{"id":5646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5637,"mutability":"mutable","name":"userAmountOut","nameLocation":"3390:13:20","nodeType":"VariableDeclaration","scope":5707,"src":"3382:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5636,"name":"uint256","nodeType":"ElementaryTypeName","src":"3382:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5639,"mutability":"mutable","name":"userTo","nameLocation":"3422:6:20","nodeType":"VariableDeclaration","scope":5707,"src":"3414:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5638,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5641,"mutability":"mutable","name":"partnerFeeTo","nameLocation":"3447:12:20","nodeType":"VariableDeclaration","scope":5707,"src":"3439:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5640,"name":"address","nodeType":"ElementaryTypeName","src":"3439:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5643,"mutability":"mutable","name":"feeCut","nameLocation":"3478:6:20","nodeType":"VariableDeclaration","scope":5707,"src":"3470:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3470:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5645,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"3503:14:20","nodeType":"VariableDeclaration","scope":5707,"src":"3495:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5644,"name":"uint256","nodeType":"ElementaryTypeName","src":"3495:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3371:153:20"},"returnParameters":{"id":5647,"nodeType":"ParameterList","parameters":[],"src":"3534:0:20"},"scope":7611,"src":"3347:769:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[7831],"body":{"id":5830,"nodeType":"Block","src":"4388:869:20","statements":[{"assignments":[5731],"declarations":[{"constant":false,"id":5731,"mutability":"mutable","name":"feeInfo","nameLocation":"4415:7:20","nodeType":"VariableDeclaration","scope":5830,"src":"4399:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":5730,"nodeType":"UserDefinedTypeName","pathNode":{"id":5729,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"4399:7:20"},"referencedDeclaration":7728,"src":"4399:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":5735,"initialValue":{"baseExpression":{"id":5732,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"4425:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":5734,"indexExpression":{"id":5733,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"4434:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4425:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4399:41:20"},{"expression":{"arguments":[{"expression":{"id":5737,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"4459:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"4459:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":5739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4480:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":5736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4451:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4451:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5741,"nodeType":"ExpressionStatement","src":"4451:47:20"},{"expression":{"id":5749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5742,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"4511:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5745,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"4552:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5746,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"4561:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5747,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"4571:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"id":5743,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"4521:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":8474,"src":"4521:30:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4521:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4511:65:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5750,"nodeType":"ExpressionStatement","src":"4511:65:20"},{"assignments":[5752],"declarations":[{"constant":false,"id":5752,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"4597:14:20","nodeType":"VariableDeclaration","scope":5830,"src":"4589:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5751,"name":"uint256","nodeType":"ElementaryTypeName","src":"4589:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5753,"nodeType":"VariableDeclarationStatement","src":"4589:22:20"},{"assignments":[5755],"declarations":[{"constant":false,"id":5755,"mutability":"mutable","name":"userAmountOut","nameLocation":"4630:13:20","nodeType":"VariableDeclaration","scope":5830,"src":"4622:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5754,"name":"uint256","nodeType":"ElementaryTypeName","src":"4622:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5756,"nodeType":"VariableDeclarationStatement","src":"4622:21:20"},{"id":5781,"nodeType":"Block","src":"4656:225:20","statements":[{"assignments":[5758],"declarations":[{"constant":false,"id":5758,"mutability":"mutable","name":"amountOut","nameLocation":"4706:9:20","nodeType":"VariableDeclaration","scope":5781,"src":"4698:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5757,"name":"uint256","nodeType":"ElementaryTypeName","src":"4698:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5765,"initialValue":{"baseExpression":{"id":5759,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"4718:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5764,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5760,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"4726:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4726:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4743:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4726:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4718:27:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4698:47:20"},{"expression":{"id":5773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5766,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5752,"src":"4760:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5767,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"4777:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":5768,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"4789:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"4789:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"4777:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5771,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"4808:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"4777:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4760:52:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5774,"nodeType":"ExpressionStatement","src":"4760:52:20"},{"expression":{"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5775,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"4827:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5776,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"4843:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5777,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5752,"src":"4855:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4827:42:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5780,"nodeType":"ExpressionStatement","src":"4827:42:20"}]},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5783,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"4901:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5784,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"4918:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4901:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","id":5786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4932:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":5782,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4893:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4893:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5788,"nodeType":"ExpressionStatement","src":"4893:68:20"},{"expression":{"arguments":[{"baseExpression":{"id":5792,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"5020:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5794,"indexExpression":{"hexValue":"30","id":5793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5025:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5020:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5795,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5029:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5029:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5799,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"5066:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5800,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"5075:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5802,"indexExpression":{"hexValue":"30","id":5801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5080:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5075:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5803,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"5084:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5805,"indexExpression":{"hexValue":"31","id":5804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5089:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5084:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5797,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"5041:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"5041:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":5806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5041:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5807,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"5094:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5789,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"4974:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":5791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"4974:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4974:139:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5809,"nodeType":"ExpressionStatement","src":"4974:139:20"},{"expression":{"arguments":[{"id":5811,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"5132:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":5812,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"5141:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":5810,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"5126:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,address[] memory)"}},"id":5813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5126:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5814,"nodeType":"ExpressionStatement","src":"5126:20:20"},{"expression":{"arguments":[{"id":5816,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"5169:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":5817,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"5184:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5822,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5818,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"5189:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5189:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5203:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5189:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5184:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5823,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"5207:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5824,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"5211:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5825,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"5218:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"5218:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":5827,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5752,"src":"5234:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5815,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"5157:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,address,uint256,uint256)"}},"id":5828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5157:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5829,"nodeType":"ExpressionStatement","src":"5157:92:20"}]},"functionSelector":"05a1450d","id":5831,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5723,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5718,"src":"4343:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5724,"kind":"modifierInvocation","modifierName":{"id":5722,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"4336:6:20"},"nodeType":"ModifierInvocation","src":"4336:16:20"}],"name":"swapExactTokensForTokens","nameLocation":"4131:24:20","nodeType":"FunctionDefinition","parameters":{"id":5721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5709,"mutability":"mutable","name":"amountIn","nameLocation":"4174:8:20","nodeType":"VariableDeclaration","scope":5831,"src":"4166:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5708,"name":"uint256","nodeType":"ElementaryTypeName","src":"4166:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5711,"mutability":"mutable","name":"amountOutMin","nameLocation":"4201:12:20","nodeType":"VariableDeclaration","scope":5831,"src":"4193:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5710,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5714,"mutability":"mutable","name":"path","nameLocation":"4243:4:20","nodeType":"VariableDeclaration","scope":5831,"src":"4224:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5712,"name":"address","nodeType":"ElementaryTypeName","src":"4224:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5713,"nodeType":"ArrayTypeName","src":"4224:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5716,"mutability":"mutable","name":"to","nameLocation":"4266:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"4258:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5715,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5718,"mutability":"mutable","name":"deadline","nameLocation":"4287:8:20","nodeType":"VariableDeclaration","scope":5831,"src":"4279:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5717,"name":"uint256","nodeType":"ElementaryTypeName","src":"4279:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5720,"mutability":"mutable","name":"feeTo","nameLocation":"4314:5:20","nodeType":"VariableDeclaration","scope":5831,"src":"4306:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5719,"name":"address","nodeType":"ElementaryTypeName","src":"4306:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4155:171:20"},"returnParameters":{"id":5728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5727,"mutability":"mutable","name":"amounts","nameLocation":"4379:7:20","nodeType":"VariableDeclaration","scope":5831,"src":"4362:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5725,"name":"uint256","nodeType":"ElementaryTypeName","src":"4362:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5726,"nodeType":"ArrayTypeName","src":"4362:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4361:26:20"},"scope":7611,"src":"4122:1135:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7850],"body":{"id":5940,"nodeType":"Block","src":"5529:723:20","statements":[{"assignments":[5855],"declarations":[{"constant":false,"id":5855,"mutability":"mutable","name":"feeInfo","nameLocation":"5556:7:20","nodeType":"VariableDeclaration","scope":5940,"src":"5540:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":5854,"nodeType":"UserDefinedTypeName","pathNode":{"id":5853,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"5540:7:20"},"referencedDeclaration":7728,"src":"5540:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":5859,"initialValue":{"baseExpression":{"id":5856,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"5566:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":5858,"indexExpression":{"id":5857,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5844,"src":"5575:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5566:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5540:41:20"},{"expression":{"arguments":[{"expression":{"id":5861,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"5600:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"5600:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":5863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5621:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":5860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5592:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5865,"nodeType":"ExpressionStatement","src":"5592:47:20"},{"assignments":[5867],"declarations":[{"constant":false,"id":5867,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"5660:14:20","nodeType":"VariableDeclaration","scope":5940,"src":"5652:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5866,"name":"uint256","nodeType":"ElementaryTypeName","src":"5652:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5874,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5868,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"5677:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":5869,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"5689:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"5689:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"5677:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5872,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"5708:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"5677:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5652:60:20"},{"expression":{"id":5884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5875,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"5769:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5878,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"5809:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5879,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"5818:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5880,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"5830:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5818:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5882,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"5846:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"id":5876,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"5779:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"5779:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":5883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5779:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"5769:82:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5885,"nodeType":"ExpressionStatement","src":"5769:82:20"},{"assignments":[5887],"declarations":[{"constant":false,"id":5887,"mutability":"mutable","name":"amountIn","nameLocation":"5870:8:20","nodeType":"VariableDeclaration","scope":5940,"src":"5862:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5886,"name":"uint256","nodeType":"ElementaryTypeName","src":"5862:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5891,"initialValue":{"baseExpression":{"id":5888,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"5881:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5890,"indexExpression":{"hexValue":"30","id":5889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5889:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5881:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5862:29:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5893,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"5910:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5894,"name":"amountInMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5835,"src":"5922:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5910:23:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4558434553534956455f494e5055545f414d4f554e54","id":5896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5935:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb","typeString":"literal_string \"EXCESSIVE_INPUT_AMOUNT\""},"value":"EXCESSIVE_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb","typeString":"literal_string \"EXCESSIVE_INPUT_AMOUNT\""}],"id":5892,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5902:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5902:58:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5898,"nodeType":"ExpressionStatement","src":"5902:58:20"},{"expression":{"arguments":[{"baseExpression":{"id":5902,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"6019:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5904,"indexExpression":{"hexValue":"30","id":5903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6024:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6019:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5905,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6028:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6028:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5909,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"6065:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5910,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"6074:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5912,"indexExpression":{"hexValue":"30","id":5911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6079:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6074:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5913,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"6083:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5915,"indexExpression":{"hexValue":"31","id":5914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6088:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6083:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5907,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"6040:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"6040:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":5916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6040:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5917,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"6093:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5899,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"5973:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":5901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"5973:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":5918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5973:139:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5919,"nodeType":"ExpressionStatement","src":"5973:139:20"},{"expression":{"arguments":[{"id":5921,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"6131:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":5922,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"6140:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":5920,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"6125:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,address[] memory)"}},"id":5923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6125:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5924,"nodeType":"ExpressionStatement","src":"6125:20:20"},{"expression":{"arguments":[{"id":5926,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"6168:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":5927,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"6179:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5932,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5928,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"6184:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6184:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6198:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6184:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6179:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5933,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"6202:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5934,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5844,"src":"6206:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5935,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"6213:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"6213:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":5937,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"6229:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5925,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"6156:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,address,uint256,uint256)"}},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6156:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5939,"nodeType":"ExpressionStatement","src":"6156:88:20"}]},"functionSelector":"a32166ee","id":5941,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5847,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5842,"src":"5484:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5848,"kind":"modifierInvocation","modifierName":{"id":5846,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"5477:6:20"},"nodeType":"ModifierInvocation","src":"5477:16:20"}],"name":"swapTokensForExactTokens","nameLocation":"5272:24:20","nodeType":"FunctionDefinition","parameters":{"id":5845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5833,"mutability":"mutable","name":"amountOut","nameLocation":"5315:9:20","nodeType":"VariableDeclaration","scope":5941,"src":"5307:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5832,"name":"uint256","nodeType":"ElementaryTypeName","src":"5307:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5835,"mutability":"mutable","name":"amountInMax","nameLocation":"5343:11:20","nodeType":"VariableDeclaration","scope":5941,"src":"5335:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5834,"name":"uint256","nodeType":"ElementaryTypeName","src":"5335:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5838,"mutability":"mutable","name":"path","nameLocation":"5384:4:20","nodeType":"VariableDeclaration","scope":5941,"src":"5365:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5836,"name":"address","nodeType":"ElementaryTypeName","src":"5365:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5837,"nodeType":"ArrayTypeName","src":"5365:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5840,"mutability":"mutable","name":"to","nameLocation":"5407:2:20","nodeType":"VariableDeclaration","scope":5941,"src":"5399:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5839,"name":"address","nodeType":"ElementaryTypeName","src":"5399:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5842,"mutability":"mutable","name":"deadline","nameLocation":"5428:8:20","nodeType":"VariableDeclaration","scope":5941,"src":"5420:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5841,"name":"uint256","nodeType":"ElementaryTypeName","src":"5420:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5844,"mutability":"mutable","name":"feeTo","nameLocation":"5455:5:20","nodeType":"VariableDeclaration","scope":5941,"src":"5447:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5843,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5296:171:20"},"returnParameters":{"id":5852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5851,"mutability":"mutable","name":"amounts","nameLocation":"5520:7:20","nodeType":"VariableDeclaration","scope":5941,"src":"5503:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5849,"name":"uint256","nodeType":"ElementaryTypeName","src":"5503:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5850,"nodeType":"ArrayTypeName","src":"5503:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5502:26:20"},"scope":7611,"src":"5263:989:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7867],"body":{"id":6071,"nodeType":"Block","src":"6503:817:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5962,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"6522:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5964,"indexExpression":{"hexValue":"30","id":5963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6527:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6522:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5965,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"6533:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6522:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f50415448","id":5967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6540:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""},"value":"INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""}],"id":5961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6514:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6514:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5969,"nodeType":"ExpressionStatement","src":"6514:41:20"},{"assignments":[5972],"declarations":[{"constant":false,"id":5972,"mutability":"mutable","name":"feeInfo","nameLocation":"6584:7:20","nodeType":"VariableDeclaration","scope":6071,"src":"6568:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":5971,"nodeType":"UserDefinedTypeName","pathNode":{"id":5970,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"6568:7:20"},"referencedDeclaration":7728,"src":"6568:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":5976,"initialValue":{"baseExpression":{"id":5973,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"6594:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":5975,"indexExpression":{"id":5974,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"6603:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6594:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6568:41:20"},{"expression":{"arguments":[{"expression":{"id":5978,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"6628:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":5979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"6628:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":5980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6649:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":5977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6620:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6620:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5982,"nodeType":"ExpressionStatement","src":"6620:47:20"},{"expression":{"id":5991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5983,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5959,"src":"6680:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5986,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"6721:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6730:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"6730:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5989,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"6741:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"id":5984,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"6690:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":5985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":8474,"src":"6690:30:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":5990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6690:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"6680:66:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5992,"nodeType":"ExpressionStatement","src":"6680:66:20"},{"assignments":[5994],"declarations":[{"constant":false,"id":5994,"mutability":"mutable","name":"amountOut","nameLocation":"6767:9:20","nodeType":"VariableDeclaration","scope":6071,"src":"6759:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5993,"name":"uint256","nodeType":"ElementaryTypeName","src":"6759:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6001,"initialValue":{"baseExpression":{"id":5995,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5959,"src":"6779:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6000,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5996,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5959,"src":"6787:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":5997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6787:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6804:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6787:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6779:27:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6759:47:20"},{"assignments":[6003],"declarations":[{"constant":false,"id":6003,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"6825:14:20","nodeType":"VariableDeclaration","scope":6071,"src":"6817:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6002,"name":"uint256","nodeType":"ElementaryTypeName","src":"6817:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6010,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6004,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5994,"src":"6842:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6005,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"6854:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"6854:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"6842:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6008,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"6873:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"6842:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6817:60:20"},{"assignments":[6012],"declarations":[{"constant":false,"id":6012,"mutability":"mutable","name":"userAmountOut","nameLocation":"6896:13:20","nodeType":"VariableDeclaration","scope":6071,"src":"6888:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6011,"name":"uint256","nodeType":"ElementaryTypeName","src":"6888:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6016,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6013,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5994,"src":"6912:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6014,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"6924:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6912:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6888:50:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6018,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6012,"src":"6959:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6019,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5943,"src":"6976:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6959:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","id":6021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6990:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":6017,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6951:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6951:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6023,"nodeType":"ExpressionStatement","src":"6951:68:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":6025,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"7039:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6024,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"7032:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7032:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":8073,"src":"7032:21:20","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":6030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":6028,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"7061:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7032:39:20","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":6031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7032:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6032,"nodeType":"ExpressionStatement","src":"7032:41:20"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":6040,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"7139:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6041,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"7148:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6042,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"7155:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6044,"indexExpression":{"hexValue":"31","id":6043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7160:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7155:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6038,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"7114:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"7114:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7114:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6046,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7165:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"7165:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6035,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"7098:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6034,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"7091:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":6036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7091:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8082,"src":"7091:22:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7091:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6033,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"7084:6:20","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":6049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7084:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6050,"nodeType":"ExpressionStatement","src":"7084:92:20"},{"expression":{"arguments":[{"id":6052,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5959,"src":"7195:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6053,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"7204:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6051,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"7189:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,address[] memory)"}},"id":6054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7189:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6055,"nodeType":"ExpressionStatement","src":"7189:20:20"},{"expression":{"arguments":[{"id":6057,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6012,"src":"7232:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":6058,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"7247:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6063,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6059,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"7252:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7252:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7266:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7252:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7247:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6064,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"7270:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6065,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"7274:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6066,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"7281:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"7281:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":6068,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"7297:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6056,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"7220:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,address,uint256,uint256)"}},"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7220:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6070,"nodeType":"ExpressionStatement","src":"7220:92:20"}]},"functionSelector":"eaf92ef4","id":6072,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5955,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"6458:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5956,"kind":"modifierInvocation","modifierName":{"id":5954,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"6451:6:20"},"nodeType":"ModifierInvocation","src":"6451:16:20"}],"name":"swapExactAVAXForTokens","nameLocation":"6267:22:20","nodeType":"FunctionDefinition","parameters":{"id":5953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5943,"mutability":"mutable","name":"amountOutMin","nameLocation":"6308:12:20","nodeType":"VariableDeclaration","scope":6072,"src":"6300:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6300:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5946,"mutability":"mutable","name":"path","nameLocation":"6350:4:20","nodeType":"VariableDeclaration","scope":6072,"src":"6331:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5944,"name":"address","nodeType":"ElementaryTypeName","src":"6331:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5945,"nodeType":"ArrayTypeName","src":"6331:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5948,"mutability":"mutable","name":"to","nameLocation":"6373:2:20","nodeType":"VariableDeclaration","scope":6072,"src":"6365:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5947,"name":"address","nodeType":"ElementaryTypeName","src":"6365:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5950,"mutability":"mutable","name":"deadline","nameLocation":"6394:8:20","nodeType":"VariableDeclaration","scope":6072,"src":"6386:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5949,"name":"uint256","nodeType":"ElementaryTypeName","src":"6386:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5952,"mutability":"mutable","name":"feeTo","nameLocation":"6421:5:20","nodeType":"VariableDeclaration","scope":6072,"src":"6413:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5951,"name":"address","nodeType":"ElementaryTypeName","src":"6413:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6289:144:20"},"returnParameters":{"id":5960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5959,"mutability":"mutable","name":"amounts","nameLocation":"6494:7:20","nodeType":"VariableDeclaration","scope":6072,"src":"6477:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5957,"name":"uint256","nodeType":"ElementaryTypeName","src":"6477:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5958,"nodeType":"ArrayTypeName","src":"6477:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6476:26:20"},"scope":7611,"src":"6258:1062:20","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[7886],"body":{"id":6187,"nodeType":"Block","src":"7590:772:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6095,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"7609:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6100,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6096,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"7614:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7614:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7628:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7614:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7609:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6101,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"7634:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7609:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f50415448","id":6103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7641:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""},"value":"INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""}],"id":6094,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7601:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7601:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6105,"nodeType":"ExpressionStatement","src":"7601:55:20"},{"assignments":[6108],"declarations":[{"constant":false,"id":6108,"mutability":"mutable","name":"feeInfo","nameLocation":"7685:7:20","nodeType":"VariableDeclaration","scope":6187,"src":"7669:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":6107,"nodeType":"UserDefinedTypeName","pathNode":{"id":6106,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"7669:7:20"},"referencedDeclaration":7728,"src":"7669:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":6112,"initialValue":{"baseExpression":{"id":6109,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"7695:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":6111,"indexExpression":{"id":6110,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6085,"src":"7704:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7695:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7669:41:20"},{"expression":{"arguments":[{"expression":{"id":6114,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"7729:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"7729:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":6116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7750:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":6113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7721:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7721:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6118,"nodeType":"ExpressionStatement","src":"7721:47:20"},{"assignments":[6120],"declarations":[{"constant":false,"id":6120,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"7789:14:20","nodeType":"VariableDeclaration","scope":6187,"src":"7781:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6119,"name":"uint256","nodeType":"ElementaryTypeName","src":"7781:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6127,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6121,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"7806:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6122,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"7818:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"7818:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"7806:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6125,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"7837:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"7806:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7781:60:20"},{"expression":{"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6128,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"7898:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6131,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"7938:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6132,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"7947:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6133,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"7959:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7947:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6135,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"7975:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"id":6129,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"7908:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"7908:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":6136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7908:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"7898:82:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6138,"nodeType":"ExpressionStatement","src":"7898:82:20"},{"assignments":[6140],"declarations":[{"constant":false,"id":6140,"mutability":"mutable","name":"amountIn","nameLocation":"7999:8:20","nodeType":"VariableDeclaration","scope":6187,"src":"7991:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6139,"name":"uint256","nodeType":"ElementaryTypeName","src":"7991:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6144,"initialValue":{"baseExpression":{"id":6141,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"8010:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6143,"indexExpression":{"hexValue":"30","id":6142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8018:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8010:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7991:29:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6146,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6140,"src":"8039:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":6147,"name":"amountInMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"8051:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8039:23:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4558434553534956455f494e5055545f414d4f554e54","id":6149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8064:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb","typeString":"literal_string \"EXCESSIVE_INPUT_AMOUNT\""},"value":"EXCESSIVE_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb","typeString":"literal_string \"EXCESSIVE_INPUT_AMOUNT\""}],"id":6145,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8031:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8031:58:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6151,"nodeType":"ExpressionStatement","src":"8031:58:20"},{"expression":{"arguments":[{"baseExpression":{"id":6155,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"8148:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6157,"indexExpression":{"hexValue":"30","id":6156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8153:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8148:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6158,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8157:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8157:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6162,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"8194:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6163,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"8203:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6165,"indexExpression":{"hexValue":"30","id":6164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8208:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8203:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6166,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"8212:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6168,"indexExpression":{"hexValue":"31","id":6167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8217:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8212:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6160,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"8169:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"8169:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8169:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6170,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6140,"src":"8222:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6152,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"8102:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":6154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"8102:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":6171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8102:139:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6172,"nodeType":"ExpressionStatement","src":"8102:139:20"},{"expression":{"arguments":[{"id":6174,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"8260:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6175,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"8269:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6173,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"8254:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,address[] memory)"}},"id":6176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8254:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6177,"nodeType":"ExpressionStatement","src":"8254:20:20"},{"expression":{"arguments":[{"id":6179,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"8301:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6180,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6081,"src":"8312:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6181,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6085,"src":"8316:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6182,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"8323:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"8323:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":6184,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"8339:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6178,"name":"_distributeAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5707,"src":"8285:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256)"}},"id":6185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8285:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6186,"nodeType":"ExpressionStatement","src":"8285:69:20"}]},"functionSelector":"0ece8e24","id":6188,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":6088,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6083,"src":"7545:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6089,"kind":"modifierInvocation","modifierName":{"id":6087,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"7538:6:20"},"nodeType":"ModifierInvocation","src":"7538:16:20"}],"name":"swapTokensForExactAVAX","nameLocation":"7335:22:20","nodeType":"FunctionDefinition","parameters":{"id":6086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6074,"mutability":"mutable","name":"amountOut","nameLocation":"7376:9:20","nodeType":"VariableDeclaration","scope":6188,"src":"7368:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6073,"name":"uint256","nodeType":"ElementaryTypeName","src":"7368:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"amountInMax","nameLocation":"7404:11:20","nodeType":"VariableDeclaration","scope":6188,"src":"7396:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"7396:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6079,"mutability":"mutable","name":"path","nameLocation":"7445:4:20","nodeType":"VariableDeclaration","scope":6188,"src":"7426:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6077,"name":"address","nodeType":"ElementaryTypeName","src":"7426:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6078,"nodeType":"ArrayTypeName","src":"7426:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6081,"mutability":"mutable","name":"to","nameLocation":"7468:2:20","nodeType":"VariableDeclaration","scope":6188,"src":"7460:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6080,"name":"address","nodeType":"ElementaryTypeName","src":"7460:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6083,"mutability":"mutable","name":"deadline","nameLocation":"7489:8:20","nodeType":"VariableDeclaration","scope":6188,"src":"7481:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6082,"name":"uint256","nodeType":"ElementaryTypeName","src":"7481:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6085,"mutability":"mutable","name":"feeTo","nameLocation":"7516:5:20","nodeType":"VariableDeclaration","scope":6188,"src":"7508:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6084,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7357:171:20"},"returnParameters":{"id":6093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6092,"mutability":"mutable","name":"amounts","nameLocation":"7581:7:20","nodeType":"VariableDeclaration","scope":6188,"src":"7564:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6090,"name":"uint256","nodeType":"ElementaryTypeName","src":"7564:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6091,"nodeType":"ArrayTypeName","src":"7564:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7563:26:20"},"scope":7611,"src":"7326:1036:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7905],"body":{"id":6319,"nodeType":"Block","src":"8632:920:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6211,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"8651:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6216,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6212,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"8656:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8656:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8670:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8656:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8651:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6217,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"8676:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8651:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f50415448","id":6219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8683:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""},"value":"INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""}],"id":6210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8643:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8643:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6221,"nodeType":"ExpressionStatement","src":"8643:55:20"},{"assignments":[6224],"declarations":[{"constant":false,"id":6224,"mutability":"mutable","name":"feeInfo","nameLocation":"8727:7:20","nodeType":"VariableDeclaration","scope":6319,"src":"8711:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":6223,"nodeType":"UserDefinedTypeName","pathNode":{"id":6222,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"8711:7:20"},"referencedDeclaration":7728,"src":"8711:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":6228,"initialValue":{"baseExpression":{"id":6225,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"8737:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":6227,"indexExpression":{"id":6226,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"8746:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8737:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8711:41:20"},{"expression":{"arguments":[{"expression":{"id":6230,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6224,"src":"8771:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"8771:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":6232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8792:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":6229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8763:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8763:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6234,"nodeType":"ExpressionStatement","src":"8763:47:20"},{"expression":{"id":6242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6235,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"8823:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6238,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"8864:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6239,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6190,"src":"8873:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6240,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"8883:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"id":6236,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"8833:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":8474,"src":"8833:30:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":6241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8833:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"8823:65:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6243,"nodeType":"ExpressionStatement","src":"8823:65:20"},{"assignments":[6245],"declarations":[{"constant":false,"id":6245,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"8909:14:20","nodeType":"VariableDeclaration","scope":6319,"src":"8901:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6244,"name":"uint256","nodeType":"ElementaryTypeName","src":"8901:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6246,"nodeType":"VariableDeclarationStatement","src":"8901:22:20"},{"assignments":[6248],"declarations":[{"constant":false,"id":6248,"mutability":"mutable","name":"userAmountOut","nameLocation":"8942:13:20","nodeType":"VariableDeclaration","scope":6319,"src":"8934:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6247,"name":"uint256","nodeType":"ElementaryTypeName","src":"8934:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6249,"nodeType":"VariableDeclarationStatement","src":"8934:21:20"},{"id":6274,"nodeType":"Block","src":"8968:225:20","statements":[{"assignments":[6251],"declarations":[{"constant":false,"id":6251,"mutability":"mutable","name":"amountOut","nameLocation":"9018:9:20","nodeType":"VariableDeclaration","scope":6274,"src":"9010:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6250,"name":"uint256","nodeType":"ElementaryTypeName","src":"9010:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6258,"initialValue":{"baseExpression":{"id":6252,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"9030:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6257,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6253,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"9038:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9038:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9055:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9038:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9030:27:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9010:47:20"},{"expression":{"id":6266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6259,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6245,"src":"9072:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6260,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"9089:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6261,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6224,"src":"9101:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"9101:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"9089:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6264,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"9120:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"9089:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9072:52:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6267,"nodeType":"ExpressionStatement","src":"9072:52:20"},{"expression":{"id":6272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6268,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"9139:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6269,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"9155:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6270,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6245,"src":"9167:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9155:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9139:42:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6273,"nodeType":"ExpressionStatement","src":"9139:42:20"}]},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6276,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"9213:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6277,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6192,"src":"9230:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9213:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","id":6279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9244:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":6275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9205:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9205:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6281,"nodeType":"ExpressionStatement","src":"9205:68:20"},{"expression":{"arguments":[{"baseExpression":{"id":6285,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"9332:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6287,"indexExpression":{"hexValue":"30","id":6286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9337:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9332:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9341:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9341:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6292,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"9378:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6293,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"9387:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6295,"indexExpression":{"hexValue":"30","id":6294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9392:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9387:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6296,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"9396:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6298,"indexExpression":{"hexValue":"31","id":6297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9401:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9396:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6290,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"9353:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"9353:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9353:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6300,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"9406:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6302,"indexExpression":{"hexValue":"30","id":6301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9414:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9406:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6282,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"9286:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":6284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"9286:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":6303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9286:141:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6304,"nodeType":"ExpressionStatement","src":"9286:141:20"},{"expression":{"arguments":[{"id":6306,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"9446:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6307,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"9455:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6305,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"9440:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,address[] memory)"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9440:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6309,"nodeType":"ExpressionStatement","src":"9440:20:20"},{"expression":{"arguments":[{"id":6311,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"9487:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6312,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"9502:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6313,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"9506:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6314,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6224,"src":"9513:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"9513:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":6316,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6245,"src":"9529:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6310,"name":"_distributeAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5707,"src":"9471:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256)"}},"id":6317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9471:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6318,"nodeType":"ExpressionStatement","src":"9471:73:20"}]},"functionSelector":"e5e47889","id":6320,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":6204,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6199,"src":"8587:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6205,"kind":"modifierInvocation","modifierName":{"id":6203,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"8580:6:20"},"nodeType":"ModifierInvocation","src":"8580:16:20"}],"name":"swapExactTokensForAVAX","nameLocation":"8377:22:20","nodeType":"FunctionDefinition","parameters":{"id":6202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6190,"mutability":"mutable","name":"amountIn","nameLocation":"8418:8:20","nodeType":"VariableDeclaration","scope":6320,"src":"8410:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6189,"name":"uint256","nodeType":"ElementaryTypeName","src":"8410:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6192,"mutability":"mutable","name":"amountOutMin","nameLocation":"8445:12:20","nodeType":"VariableDeclaration","scope":6320,"src":"8437:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6191,"name":"uint256","nodeType":"ElementaryTypeName","src":"8437:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6195,"mutability":"mutable","name":"path","nameLocation":"8487:4:20","nodeType":"VariableDeclaration","scope":6320,"src":"8468:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6193,"name":"address","nodeType":"ElementaryTypeName","src":"8468:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6194,"nodeType":"ArrayTypeName","src":"8468:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6197,"mutability":"mutable","name":"to","nameLocation":"8510:2:20","nodeType":"VariableDeclaration","scope":6320,"src":"8502:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6196,"name":"address","nodeType":"ElementaryTypeName","src":"8502:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6199,"mutability":"mutable","name":"deadline","nameLocation":"8531:8:20","nodeType":"VariableDeclaration","scope":6320,"src":"8523:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6198,"name":"uint256","nodeType":"ElementaryTypeName","src":"8523:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6201,"mutability":"mutable","name":"feeTo","nameLocation":"8558:5:20","nodeType":"VariableDeclaration","scope":6320,"src":"8550:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6200,"name":"address","nodeType":"ElementaryTypeName","src":"8550:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8399:171:20"},"returnParameters":{"id":6209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6208,"mutability":"mutable","name":"amounts","nameLocation":"8623:7:20","nodeType":"VariableDeclaration","scope":6320,"src":"8606:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6206,"name":"uint256","nodeType":"ElementaryTypeName","src":"8606:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6207,"nodeType":"ArrayTypeName","src":"8606:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"8605:26:20"},"scope":7611,"src":"8368:1184:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7922],"body":{"id":6457,"nodeType":"Block","src":"9800:919:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6341,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"9819:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6343,"indexExpression":{"hexValue":"30","id":6342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9824:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9819:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6344,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"9830:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f50415448","id":6346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9837:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""},"value":"INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""}],"id":6340,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9811:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9811:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6348,"nodeType":"ExpressionStatement","src":"9811:41:20"},{"assignments":[6351],"declarations":[{"constant":false,"id":6351,"mutability":"mutable","name":"feeInfo","nameLocation":"9881:7:20","nodeType":"VariableDeclaration","scope":6457,"src":"9865:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":6350,"nodeType":"UserDefinedTypeName","pathNode":{"id":6349,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"9865:7:20"},"referencedDeclaration":7728,"src":"9865:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":6355,"initialValue":{"baseExpression":{"id":6352,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"9891:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":6354,"indexExpression":{"id":6353,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6331,"src":"9900:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9891:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9865:41:20"},{"expression":{"arguments":[{"expression":{"id":6357,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6351,"src":"9925:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"9925:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":6359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9946:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":6356,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9917:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9917:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6361,"nodeType":"ExpressionStatement","src":"9917:47:20"},{"assignments":[6363],"declarations":[{"constant":false,"id":6363,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"9985:14:20","nodeType":"VariableDeclaration","scope":6457,"src":"9977:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6362,"name":"uint256","nodeType":"ElementaryTypeName","src":"9977:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6370,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6364,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"10002:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6365,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6351,"src":"10014:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"10014:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"10002:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6368,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"10033:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"10002:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9977:60:20"},{"expression":{"id":6380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6371,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"10094:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6374,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"10134:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6375,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"10143:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6376,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6363,"src":"10155:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6378,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"10171:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"id":6372,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"10104:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"10104:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10104:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"10094:82:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6381,"nodeType":"ExpressionStatement","src":"10094:82:20"},{"assignments":[6383],"declarations":[{"constant":false,"id":6383,"mutability":"mutable","name":"amountIn","nameLocation":"10195:8:20","nodeType":"VariableDeclaration","scope":6457,"src":"10187:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6382,"name":"uint256","nodeType":"ElementaryTypeName","src":"10187:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6387,"initialValue":{"baseExpression":{"id":6384,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"10206:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6386,"indexExpression":{"hexValue":"30","id":6385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10214:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10206:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10187:29:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6389,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6383,"src":"10235:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":6390,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10247:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"10247:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10235:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4558434553534956455f494e5055545f414d4f554e54","id":6393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10258:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb","typeString":"literal_string \"EXCESSIVE_INPUT_AMOUNT\""},"value":"EXCESSIVE_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb","typeString":"literal_string \"EXCESSIVE_INPUT_AMOUNT\""}],"id":6388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10227:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10227:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6395,"nodeType":"ExpressionStatement","src":"10227:56:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":6397,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"10303:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6396,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"10296:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":6398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10296:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":6399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":8073,"src":"10296:21:20","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":6401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6400,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6383,"src":"10325:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"10296:38:20","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":6402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10296:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6403,"nodeType":"ExpressionStatement","src":"10296:40:20"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":6411,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"10402:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6412,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"10411:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6413,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"10418:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6415,"indexExpression":{"hexValue":"31","id":6414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10423:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10418:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6409,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"10377:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"10377:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10377:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6417,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6383,"src":"10428:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6406,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"10361:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6405,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"10354:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10354:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8082,"src":"10354:22:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10354:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6404,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"10347:6:20","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":6419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10347:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6420,"nodeType":"ExpressionStatement","src":"10347:91:20"},{"expression":{"arguments":[{"id":6422,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"10457:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6423,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"10466:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6421,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"10451:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,address[] memory)"}},"id":6424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10451:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6425,"nodeType":"ExpressionStatement","src":"10451:20:20"},{"expression":{"arguments":[{"id":6427,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"10494:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":6428,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"10505:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6433,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6429,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"10510:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10510:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10524:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10510:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10505:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6434,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6327,"src":"10528:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6435,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6331,"src":"10532:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6436,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6351,"src":"10539:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"10539:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":6438,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6363,"src":"10555:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6426,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"10482:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,address,uint256,uint256)"}},"id":6439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10482:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6440,"nodeType":"ExpressionStatement","src":"10482:88:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6441,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10624:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"10624:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6443,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6383,"src":"10636:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10624:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6456,"nodeType":"IfStatement","src":"10620:91:20","trueBody":{"expression":{"arguments":[{"expression":{"id":6448,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10678:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10678:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6450,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10690:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"10690:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6452,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6383,"src":"10702:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10690:20:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6445,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"10646:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":6447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":5328,"src":"10646:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10646:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6455,"nodeType":"ExpressionStatement","src":"10646:65:20"}}]},"functionSelector":"2eb9cc74","id":6458,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":6334,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6329,"src":"9755:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6335,"kind":"modifierInvocation","modifierName":{"id":6333,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"9748:6:20"},"nodeType":"ModifierInvocation","src":"9748:16:20"}],"name":"swapAVAXForExactTokens","nameLocation":"9567:22:20","nodeType":"FunctionDefinition","parameters":{"id":6332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6322,"mutability":"mutable","name":"amountOut","nameLocation":"9608:9:20","nodeType":"VariableDeclaration","scope":6458,"src":"9600:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6321,"name":"uint256","nodeType":"ElementaryTypeName","src":"9600:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6325,"mutability":"mutable","name":"path","nameLocation":"9647:4:20","nodeType":"VariableDeclaration","scope":6458,"src":"9628:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6323,"name":"address","nodeType":"ElementaryTypeName","src":"9628:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6324,"nodeType":"ArrayTypeName","src":"9628:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6327,"mutability":"mutable","name":"to","nameLocation":"9670:2:20","nodeType":"VariableDeclaration","scope":6458,"src":"9662:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6326,"name":"address","nodeType":"ElementaryTypeName","src":"9662:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6329,"mutability":"mutable","name":"deadline","nameLocation":"9691:8:20","nodeType":"VariableDeclaration","scope":6458,"src":"9683:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6328,"name":"uint256","nodeType":"ElementaryTypeName","src":"9683:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6331,"mutability":"mutable","name":"feeTo","nameLocation":"9718:5:20","nodeType":"VariableDeclaration","scope":6458,"src":"9710:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6330,"name":"address","nodeType":"ElementaryTypeName","src":"9710:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9589:141:20"},"returnParameters":{"id":6339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6338,"mutability":"mutable","name":"amounts","nameLocation":"9791:7:20","nodeType":"VariableDeclaration","scope":6458,"src":"9774:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6336,"name":"uint256","nodeType":"ElementaryTypeName","src":"9774:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6337,"nodeType":"ArrayTypeName","src":"9774:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"9773:26:20"},"scope":7611,"src":"9558:1161:20","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":6622,"nodeType":"Block","src":"10993:1149:20","statements":[{"body":{"id":6620,"nodeType":"Block","src":"11046:1089:20","statements":[{"assignments":[6477,6479],"declarations":[{"constant":false,"id":6477,"mutability":"mutable","name":"input","nameLocation":"11070:5:20","nodeType":"VariableDeclaration","scope":6620,"src":"11062:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6476,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6479,"mutability":"mutable","name":"output","nameLocation":"11085:6:20","nodeType":"VariableDeclaration","scope":6620,"src":"11077:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6478,"name":"address","nodeType":"ElementaryTypeName","src":"11077:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6489,"initialValue":{"components":[{"baseExpression":{"id":6480,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"11096:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6482,"indexExpression":{"id":6481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"11101:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11096:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6483,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"11105:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6487,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"11110:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11114:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11110:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11105:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":6488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11095:22:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"11061:56:20"},{"assignments":[6491,null],"declarations":[{"constant":false,"id":6491,"mutability":"mutable","name":"token0","nameLocation":"11141:6:20","nodeType":"VariableDeclaration","scope":6620,"src":"11133:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6490,"name":"address","nodeType":"ElementaryTypeName","src":"11133:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":6497,"initialValue":{"arguments":[{"id":6494,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"11180:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6495,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"11187:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6492,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"11152:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sortTokens","nodeType":"MemberAccess","referencedDeclaration":8143,"src":"11152:27:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":6496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11152:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"11132:62:20"},{"assignments":[6500],"declarations":[{"constant":false,"id":6500,"mutability":"mutable","name":"pair","nameLocation":"11223:4:20","nodeType":"VariableDeclaration","scope":6620,"src":"11209:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"},"typeName":{"id":6499,"nodeType":"UserDefinedTypeName","pathNode":{"id":6498,"name":"IPangolinPair","nodeType":"IdentifierPath","referencedDeclaration":5169,"src":"11209:13:20"},"referencedDeclaration":5169,"src":"11209:13:20","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}},"visibility":"internal"}],"id":6509,"initialValue":{"arguments":[{"arguments":[{"id":6504,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"11269:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6505,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"11278:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6506,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"11285:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6502,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"11244:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"11244:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11244:48:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6501,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"11230:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$5169_$","typeString":"type(contract IPangolinPair)"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11230:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}},"nodeType":"VariableDeclarationStatement","src":"11209:84:20"},{"assignments":[6511],"declarations":[{"constant":false,"id":6511,"mutability":"mutable","name":"amountInput","nameLocation":"11316:11:20","nodeType":"VariableDeclaration","scope":6620,"src":"11308:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6510,"name":"uint256","nodeType":"ElementaryTypeName","src":"11308:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6512,"nodeType":"VariableDeclarationStatement","src":"11308:19:20"},{"assignments":[6514],"declarations":[{"constant":false,"id":6514,"mutability":"mutable","name":"amountOutput","nameLocation":"11350:12:20","nodeType":"VariableDeclaration","scope":6620,"src":"11342:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6513,"name":"uint256","nodeType":"ElementaryTypeName","src":"11342:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6515,"nodeType":"VariableDeclarationStatement","src":"11342:20:20"},{"id":6562,"nodeType":"Block","src":"11377:436:20","statements":[{"assignments":[6517,6519,null],"declarations":[{"constant":false,"id":6517,"mutability":"mutable","name":"reserve0","nameLocation":"11441:8:20","nodeType":"VariableDeclaration","scope":6562,"src":"11433:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6516,"name":"uint256","nodeType":"ElementaryTypeName","src":"11433:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6519,"mutability":"mutable","name":"reserve1","nameLocation":"11459:8:20","nodeType":"VariableDeclaration","scope":6562,"src":"11451:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6518,"name":"uint256","nodeType":"ElementaryTypeName","src":"11451:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":6523,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6520,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"11472:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":5111,"src":"11472:16:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":6522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11472:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"11432:58:20"},{"assignments":[6525,6527],"declarations":[{"constant":false,"id":6525,"mutability":"mutable","name":"reserveInput","nameLocation":"11514:12:20","nodeType":"VariableDeclaration","scope":6562,"src":"11506:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6524,"name":"uint256","nodeType":"ElementaryTypeName","src":"11506:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6527,"mutability":"mutable","name":"reserveOutput","nameLocation":"11536:13:20","nodeType":"VariableDeclaration","scope":6562,"src":"11528:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"11528:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6538,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6528,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"11553:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6529,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6491,"src":"11562:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11553:15:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":6534,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"11595:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6535,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"11605:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6536,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11594:20:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11553:61:20","trueExpression":{"components":[{"id":6531,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"11572:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6532,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"11582:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11571:20:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"11505:109:20"},{"expression":{"id":6551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6539,"name":"amountInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"11629:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6546,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"11675:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}],"id":6545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11667:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6544,"name":"address","nodeType":"ElementaryTypeName","src":"11667:7:20","typeDescriptions":{}}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11667:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6541,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"11650:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6540,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"11643:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11643:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"11643:23:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11643:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6549,"name":"reserveInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6525,"src":"11684:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11643:53:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11629:67:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6552,"nodeType":"ExpressionStatement","src":"11629:67:20"},{"expression":{"id":6560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6553,"name":"amountOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6514,"src":"11711:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6556,"name":"amountInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"11756:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6557,"name":"reserveInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6525,"src":"11769:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6558,"name":"reserveOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"11783:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6554,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"11726:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountOut","nodeType":"MemberAccess","referencedDeclaration":8336,"src":"11726:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":6559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11726:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11711:86:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6561,"nodeType":"ExpressionStatement","src":"11711:86:20"}]},{"assignments":[6564,6566],"declarations":[{"constant":false,"id":6564,"mutability":"mutable","name":"amount0Out","nameLocation":"11836:10:20","nodeType":"VariableDeclaration","scope":6620,"src":"11828:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6563,"name":"uint256","nodeType":"ElementaryTypeName","src":"11828:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6566,"mutability":"mutable","name":"amount1Out","nameLocation":"11856:10:20","nodeType":"VariableDeclaration","scope":6620,"src":"11848:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6565,"name":"uint256","nodeType":"ElementaryTypeName","src":"11848:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6583,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6567,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"11870:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6568,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6491,"src":"11879:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11870:15:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":6576,"name":"amountOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6514,"src":"11915:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":6579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11934:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11929:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6577,"name":"uint","nodeType":"ElementaryTypeName","src":"11929:4:20","typeDescriptions":{}}},"id":6580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11929:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11914:23:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":6582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11870:67:20","trueExpression":{"components":[{"arguments":[{"hexValue":"30","id":6572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11894:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11889:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6570,"name":"uint","nodeType":"ElementaryTypeName","src":"11889:4:20","typeDescriptions":{}}},"id":6573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11889:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6574,"name":"amountOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6514,"src":"11898:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6575,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11888:23:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"11827:110:20"},{"assignments":[6585],"declarations":[{"constant":false,"id":6585,"mutability":"mutable","name":"to","nameLocation":"11960:2:20","nodeType":"VariableDeclaration","scope":6620,"src":"11952:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6584,"name":"address","nodeType":"ElementaryTypeName","src":"11952:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6607,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"11965:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6587,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"11969:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11969:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":6589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11983:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11969:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11965:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":6604,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12052:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12044:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6602,"name":"address","nodeType":"ElementaryTypeName","src":"12044:7:20","typeDescriptions":{}}},"id":6605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12044:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11965:92:20","trueExpression":{"arguments":[{"id":6594,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"12012:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6595,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"12021:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6596,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"12029:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6600,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"12034:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":6598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12034:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12029:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6592,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"11987:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"11987:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11987:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11952:105:20"},{"expression":{"arguments":[{"id":6611,"name":"amount0Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"12082:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6612,"name":"amount1Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6566,"src":"12094:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6613,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6585,"src":"12106:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12120:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12110:9:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":6614,"name":"bytes","nodeType":"ElementaryTypeName","src":"12114:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":6617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12110:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6608,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"12072:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}},"id":6610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":5153,"src":"12072:9:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":6618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12072:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6619,"nodeType":"ExpressionStatement","src":"12072:51:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6467,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"11020:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6468,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"11024:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11024:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11038:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11024:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11020:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6621,"initializationExpression":{"assignments":[6465],"declarations":[{"constant":false,"id":6465,"mutability":"mutable","name":"i","nameLocation":"11017:1:20","nodeType":"VariableDeclaration","scope":6621,"src":"11009:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6464,"name":"uint256","nodeType":"ElementaryTypeName","src":"11009:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6466,"nodeType":"VariableDeclarationStatement","src":"11009:9:20"},"loopExpression":{"expression":{"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11041:3:20","subExpression":{"id":6473,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"11043:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6475,"nodeType":"ExpressionStatement","src":"11041:3:20"},"nodeType":"ForStatement","src":"11004:1131:20"}]},"id":6623,"implemented":true,"kind":"function","modifiers":[],"name":"_swapSupportingFeeOnTransferTokens","nameLocation":"10926:34:20","nodeType":"FunctionDefinition","parameters":{"id":6462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6461,"mutability":"mutable","name":"path","nameLocation":"10978:4:20","nodeType":"VariableDeclaration","scope":6623,"src":"10961:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6459,"name":"address","nodeType":"ElementaryTypeName","src":"10961:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6460,"nodeType":"ArrayTypeName","src":"10961:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10960:23:20"},"returnParameters":{"id":6463,"nodeType":"ParameterList","parameters":[],"src":"10993:0:20"},"scope":7611,"src":"10917:1225:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[7938],"body":{"id":6759,"nodeType":"Block","src":"12408:944:20","statements":[{"expression":{"arguments":[{"baseExpression":{"id":6645,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"12465:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6647,"indexExpression":{"hexValue":"30","id":6646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12470:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12465:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6648,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12474:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12474:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6652,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"12511:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6653,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"12520:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6655,"indexExpression":{"hexValue":"30","id":6654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12525:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12520:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6656,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"12529:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6658,"indexExpression":{"hexValue":"31","id":6657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12534:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12529:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6650,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"12486:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"12486:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12486:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6660,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"12539:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6642,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"12419:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":6644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"12419:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12419:139:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6662,"nodeType":"ExpressionStatement","src":"12419:139:20"},{"assignments":[6664],"declarations":[{"constant":false,"id":6664,"mutability":"mutable","name":"tokenOut","nameLocation":"12577:8:20","nodeType":"VariableDeclaration","scope":6759,"src":"12569:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6663,"name":"address","nodeType":"ElementaryTypeName","src":"12569:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6671,"initialValue":{"baseExpression":{"id":6665,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"12588:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6670,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6666,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"12593:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12593:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12607:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12593:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12588:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12569:40:20"},{"assignments":[6673],"declarations":[{"constant":false,"id":6673,"mutability":"mutable","name":"balanceBefore","nameLocation":"12628:13:20","nodeType":"VariableDeclaration","scope":6759,"src":"12620:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6672,"name":"uint256","nodeType":"ElementaryTypeName","src":"12620:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6680,"initialValue":{"arguments":[{"id":6678,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"12671:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6675,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"12651:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6674,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"12644:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12644:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"12644:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12644:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12620:54:20"},{"assignments":[6682],"declarations":[{"constant":false,"id":6682,"mutability":"mutable","name":"amountOut","nameLocation":"12693:9:20","nodeType":"VariableDeclaration","scope":6759,"src":"12685:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6681,"name":"uint256","nodeType":"ElementaryTypeName","src":"12685:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6692,"initialValue":{"arguments":[{"arguments":[{"id":6689,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12740:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12732:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6687,"name":"address","nodeType":"ElementaryTypeName","src":"12732:7:20","typeDescriptions":{}}},"id":6690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12732:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6684,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"12712:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6683,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"12705:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12705:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"12705:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12705:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12685:61:20"},{"expression":{"arguments":[{"id":6694,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"12792:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6693,"name":"_swapSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"12757:34:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":6695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12757:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6696,"nodeType":"ExpressionStatement","src":"12757:40:20"},{"expression":{"id":6709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6697,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6682,"src":"12808:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6704,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12855:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12847:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6702,"name":"address","nodeType":"ElementaryTypeName","src":"12847:7:20","typeDescriptions":{}}},"id":6705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12847:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6699,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"12827:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6698,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"12820:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12820:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"12820:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12820:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6707,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6682,"src":"12864:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12820:53:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12808:65:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6710,"nodeType":"ExpressionStatement","src":"12808:65:20"},{"assignments":[6713],"declarations":[{"constant":false,"id":6713,"mutability":"mutable","name":"feeInfo","nameLocation":"12934:7:20","nodeType":"VariableDeclaration","scope":6759,"src":"12918:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":6712,"nodeType":"UserDefinedTypeName","pathNode":{"id":6711,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"12918:7:20"},"referencedDeclaration":7728,"src":"12918:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":6717,"initialValue":{"baseExpression":{"id":6714,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"12944:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":6716,"indexExpression":{"id":6715,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6636,"src":"12953:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12944:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12918:41:20"},{"expression":{"arguments":[{"expression":{"id":6719,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"12978:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"12978:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":6721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12999:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":6718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12970:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12970:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6723,"nodeType":"ExpressionStatement","src":"12970:47:20"},{"assignments":[6725],"declarations":[{"constant":false,"id":6725,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"13036:14:20","nodeType":"VariableDeclaration","scope":6759,"src":"13028:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6724,"name":"uint256","nodeType":"ElementaryTypeName","src":"13028:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6732,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6726,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6682,"src":"13053:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6727,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"13065:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"13065:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"13053:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6730,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"13084:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"13053:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13028:60:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6734,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6682,"src":"13113:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6735,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6725,"src":"13125:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13113:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6737,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"13141:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6738,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"13151:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6739,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6636,"src":"13155:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6740,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"13162:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"13162:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":6742,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6725,"src":"13178:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6733,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"13101:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,address,uint256,uint256)"}},"id":6743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13101:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6744,"nodeType":"ExpressionStatement","src":"13101:92:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6750,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"13255:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6747,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"13235:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6746,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"13228:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13228:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"13228:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13228:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6752,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6673,"src":"13261:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13228:46:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6754,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"13278:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13228:62:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13305:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":6745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13206:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13206:138:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6758,"nodeType":"ExpressionStatement","src":"13206:138:20"}]},"functionSelector":"f824f62e","id":6760,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":6639,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"12398:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6640,"kind":"modifierInvocation","modifierName":{"id":6638,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"12391:6:20"},"nodeType":"ModifierInvocation","src":"12391:16:20"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","nameLocation":"12157:53:20","nodeType":"FunctionDefinition","parameters":{"id":6637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6625,"mutability":"mutable","name":"amountIn","nameLocation":"12229:8:20","nodeType":"VariableDeclaration","scope":6760,"src":"12221:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6624,"name":"uint256","nodeType":"ElementaryTypeName","src":"12221:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6627,"mutability":"mutable","name":"amountOutMin","nameLocation":"12256:12:20","nodeType":"VariableDeclaration","scope":6760,"src":"12248:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6626,"name":"uint256","nodeType":"ElementaryTypeName","src":"12248:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6630,"mutability":"mutable","name":"path","nameLocation":"12298:4:20","nodeType":"VariableDeclaration","scope":6760,"src":"12279:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6628,"name":"address","nodeType":"ElementaryTypeName","src":"12279:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6629,"nodeType":"ArrayTypeName","src":"12279:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6632,"mutability":"mutable","name":"to","nameLocation":"12321:2:20","nodeType":"VariableDeclaration","scope":6760,"src":"12313:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6631,"name":"address","nodeType":"ElementaryTypeName","src":"12313:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6634,"mutability":"mutable","name":"deadline","nameLocation":"12342:8:20","nodeType":"VariableDeclaration","scope":6760,"src":"12334:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6633,"name":"uint256","nodeType":"ElementaryTypeName","src":"12334:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6636,"mutability":"mutable","name":"feeTo","nameLocation":"12369:5:20","nodeType":"VariableDeclaration","scope":6760,"src":"12361:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6635,"name":"address","nodeType":"ElementaryTypeName","src":"12361:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12210:171:20"},"returnParameters":{"id":6641,"nodeType":"ParameterList","parameters":[],"src":"12408:0:20"},"scope":7611,"src":"12148:1204:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7952],"body":{"id":6909,"nodeType":"Block","src":"13597:1001:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6778,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"13616:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6780,"indexExpression":{"hexValue":"30","id":6779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13616:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6781,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"13627:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13616:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f50415448","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13634:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""},"value":"INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""}],"id":6777,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13608:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13608:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6785,"nodeType":"ExpressionStatement","src":"13608:41:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":6787,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"13667:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6786,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"13660:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13660:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":8073,"src":"13660:21:20","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":6792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":6790,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13689:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"13689:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"13660:39:20","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":6793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13660:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6794,"nodeType":"ExpressionStatement","src":"13660:41:20"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":6802,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"13767:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6803,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"13776:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6804,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"13783:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6806,"indexExpression":{"hexValue":"31","id":6805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13788:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13783:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6800,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"13742:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"13742:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13742:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13793:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"13793:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6797,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"13726:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6796,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"13719:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$8095_$","typeString":"type(contract IWAVAX)"}},"id":6798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13719:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$8095","typeString":"contract IWAVAX"}},"id":6799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8082,"src":"13719:22:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13719:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6795,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"13712:6:20","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":6811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13712:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6812,"nodeType":"ExpressionStatement","src":"13712:92:20"},{"assignments":[6814],"declarations":[{"constant":false,"id":6814,"mutability":"mutable","name":"tokenOut","nameLocation":"13823:8:20","nodeType":"VariableDeclaration","scope":6909,"src":"13815:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6813,"name":"address","nodeType":"ElementaryTypeName","src":"13815:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6821,"initialValue":{"baseExpression":{"id":6815,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"13834:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6820,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6816,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"13839:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13839:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13853:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13839:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13834:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13815:40:20"},{"assignments":[6823],"declarations":[{"constant":false,"id":6823,"mutability":"mutable","name":"balanceBefore","nameLocation":"13874:13:20","nodeType":"VariableDeclaration","scope":6909,"src":"13866:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6822,"name":"uint256","nodeType":"ElementaryTypeName","src":"13866:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6830,"initialValue":{"arguments":[{"id":6828,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6767,"src":"13917:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6825,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6814,"src":"13897:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6824,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"13890:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13890:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"13890:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13890:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13866:54:20"},{"assignments":[6832],"declarations":[{"constant":false,"id":6832,"mutability":"mutable","name":"amountOut","nameLocation":"13939:9:20","nodeType":"VariableDeclaration","scope":6909,"src":"13931:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6831,"name":"uint256","nodeType":"ElementaryTypeName","src":"13931:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6842,"initialValue":{"arguments":[{"arguments":[{"id":6839,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13986:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13978:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6837,"name":"address","nodeType":"ElementaryTypeName","src":"13978:7:20","typeDescriptions":{}}},"id":6840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13978:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6834,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6814,"src":"13958:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6833,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"13951:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13951:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"13951:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13951:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13931:61:20"},{"expression":{"arguments":[{"id":6844,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"14038:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6843,"name":"_swapSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"14003:34:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":6845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14003:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6846,"nodeType":"ExpressionStatement","src":"14003:40:20"},{"expression":{"id":6859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6847,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"14054:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6854,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14101:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14093:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6852,"name":"address","nodeType":"ElementaryTypeName","src":"14093:7:20","typeDescriptions":{}}},"id":6855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14093:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6849,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6814,"src":"14073:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6848,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"14066:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14066:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"14066:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14066:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6857,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"14110:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14066:53:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14054:65:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6860,"nodeType":"ExpressionStatement","src":"14054:65:20"},{"assignments":[6863],"declarations":[{"constant":false,"id":6863,"mutability":"mutable","name":"feeInfo","nameLocation":"14180:7:20","nodeType":"VariableDeclaration","scope":6909,"src":"14164:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":6862,"nodeType":"UserDefinedTypeName","pathNode":{"id":6861,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"14164:7:20"},"referencedDeclaration":7728,"src":"14164:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":6867,"initialValue":{"baseExpression":{"id":6864,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"14190:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":6866,"indexExpression":{"id":6865,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"14199:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14190:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14164:41:20"},{"expression":{"arguments":[{"expression":{"id":6869,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"14224:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"14224:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":6871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14245:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":6868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14216:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14216:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6873,"nodeType":"ExpressionStatement","src":"14216:47:20"},{"assignments":[6875],"declarations":[{"constant":false,"id":6875,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"14282:14:20","nodeType":"VariableDeclaration","scope":6909,"src":"14274:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6874,"name":"uint256","nodeType":"ElementaryTypeName","src":"14274:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6882,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6876,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"14299:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6877,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"14311:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"14311:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"14299:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6880,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"14330:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"14299:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14274:60:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6884,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"14359:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6885,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6875,"src":"14371:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14359:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6887,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6814,"src":"14387:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6888,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6767,"src":"14397:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6889,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"14401:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6890,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"14408:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":6891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"14408:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":6892,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6875,"src":"14424:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6883,"name":"_distribute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"14347:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,address,uint256,uint256)"}},"id":6893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14347:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6894,"nodeType":"ExpressionStatement","src":"14347:92:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6900,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6767,"src":"14501:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6897,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6814,"src":"14481:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6896,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"14474:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14474:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"14474:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14474:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6902,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6823,"src":"14507:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14474:46:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6904,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6762,"src":"14524:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14474:62:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","id":6906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14551:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":6895,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14452:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14452:138:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6908,"nodeType":"ExpressionStatement","src":"14452:138:20"}]},"functionSelector":"e56e780a","id":6910,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":6774,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"13587:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6775,"kind":"modifierInvocation","modifierName":{"id":6773,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"13580:6:20"},"nodeType":"ModifierInvocation","src":"13580:16:20"}],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","nameLocation":"13367:51:20","nodeType":"FunctionDefinition","parameters":{"id":6772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6762,"mutability":"mutable","name":"amountOutMin","nameLocation":"13437:12:20","nodeType":"VariableDeclaration","scope":6910,"src":"13429:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6761,"name":"uint256","nodeType":"ElementaryTypeName","src":"13429:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6765,"mutability":"mutable","name":"path","nameLocation":"13479:4:20","nodeType":"VariableDeclaration","scope":6910,"src":"13460:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6763,"name":"address","nodeType":"ElementaryTypeName","src":"13460:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6764,"nodeType":"ArrayTypeName","src":"13460:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6767,"mutability":"mutable","name":"to","nameLocation":"13502:2:20","nodeType":"VariableDeclaration","scope":6910,"src":"13494:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6766,"name":"address","nodeType":"ElementaryTypeName","src":"13494:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6769,"mutability":"mutable","name":"deadline","nameLocation":"13523:8:20","nodeType":"VariableDeclaration","scope":6910,"src":"13515:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6768,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6771,"mutability":"mutable","name":"feeTo","nameLocation":"13550:5:20","nodeType":"VariableDeclaration","scope":6910,"src":"13542:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6770,"name":"address","nodeType":"ElementaryTypeName","src":"13542:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13418:144:20"},"returnParameters":{"id":6776,"nodeType":"ParameterList","parameters":[],"src":"13597:0:20"},"scope":7611,"src":"13358:1240:20","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[7968],"body":{"id":7036,"nodeType":"Block","src":"14862:858:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6930,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"14881:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6935,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6931,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"14886:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14886:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14900:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14886:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14881:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6936,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"14906:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14881:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f50415448","id":6938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14913:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""},"value":"INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa","typeString":"literal_string \"INVALID_PATH\""}],"id":6929,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14873:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14873:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6940,"nodeType":"ExpressionStatement","src":"14873:55:20"},{"expression":{"arguments":[{"baseExpression":{"id":6944,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"14985:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6946,"indexExpression":{"hexValue":"30","id":6945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14990:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14985:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6947,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14994:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14994:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6951,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"15031:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6952,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"15040:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6954,"indexExpression":{"hexValue":"30","id":6953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15045:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15040:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6955,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"15049:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":6957,"indexExpression":{"hexValue":"31","id":6956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15054:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15049:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6949,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"15006:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":6950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"15006:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15006:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6959,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6912,"src":"15059:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6941,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"14939:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":6943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"14939:31:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":6960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14939:139:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6961,"nodeType":"ExpressionStatement","src":"14939:139:20"},{"assignments":[6963],"declarations":[{"constant":false,"id":6963,"mutability":"mutable","name":"amountOut","nameLocation":"15097:9:20","nodeType":"VariableDeclaration","scope":7036,"src":"15089:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6962,"name":"uint256","nodeType":"ElementaryTypeName","src":"15089:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6973,"initialValue":{"arguments":[{"arguments":[{"id":6970,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15141:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15133:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6968,"name":"address","nodeType":"ElementaryTypeName","src":"15133:7:20","typeDescriptions":{}}},"id":6971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15133:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6965,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"15116:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6964,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"15109:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15109:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"15109:23:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15109:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15089:58:20"},{"expression":{"arguments":[{"id":6975,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"15193:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":6974,"name":"_swapSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6623,"src":"15158:34:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":6976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15158:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6977,"nodeType":"ExpressionStatement","src":"15158:40:20"},{"expression":{"id":6990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6978,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"15209:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6985,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15253:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouterSupportingFees_$7611","typeString":"contract PangolinRouterSupportingFees"}],"id":6984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15245:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6983,"name":"address","nodeType":"ElementaryTypeName","src":"15245:7:20","typeDescriptions":{}}},"id":6986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15245:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6980,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5347,"src":"15228:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6979,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"15221:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7695_$","typeString":"type(contract IERC20)"}},"id":6981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15221:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7695","typeString":"contract IERC20"}},"id":6982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":7656,"src":"15221:23:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15221:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6988,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"15262:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15221:50:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15209:62:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6991,"nodeType":"ExpressionStatement","src":"15209:62:20"},{"assignments":[6994],"declarations":[{"constant":false,"id":6994,"mutability":"mutable","name":"feeInfo","nameLocation":"15332:7:20","nodeType":"VariableDeclaration","scope":7036,"src":"15316:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":6993,"nodeType":"UserDefinedTypeName","pathNode":{"id":6992,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"15316:7:20"},"referencedDeclaration":7728,"src":"15316:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":6998,"initialValue":{"baseExpression":{"id":6995,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"15342:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":6997,"indexExpression":{"id":6996,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"15351:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15342:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15316:41:20"},{"expression":{"arguments":[{"expression":{"id":7000,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6994,"src":"15376:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"15376:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420706172746e6572","id":7002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15397:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""},"value":"Invalid partner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a","typeString":"literal_string \"Invalid partner\""}],"id":6999,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15368:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15368:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7004,"nodeType":"ExpressionStatement","src":"15368:47:20"},{"assignments":[7006],"declarations":[{"constant":false,"id":7006,"mutability":"mutable","name":"feeTotalAmount","nameLocation":"15434:14:20","nodeType":"VariableDeclaration","scope":7036,"src":"15426:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7005,"name":"uint256","nodeType":"ElementaryTypeName","src":"15426:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7013,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7007,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"15451:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":7008,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6994,"src":"15463:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"15463:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15451:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7011,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"15482:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15451:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15426:60:20"},{"assignments":[7015],"declarations":[{"constant":false,"id":7015,"mutability":"mutable","name":"userAmountOut","nameLocation":"15505:13:20","nodeType":"VariableDeclaration","scope":7036,"src":"15497:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7014,"name":"uint256","nodeType":"ElementaryTypeName","src":"15497:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7019,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7016,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"15521:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7017,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7006,"src":"15533:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15521:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15497:50:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7021,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7015,"src":"15566:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7022,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6914,"src":"15583:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15566:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","id":7024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15597:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146","typeString":"literal_string \"INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":7020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15558:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15558:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7026,"nodeType":"ExpressionStatement","src":"15558:68:20"},{"expression":{"arguments":[{"id":7028,"name":"userAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7015,"src":"15655:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7029,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"15670:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7030,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"15674:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7031,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6994,"src":"15681:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"15681:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7033,"name":"feeTotalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7006,"src":"15697:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7027,"name":"_distributeAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5707,"src":"15639:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256)"}},"id":7034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15639:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7035,"nodeType":"ExpressionStatement","src":"15639:73:20"}]},"functionSelector":"cdbf012e","id":7037,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":6926,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6921,"src":"14852:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6927,"kind":"modifierInvocation","modifierName":{"id":6925,"name":"ensure","nodeType":"IdentifierPath","referencedDeclaration":5387,"src":"14845:6:20"},"nodeType":"ModifierInvocation","src":"14845:16:20"}],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","nameLocation":"14613:51:20","nodeType":"FunctionDefinition","parameters":{"id":6924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6912,"mutability":"mutable","name":"amountIn","nameLocation":"14683:8:20","nodeType":"VariableDeclaration","scope":7037,"src":"14675:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6911,"name":"uint256","nodeType":"ElementaryTypeName","src":"14675:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6914,"mutability":"mutable","name":"amountOutMin","nameLocation":"14710:12:20","nodeType":"VariableDeclaration","scope":7037,"src":"14702:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6913,"name":"uint256","nodeType":"ElementaryTypeName","src":"14702:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6917,"mutability":"mutable","name":"path","nameLocation":"14752:4:20","nodeType":"VariableDeclaration","scope":7037,"src":"14733:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6915,"name":"address","nodeType":"ElementaryTypeName","src":"14733:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6916,"nodeType":"ArrayTypeName","src":"14733:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6919,"mutability":"mutable","name":"to","nameLocation":"14775:2:20","nodeType":"VariableDeclaration","scope":7037,"src":"14767:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6918,"name":"address","nodeType":"ElementaryTypeName","src":"14767:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6921,"mutability":"mutable","name":"deadline","nameLocation":"14796:8:20","nodeType":"VariableDeclaration","scope":7037,"src":"14788:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6920,"name":"uint256","nodeType":"ElementaryTypeName","src":"14788:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6923,"mutability":"mutable","name":"feeTo","nameLocation":"14823:5:20","nodeType":"VariableDeclaration","scope":7037,"src":"14815:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6922,"name":"address","nodeType":"ElementaryTypeName","src":"14815:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14664:171:20"},"returnParameters":{"id":6928,"nodeType":"ParameterList","parameters":[],"src":"14862:0:20"},"scope":7611,"src":"14604:1116:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7743],"body":{"id":7071,"nodeType":"Block","src":"15959:250:20","statements":[{"assignments":[7054],"declarations":[{"constant":false,"id":7054,"mutability":"mutable","name":"feeInfo","nameLocation":"15986:7:20","nodeType":"VariableDeclaration","scope":7071,"src":"15970:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":7053,"nodeType":"UserDefinedTypeName","pathNode":{"id":7052,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"15970:7:20"},"referencedDeclaration":7728,"src":"15970:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":7058,"initialValue":{"baseExpression":{"id":7055,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"15996:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":7057,"indexExpression":{"id":7056,"name":"feeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7039,"src":"16005:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15996:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15970:41:20"},{"expression":{"components":[{"expression":{"id":7059,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7054,"src":"16044:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feePartner","nodeType":"MemberAccess","referencedDeclaration":7719,"src":"16044:18:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7061,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7054,"src":"16077:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeProtocol","nodeType":"MemberAccess","referencedDeclaration":7721,"src":"16077:19:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7063,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7054,"src":"16111:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"16111:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7065,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7054,"src":"16142:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"16142:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7067,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7054,"src":"16171:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"16171:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7069,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16029:172:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint24_$_t_uint24_$_t_uint24_$_t_uint24_$_t_bool_$","typeString":"tuple(uint24,uint24,uint24,uint24,bool)"}},"functionReturnParameters":7051,"id":7070,"nodeType":"Return","src":"16022:179:20"}]},"functionSelector":"7439459b","id":7072,"implemented":true,"kind":"function","modifiers":[],"name":"getFeeInfo","nameLocation":"15769:10:20","nodeType":"FunctionDefinition","parameters":{"id":7040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7039,"mutability":"mutable","name":"feeTo","nameLocation":"15788:5:20","nodeType":"VariableDeclaration","scope":7072,"src":"15780:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7038,"name":"address","nodeType":"ElementaryTypeName","src":"15780:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15779:15:20"},"returnParameters":{"id":7051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7042,"mutability":"mutable","name":"feePartner","nameLocation":"15835:10:20","nodeType":"VariableDeclaration","scope":7072,"src":"15828:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7041,"name":"uint24","nodeType":"ElementaryTypeName","src":"15828:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"feeProtocol","nameLocation":"15863:11:20","nodeType":"VariableDeclaration","scope":7072,"src":"15856:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7043,"name":"uint24","nodeType":"ElementaryTypeName","src":"15856:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7046,"mutability":"mutable","name":"feeTotal","nameLocation":"15892:8:20","nodeType":"VariableDeclaration","scope":7072,"src":"15885:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7045,"name":"uint24","nodeType":"ElementaryTypeName","src":"15885:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7048,"mutability":"mutable","name":"feeCut","nameLocation":"15918:6:20","nodeType":"VariableDeclaration","scope":7072,"src":"15911:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7047,"name":"uint24","nodeType":"ElementaryTypeName","src":"15911:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7050,"mutability":"mutable","name":"initialized","nameLocation":"15940:11:20","nodeType":"VariableDeclaration","scope":7072,"src":"15935:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7049,"name":"bool","nodeType":"ElementaryTypeName","src":"15935:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15817:141:20"},"scope":7611,"src":"15760:449:20","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[7973],"body":{"id":7150,"nodeType":"Block","src":"16266:645:20","statements":[{"assignments":[7079],"declarations":[{"constant":false,"id":7079,"mutability":"mutable","name":"feeInfo","nameLocation":"16293:7:20","nodeType":"VariableDeclaration","scope":7150,"src":"16277:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":7078,"nodeType":"UserDefinedTypeName","pathNode":{"id":7077,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"16277:7:20"},"referencedDeclaration":7728,"src":"16277:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":7083,"initialValue":{"baseExpression":{"id":7080,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"16303:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":7082,"indexExpression":{"id":7081,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7074,"src":"16312:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16303:17:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16277:43:20"},{"expression":{"arguments":[{"id":7087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16339:20:20","subExpression":{"expression":{"id":7085,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16340:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"16340:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920696e697469616c697a6564","id":7088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16361:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0","typeString":"literal_string \"Already initialized\""},"value":"Already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0","typeString":"literal_string \"Already initialized\""}],"id":7084,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16331:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16331:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7090,"nodeType":"ExpressionStatement","src":"16331:52:20"},{"assignments":[7092],"declarations":[{"constant":false,"id":7092,"mutability":"mutable","name":"feeFloor","nameLocation":"16403:8:20","nodeType":"VariableDeclaration","scope":7150,"src":"16396:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7091,"name":"uint24","nodeType":"ElementaryTypeName","src":"16396:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"id":7094,"initialValue":{"id":7093,"name":"FEE_FLOOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"16414:9:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"VariableDeclarationStatement","src":"16396:27:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7095,"name":"feeFloor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"16455:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16466:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16455:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7126,"nodeType":"IfStatement","src":"16451:260:20","trueBody":{"id":7125,"nodeType":"Block","src":"16469:242:20","statements":[{"assignments":[7099,7101],"declarations":[{"constant":false,"id":7099,"mutability":"mutable","name":"feeProtocol","nameLocation":"16492:11:20","nodeType":"VariableDeclaration","scope":7125,"src":"16485:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7098,"name":"uint24","nodeType":"ElementaryTypeName","src":"16485:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7101,"mutability":"mutable","name":"feePartner","nameLocation":"16512:10:20","nodeType":"VariableDeclaration","scope":7125,"src":"16505:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7100,"name":"uint24","nodeType":"ElementaryTypeName","src":"16505:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"id":7106,"initialValue":{"arguments":[{"id":7103,"name":"feeFloor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"16541:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7104,"name":"MAX_FEE_CUT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"16551:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7102,"name":"_calculateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"16526:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$_t_uint24_$returns$_t_uint24_$_t_uint24_$","typeString":"function (uint24,uint24) pure returns (uint24,uint24)"}},"id":7105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16526:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint24_$_t_uint24_$","typeString":"tuple(uint24,uint24)"}},"nodeType":"VariableDeclarationStatement","src":"16484:79:20"},{"expression":{"id":7111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7107,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16578:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"16578:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7110,"name":"feeFloor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"16597:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"16578:27:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7112,"nodeType":"ExpressionStatement","src":"16578:27:20"},{"expression":{"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7113,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16620:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feePartner","nodeType":"MemberAccess","referencedDeclaration":7719,"src":"16620:18:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7116,"name":"feePartner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7101,"src":"16641:10:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"16620:31:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7118,"nodeType":"ExpressionStatement","src":"16620:31:20"},{"expression":{"id":7123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7119,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16666:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeProtocol","nodeType":"MemberAccess","referencedDeclaration":7721,"src":"16666:19:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7122,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7099,"src":"16688:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"16666:33:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7124,"nodeType":"ExpressionStatement","src":"16666:33:20"}]}},{"expression":{"id":7131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7127,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16723:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"16723:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7130,"name":"MAX_FEE_CUT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"16740:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"16723:28:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7132,"nodeType":"ExpressionStatement","src":"16723:28:20"},{"expression":{"id":7137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7133,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16762:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"16762:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16784:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16762:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7138,"nodeType":"ExpressionStatement","src":"16762:26:20"},{"eventCall":{"arguments":[{"id":7140,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7074,"src":"16823:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7141,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16832:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feePartner","nodeType":"MemberAccess","referencedDeclaration":7719,"src":"16832:18:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7143,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16852:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeProtocol","nodeType":"MemberAccess","referencedDeclaration":7721,"src":"16852:19:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7145,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"16873:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"16873:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7147,"name":"MAX_FEE_CUT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"16891:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7139,"name":"PartnerActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"16806:16:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint24_$_t_uint24_$_t_uint24_$_t_uint24_$returns$__$","typeString":"function (address,uint24,uint24,uint24,uint24)"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16806:97:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7149,"nodeType":"EmitStatement","src":"16801:102:20"}]},"functionSelector":"01e8a475","id":7151,"implemented":true,"kind":"function","modifiers":[],"name":"activatePartner","nameLocation":"16224:15:20","nodeType":"FunctionDefinition","parameters":{"id":7075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7074,"mutability":"mutable","name":"partner","nameLocation":"16248:7:20","nodeType":"VariableDeclaration","scope":7151,"src":"16240:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7073,"name":"address","nodeType":"ElementaryTypeName","src":"16240:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16239:17:20"},"returnParameters":{"id":7076,"nodeType":"ParameterList","parameters":[],"src":"16266:0:20"},"scope":7611,"src":"16215:696:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7982],"body":{"id":7207,"nodeType":"Block","src":"17002:357:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7161,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17021:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17021:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7163,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"17035:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17021:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7165,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17046:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17046:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7167,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"17060:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17060:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17046:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17021:46:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5065726d697373696f6e2064656e696564","id":7171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17069:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""},"value":"Permission denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""}],"id":7160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17013:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17013:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7173,"nodeType":"ExpressionStatement","src":"17013:76:20"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":7175,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"17110:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":7177,"indexExpression":{"id":7176,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"17119:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17110:17:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"id":7178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"17110:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420696e697469616c697a6564","id":7179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17141:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2","typeString":"literal_string \"Not initialized\""},"value":"Not initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2","typeString":"literal_string \"Not initialized\""}],"id":7174,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17102:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17102:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7181,"nodeType":"ExpressionStatement","src":"17102:57:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":7183,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"17178:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":7185,"indexExpression":{"id":7184,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"17187:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17178:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7187,"indexExpression":{"id":7186,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7155,"src":"17196:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17178:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7188,"name":"isAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7157,"src":"17208:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17178:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f206368616e6765207265717569726564","id":7190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17219:20:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0","typeString":"literal_string \"No change required\""},"value":"No change required"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0","typeString":"literal_string \"No change required\""}],"id":7182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17170:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17170:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7192,"nodeType":"ExpressionStatement","src":"17170:70:20"},{"expression":{"id":7199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7193,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"17253:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":7196,"indexExpression":{"id":7194,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"17262:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17253:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7197,"indexExpression":{"id":7195,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7155,"src":"17271:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17253:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7198,"name":"isAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7157,"src":"17282:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17253:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7200,"nodeType":"ExpressionStatement","src":"17253:38:20"},{"eventCall":{"arguments":[{"id":7202,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"17323:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7155,"src":"17332:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7204,"name":"isAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7157,"src":"17341:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7201,"name":"ManagerChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7803,"src":"17309:13:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":7205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17309:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7206,"nodeType":"EmitStatement","src":"17304:47:20"}]},"functionSelector":"febb9e4f","id":7208,"implemented":true,"kind":"function","modifiers":[],"name":"modifyManagement","nameLocation":"16926:16:20","nodeType":"FunctionDefinition","parameters":{"id":7158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7153,"mutability":"mutable","name":"partner","nameLocation":"16951:7:20","nodeType":"VariableDeclaration","scope":7208,"src":"16943:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7152,"name":"address","nodeType":"ElementaryTypeName","src":"16943:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7155,"mutability":"mutable","name":"manager","nameLocation":"16968:7:20","nodeType":"VariableDeclaration","scope":7208,"src":"16960:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7154,"name":"address","nodeType":"ElementaryTypeName","src":"16960:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7157,"mutability":"mutable","name":"isAllowed","nameLocation":"16982:9:20","nodeType":"VariableDeclaration","scope":7208,"src":"16977:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7156,"name":"bool","nodeType":"ElementaryTypeName","src":"16977:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16942:50:20"},"returnParameters":{"id":7159,"nodeType":"ParameterList","parameters":[],"src":"17002:0:20"},"scope":7611,"src":"16917:442:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7989],"body":{"id":7308,"nodeType":"Block","src":"17432:751:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7216,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17451:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17451:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7218,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"17465:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17451:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7220,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17476:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17476:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7222,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"17490:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17490:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17476:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17451:46:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":7226,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"17501:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":7228,"indexExpression":{"id":7227,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"17510:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17501:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7231,"indexExpression":{"expression":{"id":7229,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17519:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17519:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17501:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17451:79:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5065726d697373696f6e2064656e696564","id":7233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17532:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""},"value":"Permission denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""}],"id":7215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17443:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17443:109:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7235,"nodeType":"ExpressionStatement","src":"17443:109:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7237,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"17573:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7238,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5359,"src":"17585:7:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"17573:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45786365737369766520746f74616c20666565","id":7240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17594:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_46d599444d071cab8dc386331b802a8cb9cf3421bcbe66d25ff74bbe97b712b5","typeString":"literal_string \"Excessive total fee\""},"value":"Excessive total fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_46d599444d071cab8dc386331b802a8cb9cf3421bcbe66d25ff74bbe97b712b5","typeString":"literal_string \"Excessive total fee\""}],"id":7236,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17565:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17565:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7242,"nodeType":"ExpressionStatement","src":"17565:51:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7244,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"17635:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7245,"name":"FEE_FLOOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"17647:9:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"17635:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e7420746f74616c20666565","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17658:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_14cb2f81ea375f5041579fc173eaa10d53f14ed04a92b0e20b8e2b4ae99344cc","typeString":"literal_string \"Insufficient total fee\""},"value":"Insufficient total fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14cb2f81ea375f5041579fc173eaa10d53f14ed04a92b0e20b8e2b4ae99344cc","typeString":"literal_string \"Insufficient total fee\""}],"id":7243,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17627:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17627:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7249,"nodeType":"ExpressionStatement","src":"17627:56:20"},{"assignments":[7252],"declarations":[{"constant":false,"id":7252,"mutability":"mutable","name":"feeInfo","nameLocation":"17712:7:20","nodeType":"VariableDeclaration","scope":7308,"src":"17696:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":7251,"nodeType":"UserDefinedTypeName","pathNode":{"id":7250,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"17696:7:20"},"referencedDeclaration":7728,"src":"17696:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":7256,"initialValue":{"baseExpression":{"id":7253,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"17722:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":7255,"indexExpression":{"id":7254,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"17731:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17722:17:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17696:43:20"},{"expression":{"arguments":[{"expression":{"id":7258,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"17758:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"17758:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420696e697469616c697a6564","id":7260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17779:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2","typeString":"literal_string \"Not initialized\""},"value":"Not initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2","typeString":"literal_string \"Not initialized\""}],"id":7257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17750:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17750:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7262,"nodeType":"ExpressionStatement","src":"17750:47:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7264,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"17816:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"17816:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7266,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"17836:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"17816:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f206368616e6765207265717569726564","id":7268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17846:20:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0","typeString":"literal_string \"No change required\""},"value":"No change required"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0","typeString":"literal_string \"No change required\""}],"id":7263,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17808:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17808:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7270,"nodeType":"ExpressionStatement","src":"17808:59:20"},{"assignments":[7272,7274],"declarations":[{"constant":false,"id":7272,"mutability":"mutable","name":"feeProtocol","nameLocation":"17888:11:20","nodeType":"VariableDeclaration","scope":7308,"src":"17881:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7271,"name":"uint24","nodeType":"ElementaryTypeName","src":"17881:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7274,"mutability":"mutable","name":"feePartner","nameLocation":"17908:10:20","nodeType":"VariableDeclaration","scope":7308,"src":"17901:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7273,"name":"uint24","nodeType":"ElementaryTypeName","src":"17901:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"id":7280,"initialValue":{"arguments":[{"id":7276,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"17937:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7277,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"17947:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"17947:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7275,"name":"_calculateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"17922:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$_t_uint24_$returns$_t_uint24_$_t_uint24_$","typeString":"function (uint24,uint24) pure returns (uint24,uint24)"}},"id":7279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17922:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint24_$_t_uint24_$","typeString":"tuple(uint24,uint24)"}},"nodeType":"VariableDeclarationStatement","src":"17880:82:20"},{"expression":{"id":7285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7281,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"17975:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feePartner","nodeType":"MemberAccess","referencedDeclaration":7719,"src":"17975:18:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7284,"name":"feePartner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7274,"src":"17996:10:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"17975:31:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7286,"nodeType":"ExpressionStatement","src":"17975:31:20"},{"expression":{"id":7291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7287,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"18017:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeProtocol","nodeType":"MemberAccess","referencedDeclaration":7721,"src":"18017:19:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7290,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"18039:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18017:33:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7292,"nodeType":"ExpressionStatement","src":"18017:33:20"},{"expression":{"id":7297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7293,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"18061:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"18061:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7296,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"18080:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18061:27:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7298,"nodeType":"ExpressionStatement","src":"18061:27:20"},{"eventCall":{"arguments":[{"id":7300,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"18116:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7301,"name":"feePartner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7274,"src":"18125:10:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7302,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"18137:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7303,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"18150:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7304,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7252,"src":"18160:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"18160:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7299,"name":"FeeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7767,"src":"18106:9:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint24_$_t_uint24_$_t_uint24_$_t_uint24_$returns$__$","typeString":"function (address,uint24,uint24,uint24,uint24)"}},"id":7306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18106:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7307,"nodeType":"EmitStatement","src":"18101:74:20"}]},"functionSelector":"cfde04d9","id":7309,"implemented":true,"kind":"function","modifiers":[],"name":"modifyTotalFee","nameLocation":"17374:14:20","nodeType":"FunctionDefinition","parameters":{"id":7213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7210,"mutability":"mutable","name":"partner","nameLocation":"17397:7:20","nodeType":"VariableDeclaration","scope":7309,"src":"17389:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7209,"name":"address","nodeType":"ElementaryTypeName","src":"17389:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7212,"mutability":"mutable","name":"feeTotal","nameLocation":"17413:8:20","nodeType":"VariableDeclaration","scope":7309,"src":"17406:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7211,"name":"uint24","nodeType":"ElementaryTypeName","src":"17406:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"17388:34:20"},"returnParameters":{"id":7214,"nodeType":"ParameterList","parameters":[],"src":"17432:0:20"},"scope":7611,"src":"17365:818:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7996],"body":{"id":7390,"nodeType":"Block","src":"18252:618:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7317,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18271:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18271:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"18285:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18285:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18271:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5065726d697373696f6e2064656e696564","id":7322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18294:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""},"value":"Permission denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""}],"id":7316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18263:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18263:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7324,"nodeType":"ExpressionStatement","src":"18263:51:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7326,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"18335:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7327,"name":"MAX_FEE_CUT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"18345:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18335:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4578636573736976652066656520637574","id":7329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18358:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f03b562bc6195ce581d99633d027d21ac2c8ab6ac386838d64290251634b1ef3","typeString":"literal_string \"Excessive fee cut\""},"value":"Excessive fee cut"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f03b562bc6195ce581d99633d027d21ac2c8ab6ac386838d64290251634b1ef3","typeString":"literal_string \"Excessive fee cut\""}],"id":7325,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18327:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18327:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7331,"nodeType":"ExpressionStatement","src":"18327:51:20"},{"assignments":[7334],"declarations":[{"constant":false,"id":7334,"mutability":"mutable","name":"feeInfo","nameLocation":"18407:7:20","nodeType":"VariableDeclaration","scope":7390,"src":"18391:23:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"},"typeName":{"id":7333,"nodeType":"UserDefinedTypeName","pathNode":{"id":7332,"name":"FeeInfo","nodeType":"IdentifierPath","referencedDeclaration":7728,"src":"18391:7:20"},"referencedDeclaration":7728,"src":"18391:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo"}},"visibility":"internal"}],"id":7338,"initialValue":{"baseExpression":{"id":7335,"name":"feeInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"18417:8:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_FeeInfo_$7728_storage_$","typeString":"mapping(address => struct IPangolinRouterSupportingFees.FeeInfo storage ref)"}},"id":7337,"indexExpression":{"id":7336,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7311,"src":"18426:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18417:17:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18391:43:20"},{"expression":{"arguments":[{"expression":{"id":7340,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18453:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"18453:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420696e697469616c697a6564","id":7342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18474:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2","typeString":"literal_string \"Not initialized\""},"value":"Not initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2","typeString":"literal_string \"Not initialized\""}],"id":7339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18445:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18445:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7344,"nodeType":"ExpressionStatement","src":"18445:47:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7346,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18511:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"18511:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7348,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"18529:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18511:24:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f206368616e6765207265717569726564","id":7350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18537:20:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0","typeString":"literal_string \"No change required\""},"value":"No change required"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0","typeString":"literal_string \"No change required\""}],"id":7345,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18503:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18503:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7352,"nodeType":"ExpressionStatement","src":"18503:55:20"},{"assignments":[7354,7356],"declarations":[{"constant":false,"id":7354,"mutability":"mutable","name":"feeProtocol","nameLocation":"18579:11:20","nodeType":"VariableDeclaration","scope":7390,"src":"18572:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7353,"name":"uint24","nodeType":"ElementaryTypeName","src":"18572:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7356,"mutability":"mutable","name":"feePartner","nameLocation":"18599:10:20","nodeType":"VariableDeclaration","scope":7390,"src":"18592:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7355,"name":"uint24","nodeType":"ElementaryTypeName","src":"18592:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"id":7362,"initialValue":{"arguments":[{"expression":{"id":7358,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18628:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"18628:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7360,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"18646:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7357,"name":"_calculateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"18613:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$_t_uint24_$returns$_t_uint24_$_t_uint24_$","typeString":"function (uint24,uint24) pure returns (uint24,uint24)"}},"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18613:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint24_$_t_uint24_$","typeString":"tuple(uint24,uint24)"}},"nodeType":"VariableDeclarationStatement","src":"18571:82:20"},{"expression":{"id":7367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7363,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18666:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feePartner","nodeType":"MemberAccess","referencedDeclaration":7719,"src":"18666:18:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7366,"name":"feePartner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7356,"src":"18687:10:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18666:31:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7368,"nodeType":"ExpressionStatement","src":"18666:31:20"},{"expression":{"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7369,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18708:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeProtocol","nodeType":"MemberAccess","referencedDeclaration":7721,"src":"18708:19:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7372,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"18730:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18708:33:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7374,"nodeType":"ExpressionStatement","src":"18708:33:20"},{"expression":{"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7375,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18752:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"feeCut","nodeType":"MemberAccess","referencedDeclaration":7725,"src":"18752:14:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7378,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"18769:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"18752:23:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7380,"nodeType":"ExpressionStatement","src":"18752:23:20"},{"eventCall":{"arguments":[{"id":7382,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7311,"src":"18803:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7383,"name":"feePartner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7356,"src":"18812:10:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7384,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"18824:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"expression":{"id":7385,"name":"feeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"18837:7:20","typeDescriptions":{"typeIdentifier":"t_struct$_FeeInfo_$7728_storage_ptr","typeString":"struct IPangolinRouterSupportingFees.FeeInfo storage pointer"}},"id":7386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTotal","nodeType":"MemberAccess","referencedDeclaration":7723,"src":"18837:16:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},{"id":7387,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"18855:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7381,"name":"FeeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7767,"src":"18793:9:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint24_$_t_uint24_$_t_uint24_$_t_uint24_$returns$__$","typeString":"function (address,uint24,uint24,uint24,uint24)"}},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18793:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7389,"nodeType":"EmitStatement","src":"18788:74:20"}]},"functionSelector":"fa44620f","id":7391,"implemented":true,"kind":"function","modifiers":[],"name":"modifyFeeCut","nameLocation":"18198:12:20","nodeType":"FunctionDefinition","parameters":{"id":7314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7311,"mutability":"mutable","name":"partner","nameLocation":"18219:7:20","nodeType":"VariableDeclaration","scope":7391,"src":"18211:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7310,"name":"address","nodeType":"ElementaryTypeName","src":"18211:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7313,"mutability":"mutable","name":"feeCut","nameLocation":"18235:6:20","nodeType":"VariableDeclaration","scope":7391,"src":"18228:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7312,"name":"uint24","nodeType":"ElementaryTypeName","src":"18228:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"18210:32:20"},"returnParameters":{"id":7315,"nodeType":"ParameterList","parameters":[],"src":"18252:0:20"},"scope":7611,"src":"18189:681:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8001],"body":{"id":7420,"nodeType":"Block","src":"18926:209:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7397,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18945:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"18945:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7399,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"18959:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18959:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18945:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5065726d697373696f6e2064656e696564","id":7402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18968:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""},"value":"Permission denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""}],"id":7396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18937:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18937:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7404,"nodeType":"ExpressionStatement","src":"18937:51:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7406,"name":"feeFloor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"19007:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7407,"name":"MAX_FEE_FLOOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5356,"src":"19019:13:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19007:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4578636573736976652066656520666c6f6f72","id":7409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19034:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7248361e86482b197960448818ddaedf7cd930d3f05205fe2f9b48822738acc1","typeString":"literal_string \"Excessive fee floor\""},"value":"Excessive fee floor"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7248361e86482b197960448818ddaedf7cd930d3f05205fe2f9b48822738acc1","typeString":"literal_string \"Excessive fee floor\""}],"id":7405,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18999:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18999:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7411,"nodeType":"ExpressionStatement","src":"18999:57:20"},{"expression":{"id":7414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7412,"name":"FEE_FLOOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"19067:9:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7413,"name":"feeFloor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"19079:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19067:20:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7415,"nodeType":"ExpressionStatement","src":"19067:20:20"},{"eventCall":{"arguments":[{"id":7417,"name":"feeFloor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"19118:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":7416,"name":"FeeFloorChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7795,"src":"19103:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint24_$returns$__$","typeString":"function (uint24)"}},"id":7418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19103:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7419,"nodeType":"EmitStatement","src":"19098:29:20"}]},"functionSelector":"e80e6eed","id":7421,"implemented":true,"kind":"function","modifiers":[],"name":"modifyFeeFloor","nameLocation":"18885:14:20","nodeType":"FunctionDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7393,"mutability":"mutable","name":"feeFloor","nameLocation":"18907:8:20","nodeType":"VariableDeclaration","scope":7421,"src":"18900:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7392,"name":"uint24","nodeType":"ElementaryTypeName","src":"18900:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"18899:17:20"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[],"src":"18926:0:20"},"scope":7611,"src":"18876:259:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8012],"body":{"id":7487,"nodeType":"Block","src":"19239:384:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7433,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19258:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19258:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7435,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"19272:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19272:7:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19258:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5065726d697373696f6e2064656e696564","id":7438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19281:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""},"value":"Permission denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871","typeString":"literal_string \"Permission denied\""}],"id":7432,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19250:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19250:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7440,"nodeType":"ExpressionStatement","src":"19250:51:20"},{"assignments":[7442],"declarations":[{"constant":false,"id":7442,"mutability":"mutable","name":"tokensLength","nameLocation":"19320:12:20","nodeType":"VariableDeclaration","scope":7487,"src":"19312:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7441,"name":"uint256","nodeType":"ElementaryTypeName","src":"19312:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7445,"initialValue":{"expression":{"id":7443,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7424,"src":"19335:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"19335:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19312:36:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7447,"name":"tokensLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7442,"src":"19367:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7448,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"19383:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"19383:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19367:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d69736d617463686564206172726179206c656e67746873","id":7451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19399:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bca8fcbfb75a5d97a4afbb748360d406765059ed24956ac8dc1959fbf07f7085","typeString":"literal_string \"Mismatched array lengths\""},"value":"Mismatched array lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bca8fcbfb75a5d97a4afbb748360d406765059ed24956ac8dc1959fbf07f7085","typeString":"literal_string \"Mismatched array lengths\""}],"id":7446,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19359:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19359:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7453,"nodeType":"ExpressionStatement","src":"19359:67:20"},{"body":{"id":7485,"nodeType":"Block","src":"19476:140:20","statements":[{"expression":{"arguments":[{"baseExpression":{"id":7466,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7424,"src":"19519:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7468,"indexExpression":{"id":7467,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7455,"src":"19526:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19519:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7469,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"19530:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7470,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"19534:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7472,"indexExpression":{"id":7471,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7455,"src":"19542:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19534:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7463,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"19491:14:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$5329_$","typeString":"type(library TransferHelper)"}},"id":7465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"19491:27:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19491:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7474,"nodeType":"ExpressionStatement","src":"19491:54:20"},{"eventCall":{"arguments":[{"baseExpression":{"id":7476,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7424,"src":"19578:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7478,"indexExpression":{"id":7477,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7455,"src":"19585:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19578:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7479,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"19589:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7481,"indexExpression":{"id":7480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7455,"src":"19597:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19589:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7482,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"19601:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7475,"name":"FeeWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"19565:12:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":7483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19565:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7484,"nodeType":"EmitStatement","src":"19560:44:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7455,"src":"19453:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7458,"name":"tokensLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7442,"src":"19457:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19453:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7486,"initializationExpression":{"assignments":[7455],"declarations":[{"constant":false,"id":7455,"mutability":"mutable","name":"i","nameLocation":"19450:1:20","nodeType":"VariableDeclaration","scope":7486,"src":"19442:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7454,"name":"uint256","nodeType":"ElementaryTypeName","src":"19442:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7456,"nodeType":"VariableDeclarationStatement","src":"19442:9:20"},"loopExpression":{"expression":{"id":7461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19471:3:20","subExpression":{"id":7460,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7455,"src":"19473:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7462,"nodeType":"ExpressionStatement","src":"19471:3:20"},"nodeType":"ForStatement","src":"19437:179:20"}]},"functionSelector":"31f91a84","id":7488,"implemented":true,"kind":"function","modifiers":[],"name":"withdrawFees","nameLocation":"19150:12:20","nodeType":"FunctionDefinition","parameters":{"id":7430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7424,"mutability":"mutable","name":"tokens","nameLocation":"19182:6:20","nodeType":"VariableDeclaration","scope":7488,"src":"19163:25:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7422,"name":"address","nodeType":"ElementaryTypeName","src":"19163:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7423,"nodeType":"ArrayTypeName","src":"19163:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7427,"mutability":"mutable","name":"amounts","nameLocation":"19209:7:20","nodeType":"VariableDeclaration","scope":7488,"src":"19190:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7425,"name":"uint256","nodeType":"ElementaryTypeName","src":"19190:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7426,"nodeType":"ArrayTypeName","src":"19190:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7429,"mutability":"mutable","name":"to","nameLocation":"19226:2:20","nodeType":"VariableDeclaration","scope":7488,"src":"19218:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7428,"name":"address","nodeType":"ElementaryTypeName","src":"19218:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19162:67:20"},"returnParameters":{"id":7431,"nodeType":"ParameterList","parameters":[],"src":"19239:0:20"},"scope":7611,"src":"19141:482:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7514,"nodeType":"Block","src":"19773:199:20","statements":[{"id":7513,"nodeType":"UncheckedBlock","src":"19784:181:20","statements":[{"expression":{"id":7505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7499,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7495,"src":"19809:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7500,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"19823:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7501,"name":"feeCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"19834:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19823:17:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7503,"name":"BIPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"19843:4:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19823:24:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19809:38:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7506,"nodeType":"ExpressionStatement","src":"19809:38:20"},{"expression":{"id":7511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7507,"name":"feePartner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7497,"src":"19890:10:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":7510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7508,"name":"feeTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"19903:8:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7509,"name":"feeProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7495,"src":"19914:11:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19903:22:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"19890:35:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":7512,"nodeType":"ExpressionStatement","src":"19890:35:20"}]}]},"id":7515,"implemented":true,"kind":"function","modifiers":[],"name":"_calculateFees","nameLocation":"19640:14:20","nodeType":"FunctionDefinition","parameters":{"id":7493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7490,"mutability":"mutable","name":"feeTotal","nameLocation":"19672:8:20","nodeType":"VariableDeclaration","scope":7515,"src":"19665:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7489,"name":"uint24","nodeType":"ElementaryTypeName","src":"19665:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7492,"mutability":"mutable","name":"feeCut","nameLocation":"19698:6:20","nodeType":"VariableDeclaration","scope":7515,"src":"19691:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7491,"name":"uint24","nodeType":"ElementaryTypeName","src":"19691:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"19654:57:20"},"returnParameters":{"id":7498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7495,"mutability":"mutable","name":"feeProtocol","nameLocation":"19741:11:20","nodeType":"VariableDeclaration","scope":7515,"src":"19734:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7494,"name":"uint24","nodeType":"ElementaryTypeName","src":"19734:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7497,"mutability":"mutable","name":"feePartner","nameLocation":"19761:10:20","nodeType":"VariableDeclaration","scope":7515,"src":"19754:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7496,"name":"uint24","nodeType":"ElementaryTypeName","src":"19754:6:20","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"19733:39:20"},"scope":7611,"src":"19631:341:20","stateMutability":"pure","virtual":false,"visibility":"private"},{"baseFunctions":[8023],"body":{"id":7533,"nodeType":"Block","src":"20122:77:20","statements":[{"expression":{"arguments":[{"id":7528,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"20163:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7529,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7519,"src":"20172:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7530,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7521,"src":"20182:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7526,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"20140:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":7527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"quote","nodeType":"MemberAccess","referencedDeclaration":8279,"src":"20140:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20140:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7525,"id":7532,"nodeType":"Return","src":"20133:58:20"}]},"functionSelector":"ad615dec","id":7534,"implemented":true,"kind":"function","modifiers":[],"name":"quote","nameLocation":"20025:5:20","nodeType":"FunctionDefinition","parameters":{"id":7522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7517,"mutability":"mutable","name":"amountA","nameLocation":"20039:7:20","nodeType":"VariableDeclaration","scope":7534,"src":"20031:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7516,"name":"uint256","nodeType":"ElementaryTypeName","src":"20031:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7519,"mutability":"mutable","name":"reserveA","nameLocation":"20056:8:20","nodeType":"VariableDeclaration","scope":7534,"src":"20048:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7518,"name":"uint256","nodeType":"ElementaryTypeName","src":"20048:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7521,"mutability":"mutable","name":"reserveB","nameLocation":"20074:8:20","nodeType":"VariableDeclaration","scope":7534,"src":"20066:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7520,"name":"uint256","nodeType":"ElementaryTypeName","src":"20066:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20030:53:20"},"returnParameters":{"id":7525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7524,"mutability":"mutable","name":"amountB","nameLocation":"20113:7:20","nodeType":"VariableDeclaration","scope":7534,"src":"20105:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7523,"name":"uint256","nodeType":"ElementaryTypeName","src":"20105:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20104:17:20"},"scope":7611,"src":"20016:183:20","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8034],"body":{"id":7552,"nodeType":"Block","src":"20358:88:20","statements":[{"expression":{"arguments":[{"id":7547,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7536,"src":"20406:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7548,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7538,"src":"20416:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7549,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7540,"src":"20427:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7545,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"20376:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":7546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountOut","nodeType":"MemberAccess","referencedDeclaration":8336,"src":"20376:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20376:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7544,"id":7551,"nodeType":"Return","src":"20369:69:20"}]},"functionSelector":"054d50d4","id":7553,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountOut","nameLocation":"20216:12:20","nodeType":"FunctionDefinition","parameters":{"id":7541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7536,"mutability":"mutable","name":"amountIn","nameLocation":"20237:8:20","nodeType":"VariableDeclaration","scope":7553,"src":"20229:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7535,"name":"uint256","nodeType":"ElementaryTypeName","src":"20229:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7538,"mutability":"mutable","name":"reserveIn","nameLocation":"20255:9:20","nodeType":"VariableDeclaration","scope":7553,"src":"20247:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7537,"name":"uint256","nodeType":"ElementaryTypeName","src":"20247:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7540,"mutability":"mutable","name":"reserveOut","nameLocation":"20274:10:20","nodeType":"VariableDeclaration","scope":7553,"src":"20266:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7539,"name":"uint256","nodeType":"ElementaryTypeName","src":"20266:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20228:57:20"},"returnParameters":{"id":7544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7543,"mutability":"mutable","name":"amountOut","nameLocation":"20342:9:20","nodeType":"VariableDeclaration","scope":7553,"src":"20334:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7542,"name":"uint256","nodeType":"ElementaryTypeName","src":"20334:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20333:19:20"},"scope":7611,"src":"20207:239:20","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8045],"body":{"id":7571,"nodeType":"Block","src":"20604:88:20","statements":[{"expression":{"arguments":[{"id":7566,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"20651:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7567,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"20662:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7568,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7559,"src":"20673:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7564,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"20622:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountIn","nodeType":"MemberAccess","referencedDeclaration":8392,"src":"20622:28:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20622:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7563,"id":7570,"nodeType":"Return","src":"20615:69:20"}]},"functionSelector":"85f8c259","id":7572,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountIn","nameLocation":"20463:11:20","nodeType":"FunctionDefinition","parameters":{"id":7560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7555,"mutability":"mutable","name":"amountOut","nameLocation":"20483:9:20","nodeType":"VariableDeclaration","scope":7572,"src":"20475:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7554,"name":"uint256","nodeType":"ElementaryTypeName","src":"20475:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7557,"mutability":"mutable","name":"reserveIn","nameLocation":"20502:9:20","nodeType":"VariableDeclaration","scope":7572,"src":"20494:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7556,"name":"uint256","nodeType":"ElementaryTypeName","src":"20494:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7559,"mutability":"mutable","name":"reserveOut","nameLocation":"20521:10:20","nodeType":"VariableDeclaration","scope":7572,"src":"20513:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7558,"name":"uint256","nodeType":"ElementaryTypeName","src":"20513:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20474:58:20"},"returnParameters":{"id":7563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7562,"mutability":"mutable","name":"amountIn","nameLocation":"20589:8:20","nodeType":"VariableDeclaration","scope":7572,"src":"20581:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7561,"name":"uint256","nodeType":"ElementaryTypeName","src":"20581:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20580:18:20"},"scope":7611,"src":"20454:238:20","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8056],"body":{"id":7590,"nodeType":"Block","src":"20843:81:20","statements":[{"expression":{"arguments":[{"id":7585,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"20892:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7586,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"20901:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7587,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7577,"src":"20911:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":7583,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"20861:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":7584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":8474,"src":"20861:30:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":7588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20861:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":7582,"id":7589,"nodeType":"Return","src":"20854:62:20"}]},"functionSelector":"d06ca61f","id":7591,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsOut","nameLocation":"20709:13:20","nodeType":"FunctionDefinition","parameters":{"id":7578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7574,"mutability":"mutable","name":"amountIn","nameLocation":"20731:8:20","nodeType":"VariableDeclaration","scope":7591,"src":"20723:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7573,"name":"uint256","nodeType":"ElementaryTypeName","src":"20723:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7577,"mutability":"mutable","name":"path","nameLocation":"20758:4:20","nodeType":"VariableDeclaration","scope":7591,"src":"20741:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7575,"name":"address","nodeType":"ElementaryTypeName","src":"20741:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7576,"nodeType":"ArrayTypeName","src":"20741:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"20722:41:20"},"returnParameters":{"id":7582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7581,"mutability":"mutable","name":"amounts","nameLocation":"20829:7:20","nodeType":"VariableDeclaration","scope":7591,"src":"20812:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7579,"name":"uint256","nodeType":"ElementaryTypeName","src":"20812:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7580,"nodeType":"ArrayTypeName","src":"20812:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"20811:26:20"},"scope":7611,"src":"20700:224:20","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[8067],"body":{"id":7609,"nodeType":"Block","src":"21075:81:20","statements":[{"expression":{"arguments":[{"id":7604,"name":"FACTORY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"21123:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7605,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7593,"src":"21132:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7606,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7596,"src":"21143:4:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":7602,"name":"PangolinLibrary8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8561,"src":"21093:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary8_$8561_$","typeString":"type(library PangolinLibrary8)"}},"id":7603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":8560,"src":"21093:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":7607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21093:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":7601,"id":7608,"nodeType":"Return","src":"21086:62:20"}]},"functionSelector":"1f00ca74","id":7610,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsIn","nameLocation":"20941:12:20","nodeType":"FunctionDefinition","parameters":{"id":7597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7593,"mutability":"mutable","name":"amountOut","nameLocation":"20962:9:20","nodeType":"VariableDeclaration","scope":7610,"src":"20954:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7592,"name":"uint256","nodeType":"ElementaryTypeName","src":"20954:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7596,"mutability":"mutable","name":"path","nameLocation":"20990:4:20","nodeType":"VariableDeclaration","scope":7610,"src":"20973:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7594,"name":"address","nodeType":"ElementaryTypeName","src":"20973:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7595,"nodeType":"ArrayTypeName","src":"20973:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"20953:42:20"},"returnParameters":{"id":7601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7600,"mutability":"mutable","name":"amounts","nameLocation":"21061:7:20","nodeType":"VariableDeclaration","scope":7610,"src":"21044:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7598,"name":"uint256","nodeType":"ElementaryTypeName","src":"21044:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7599,"nodeType":"ArrayTypeName","src":"21044:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"21043:26:20"},"scope":7611,"src":"20932:224:20","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":7612,"src":"430:20731:20","usedErrors":[]}],"src":"0:21163:20"},"id":20},"contracts/pangolin-periphery/interfaces/IERC20.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[7695]},"id":7696,"nodeType":"SourceUnit","nodes":[{"id":7613,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:21"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7695,"linearizedBaseContracts":[7695],"name":"IERC20","nameLocation":"38:6:21","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7621,"name":"Approval","nameLocation":"58:8:21","nodeType":"EventDefinition","parameters":{"id":7620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7615,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"83:5:21","nodeType":"VariableDeclaration","scope":7621,"src":"67:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7614,"name":"address","nodeType":"ElementaryTypeName","src":"67:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7617,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"106:7:21","nodeType":"VariableDeclaration","scope":7621,"src":"90:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7616,"name":"address","nodeType":"ElementaryTypeName","src":"90:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7619,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"120:5:21","nodeType":"VariableDeclaration","scope":7621,"src":"115:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7618,"name":"uint","nodeType":"ElementaryTypeName","src":"115:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66:60:21"},"src":"52:75:21"},{"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7629,"name":"Transfer","nameLocation":"139:8:21","nodeType":"EventDefinition","parameters":{"id":7628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7623,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"164:4:21","nodeType":"VariableDeclaration","scope":7629,"src":"148:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7622,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7625,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"186:2:21","nodeType":"VariableDeclaration","scope":7629,"src":"170:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7624,"name":"address","nodeType":"ElementaryTypeName","src":"170:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7627,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"195:5:21","nodeType":"VariableDeclaration","scope":7629,"src":"190:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7626,"name":"uint","nodeType":"ElementaryTypeName","src":"190:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"147:54:21"},"src":"133:69:21"},{"functionSelector":"06fdde03","id":7634,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"219:4:21","nodeType":"FunctionDefinition","parameters":{"id":7630,"nodeType":"ParameterList","parameters":[],"src":"223:2:21"},"returnParameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7634,"src":"249:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7631,"name":"string","nodeType":"ElementaryTypeName","src":"249:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"248:15:21"},"scope":7695,"src":"210:54:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":7639,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"279:6:21","nodeType":"FunctionDefinition","parameters":{"id":7635,"nodeType":"ParameterList","parameters":[],"src":"285:2:21"},"returnParameters":{"id":7638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7639,"src":"311:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7636,"name":"string","nodeType":"ElementaryTypeName","src":"311:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"310:15:21"},"scope":7695,"src":"270:56:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":7644,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"341:8:21","nodeType":"FunctionDefinition","parameters":{"id":7640,"nodeType":"ParameterList","parameters":[],"src":"349:2:21"},"returnParameters":{"id":7643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7644,"src":"375:5:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7641,"name":"uint8","nodeType":"ElementaryTypeName","src":"375:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"374:7:21"},"scope":7695,"src":"332:50:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":7649,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"397:11:21","nodeType":"FunctionDefinition","parameters":{"id":7645,"nodeType":"ParameterList","parameters":[],"src":"408:2:21"},"returnParameters":{"id":7648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7649,"src":"434:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7646,"name":"uint","nodeType":"ElementaryTypeName","src":"434:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"433:6:21"},"scope":7695,"src":"388:52:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":7656,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"455:9:21","nodeType":"FunctionDefinition","parameters":{"id":7652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7651,"mutability":"mutable","name":"owner","nameLocation":"473:5:21","nodeType":"VariableDeclaration","scope":7656,"src":"465:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7650,"name":"address","nodeType":"ElementaryTypeName","src":"465:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"464:15:21"},"returnParameters":{"id":7655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7656,"src":"503:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7653,"name":"uint","nodeType":"ElementaryTypeName","src":"503:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"502:6:21"},"scope":7695,"src":"446:63:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd62ed3e","id":7665,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"524:9:21","nodeType":"FunctionDefinition","parameters":{"id":7661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7658,"mutability":"mutable","name":"owner","nameLocation":"542:5:21","nodeType":"VariableDeclaration","scope":7665,"src":"534:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7657,"name":"address","nodeType":"ElementaryTypeName","src":"534:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7660,"mutability":"mutable","name":"spender","nameLocation":"557:7:21","nodeType":"VariableDeclaration","scope":7665,"src":"549:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7659,"name":"address","nodeType":"ElementaryTypeName","src":"549:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"533:32:21"},"returnParameters":{"id":7664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7665,"src":"589:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7662,"name":"uint","nodeType":"ElementaryTypeName","src":"589:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"588:6:21"},"scope":7695,"src":"515:80:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":7674,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"612:7:21","nodeType":"FunctionDefinition","parameters":{"id":7670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7667,"mutability":"mutable","name":"spender","nameLocation":"628:7:21","nodeType":"VariableDeclaration","scope":7674,"src":"620:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7666,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7669,"mutability":"mutable","name":"value","nameLocation":"642:5:21","nodeType":"VariableDeclaration","scope":7674,"src":"637:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7668,"name":"uint","nodeType":"ElementaryTypeName","src":"637:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"619:29:21"},"returnParameters":{"id":7673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7674,"src":"667:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7671,"name":"bool","nodeType":"ElementaryTypeName","src":"667:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"666:6:21"},"scope":7695,"src":"603:70:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":7683,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"688:8:21","nodeType":"FunctionDefinition","parameters":{"id":7679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7676,"mutability":"mutable","name":"to","nameLocation":"705:2:21","nodeType":"VariableDeclaration","scope":7683,"src":"697:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7675,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7678,"mutability":"mutable","name":"value","nameLocation":"714:5:21","nodeType":"VariableDeclaration","scope":7683,"src":"709:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7677,"name":"uint","nodeType":"ElementaryTypeName","src":"709:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"696:24:21"},"returnParameters":{"id":7682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7683,"src":"739:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7680,"name":"bool","nodeType":"ElementaryTypeName","src":"739:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"738:6:21"},"scope":7695,"src":"679:66:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":7694,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"760:12:21","nodeType":"FunctionDefinition","parameters":{"id":7690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7685,"mutability":"mutable","name":"from","nameLocation":"781:4:21","nodeType":"VariableDeclaration","scope":7694,"src":"773:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7684,"name":"address","nodeType":"ElementaryTypeName","src":"773:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7687,"mutability":"mutable","name":"to","nameLocation":"795:2:21","nodeType":"VariableDeclaration","scope":7694,"src":"787:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7686,"name":"address","nodeType":"ElementaryTypeName","src":"787:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7689,"mutability":"mutable","name":"value","nameLocation":"804:5:21","nodeType":"VariableDeclaration","scope":7694,"src":"799:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7688,"name":"uint","nodeType":"ElementaryTypeName","src":"799:4:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"772:38:21"},"returnParameters":{"id":7693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7694,"src":"829:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7691,"name":"bool","nodeType":"ElementaryTypeName","src":"829:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"828:6:21"},"scope":7695,"src":"751:84:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7696,"src":"28:810:21","usedErrors":[]}],"src":"0:840:21"},"id":21},"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol","exportedSymbols":{"IPangolinRouterSupportingFees":[8068]},"id":8069,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7697,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"0:24:22"},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinRouterSupportingFees","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8068,"linearizedBaseContracts":[8068],"name":"IPangolinRouterSupportingFees","nameLocation":"73:29:22","nodeType":"ContractDefinition","nodes":[{"functionSelector":"2dd31000","id":7702,"implemented":false,"kind":"function","modifiers":[],"name":"FACTORY","nameLocation":"119:7:22","nodeType":"FunctionDefinition","parameters":{"id":7698,"nodeType":"ParameterList","parameters":[],"src":"126:2:22"},"returnParameters":{"id":7701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7702,"src":"152:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7699,"name":"address","nodeType":"ElementaryTypeName","src":"152:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"151:9:22"},"scope":8068,"src":"110:51:22","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"73b295c2","id":7707,"implemented":false,"kind":"function","modifiers":[],"name":"WAVAX","nameLocation":"176:5:22","nodeType":"FunctionDefinition","parameters":{"id":7703,"nodeType":"ParameterList","parameters":[],"src":"181:2:22"},"returnParameters":{"id":7706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7707,"src":"207:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7704,"name":"address","nodeType":"ElementaryTypeName","src":"207:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"206:9:22"},"scope":8068,"src":"167:49:22","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bc063e1a","id":7712,"implemented":false,"kind":"function","modifiers":[],"name":"MAX_FEE","nameLocation":"233:7:22","nodeType":"FunctionDefinition","parameters":{"id":7708,"nodeType":"ParameterList","parameters":[],"src":"240:2:22"},"returnParameters":{"id":7711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7712,"src":"266:6:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7709,"name":"uint24","nodeType":"ElementaryTypeName","src":"266:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"265:8:22"},"scope":8068,"src":"224:50:22","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18d73e9b","id":7717,"implemented":false,"kind":"function","modifiers":[],"name":"FEE_FLOOR","nameLocation":"289:9:22","nodeType":"FunctionDefinition","parameters":{"id":7713,"nodeType":"ParameterList","parameters":[],"src":"298:2:22"},"returnParameters":{"id":7716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7717,"src":"324:6:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7714,"name":"uint24","nodeType":"ElementaryTypeName","src":"324:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"323:8:22"},"scope":8068,"src":"280:52:22","stateMutability":"view","virtual":false,"visibility":"external"},{"canonicalName":"IPangolinRouterSupportingFees.FeeInfo","id":7728,"members":[{"constant":false,"id":7719,"mutability":"mutable","name":"feePartner","nameLocation":"373:10:22","nodeType":"VariableDeclaration","scope":7728,"src":"366:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7718,"name":"uint24","nodeType":"ElementaryTypeName","src":"366:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7721,"mutability":"mutable","name":"feeProtocol","nameLocation":"401:11:22","nodeType":"VariableDeclaration","scope":7728,"src":"394:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7720,"name":"uint24","nodeType":"ElementaryTypeName","src":"394:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7723,"mutability":"mutable","name":"feeTotal","nameLocation":"430:8:22","nodeType":"VariableDeclaration","scope":7728,"src":"423:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7722,"name":"uint24","nodeType":"ElementaryTypeName","src":"423:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7725,"mutability":"mutable","name":"feeCut","nameLocation":"456:6:22","nodeType":"VariableDeclaration","scope":7728,"src":"449:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7724,"name":"uint24","nodeType":"ElementaryTypeName","src":"449:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7727,"mutability":"mutable","name":"initialized","nameLocation":"478:11:22","nodeType":"VariableDeclaration","scope":7728,"src":"473:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7726,"name":"bool","nodeType":"ElementaryTypeName","src":"473:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"FeeInfo","nameLocation":"347:7:22","nodeType":"StructDefinition","scope":8068,"src":"340:157:22","visibility":"public"},{"functionSelector":"7439459b","id":7743,"implemented":false,"kind":"function","modifiers":[],"name":"getFeeInfo","nameLocation":"514:10:22","nodeType":"FunctionDefinition","parameters":{"id":7731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7730,"mutability":"mutable","name":"feeTo","nameLocation":"533:5:22","nodeType":"VariableDeclaration","scope":7743,"src":"525:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7729,"name":"address","nodeType":"ElementaryTypeName","src":"525:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"524:15:22"},"returnParameters":{"id":7742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7733,"mutability":"mutable","name":"feePartner","nameLocation":"580:10:22","nodeType":"VariableDeclaration","scope":7743,"src":"573:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7732,"name":"uint24","nodeType":"ElementaryTypeName","src":"573:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7735,"mutability":"mutable","name":"feeProtocol","nameLocation":"608:11:22","nodeType":"VariableDeclaration","scope":7743,"src":"601:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7734,"name":"uint24","nodeType":"ElementaryTypeName","src":"601:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7737,"mutability":"mutable","name":"feeTotal","nameLocation":"637:8:22","nodeType":"VariableDeclaration","scope":7743,"src":"630:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7736,"name":"uint24","nodeType":"ElementaryTypeName","src":"630:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7739,"mutability":"mutable","name":"feeCut","nameLocation":"663:6:22","nodeType":"VariableDeclaration","scope":7743,"src":"656:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7738,"name":"uint24","nodeType":"ElementaryTypeName","src":"656:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7741,"mutability":"mutable","name":"initialized","nameLocation":"685:11:22","nodeType":"VariableDeclaration","scope":7743,"src":"680:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7740,"name":"bool","nodeType":"ElementaryTypeName","src":"680:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"562:141:22"},"scope":8068,"src":"505:199:22","stateMutability":"view","virtual":false,"visibility":"external"},{"anonymous":false,"eventSelector":"6b5fc252492dc36106011c1c3866e04a5c11af764428a2c91980de4994e4331f","id":7755,"name":"PartnerActivated","nameLocation":"718:16:22","nodeType":"EventDefinition","parameters":{"id":7754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7745,"indexed":true,"mutability":"mutable","name":"partner","nameLocation":"751:7:22","nodeType":"VariableDeclaration","scope":7755,"src":"735:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7744,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7747,"indexed":false,"mutability":"mutable","name":"feePartner","nameLocation":"767:10:22","nodeType":"VariableDeclaration","scope":7755,"src":"760:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7746,"name":"uint24","nodeType":"ElementaryTypeName","src":"760:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7749,"indexed":false,"mutability":"mutable","name":"feeProtocol","nameLocation":"786:11:22","nodeType":"VariableDeclaration","scope":7755,"src":"779:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7748,"name":"uint24","nodeType":"ElementaryTypeName","src":"779:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7751,"indexed":false,"mutability":"mutable","name":"feeTotal","nameLocation":"806:8:22","nodeType":"VariableDeclaration","scope":7755,"src":"799:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7750,"name":"uint24","nodeType":"ElementaryTypeName","src":"799:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7753,"indexed":false,"mutability":"mutable","name":"feeCut","nameLocation":"823:6:22","nodeType":"VariableDeclaration","scope":7755,"src":"816:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7752,"name":"uint24","nodeType":"ElementaryTypeName","src":"816:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"734:96:22"},"src":"712:119:22"},{"anonymous":false,"eventSelector":"268bb6f24d6bcf8e423acb11150cdda69e8aa10804aada92e6e8e32ad9e724fb","id":7767,"name":"FeeChange","nameLocation":"843:9:22","nodeType":"EventDefinition","parameters":{"id":7766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7757,"indexed":true,"mutability":"mutable","name":"partner","nameLocation":"869:7:22","nodeType":"VariableDeclaration","scope":7767,"src":"853:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7756,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7759,"indexed":false,"mutability":"mutable","name":"feePartner","nameLocation":"885:10:22","nodeType":"VariableDeclaration","scope":7767,"src":"878:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7758,"name":"uint24","nodeType":"ElementaryTypeName","src":"878:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7761,"indexed":false,"mutability":"mutable","name":"feeProtocol","nameLocation":"904:11:22","nodeType":"VariableDeclaration","scope":7767,"src":"897:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7760,"name":"uint24","nodeType":"ElementaryTypeName","src":"897:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7763,"indexed":false,"mutability":"mutable","name":"feeTotal","nameLocation":"924:8:22","nodeType":"VariableDeclaration","scope":7767,"src":"917:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7762,"name":"uint24","nodeType":"ElementaryTypeName","src":"917:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":7765,"indexed":false,"mutability":"mutable","name":"feeCut","nameLocation":"941:6:22","nodeType":"VariableDeclaration","scope":7767,"src":"934:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7764,"name":"uint24","nodeType":"ElementaryTypeName","src":"934:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"852:96:22"},"src":"837:112:22"},{"anonymous":false,"eventSelector":"20e2995330eff898aba363dafa356ef1daadce6099c9cc7ca8d54eefe4592b4c","id":7775,"name":"ProtocolFee","nameLocation":"961:11:22","nodeType":"EventDefinition","parameters":{"id":7774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7769,"indexed":true,"mutability":"mutable","name":"partner","nameLocation":"989:7:22","nodeType":"VariableDeclaration","scope":7775,"src":"973:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7768,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7771,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"1014:5:22","nodeType":"VariableDeclaration","scope":7775,"src":"998:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7770,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7773,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1029:6:22","nodeType":"VariableDeclaration","scope":7775,"src":"1021:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7772,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"972:64:22"},"src":"955:82:22"},{"anonymous":false,"eventSelector":"773af6b6713c6b692509715062c62888d71211ffdd7012cf0835abfdc18992fa","id":7783,"name":"PartnerFee","nameLocation":"1049:10:22","nodeType":"EventDefinition","parameters":{"id":7782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7777,"indexed":true,"mutability":"mutable","name":"partner","nameLocation":"1076:7:22","nodeType":"VariableDeclaration","scope":7783,"src":"1060:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7776,"name":"address","nodeType":"ElementaryTypeName","src":"1060:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7779,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"1101:5:22","nodeType":"VariableDeclaration","scope":7783,"src":"1085:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7778,"name":"address","nodeType":"ElementaryTypeName","src":"1085:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7781,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1116:6:22","nodeType":"VariableDeclaration","scope":7783,"src":"1108:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7780,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1059:64:22"},"src":"1043:81:22"},{"anonymous":false,"eventSelector":"f3a15b70ef42163a42bbb07edb60d02f31fd11d394c9326022f78e1c7e12f685","id":7791,"name":"FeeWithdrawn","nameLocation":"1136:12:22","nodeType":"EventDefinition","parameters":{"id":7790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7785,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"1165:5:22","nodeType":"VariableDeclaration","scope":7791,"src":"1149:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7784,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7787,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1180:6:22","nodeType":"VariableDeclaration","scope":7791,"src":"1172:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7786,"name":"uint256","nodeType":"ElementaryTypeName","src":"1172:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7789,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1196:2:22","nodeType":"VariableDeclaration","scope":7791,"src":"1188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7788,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1148:51:22"},"src":"1130:70:22"},{"anonymous":false,"eventSelector":"14c0e8536178612bd3938abcc5b94b0c0ca07a71800ba09c1c10e61b02209c55","id":7795,"name":"FeeFloorChange","nameLocation":"1212:14:22","nodeType":"EventDefinition","parameters":{"id":7794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7793,"indexed":false,"mutability":"mutable","name":"feeFloor","nameLocation":"1234:8:22","nodeType":"VariableDeclaration","scope":7795,"src":"1227:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7792,"name":"uint24","nodeType":"ElementaryTypeName","src":"1227:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"1226:17:22"},"src":"1206:38:22"},{"anonymous":false,"eventSelector":"46751f89d74c14e8ae5fd281384537c0da96b674099c7e7aad93aa38f39e9acc","id":7803,"name":"ManagerChange","nameLocation":"1256:13:22","nodeType":"EventDefinition","parameters":{"id":7802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7797,"indexed":true,"mutability":"mutable","name":"partner","nameLocation":"1286:7:22","nodeType":"VariableDeclaration","scope":7803,"src":"1270:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7796,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7799,"indexed":false,"mutability":"mutable","name":"manager","nameLocation":"1303:7:22","nodeType":"VariableDeclaration","scope":7803,"src":"1295:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7798,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7801,"indexed":false,"mutability":"mutable","name":"isAllowed","nameLocation":"1317:9:22","nodeType":"VariableDeclaration","scope":7803,"src":"1312:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7800,"name":"bool","nodeType":"ElementaryTypeName","src":"1312:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1269:58:22"},"src":"1250:78:22"},{"functionSelector":"3fe9bd7c","id":7812,"implemented":false,"kind":"function","modifiers":[],"name":"managers","nameLocation":"1345:8:22","nodeType":"FunctionDefinition","parameters":{"id":7808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7805,"mutability":"mutable","name":"partner","nameLocation":"1362:7:22","nodeType":"VariableDeclaration","scope":7812,"src":"1354:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7804,"name":"address","nodeType":"ElementaryTypeName","src":"1354:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7807,"mutability":"mutable","name":"manager","nameLocation":"1379:7:22","nodeType":"VariableDeclaration","scope":7812,"src":"1371:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7806,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1353:34:22"},"returnParameters":{"id":7811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7810,"mutability":"mutable","name":"isAllowed","nameLocation":"1416:9:22","nodeType":"VariableDeclaration","scope":7812,"src":"1411:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7809,"name":"bool","nodeType":"ElementaryTypeName","src":"1411:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1410:16:22"},"scope":8068,"src":"1336:91:22","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"05a1450d","id":7831,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForTokens","nameLocation":"1444:24:22","nodeType":"FunctionDefinition","parameters":{"id":7826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7814,"mutability":"mutable","name":"amountIn","nameLocation":"1484:8:22","nodeType":"VariableDeclaration","scope":7831,"src":"1479:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7813,"name":"uint","nodeType":"ElementaryTypeName","src":"1479:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7816,"mutability":"mutable","name":"amountOutMin","nameLocation":"1508:12:22","nodeType":"VariableDeclaration","scope":7831,"src":"1503:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7815,"name":"uint","nodeType":"ElementaryTypeName","src":"1503:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7819,"mutability":"mutable","name":"path","nameLocation":"1550:4:22","nodeType":"VariableDeclaration","scope":7831,"src":"1531:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7817,"name":"address","nodeType":"ElementaryTypeName","src":"1531:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7818,"nodeType":"ArrayTypeName","src":"1531:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7821,"mutability":"mutable","name":"to","nameLocation":"1573:2:22","nodeType":"VariableDeclaration","scope":7831,"src":"1565:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7820,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7823,"mutability":"mutable","name":"deadline","nameLocation":"1591:8:22","nodeType":"VariableDeclaration","scope":7831,"src":"1586:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7822,"name":"uint","nodeType":"ElementaryTypeName","src":"1586:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7825,"mutability":"mutable","name":"feeTo","nameLocation":"1618:5:22","nodeType":"VariableDeclaration","scope":7831,"src":"1610:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7824,"name":"address","nodeType":"ElementaryTypeName","src":"1610:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1468:162:22"},"returnParameters":{"id":7830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7829,"mutability":"mutable","name":"amounts","nameLocation":"1663:7:22","nodeType":"VariableDeclaration","scope":7831,"src":"1649:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7827,"name":"uint","nodeType":"ElementaryTypeName","src":"1649:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7828,"nodeType":"ArrayTypeName","src":"1649:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1648:23:22"},"scope":8068,"src":"1435:237:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a32166ee","id":7850,"implemented":false,"kind":"function","modifiers":[],"name":"swapTokensForExactTokens","nameLocation":"1687:24:22","nodeType":"FunctionDefinition","parameters":{"id":7845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7833,"mutability":"mutable","name":"amountOut","nameLocation":"1727:9:22","nodeType":"VariableDeclaration","scope":7850,"src":"1722:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7832,"name":"uint","nodeType":"ElementaryTypeName","src":"1722:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7835,"mutability":"mutable","name":"amountInMax","nameLocation":"1752:11:22","nodeType":"VariableDeclaration","scope":7850,"src":"1747:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7834,"name":"uint","nodeType":"ElementaryTypeName","src":"1747:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7838,"mutability":"mutable","name":"path","nameLocation":"1793:4:22","nodeType":"VariableDeclaration","scope":7850,"src":"1774:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7836,"name":"address","nodeType":"ElementaryTypeName","src":"1774:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7837,"nodeType":"ArrayTypeName","src":"1774:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7840,"mutability":"mutable","name":"to","nameLocation":"1816:2:22","nodeType":"VariableDeclaration","scope":7850,"src":"1808:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7839,"name":"address","nodeType":"ElementaryTypeName","src":"1808:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7842,"mutability":"mutable","name":"deadline","nameLocation":"1834:8:22","nodeType":"VariableDeclaration","scope":7850,"src":"1829:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7841,"name":"uint","nodeType":"ElementaryTypeName","src":"1829:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7844,"mutability":"mutable","name":"feeTo","nameLocation":"1861:5:22","nodeType":"VariableDeclaration","scope":7850,"src":"1853:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7843,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1711:162:22"},"returnParameters":{"id":7849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7848,"mutability":"mutable","name":"amounts","nameLocation":"1906:7:22","nodeType":"VariableDeclaration","scope":7850,"src":"1892:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7846,"name":"uint","nodeType":"ElementaryTypeName","src":"1892:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7847,"nodeType":"ArrayTypeName","src":"1892:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1891:23:22"},"scope":8068,"src":"1678:237:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"eaf92ef4","id":7867,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactAVAXForTokens","nameLocation":"1930:22:22","nodeType":"FunctionDefinition","parameters":{"id":7862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7852,"mutability":"mutable","name":"amountOutMin","nameLocation":"1968:12:22","nodeType":"VariableDeclaration","scope":7867,"src":"1963:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7851,"name":"uint","nodeType":"ElementaryTypeName","src":"1963:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7855,"mutability":"mutable","name":"path","nameLocation":"2010:4:22","nodeType":"VariableDeclaration","scope":7867,"src":"1991:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7853,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7854,"nodeType":"ArrayTypeName","src":"1991:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7857,"mutability":"mutable","name":"to","nameLocation":"2033:2:22","nodeType":"VariableDeclaration","scope":7867,"src":"2025:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7856,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7859,"mutability":"mutable","name":"deadline","nameLocation":"2051:8:22","nodeType":"VariableDeclaration","scope":7867,"src":"2046:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7858,"name":"uint","nodeType":"ElementaryTypeName","src":"2046:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7861,"mutability":"mutable","name":"feeTo","nameLocation":"2078:5:22","nodeType":"VariableDeclaration","scope":7867,"src":"2070:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7860,"name":"address","nodeType":"ElementaryTypeName","src":"2070:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1952:138:22"},"returnParameters":{"id":7866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7865,"mutability":"mutable","name":"amounts","nameLocation":"2131:7:22","nodeType":"VariableDeclaration","scope":7867,"src":"2117:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7863,"name":"uint","nodeType":"ElementaryTypeName","src":"2117:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7864,"nodeType":"ArrayTypeName","src":"2117:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2116:23:22"},"scope":8068,"src":"1921:219:22","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"0ece8e24","id":7886,"implemented":false,"kind":"function","modifiers":[],"name":"swapTokensForExactAVAX","nameLocation":"2155:22:22","nodeType":"FunctionDefinition","parameters":{"id":7881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7869,"mutability":"mutable","name":"amountOut","nameLocation":"2193:9:22","nodeType":"VariableDeclaration","scope":7886,"src":"2188:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7868,"name":"uint","nodeType":"ElementaryTypeName","src":"2188:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7871,"mutability":"mutable","name":"amountInMax","nameLocation":"2218:11:22","nodeType":"VariableDeclaration","scope":7886,"src":"2213:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7870,"name":"uint","nodeType":"ElementaryTypeName","src":"2213:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7874,"mutability":"mutable","name":"path","nameLocation":"2259:4:22","nodeType":"VariableDeclaration","scope":7886,"src":"2240:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7872,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7873,"nodeType":"ArrayTypeName","src":"2240:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7876,"mutability":"mutable","name":"to","nameLocation":"2282:2:22","nodeType":"VariableDeclaration","scope":7886,"src":"2274:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7875,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7878,"mutability":"mutable","name":"deadline","nameLocation":"2300:8:22","nodeType":"VariableDeclaration","scope":7886,"src":"2295:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7877,"name":"uint","nodeType":"ElementaryTypeName","src":"2295:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7880,"mutability":"mutable","name":"feeTo","nameLocation":"2327:5:22","nodeType":"VariableDeclaration","scope":7886,"src":"2319:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7879,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2177:162:22"},"returnParameters":{"id":7885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7884,"mutability":"mutable","name":"amounts","nameLocation":"2372:7:22","nodeType":"VariableDeclaration","scope":7886,"src":"2358:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7882,"name":"uint","nodeType":"ElementaryTypeName","src":"2358:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7883,"nodeType":"ArrayTypeName","src":"2358:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2357:23:22"},"scope":8068,"src":"2146:235:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e5e47889","id":7905,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForAVAX","nameLocation":"2396:22:22","nodeType":"FunctionDefinition","parameters":{"id":7900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7888,"mutability":"mutable","name":"amountIn","nameLocation":"2434:8:22","nodeType":"VariableDeclaration","scope":7905,"src":"2429:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7887,"name":"uint","nodeType":"ElementaryTypeName","src":"2429:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7890,"mutability":"mutable","name":"amountOutMin","nameLocation":"2458:12:22","nodeType":"VariableDeclaration","scope":7905,"src":"2453:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7889,"name":"uint","nodeType":"ElementaryTypeName","src":"2453:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7893,"mutability":"mutable","name":"path","nameLocation":"2500:4:22","nodeType":"VariableDeclaration","scope":7905,"src":"2481:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7891,"name":"address","nodeType":"ElementaryTypeName","src":"2481:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7892,"nodeType":"ArrayTypeName","src":"2481:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7895,"mutability":"mutable","name":"to","nameLocation":"2523:2:22","nodeType":"VariableDeclaration","scope":7905,"src":"2515:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7894,"name":"address","nodeType":"ElementaryTypeName","src":"2515:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7897,"mutability":"mutable","name":"deadline","nameLocation":"2541:8:22","nodeType":"VariableDeclaration","scope":7905,"src":"2536:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7896,"name":"uint","nodeType":"ElementaryTypeName","src":"2536:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7899,"mutability":"mutable","name":"feeTo","nameLocation":"2568:5:22","nodeType":"VariableDeclaration","scope":7905,"src":"2560:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7898,"name":"address","nodeType":"ElementaryTypeName","src":"2560:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2418:162:22"},"returnParameters":{"id":7904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7903,"mutability":"mutable","name":"amounts","nameLocation":"2613:7:22","nodeType":"VariableDeclaration","scope":7905,"src":"2599:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7901,"name":"uint","nodeType":"ElementaryTypeName","src":"2599:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7902,"nodeType":"ArrayTypeName","src":"2599:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2598:23:22"},"scope":8068,"src":"2387:235:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2eb9cc74","id":7922,"implemented":false,"kind":"function","modifiers":[],"name":"swapAVAXForExactTokens","nameLocation":"2637:22:22","nodeType":"FunctionDefinition","parameters":{"id":7917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7907,"mutability":"mutable","name":"amountOut","nameLocation":"2675:9:22","nodeType":"VariableDeclaration","scope":7922,"src":"2670:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7906,"name":"uint","nodeType":"ElementaryTypeName","src":"2670:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7910,"mutability":"mutable","name":"path","nameLocation":"2714:4:22","nodeType":"VariableDeclaration","scope":7922,"src":"2695:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7908,"name":"address","nodeType":"ElementaryTypeName","src":"2695:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7909,"nodeType":"ArrayTypeName","src":"2695:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7912,"mutability":"mutable","name":"to","nameLocation":"2737:2:22","nodeType":"VariableDeclaration","scope":7922,"src":"2729:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7911,"name":"address","nodeType":"ElementaryTypeName","src":"2729:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7914,"mutability":"mutable","name":"deadline","nameLocation":"2755:8:22","nodeType":"VariableDeclaration","scope":7922,"src":"2750:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7913,"name":"uint","nodeType":"ElementaryTypeName","src":"2750:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7916,"mutability":"mutable","name":"feeTo","nameLocation":"2782:5:22","nodeType":"VariableDeclaration","scope":7922,"src":"2774:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7915,"name":"address","nodeType":"ElementaryTypeName","src":"2774:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2659:135:22"},"returnParameters":{"id":7921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7920,"mutability":"mutable","name":"amounts","nameLocation":"2835:7:22","nodeType":"VariableDeclaration","scope":7922,"src":"2821:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7918,"name":"uint","nodeType":"ElementaryTypeName","src":"2821:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7919,"nodeType":"ArrayTypeName","src":"2821:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2820:23:22"},"scope":8068,"src":"2628:216:22","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"f824f62e","id":7938,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","nameLocation":"2861:53:22","nodeType":"FunctionDefinition","parameters":{"id":7936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7924,"mutability":"mutable","name":"amountIn","nameLocation":"2930:8:22","nodeType":"VariableDeclaration","scope":7938,"src":"2925:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7923,"name":"uint","nodeType":"ElementaryTypeName","src":"2925:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7926,"mutability":"mutable","name":"amountOutMin","nameLocation":"2954:12:22","nodeType":"VariableDeclaration","scope":7938,"src":"2949:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7925,"name":"uint","nodeType":"ElementaryTypeName","src":"2949:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7929,"mutability":"mutable","name":"path","nameLocation":"2996:4:22","nodeType":"VariableDeclaration","scope":7938,"src":"2977:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7927,"name":"address","nodeType":"ElementaryTypeName","src":"2977:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7928,"nodeType":"ArrayTypeName","src":"2977:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7931,"mutability":"mutable","name":"to","nameLocation":"3019:2:22","nodeType":"VariableDeclaration","scope":7938,"src":"3011:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7930,"name":"address","nodeType":"ElementaryTypeName","src":"3011:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7933,"mutability":"mutable","name":"deadline","nameLocation":"3037:8:22","nodeType":"VariableDeclaration","scope":7938,"src":"3032:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7932,"name":"uint","nodeType":"ElementaryTypeName","src":"3032:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7935,"mutability":"mutable","name":"feeTo","nameLocation":"3064:5:22","nodeType":"VariableDeclaration","scope":7938,"src":"3056:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7934,"name":"address","nodeType":"ElementaryTypeName","src":"3056:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2914:162:22"},"returnParameters":{"id":7937,"nodeType":"ParameterList","parameters":[],"src":"3085:0:22"},"scope":8068,"src":"2852:234:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e56e780a","id":7952,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","nameLocation":"3101:51:22","nodeType":"FunctionDefinition","parameters":{"id":7950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7940,"mutability":"mutable","name":"amountOutMin","nameLocation":"3168:12:22","nodeType":"VariableDeclaration","scope":7952,"src":"3163:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7939,"name":"uint","nodeType":"ElementaryTypeName","src":"3163:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7943,"mutability":"mutable","name":"path","nameLocation":"3210:4:22","nodeType":"VariableDeclaration","scope":7952,"src":"3191:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7941,"name":"address","nodeType":"ElementaryTypeName","src":"3191:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7942,"nodeType":"ArrayTypeName","src":"3191:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7945,"mutability":"mutable","name":"to","nameLocation":"3233:2:22","nodeType":"VariableDeclaration","scope":7952,"src":"3225:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7944,"name":"address","nodeType":"ElementaryTypeName","src":"3225:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7947,"mutability":"mutable","name":"deadline","nameLocation":"3251:8:22","nodeType":"VariableDeclaration","scope":7952,"src":"3246:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7946,"name":"uint","nodeType":"ElementaryTypeName","src":"3246:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7949,"mutability":"mutable","name":"feeTo","nameLocation":"3278:5:22","nodeType":"VariableDeclaration","scope":7952,"src":"3270:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7948,"name":"address","nodeType":"ElementaryTypeName","src":"3270:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3152:138:22"},"returnParameters":{"id":7951,"nodeType":"ParameterList","parameters":[],"src":"3307:0:22"},"scope":8068,"src":"3092:216:22","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"cdbf012e","id":7968,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","nameLocation":"3323:51:22","nodeType":"FunctionDefinition","parameters":{"id":7966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7954,"mutability":"mutable","name":"amountIn","nameLocation":"3390:8:22","nodeType":"VariableDeclaration","scope":7968,"src":"3385:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7953,"name":"uint","nodeType":"ElementaryTypeName","src":"3385:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7956,"mutability":"mutable","name":"amountOutMin","nameLocation":"3414:12:22","nodeType":"VariableDeclaration","scope":7968,"src":"3409:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7955,"name":"uint","nodeType":"ElementaryTypeName","src":"3409:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7959,"mutability":"mutable","name":"path","nameLocation":"3456:4:22","nodeType":"VariableDeclaration","scope":7968,"src":"3437:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7957,"name":"address","nodeType":"ElementaryTypeName","src":"3437:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7958,"nodeType":"ArrayTypeName","src":"3437:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7961,"mutability":"mutable","name":"to","nameLocation":"3479:2:22","nodeType":"VariableDeclaration","scope":7968,"src":"3471:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7960,"name":"address","nodeType":"ElementaryTypeName","src":"3471:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7963,"mutability":"mutable","name":"deadline","nameLocation":"3497:8:22","nodeType":"VariableDeclaration","scope":7968,"src":"3492:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7962,"name":"uint","nodeType":"ElementaryTypeName","src":"3492:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7965,"mutability":"mutable","name":"feeTo","nameLocation":"3524:5:22","nodeType":"VariableDeclaration","scope":7968,"src":"3516:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7964,"name":"address","nodeType":"ElementaryTypeName","src":"3516:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3374:162:22"},"returnParameters":{"id":7967,"nodeType":"ParameterList","parameters":[],"src":"3545:0:22"},"scope":8068,"src":"3314:232:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"01e8a475","id":7973,"implemented":false,"kind":"function","modifiers":[],"name":"activatePartner","nameLocation":"3563:15:22","nodeType":"FunctionDefinition","parameters":{"id":7971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"partner","nameLocation":"3587:7:22","nodeType":"VariableDeclaration","scope":7973,"src":"3579:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7969,"name":"address","nodeType":"ElementaryTypeName","src":"3579:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3578:17:22"},"returnParameters":{"id":7972,"nodeType":"ParameterList","parameters":[],"src":"3604:0:22"},"scope":8068,"src":"3554:51:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"febb9e4f","id":7982,"implemented":false,"kind":"function","modifiers":[],"name":"modifyManagement","nameLocation":"3620:16:22","nodeType":"FunctionDefinition","parameters":{"id":7980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7975,"mutability":"mutable","name":"partner","nameLocation":"3645:7:22","nodeType":"VariableDeclaration","scope":7982,"src":"3637:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7974,"name":"address","nodeType":"ElementaryTypeName","src":"3637:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7977,"mutability":"mutable","name":"manager","nameLocation":"3662:7:22","nodeType":"VariableDeclaration","scope":7982,"src":"3654:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7976,"name":"address","nodeType":"ElementaryTypeName","src":"3654:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7979,"mutability":"mutable","name":"isAllowed","nameLocation":"3676:9:22","nodeType":"VariableDeclaration","scope":7982,"src":"3671:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7978,"name":"bool","nodeType":"ElementaryTypeName","src":"3671:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3636:50:22"},"returnParameters":{"id":7981,"nodeType":"ParameterList","parameters":[],"src":"3695:0:22"},"scope":8068,"src":"3611:85:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cfde04d9","id":7989,"implemented":false,"kind":"function","modifiers":[],"name":"modifyTotalFee","nameLocation":"3711:14:22","nodeType":"FunctionDefinition","parameters":{"id":7987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7984,"mutability":"mutable","name":"partner","nameLocation":"3734:7:22","nodeType":"VariableDeclaration","scope":7989,"src":"3726:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7983,"name":"address","nodeType":"ElementaryTypeName","src":"3726:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7986,"mutability":"mutable","name":"feeTotal","nameLocation":"3750:8:22","nodeType":"VariableDeclaration","scope":7989,"src":"3743:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7985,"name":"uint24","nodeType":"ElementaryTypeName","src":"3743:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"3725:34:22"},"returnParameters":{"id":7988,"nodeType":"ParameterList","parameters":[],"src":"3768:0:22"},"scope":8068,"src":"3702:67:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa44620f","id":7996,"implemented":false,"kind":"function","modifiers":[],"name":"modifyFeeCut","nameLocation":"3784:12:22","nodeType":"FunctionDefinition","parameters":{"id":7994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7991,"mutability":"mutable","name":"partner","nameLocation":"3805:7:22","nodeType":"VariableDeclaration","scope":7996,"src":"3797:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7990,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7993,"mutability":"mutable","name":"feeCut","nameLocation":"3821:6:22","nodeType":"VariableDeclaration","scope":7996,"src":"3814:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7992,"name":"uint24","nodeType":"ElementaryTypeName","src":"3814:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"3796:32:22"},"returnParameters":{"id":7995,"nodeType":"ParameterList","parameters":[],"src":"3837:0:22"},"scope":8068,"src":"3775:63:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e80e6eed","id":8001,"implemented":false,"kind":"function","modifiers":[],"name":"modifyFeeFloor","nameLocation":"3853:14:22","nodeType":"FunctionDefinition","parameters":{"id":7999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7998,"mutability":"mutable","name":"feeFloor","nameLocation":"3875:8:22","nodeType":"VariableDeclaration","scope":8001,"src":"3868:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7997,"name":"uint24","nodeType":"ElementaryTypeName","src":"3868:6:22","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"3867:17:22"},"returnParameters":{"id":8000,"nodeType":"ParameterList","parameters":[],"src":"3893:0:22"},"scope":8068,"src":"3844:50:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"31f91a84","id":8012,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawFees","nameLocation":"3909:12:22","nodeType":"FunctionDefinition","parameters":{"id":8010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8004,"mutability":"mutable","name":"tokens","nameLocation":"3941:6:22","nodeType":"VariableDeclaration","scope":8012,"src":"3922:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8002,"name":"address","nodeType":"ElementaryTypeName","src":"3922:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8003,"nodeType":"ArrayTypeName","src":"3922:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8007,"mutability":"mutable","name":"amounts","nameLocation":"3968:7:22","nodeType":"VariableDeclaration","scope":8012,"src":"3949:26:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8005,"name":"uint256","nodeType":"ElementaryTypeName","src":"3949:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8006,"nodeType":"ArrayTypeName","src":"3949:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8009,"mutability":"mutable","name":"to","nameLocation":"3985:2:22","nodeType":"VariableDeclaration","scope":8012,"src":"3977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8008,"name":"address","nodeType":"ElementaryTypeName","src":"3977:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3921:67:22"},"returnParameters":{"id":8011,"nodeType":"ParameterList","parameters":[],"src":"3997:0:22"},"scope":8068,"src":"3900:98:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ad615dec","id":8023,"implemented":false,"kind":"function","modifiers":[],"name":"quote","nameLocation":"4015:5:22","nodeType":"FunctionDefinition","parameters":{"id":8019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8014,"mutability":"mutable","name":"amountA","nameLocation":"4026:7:22","nodeType":"VariableDeclaration","scope":8023,"src":"4021:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8013,"name":"uint","nodeType":"ElementaryTypeName","src":"4021:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8016,"mutability":"mutable","name":"reserveA","nameLocation":"4040:8:22","nodeType":"VariableDeclaration","scope":8023,"src":"4035:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8015,"name":"uint","nodeType":"ElementaryTypeName","src":"4035:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8018,"mutability":"mutable","name":"reserveB","nameLocation":"4055:8:22","nodeType":"VariableDeclaration","scope":8023,"src":"4050:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8017,"name":"uint","nodeType":"ElementaryTypeName","src":"4050:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4020:44:22"},"returnParameters":{"id":8022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8021,"mutability":"mutable","name":"amountB","nameLocation":"4093:7:22","nodeType":"VariableDeclaration","scope":8023,"src":"4088:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8020,"name":"uint","nodeType":"ElementaryTypeName","src":"4088:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4087:14:22"},"scope":8068,"src":"4006:96:22","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"054d50d4","id":8034,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountOut","nameLocation":"4117:12:22","nodeType":"FunctionDefinition","parameters":{"id":8030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8025,"mutability":"mutable","name":"amountIn","nameLocation":"4135:8:22","nodeType":"VariableDeclaration","scope":8034,"src":"4130:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8024,"name":"uint","nodeType":"ElementaryTypeName","src":"4130:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8027,"mutability":"mutable","name":"reserveIn","nameLocation":"4150:9:22","nodeType":"VariableDeclaration","scope":8034,"src":"4145:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8026,"name":"uint","nodeType":"ElementaryTypeName","src":"4145:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8029,"mutability":"mutable","name":"reserveOut","nameLocation":"4166:10:22","nodeType":"VariableDeclaration","scope":8034,"src":"4161:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8028,"name":"uint","nodeType":"ElementaryTypeName","src":"4161:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4129:48:22"},"returnParameters":{"id":8033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8032,"mutability":"mutable","name":"amountOut","nameLocation":"4206:9:22","nodeType":"VariableDeclaration","scope":8034,"src":"4201:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8031,"name":"uint","nodeType":"ElementaryTypeName","src":"4201:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4200:16:22"},"scope":8068,"src":"4108:109:22","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"85f8c259","id":8045,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountIn","nameLocation":"4232:11:22","nodeType":"FunctionDefinition","parameters":{"id":8041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8036,"mutability":"mutable","name":"amountOut","nameLocation":"4249:9:22","nodeType":"VariableDeclaration","scope":8045,"src":"4244:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8035,"name":"uint","nodeType":"ElementaryTypeName","src":"4244:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8038,"mutability":"mutable","name":"reserveIn","nameLocation":"4265:9:22","nodeType":"VariableDeclaration","scope":8045,"src":"4260:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8037,"name":"uint","nodeType":"ElementaryTypeName","src":"4260:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8040,"mutability":"mutable","name":"reserveOut","nameLocation":"4281:10:22","nodeType":"VariableDeclaration","scope":8045,"src":"4276:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8039,"name":"uint","nodeType":"ElementaryTypeName","src":"4276:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:49:22"},"returnParameters":{"id":8044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8043,"mutability":"mutable","name":"amountIn","nameLocation":"4321:8:22","nodeType":"VariableDeclaration","scope":8045,"src":"4316:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8042,"name":"uint","nodeType":"ElementaryTypeName","src":"4316:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4315:15:22"},"scope":8068,"src":"4223:108:22","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"d06ca61f","id":8056,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountsOut","nameLocation":"4346:13:22","nodeType":"FunctionDefinition","parameters":{"id":8051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8047,"mutability":"mutable","name":"amountIn","nameLocation":"4365:8:22","nodeType":"VariableDeclaration","scope":8056,"src":"4360:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8046,"name":"uint","nodeType":"ElementaryTypeName","src":"4360:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8050,"mutability":"mutable","name":"path","nameLocation":"4394:4:22","nodeType":"VariableDeclaration","scope":8056,"src":"4375:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8048,"name":"address","nodeType":"ElementaryTypeName","src":"4375:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8049,"nodeType":"ArrayTypeName","src":"4375:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4359:40:22"},"returnParameters":{"id":8055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8054,"mutability":"mutable","name":"amounts","nameLocation":"4437:7:22","nodeType":"VariableDeclaration","scope":8056,"src":"4423:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8052,"name":"uint","nodeType":"ElementaryTypeName","src":"4423:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8053,"nodeType":"ArrayTypeName","src":"4423:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4422:23:22"},"scope":8068,"src":"4337:109:22","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1f00ca74","id":8067,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountsIn","nameLocation":"4461:12:22","nodeType":"FunctionDefinition","parameters":{"id":8062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8058,"mutability":"mutable","name":"amountOut","nameLocation":"4479:9:22","nodeType":"VariableDeclaration","scope":8067,"src":"4474:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8057,"name":"uint","nodeType":"ElementaryTypeName","src":"4474:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8061,"mutability":"mutable","name":"path","nameLocation":"4509:4:22","nodeType":"VariableDeclaration","scope":8067,"src":"4490:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8059,"name":"address","nodeType":"ElementaryTypeName","src":"4490:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8060,"nodeType":"ArrayTypeName","src":"4490:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4473:41:22"},"returnParameters":{"id":8066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8065,"mutability":"mutable","name":"amounts","nameLocation":"4552:7:22","nodeType":"VariableDeclaration","scope":8067,"src":"4538:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8063,"name":"uint","nodeType":"ElementaryTypeName","src":"4538:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8064,"nodeType":"ArrayTypeName","src":"4538:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4537:23:22"},"scope":8068,"src":"4452:109:22","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8069,"src":"63:4501:22","usedErrors":[]}],"src":"0:4566:22"},"id":22},"contracts/pangolin-periphery/interfaces/IWAVAX.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/interfaces/IWAVAX.sol","exportedSymbols":{"IWAVAX":[8095]},"id":8096,"nodeType":"SourceUnit","nodes":[{"id":8070,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:23"},{"abstract":false,"baseContracts":[],"canonicalName":"IWAVAX","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8095,"linearizedBaseContracts":[8095],"name":"IWAVAX","nameLocation":"38:6:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d0e30db0","id":8073,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"61:7:23","nodeType":"FunctionDefinition","parameters":{"id":8071,"nodeType":"ParameterList","parameters":[],"src":"68:2:23"},"returnParameters":{"id":8072,"nodeType":"ParameterList","parameters":[],"src":"87:0:23"},"scope":8095,"src":"52:36:23","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":8082,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"103:8:23","nodeType":"FunctionDefinition","parameters":{"id":8078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8075,"mutability":"mutable","name":"to","nameLocation":"120:2:23","nodeType":"VariableDeclaration","scope":8082,"src":"112:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8074,"name":"address","nodeType":"ElementaryTypeName","src":"112:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8077,"mutability":"mutable","name":"value","nameLocation":"129:5:23","nodeType":"VariableDeclaration","scope":8082,"src":"124:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8076,"name":"uint","nodeType":"ElementaryTypeName","src":"124:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"111:24:23"},"returnParameters":{"id":8081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8082,"src":"154:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8079,"name":"bool","nodeType":"ElementaryTypeName","src":"154:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"153:6:23"},"scope":8095,"src":"94:66:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":8089,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"175:9:23","nodeType":"FunctionDefinition","parameters":{"id":8085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8084,"mutability":"mutable","name":"owner","nameLocation":"193:5:23","nodeType":"VariableDeclaration","scope":8089,"src":"185:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8083,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184:15:23"},"returnParameters":{"id":8088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8089,"src":"223:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8086,"name":"uint","nodeType":"ElementaryTypeName","src":"223:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"222:6:23"},"scope":8095,"src":"166:63:23","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2e1a7d4d","id":8094,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"244:8:23","nodeType":"FunctionDefinition","parameters":{"id":8092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8094,"src":"253:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8090,"name":"uint","nodeType":"ElementaryTypeName","src":"253:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"252:6:23"},"returnParameters":{"id":8093,"nodeType":"ParameterList","parameters":[],"src":"267:0:23"},"scope":8095,"src":"235:33:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8096,"src":"28:243:23","usedErrors":[]}],"src":"0:273:23"},"id":23},"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol","exportedSymbols":{"IPangolinFactory":[4927],"IPangolinPair":[5169],"PangolinLibrary8":[8561]},"id":8562,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8097,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"0:24:24"},{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinFactory.sol","file":"../../pangolin-core/interfaces/IPangolinFactory.sol","id":8098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8562,"sourceUnit":4928,"src":"28:61:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinPair.sol","file":"../../pangolin-core/interfaces/IPangolinPair.sol","id":8099,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8562,"sourceUnit":5170,"src":"91:58:24","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"PangolinLibrary8","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8561,"linearizedBaseContracts":[8561],"name":"PangolinLibrary8","nameLocation":"356:16:24","nodeType":"ContractDefinition","nodes":[{"body":{"id":8142,"nodeType":"Block","src":"588:240:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8111,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8101,"src":"607:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8112,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"617:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"607:16:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a204944454e544943414c5f414444524553534553","id":8114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"625:38:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15","typeString":"literal_string \"PangolinLibrary: IDENTICAL_ADDRESSES\""},"value":"PangolinLibrary: IDENTICAL_ADDRESSES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15","typeString":"literal_string \"PangolinLibrary: IDENTICAL_ADDRESSES\""}],"id":8110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"599:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"599:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8116,"nodeType":"ExpressionStatement","src":"599:65:24"},{"expression":{"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":8117,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8106,"src":"676:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8118,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8108,"src":"684:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8119,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"675:16:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8120,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8101,"src":"694:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8121,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"703:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"694:15:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":8126,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"732:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8127,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8101,"src":"740:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8128,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"731:16:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"id":8129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"694:53:24","trueExpression":{"components":[{"id":8123,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8101,"src":"713:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8124,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"721:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8125,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"712:16:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"675:72:24","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8131,"nodeType":"ExpressionStatement","src":"675:72:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8133,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8106,"src":"766:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8134,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:24","typeDescriptions":{}}},"id":8137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"776:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"766:20:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a205a45524f5f41444452455353","id":8139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"788:31:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc","typeString":"literal_string \"PangolinLibrary: ZERO_ADDRESS\""},"value":"PangolinLibrary: ZERO_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc","typeString":"literal_string \"PangolinLibrary: ZERO_ADDRESS\""}],"id":8132,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"758:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:62:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8141,"nodeType":"ExpressionStatement","src":"758:62:24"}]},"id":8143,"implemented":true,"kind":"function","modifiers":[],"name":"sortTokens","nameLocation":"490:10:24","nodeType":"FunctionDefinition","parameters":{"id":8104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8101,"mutability":"mutable","name":"tokenA","nameLocation":"509:6:24","nodeType":"VariableDeclaration","scope":8143,"src":"501:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8100,"name":"address","nodeType":"ElementaryTypeName","src":"501:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8103,"mutability":"mutable","name":"tokenB","nameLocation":"525:6:24","nodeType":"VariableDeclaration","scope":8143,"src":"517:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8102,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"500:32:24"},"returnParameters":{"id":8109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8106,"mutability":"mutable","name":"token0","nameLocation":"564:6:24","nodeType":"VariableDeclaration","scope":8143,"src":"556:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8105,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8108,"mutability":"mutable","name":"token1","nameLocation":"580:6:24","nodeType":"VariableDeclaration","scope":8143,"src":"572:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8107,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"555:32:24"},"scope":8561,"src":"481:347:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8190,"nodeType":"Block","src":"1023:367:24","statements":[{"assignments":[8155,8157],"declarations":[{"constant":false,"id":8155,"mutability":"mutable","name":"token0","nameLocation":"1043:6:24","nodeType":"VariableDeclaration","scope":8190,"src":"1035:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8154,"name":"address","nodeType":"ElementaryTypeName","src":"1035:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8157,"mutability":"mutable","name":"token1","nameLocation":"1059:6:24","nodeType":"VariableDeclaration","scope":8190,"src":"1051:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8156,"name":"address","nodeType":"ElementaryTypeName","src":"1051:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8162,"initialValue":{"arguments":[{"id":8159,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8147,"src":"1080:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8160,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8149,"src":"1088:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8158,"name":"sortTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"1069:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":8161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1069:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"1034:61:24"},{"expression":{"id":8188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8163,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"1106:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"ff","id":8173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1178:7:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string hex\"ff\""}},{"id":8174,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8145,"src":"1200:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":8178,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"1249:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8179,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"1257:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1232:3:24","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1232:16:24","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1232:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8175,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1222:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1222:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545","id":8182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1280:69:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39","typeString":"literal_string hex\"40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string hex\"ff\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39","typeString":"literal_string hex\"40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545\""}],"expression":{"id":8171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1147:3:24","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1147:16:24","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1147:231:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8170,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1137:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1137:242:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1129:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1129:7:24","typeDescriptions":{}}},"id":8185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1129:251:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1121:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8166,"name":"uint160","nodeType":"ElementaryTypeName","src":"1121:7:24","typeDescriptions":{}}},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1121:260:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1113:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8164,"name":"address","nodeType":"ElementaryTypeName","src":"1113:7:24","typeDescriptions":{}}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1113:269:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1106:276:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8189,"nodeType":"ExpressionStatement","src":"1106:276:24"}]},"id":8191,"implemented":true,"kind":"function","modifiers":[],"name":"pairFor","nameLocation":"929:7:24","nodeType":"FunctionDefinition","parameters":{"id":8150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8145,"mutability":"mutable","name":"factory","nameLocation":"945:7:24","nodeType":"VariableDeclaration","scope":8191,"src":"937:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8144,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8147,"mutability":"mutable","name":"tokenA","nameLocation":"962:6:24","nodeType":"VariableDeclaration","scope":8191,"src":"954:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8146,"name":"address","nodeType":"ElementaryTypeName","src":"954:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8149,"mutability":"mutable","name":"tokenB","nameLocation":"978:6:24","nodeType":"VariableDeclaration","scope":8191,"src":"970:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8148,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"936:49:24"},"returnParameters":{"id":8153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8152,"mutability":"mutable","name":"pair","nameLocation":"1017:4:24","nodeType":"VariableDeclaration","scope":8191,"src":"1009:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8151,"name":"address","nodeType":"ElementaryTypeName","src":"1009:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1008:14:24"},"scope":8561,"src":"920:470:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8240,"nodeType":"Block","src":"1577:273:24","statements":[{"assignments":[8205,null],"declarations":[{"constant":false,"id":8205,"mutability":"mutable","name":"token0","nameLocation":"1597:6:24","nodeType":"VariableDeclaration","scope":8240,"src":"1589:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8204,"name":"address","nodeType":"ElementaryTypeName","src":"1589:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":8210,"initialValue":{"arguments":[{"id":8207,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"1619:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8208,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8197,"src":"1627:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8206,"name":"sortTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"1608:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":8209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1608:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"1588:46:24"},{"assignments":[8212,8214,null],"declarations":[{"constant":false,"id":8212,"mutability":"mutable","name":"reserve0","nameLocation":"1654:8:24","nodeType":"VariableDeclaration","scope":8240,"src":"1646:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8214,"mutability":"mutable","name":"reserve1","nameLocation":"1672:8:24","nodeType":"VariableDeclaration","scope":8240,"src":"1664:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1664:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":8224,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":8217,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8193,"src":"1707:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8218,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"1716:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8219,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8197,"src":"1724:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8216,"name":"pairFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"1699:7:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":8220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1699:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8215,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"1685:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$5169_$","typeString":"type(contract IPangolinPair)"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1685:47:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$5169","typeString":"contract IPangolinPair"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":5111,"src":"1685:59:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1685:61:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"1645:101:24"},{"expression":{"id":8238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":8225,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8200,"src":"1758:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8226,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8202,"src":"1768:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8227,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1757:20:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8228,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"1780:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8229,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"1790:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1780:16:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"id":8234,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8214,"src":"1823:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8235,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8212,"src":"1833:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8236,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1822:20:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":8237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1780:62:24","trueExpression":{"components":[{"id":8231,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8212,"src":"1800:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8232,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8214,"src":"1810:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8233,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1799:20:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"1757:85:24","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8239,"nodeType":"ExpressionStatement","src":"1757:85:24"}]},"id":8241,"implemented":true,"kind":"function","modifiers":[],"name":"getReserves","nameLocation":"1457:11:24","nodeType":"FunctionDefinition","parameters":{"id":8198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8193,"mutability":"mutable","name":"factory","nameLocation":"1477:7:24","nodeType":"VariableDeclaration","scope":8241,"src":"1469:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8192,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8195,"mutability":"mutable","name":"tokenA","nameLocation":"1494:6:24","nodeType":"VariableDeclaration","scope":8241,"src":"1486:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8194,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8197,"mutability":"mutable","name":"tokenB","nameLocation":"1510:6:24","nodeType":"VariableDeclaration","scope":8241,"src":"1502:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8196,"name":"address","nodeType":"ElementaryTypeName","src":"1502:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1468:49:24"},"returnParameters":{"id":8203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8200,"mutability":"mutable","name":"reserveA","nameLocation":"1549:8:24","nodeType":"VariableDeclaration","scope":8241,"src":"1541:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8199,"name":"uint256","nodeType":"ElementaryTypeName","src":"1541:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8202,"mutability":"mutable","name":"reserveB","nameLocation":"1567:8:24","nodeType":"VariableDeclaration","scope":8241,"src":"1559:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1559:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:36:24"},"scope":8561,"src":"1448:402:24","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8278,"nodeType":"Block","src":"2071:220:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8253,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8243,"src":"2090:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2090:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d4f554e54","id":8256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2103:38:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_AMOUNT\""},"value":"PangolinLibrary: INSUFFICIENT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_AMOUNT\""}],"id":8252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2082:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2082:60:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8258,"nodeType":"ExpressionStatement","src":"2082:60:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8260,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"2161:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2172:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2161:12:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8263,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"2177:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2188:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2177:12:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2161:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459","id":8267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2191:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""},"value":"PangolinLibrary: INSUFFICIENT_LIQUIDITY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""}],"id":8259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2153:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2153:80:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8269,"nodeType":"ExpressionStatement","src":"2153:80:24"},{"expression":{"id":8276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8270,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"2244:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8271,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8243,"src":"2254:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8272,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"2264:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2254:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8274,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"2275:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2254:29:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2244:39:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8277,"nodeType":"ExpressionStatement","src":"2244:39:24"}]},"id":8279,"implemented":true,"kind":"function","modifiers":[],"name":"quote","nameLocation":"1972:5:24","nodeType":"FunctionDefinition","parameters":{"id":8248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8243,"mutability":"mutable","name":"amountA","nameLocation":"1986:7:24","nodeType":"VariableDeclaration","scope":8279,"src":"1978:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8242,"name":"uint256","nodeType":"ElementaryTypeName","src":"1978:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8245,"mutability":"mutable","name":"reserveA","nameLocation":"2003:8:24","nodeType":"VariableDeclaration","scope":8279,"src":"1995:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1995:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8247,"mutability":"mutable","name":"reserveB","nameLocation":"2021:8:24","nodeType":"VariableDeclaration","scope":8279,"src":"2013:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8246,"name":"uint256","nodeType":"ElementaryTypeName","src":"2013:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1977:53:24"},"returnParameters":{"id":8251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8250,"mutability":"mutable","name":"amountB","nameLocation":"2062:7:24","nodeType":"VariableDeclaration","scope":8279,"src":"2054:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8249,"name":"uint256","nodeType":"ElementaryTypeName","src":"2054:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2053:17:24"},"scope":8561,"src":"1963:328:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8335,"nodeType":"Block","src":"2534:405:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8291,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8281,"src":"2553:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2564:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2553:12:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54","id":8294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2567:44:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT\""},"value":"PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT\""}],"id":8290,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2545:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2545:67:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8296,"nodeType":"ExpressionStatement","src":"2545:67:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8298,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8283,"src":"2631:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2643:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2631:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8301,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8285,"src":"2648:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2648:14:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2631:31:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459","id":8305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2664:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""},"value":"PangolinLibrary: INSUFFICIENT_LIQUIDITY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""}],"id":8297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2623:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2623:83:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8307,"nodeType":"ExpressionStatement","src":"2623:83:24"},{"assignments":[8309],"declarations":[{"constant":false,"id":8309,"mutability":"mutable","name":"amountInWithFee","nameLocation":"2725:15:24","nodeType":"VariableDeclaration","scope":8335,"src":"2717:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2717:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8310,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8281,"src":"2743:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"393937","id":8311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2754:3:24","typeDescriptions":{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"},"value":"997"},"src":"2743:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2717:40:24"},{"assignments":[8315],"declarations":[{"constant":false,"id":8315,"mutability":"mutable","name":"numerator","nameLocation":"2776:9:24","nodeType":"VariableDeclaration","scope":8335,"src":"2768:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8314,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8319,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8316,"name":"amountInWithFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"2788:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8317,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8285,"src":"2806:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2788:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2768:48:24"},{"assignments":[8321],"declarations":[{"constant":false,"id":8321,"mutability":"mutable","name":"denominator","nameLocation":"2835:11:24","nodeType":"VariableDeclaration","scope":8335,"src":"2827:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8320,"name":"uint256","nodeType":"ElementaryTypeName","src":"2827:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8328,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8322,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8283,"src":"2850:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31303030","id":8323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2862:4:24","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"2850:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8325,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2849:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8326,"name":"amountInWithFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"2870:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2849:36:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2827:58:24"},{"expression":{"id":8333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8329,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8288,"src":"2896:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8330,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"2908:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8331,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8321,"src":"2920:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2908:23:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:35:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8334,"nodeType":"ExpressionStatement","src":"2896:35:24"}]},"id":8336,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountOut","nameLocation":"2422:12:24","nodeType":"FunctionDefinition","parameters":{"id":8286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8281,"mutability":"mutable","name":"amountIn","nameLocation":"2443:8:24","nodeType":"VariableDeclaration","scope":8336,"src":"2435:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8280,"name":"uint256","nodeType":"ElementaryTypeName","src":"2435:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8283,"mutability":"mutable","name":"reserveIn","nameLocation":"2461:9:24","nodeType":"VariableDeclaration","scope":8336,"src":"2453:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8282,"name":"uint256","nodeType":"ElementaryTypeName","src":"2453:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8285,"mutability":"mutable","name":"reserveOut","nameLocation":"2480:10:24","nodeType":"VariableDeclaration","scope":8336,"src":"2472:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2472:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2434:57:24"},"returnParameters":{"id":8289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8288,"mutability":"mutable","name":"amountOut","nameLocation":"2523:9:24","nodeType":"VariableDeclaration","scope":8336,"src":"2515:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8287,"name":"uint256","nodeType":"ElementaryTypeName","src":"2515:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2514:19:24"},"scope":8561,"src":"2413:526:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8391,"nodeType":"Block","src":"3180:355:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8348,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"3199:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3211:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3199:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":8351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3214:45:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":8347,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3191:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3191:69:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8353,"nodeType":"ExpressionStatement","src":"3191:69:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8355,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"3279:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3291:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3279:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8358,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8342,"src":"3296:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3309:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3296:14:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3279:31:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459","id":8362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3312:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""},"value":"PangolinLibrary: INSUFFICIENT_LIQUIDITY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""}],"id":8354,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3271:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3271:83:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8364,"nodeType":"ExpressionStatement","src":"3271:83:24"},{"assignments":[8366],"declarations":[{"constant":false,"id":8366,"mutability":"mutable","name":"numerator","nameLocation":"3373:9:24","nodeType":"VariableDeclaration","scope":8391,"src":"3365:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8365,"name":"uint256","nodeType":"ElementaryTypeName","src":"3365:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8372,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8367,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"3385:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8368,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"3397:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3385:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31303030","id":8370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3409:4:24","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"3385:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3365:48:24"},{"assignments":[8374],"declarations":[{"constant":false,"id":8374,"mutability":"mutable","name":"denominator","nameLocation":"3432:11:24","nodeType":"VariableDeclaration","scope":8391,"src":"3424:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8373,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8381,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8375,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8342,"src":"3447:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8376,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"3460:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3447:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8378,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3446:24:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"393937","id":8379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3473:3:24","typeDescriptions":{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"},"value":"997"},"src":"3446:30:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3424:52:24"},{"expression":{"id":8389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8382,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"3487:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8383,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8366,"src":"3499:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8384,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"3511:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3499:23:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3498:25:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3526:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3498:29:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3487:40:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8390,"nodeType":"ExpressionStatement","src":"3487:40:24"}]},"id":8392,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountIn","nameLocation":"3069:11:24","nodeType":"FunctionDefinition","parameters":{"id":8343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8338,"mutability":"mutable","name":"amountOut","nameLocation":"3089:9:24","nodeType":"VariableDeclaration","scope":8392,"src":"3081:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8337,"name":"uint256","nodeType":"ElementaryTypeName","src":"3081:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8340,"mutability":"mutable","name":"reserveIn","nameLocation":"3108:9:24","nodeType":"VariableDeclaration","scope":8392,"src":"3100:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8339,"name":"uint256","nodeType":"ElementaryTypeName","src":"3100:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8342,"mutability":"mutable","name":"reserveOut","nameLocation":"3127:10:24","nodeType":"VariableDeclaration","scope":8392,"src":"3119:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8341,"name":"uint256","nodeType":"ElementaryTypeName","src":"3119:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3080:58:24"},"returnParameters":{"id":8346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8345,"mutability":"mutable","name":"amountIn","nameLocation":"3170:8:24","nodeType":"VariableDeclaration","scope":8392,"src":"3162:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8344,"name":"uint256","nodeType":"ElementaryTypeName","src":"3162:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3161:18:24"},"scope":8561,"src":"3060:475:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8473,"nodeType":"Block","src":"3744:451:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8406,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"3763:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3763:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"32","id":8408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3778:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3763:16:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e56414c49445f50415448","id":8410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3781:31:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""},"value":"PangolinLibrary: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""}],"id":8405,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3755:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3755:58:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8412,"nodeType":"ExpressionStatement","src":"3755:58:24"},{"id":8472,"nodeType":"UncheckedBlock","src":"3824:364:24","statements":[{"expression":{"id":8420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8413,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"3849:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":8417,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"3870:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3870:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3859:10:24","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":8414,"name":"uint","nodeType":"ElementaryTypeName","src":"3863:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8415,"nodeType":"ArrayTypeName","src":"3863:6:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":8419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3859:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"3849:33:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8421,"nodeType":"ExpressionStatement","src":"3849:33:24"},{"expression":{"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8422,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"3897:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8424,"indexExpression":{"hexValue":"30","id":8423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3905:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3897:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8425,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"3910:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3897:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8427,"nodeType":"ExpressionStatement","src":"3897:21:24"},{"body":{"id":8470,"nodeType":"Block","src":"3975:202:24","statements":[{"assignments":[8441,8443],"declarations":[{"constant":false,"id":8441,"mutability":"mutable","name":"reserveIn","nameLocation":"4003:9:24","nodeType":"VariableDeclaration","scope":8470,"src":"3995:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8440,"name":"uint256","nodeType":"ElementaryTypeName","src":"3995:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8443,"mutability":"mutable","name":"reserveOut","nameLocation":"4022:10:24","nodeType":"VariableDeclaration","scope":8470,"src":"4014:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8442,"name":"uint256","nodeType":"ElementaryTypeName","src":"4014:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8455,"initialValue":{"arguments":[{"id":8445,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"4048:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8446,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"4057:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8448,"indexExpression":{"id":8447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"4062:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4057:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8449,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"4066:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8453,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8450,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"4071:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4075:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4071:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4066:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8444,"name":"getReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8241,"src":"4036:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,address) view returns (uint256,uint256)"}},"id":8454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4036:42:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3994:84:24"},{"expression":{"id":8468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8456,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"4097:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8460,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"4105:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4109:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4105:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4097:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":8462,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"4127:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8464,"indexExpression":{"id":8463,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"4135:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4127:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8465,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8441,"src":"4139:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8466,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"4150:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8461,"name":"getAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8336,"src":"4114:12:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4114:47:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4097:64:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8469,"nodeType":"ExpressionStatement","src":"4097:64:24"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"3949:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8432,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"3953:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3953:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3967:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3953:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3949:19:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8471,"initializationExpression":{"assignments":[8429],"declarations":[{"constant":false,"id":8429,"mutability":"mutable","name":"i","nameLocation":"3946:1:24","nodeType":"VariableDeclaration","scope":8471,"src":"3938:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8428,"name":"uint256","nodeType":"ElementaryTypeName","src":"3938:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8430,"nodeType":"VariableDeclarationStatement","src":"3938:9:24"},"loopExpression":{"expression":{"id":8438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3970:3:24","subExpression":{"id":8437,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"3972:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8439,"nodeType":"ExpressionStatement","src":"3970:3:24"},"nodeType":"ForStatement","src":"3933:244:24"}]}]},"id":8474,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsOut","nameLocation":"3626:13:24","nodeType":"FunctionDefinition","parameters":{"id":8400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8394,"mutability":"mutable","name":"factory","nameLocation":"3648:7:24","nodeType":"VariableDeclaration","scope":8474,"src":"3640:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8393,"name":"address","nodeType":"ElementaryTypeName","src":"3640:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8396,"mutability":"mutable","name":"amountIn","nameLocation":"3665:8:24","nodeType":"VariableDeclaration","scope":8474,"src":"3657:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8395,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8399,"mutability":"mutable","name":"path","nameLocation":"3692:4:24","nodeType":"VariableDeclaration","scope":8474,"src":"3675:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8397,"name":"address","nodeType":"ElementaryTypeName","src":"3675:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8398,"nodeType":"ArrayTypeName","src":"3675:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3639:58:24"},"returnParameters":{"id":8404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8403,"mutability":"mutable","name":"amounts","nameLocation":"3735:7:24","nodeType":"VariableDeclaration","scope":8474,"src":"3721:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8401,"name":"uint","nodeType":"ElementaryTypeName","src":"3721:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8402,"nodeType":"ArrayTypeName","src":"3721:6:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3720:23:24"},"scope":8561,"src":"3617:578:24","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8559,"nodeType":"Block","src":"4403:472:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8488,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"4422:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4422:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"32","id":8490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4437:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4422:16:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e676f6c696e4c6962726172793a20494e56414c49445f50415448","id":8492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4440:31:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""},"value":"PangolinLibrary: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""}],"id":8487,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4414:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4414:58:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8494,"nodeType":"ExpressionStatement","src":"4414:58:24"},{"id":8558,"nodeType":"UncheckedBlock","src":"4483:385:24","statements":[{"expression":{"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8495,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"4508:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":8499,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"4529:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4529:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4518:10:24","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":8496,"name":"uint","nodeType":"ElementaryTypeName","src":"4522:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8497,"nodeType":"ArrayTypeName","src":"4522:6:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":8501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4518:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4508:33:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8503,"nodeType":"ExpressionStatement","src":"4508:33:24"},{"expression":{"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8504,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"4556:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8509,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8505,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"4564:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4564:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4581:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4564:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4556:27:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8510,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8478,"src":"4586:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4556:39:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8512,"nodeType":"ExpressionStatement","src":"4556:39:24"},{"body":{"id":8556,"nodeType":"Block","src":"4656:201:24","statements":[{"assignments":[8527,8529],"declarations":[{"constant":false,"id":8527,"mutability":"mutable","name":"reserveIn","nameLocation":"4684:9:24","nodeType":"VariableDeclaration","scope":8556,"src":"4676:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8526,"name":"uint256","nodeType":"ElementaryTypeName","src":"4676:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8529,"mutability":"mutable","name":"reserveOut","nameLocation":"4703:10:24","nodeType":"VariableDeclaration","scope":8556,"src":"4695:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8528,"name":"uint256","nodeType":"ElementaryTypeName","src":"4695:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8541,"initialValue":{"arguments":[{"id":8531,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8476,"src":"4729:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8532,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"4738:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8536,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8533,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"4743:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4747:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4743:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4738:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8537,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"4751:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8539,"indexExpression":{"id":8538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"4756:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4751:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8530,"name":"getReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8241,"src":"4717:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,address) view returns (uint256,uint256)"}},"id":8540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4717:42:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4675:84:24"},{"expression":{"id":8554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8542,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"4778:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8546,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8543,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"4786:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4790:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4786:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4778:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":8548,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"4807:7:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8550,"indexExpression":{"id":8549,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"4815:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4807:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8551,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"4819:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8552,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8529,"src":"4830:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8547,"name":"getAmountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"4795:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4795:46:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4778:63:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8555,"nodeType":"ExpressionStatement","src":"4778:63:24"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"4644:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4648:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4644:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8557,"initializationExpression":{"assignments":[8514],"declarations":[{"constant":false,"id":8514,"mutability":"mutable","name":"i","nameLocation":"4623:1:24","nodeType":"VariableDeclaration","scope":8557,"src":"4615:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8513,"name":"uint256","nodeType":"ElementaryTypeName","src":"4615:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8519,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8515,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"4627:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4627:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4641:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4627:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4615:27:24"},"loopExpression":{"expression":{"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"4651:3:24","subExpression":{"id":8523,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"4653:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8525,"nodeType":"ExpressionStatement","src":"4651:3:24"},"nodeType":"ForStatement","src":"4610:247:24"}]}]},"id":8560,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsIn","nameLocation":"4285:12:24","nodeType":"FunctionDefinition","parameters":{"id":8482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8476,"mutability":"mutable","name":"factory","nameLocation":"4306:7:24","nodeType":"VariableDeclaration","scope":8560,"src":"4298:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8475,"name":"address","nodeType":"ElementaryTypeName","src":"4298:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8478,"mutability":"mutable","name":"amountOut","nameLocation":"4323:9:24","nodeType":"VariableDeclaration","scope":8560,"src":"4315:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8477,"name":"uint256","nodeType":"ElementaryTypeName","src":"4315:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8481,"mutability":"mutable","name":"path","nameLocation":"4351:4:24","nodeType":"VariableDeclaration","scope":8560,"src":"4334:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8479,"name":"address","nodeType":"ElementaryTypeName","src":"4334:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8480,"nodeType":"ArrayTypeName","src":"4334:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4297:59:24"},"returnParameters":{"id":8486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8485,"mutability":"mutable","name":"amounts","nameLocation":"4394:7:24","nodeType":"VariableDeclaration","scope":8560,"src":"4380:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8483,"name":"uint","nodeType":"ElementaryTypeName","src":"4380:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8484,"nodeType":"ArrayTypeName","src":"4380:6:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4379:23:24"},"scope":8561,"src":"4276:599:24","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8562,"src":"348:4530:24","usedErrors":[]}],"src":"0:4880:24"},"id":24}},"contracts":{"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220af0ecc1eb63bf1dc52d26e0036a4b06e2a2f513010f8f900e75705e0fd37d2ae64736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0xE 0xCC 0x1E 0xB6 EXTCODESIZE CALL 0xDC MSTORE 0xD2 PUSH15 0x36A4B06E2A2F513010F8F900E757 SDIV 0xE0 REVERT CALLDATACOPY 0xD2 0xAE PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"707:3748:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;707:3748:6;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220af0ecc1eb63bf1dc52d26e0036a4b06e2a2f513010f8f900e75705e0fd37d2ae64736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0xE 0xCC 0x1E 0xB6 EXTCODESIZE CALL 0xDC MSTORE 0xD2 PUSH15 0x36A4B06E2A2F513010F8F900E757 SDIV 0xE0 REVERT CALLDATACOPY 0xD2 0xAE PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"707:3748:6:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122018f389ba182aa341baf055646bd98fab8b7b4384bc9f2c217378ff97209fe16964736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 XOR RETURN DUP10 0xBA XOR 0x2A LOG3 COINBASE 0xBA CREATE SSTORE PUSH5 0x6BD98FAB8B PUSH28 0x4384BC9F2C217378FF97209FE16964736F6C634300080D0033000000 ","sourceMap":"194:8964:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8964:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122018f389ba182aa341baf055646bd98fab8b7b4384bc9f2c217378ff97209fe16964736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 XOR RETURN DUP10 0xBA XOR 0x2A LOG3 COINBASE 0xBA CREATE SSTORE PUSH5 0x6BD98FAB8B PUSH28 0x4384BC9F2C217378FF97209FE16964736F6C634300080D0033000000 ","sourceMap":"194:8964:7:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202a95783a0bcd8b6b9b99db964e4caa3ec6e60e2cf7b9b47e026fc69a98d8be0d64736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A SWAP6 PUSH25 0x3A0BCD8B6B9B99DB964E4CAA3EC6E60E2CF7B9B47E026FC69A SWAP9 0xD8 0xBE 0xD PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"188:2065:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;188:2065:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202a95783a0bcd8b6b9b99db964e4caa3ec6e60e2cf7b9b47e026fc69a98d8be0d64736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A SWAP6 PUSH25 0x3A0BCD8B6B9B99DB964E4CAA3EC6E60E2CF7B9B47E026FC69A SWAP9 0xD8 0xBE 0xD PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"188:2065:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220561f847191ea9a99ca3169dc5e48f852f0e13a033bae4f4b2a82a42e2bb8366664736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP 0x1F DUP5 PUSH18 0x91EA9A99CA3169DC5E48F852F0E13A033BAE 0x4F 0x4B 0x2A DUP3 LOG4 0x2E 0x2B 0xB8 CALLDATASIZE PUSH7 0x64736F6C634300 ADDMOD 0xD STOP CALLER ","sourceMap":"202:12302:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12302:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220561f847191ea9a99ca3169dc5e48f852f0e13a033bae4f4b2a82a42e2bb8366664736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP 0x1F DUP5 PUSH18 0x91EA9A99CA3169DC5E48F852F0E13A033BAE 0x4F 0x4B 0x2A DUP3 LOG4 0x2E 0x2B 0xB8 CALLDATASIZE PUSH7 0x64736F6C634300 ADDMOD 0xD STOP CALLER ","sourceMap":"202:12302:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b845c2f29e65f2135dfa1fad97b249109e9fa7596179df51e6839b67990633764736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL DUP5 0x5C 0x2F 0x29 0xE6 0x5F 0x21 CALLDATALOAD 0xDF LOG1 STATICCALL 0xD9 PUSH28 0x249109E9FA7596179DF51E6839B67990633764736F6C634300080D00 CALLER ","sourceMap":"1321:11630:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1321:11630:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b845c2f29e65f2135dfa1fad97b249109e9fa7596179df51e6839b67990633764736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL DUP5 0x5C 0x2F 0x29 0xE6 0x5F 0x21 CALLDATALOAD 0xDF LOG1 STATICCALL 0xD9 PUSH28 0x249109E9FA7596179DF51E6839B67990633764736F6C634300080D00 CALLER ","sourceMap":"1321:11630:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableSet for EnumerableSet.AddressSet;     // Declare a set state variable     EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]}},\"version\":1}"}},"contracts/Claimable.sol":{"Claimable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"PendingOwnerSet","type":"event"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"claimOwnership()":"4e71e0c8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"PendingOwnerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Claimable.sol\":\"Claimable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/Claimable.sol\":{\"keccak256\":\"0x069b9d3847d68112b118cf523e07dc1df889faad3e15d6dc2e7173d44ed29935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be5a1360f3b0b2ac79898c9586bb4f4eb91b49c7c62d9fd19fd9c5882a9cc830\",\"dweb:/ipfs/QmdtFZW8P2uKdAVBgAM6yxxWqWETUFHMdfUCSbKKhkXfqk\"]}},\"version\":1}"}},"contracts/allocation-vester/AllocationVester.sol":{"AllocationVester":{"abi":[{"inputs":[{"internalType":"address","name":"distributionToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"allocation","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"AllocationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMinDuration","type":"uint256"}],"name":"MinDurationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"PendingOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"members","outputs":[{"internalType":"uint96","name":"reserve","type":"uint96"},{"internalType":"uint96","name":"stash","type":"uint96"},{"internalType":"uint64","name":"lastUpdate","type":"uint64"},{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"pendingHarvest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"allocations","type":"uint256[]"},{"internalType":"uint256[]","name":"durations","type":"uint256[]"}],"name":"setAllocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinDuration","type":"uint256"}],"name":"setMinDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unreserved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3065":{"entryPoint":null,"id":3065,"parameterSlots":0,"returnSlots":0},"@_3226":{"entryPoint":null,"id":3226,"parameterSlots":1,"returnSlots":0},"@_412":{"entryPoint":null,"id":412,"parameterSlots":0,"returnSlots":0},"@_msgSender_1346":{"entryPoint":null,"id":1346,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_500":{"entryPoint":171,"id":500,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":251,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:647:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:25","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:25"},"nodeType":"YulFunctionCall","src":"143:12:25"},"nodeType":"YulExpressionStatement","src":"143:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:25"},"nodeType":"YulFunctionCall","src":"112:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:25"},"nodeType":"YulFunctionCall","src":"108:32:25"},"nodeType":"YulIf","src":"105:52:25"},{"nodeType":"YulVariableDeclaration","src":"166:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:25"},"nodeType":"YulFunctionCall","src":"179:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:25"},"nodeType":"YulFunctionCall","src":"260:12:25"},"nodeType":"YulExpressionStatement","src":"260:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:25"},"nodeType":"YulFunctionCall","src":"224:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:25"},"nodeType":"YulFunctionCall","src":"214:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:25"},"nodeType":"YulFunctionCall","src":"207:50:25"},"nodeType":"YulIf","src":"204:70:25"},{"nodeType":"YulAssignment","src":"283:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:25","type":""}],"src":"14:290:25"},{"body":{"nodeType":"YulBlock","src":"483:162:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:25"},"nodeType":"YulFunctionCall","src":"493:21:25"},"nodeType":"YulExpressionStatement","src":"493:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:25"},"nodeType":"YulFunctionCall","src":"530:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:25","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:25"},"nodeType":"YulFunctionCall","src":"523:30:25"},"nodeType":"YulExpressionStatement","src":"523:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:25"},"nodeType":"YulFunctionCall","src":"569:18:25"},{"hexValue":"7a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"589:14:25","type":"","value":"zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:25"},"nodeType":"YulFunctionCall","src":"562:42:25"},"nodeType":"YulExpressionStatement","src":"562:42:25"},{"nodeType":"YulAssignment","src":"613:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"621:3:25"},"nodeType":"YulFunctionCall","src":"621:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"613:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:25","type":""}],"src":"309:336:25"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"zero address\")\n        tail := add(headStart, 96)\n    }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040526212750060065534801561001757600080fd5b5060405161185c38038061185c833981016040819052610036916100fb565b61003f336100ab565b600180546001600160a01b031916331790556001600160a01b03811661009a5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b604482015260640160405180910390fd5b6001600160a01b031660805261012b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561010d57600080fd5b81516001600160a01b038116811461012457600080fd5b9392505050565b6080516116fa61016260003960008181610299015281816108b1015281816109eb01528181610b820152610d3b01526116fa6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063cd3293de11610066578063cd3293de14610267578063e30c397814610270578063f2fde38b14610281578063fc0c546a1461029457600080fd5b8063715018a61461021d5780638da5cb5b146102255780639eab52531461024a578063c6728c6c1461025f57600080fd5b80632e1a7d4d116100d35780632e1a7d4d146101f15780634641257d146102045780634e71e0c81461020c578063567157611461021457600080fd5b806307d41e791461010557806308ae4b0c1461012b5780631674bade146101c9578063182a89e6146101de575b600080fd5b61011861011336600461134e565b6102bb565b6040519081526020015b60405180910390f35b61018a61013936600461134e565b600260205260009081526040902080546001909101546bffffffffffffffffffffffff808316926c01000000000000000000000000810490911691600160c01b90910467ffffffffffffffff169084565b604080516bffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff909116918301919091526060820152608001610122565b6101dc6101d7366004611377565b610398565b005b6101dc6101ec3660046113dc565b610431565b6101dc6101ff366004611377565b61097f565b6101dc610a42565b6101dc610be2565b61011860065481565b6101dc610c5c565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610122565b610252610ced565b6040516101229190611476565b610118610cfe565b61011860055481565b6001546001600160a01b0316610232565b6101dc61028f36600461134e565b610db0565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600260209081526040808320815160808101835281546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041694820194909452600160c01b90930467ffffffffffffffff169183018290526001015460608301819052839161033990426114d9565b61034391906114f0565b82602001516bffffffffffffffffffffffff16610360919061150f565b82519091506bffffffffffffffffffffffff16811161037f5780610390565b81516bffffffffffffffffffffffff165b949350505050565b6103a0610e1a565b806000036103f55760405162461bcd60e51b815260206004820152600d60248201527f7a65726f206475726174696f6e0000000000000000000000000000000000000060448201526064015b60405180910390fd5b60068190556040518181527f850b0d4898947ead6a23251622e8c2ea46d217fa5ff2c1f06638f92e91880bfe906020015b60405180910390a150565b610439610e1a565b60055460065486919060008390036104935760405162461bcd60e51b815260206004820152600b60248201527f656d70747920617272617900000000000000000000000000000000000000000060448201526064016103ec565b82861480156104a157508284145b6104ed5760405162461bcd60e51b815260206004820152601560248201527f76617279696e672d6c656e67746820617272617973000000000000000000000060448201526064016103ec565b60005b838110156108805760008a8a8381811061050c5761050c611527565b9050602002016020810190610521919061134e565b9050600089898481811061053757610537611527565b905060200201359050600088888581811061055457610554611527565b60200291909101359150506001600160a01b0383166105b55760405162461bcd60e51b815260206004820152600d60248201527f62616420726563697069656e740000000000000000000000000000000000000060448201526064016103ec565b6001600160a01b038316600090815260026020526040902080546bffffffffffffffffffffffff16801561065c5760006105ee866102bb565b83547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff166c010000000000000000000000006bffffffffffffffffffffffff831602178455905061063f818361153d565b610657906bffffffffffffffffffffffff168a6114d9565b985090505b83156107cd57868310156106b25760405162461bcd60e51b815260206004820152601660248201527f73686f72742076657374696e67206475726174696f6e0000000000000000000060448201526064016103ec565b6bffffffffffffffffffffffff84111561070e5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420616c6c6f636174696f6e000000000000000000000000000060448201526064016103ec565b610718848961150f565b97506000610726848661156a565b9050806000036107785760405162461bcd60e51b815260206004820152601660248201527f72617465207472756e636174656420746f207a65726f0000000000000000000060448201526064016103ec565b610782858361158c565b60018401829055835477ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b4267ffffffffffffffff160217845591506107c6600387610e74565b50506107f0565b806bffffffffffffffffffffffff166000036107f0576107ee600386610e92565b505b81547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff821617825560408051858152602081018590526001600160a01b038716917f159e9e56dec3d6bf3e3c20510a7b005a0b9f89bd991ff9eb0c4f387b1fd3682d910160405180910390a2505050505080610879906115bc565b90506104f0565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092491906115d6565b10156109725760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b5060055550505050505050565b610987610e1a565b80610990610cfe565b10156109de5760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b610a126001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b6040518181527f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b5690602001610426565b33600081815260026020526040812091610a5b906102bb565b905080600003610aad5760405162461bcd60e51b815260206004820152601260248201527f6e6f2070656e64696e672068617276657374000000000000000000000000000060448201526064016103ec565b81546bffffffffffffffffffffffff908116600160c01b4267ffffffffffffffff16027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff81168217855583928592600092610b0c92869291161761153d565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508060056000828254610b4c91906114d9565b909155505081546bffffffffffffffffffffffff16600003610b7557610b73600333610e92565b505b610ba96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b60405181815233907f121c5042302bae5fc561fbc64368f297ca60a880878e1e3a7f7e9380377260bf9060200160405180910390a25050565b6001546001600160a01b0316336001600160a01b031614610c455760405162461bcd60e51b815260206004820152601c60248201527f436c61696d61626c653a206e6f742070656e64696e67206f776e65720000000060448201526064016103ec565b600154610c5a906001600160a01b0316610f2c565b565b610c64610e1a565b6001546001600160a01b031615610ce35760405162461bcd60e51b815260206004820152602960248201527f436c61696d61626c653a2070656e64696e67206f776e6572206e6f74207a657260448201527f6f2061646472657373000000000000000000000000000000000000000000000060648201526084016103ec565b610c5a6000610f2c565b6060610cf96003610f94565b905090565b6005546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906115d6565b610cf991906114d9565b610db8610e1a565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f68f49b346b94582a8b5f9d10e3fe3365318fe8f191ff8dce7c59c6cad06b02f590600090a250565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ec565b6000610e89836001600160a01b038416610fa8565b90505b92915050565b6000610e89836001600160a01b038416610ff7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f279084906110ea565b505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606000610fa1836111cf565b9392505050565b6000818152600183016020526040812054610fef57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e8c565b506000610e8c565b600081815260018301602052604081205480156110e057600061101b6001836114d9565b855490915060009061102f906001906114d9565b905081811461109457600086600001828154811061104f5761104f611527565b906000526020600020015490508087600001848154811061107257611072611527565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806110a5576110a56115ef565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610e8c565b6000915050610e8c565b600061113f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661122b9092919063ffffffff16565b805190915015610f27578080602001905181019061115d9190611605565b610f275760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103ec565b60608160000180548060200260200160405190810160405280929190818152602001828054801561121f57602002820191906000526020600020905b81548152602001906001019080831161120b575b50505050509050919050565b6060610390848460008585600080866001600160a01b031685876040516112529190611657565b60006040518083038185875af1925050503d806000811461128f576040519150601f19603f3d011682016040523d82523d6000602084013e611294565b606091505b50915091506112a5878383876112b0565b979650505050505050565b6060831561131f578251600003611318576001600160a01b0385163b6113185760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ec565b5081610390565b61039083838151156113345781518083602001fd5b8060405162461bcd60e51b81526004016103ec9190611673565b60006020828403121561136057600080fd5b81356001600160a01b0381168114610fa157600080fd5b60006020828403121561138957600080fd5b5035919050565b60008083601f8401126113a257600080fd5b50813567ffffffffffffffff8111156113ba57600080fd5b6020830191508360208260051b85010111156113d557600080fd5b9250929050565b600080600080600080606087890312156113f557600080fd5b863567ffffffffffffffff8082111561140d57600080fd5b6114198a838b01611390565b9098509650602089013591508082111561143257600080fd5b61143e8a838b01611390565b9096509450604089013591508082111561145757600080fd5b5061146489828a01611390565b979a9699509497509295939492505050565b6020808252825182820181905260009190848201906040850190845b818110156114b75783516001600160a01b031683529284019291840191600101611492565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156114eb576114eb6114c3565b500390565b600081600019048311821515161561150a5761150a6114c3565b500290565b60008219821115611522576115226114c3565b500190565b634e487b7160e01b600052603260045260246000fd5b60006bffffffffffffffffffffffff83811690831681811015611562576115626114c3565b039392505050565b60008261158757634e487b7160e01b600052601260045260246000fd5b500490565b60006bffffffffffffffffffffffff8083168185168083038211156115b3576115b36114c3565b01949350505050565b600060001982036115cf576115cf6114c3565b5060010190565b6000602082840312156115e857600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561161757600080fd5b81518015158114610fa157600080fd5b60005b8381101561164257818101518382015260200161162a565b83811115611651576000848401525b50505050565b60008251611669818460208701611627565b9190910192915050565b6020815260008251806020840152611692816040850160208701611627565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212207e56a8be86ed6b4d42ced575f9ab09959db5b146615705c97902be777a39503e64736f6c634300080d0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH3 0x127500 PUSH1 0x6 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x185C CODESIZE SUB DUP1 PUSH2 0x185C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x36 SWAP2 PUSH2 0xFB JUMP JUMPDEST PUSH2 0x3F CALLER PUSH2 0xAB JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x7A65726F2061646472657373 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x16FA PUSH2 0x162 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x299 ADD MSTORE DUP2 DUP2 PUSH2 0x8B1 ADD MSTORE DUP2 DUP2 PUSH2 0x9EB ADD MSTORE DUP2 DUP2 PUSH2 0xB82 ADD MSTORE PUSH2 0xD3B ADD MSTORE PUSH2 0x16FA PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xCD3293DE GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xCD3293DE EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x9EAB5253 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xC6728C6C EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E1A7D4D GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x4641257D EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x4E71E0C8 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x56715761 EQ PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D41E79 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8AE4B0C EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x1674BADE EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x182A89E6 EQ PUSH2 0x1DE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x134E JUMP JUMPDEST PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18A PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x134E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND SWAP3 PUSH13 0x1000000000000000000000000 DUP2 DIV SWAP1 SWAP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP6 DUP7 AND DUP2 MSTORE SWAP5 SWAP1 SWAP4 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x122 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1377 JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DC PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0x13DC JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x1377 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0xA42 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0xBE2 JUMP JUMPDEST PUSH2 0x118 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0xC5C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x122 JUMP JUMPDEST PUSH2 0x252 PUSH2 0xCED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x118 PUSH2 0xCFE JUMP JUMPDEST PUSH2 0x118 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x232 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x134E JUMP JUMPDEST PUSH2 0xDB0 JUMP JUMPDEST PUSH2 0x232 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH13 0x1000000000000000000000000 DUP3 DIV AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP4 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 ADD SLOAD PUSH1 0x60 DUP4 ADD DUP2 SWAP1 MSTORE DUP4 SWAP2 PUSH2 0x339 SWAP1 TIMESTAMP PUSH2 0x14D9 JUMP JUMPDEST PUSH2 0x343 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x150F JUMP JUMPDEST DUP3 MLOAD SWAP1 SWAP2 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 GT PUSH2 0x37F JUMPI DUP1 PUSH2 0x390 JUMP JUMPDEST DUP2 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3A0 PUSH2 0xE1A JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x3F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7A65726F206475726174696F6E00000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x850B0D4898947EAD6A23251622E8C2EA46D217FA5FF2C1F06638F92E91880BFE SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x439 PUSH2 0xE1A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD DUP7 SWAP2 SWAP1 PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0x493 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x656D707479206172726179000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST DUP3 DUP7 EQ DUP1 ISZERO PUSH2 0x4A1 JUMPI POP DUP3 DUP5 EQ JUMPDEST PUSH2 0x4ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76617279696E672D6C656E677468206172726179730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x880 JUMPI PUSH1 0x0 DUP11 DUP11 DUP4 DUP2 DUP2 LT PUSH2 0x50C JUMPI PUSH2 0x50C PUSH2 0x1527 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x521 SWAP2 SWAP1 PUSH2 0x134E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP10 DUP5 DUP2 DUP2 LT PUSH2 0x537 JUMPI PUSH2 0x537 PUSH2 0x1527 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP PUSH1 0x0 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x554 JUMPI PUSH2 0x554 PUSH2 0x1527 JUMP JUMPDEST PUSH1 0x20 MUL SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x62616420726563697069656E7400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 PUSH2 0x5EE DUP7 PUSH2 0x2BB JUMP JUMPDEST DUP4 SLOAD PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND MUL OR DUP5 SSTORE SWAP1 POP PUSH2 0x63F DUP2 DUP4 PUSH2 0x153D JUMP JUMPDEST PUSH2 0x657 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH2 0x14D9 JUMP JUMPDEST SWAP9 POP SWAP1 POP JUMPDEST DUP4 ISZERO PUSH2 0x7CD JUMPI DUP7 DUP4 LT ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73686F72742076657374696E67206475726174696F6E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x70E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616C6C6F636174696F6E0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x718 DUP5 DUP10 PUSH2 0x150F JUMP JUMPDEST SWAP8 POP PUSH1 0x0 PUSH2 0x726 DUP5 DUP7 PUSH2 0x156A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x72617465207472756E636174656420746F207A65726F00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x782 DUP6 DUP4 PUSH2 0x158C JUMP JUMPDEST PUSH1 0x1 DUP5 ADD DUP3 SWAP1 SSTORE DUP4 SLOAD PUSH24 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xC0 SHL TIMESTAMP PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR DUP5 SSTORE SWAP2 POP PUSH2 0x7C6 PUSH1 0x3 DUP8 PUSH2 0xE74 JUMP JUMPDEST POP POP PUSH2 0x7F0 JUMP JUMPDEST DUP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x7F0 JUMPI PUSH2 0x7EE PUSH1 0x3 DUP7 PUSH2 0xE92 JUMP JUMPDEST POP JUMPDEST DUP2 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND OR DUP3 SSTORE PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH32 0x159E9E56DEC3D6BF3E3C20510A7B005A0B9F89BD991FF9EB0C4F387B1FD3682D SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP DUP1 PUSH2 0x879 SWAP1 PUSH2 0x15BC JUMP JUMPDEST SWAP1 POP PUSH2 0x4F0 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x900 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x924 SWAP2 SWAP1 PUSH2 0x15D6 JUMP JUMPDEST LT ISZERO PUSH2 0x972 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6C6F772062616C616E6365000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST POP PUSH1 0x5 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x987 PUSH2 0xE1A JUMP JUMPDEST DUP1 PUSH2 0x990 PUSH2 0xCFE JUMP JUMPDEST LT ISZERO PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6C6F772062616C616E6365000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0xA12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP4 PUSH2 0xEA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x430648DE173157E069201C943ADB2D4E340E7CF5B27B1B09C9CB852F03D63B56 SWAP1 PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 PUSH2 0xA5B SWAP1 PUSH2 0x2BB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0xAAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F2070656E64696E6720686172766573740000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xC0 SHL TIMESTAMP PUSH8 0xFFFFFFFFFFFFFFFF AND MUL PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP3 OR DUP6 SSTORE DUP4 SWAP3 DUP6 SWAP3 PUSH1 0x0 SWAP3 PUSH2 0xB0C SWAP3 DUP7 SWAP3 SWAP2 AND OR PUSH2 0x153D JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x5 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB4C SWAP2 SWAP1 PUSH2 0x14D9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0xB75 JUMPI PUSH2 0xB73 PUSH1 0x3 CALLER PUSH2 0xE92 JUMP JUMPDEST POP JUMPDEST PUSH2 0xBA9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP4 PUSH2 0xEA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE CALLER SWAP1 PUSH32 0x121C5042302BAE5FC561FBC64368F297CA60A880878E1E3A7F7E9380377260BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436C61696D61626C653A206E6F742070656E64696E67206F776E657200000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xC5A SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF2C JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xC64 PUSH2 0xE1A JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xCE3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436C61696D61626C653A2070656E64696E67206F776E6572206E6F74207A6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F20616464726573730000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0xC5A PUSH1 0x0 PUSH2 0xF2C JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF9 PUSH1 0x3 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDA6 SWAP2 SWAP1 PUSH2 0x15D6 JUMP JUMPDEST PUSH2 0xCF9 SWAP2 SWAP1 PUSH2 0x14D9 JUMP JUMPDEST PUSH2 0xDB8 PUSH2 0xE1A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x68F49B346B94582A8B5F9D10E3FE3365318FE8F191FF8DCE7C59C6CAD06B02F5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE89 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xFA8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE89 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xFF7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0xF27 SWAP1 DUP5 SWAP1 PUSH2 0x10EA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xFA1 DUP4 PUSH2 0x11CF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xFEF JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xE8C JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xE8C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x10E0 JUMPI PUSH1 0x0 PUSH2 0x101B PUSH1 0x1 DUP4 PUSH2 0x14D9 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x102F SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x14D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1094 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x104F JUMPI PUSH2 0x104F PUSH2 0x1527 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1072 JUMPI PUSH2 0x1072 PUSH2 0x1527 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x10A5 JUMPI PUSH2 0x10A5 PUSH2 0x15EF JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xE8C JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xE8C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x113F DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x122B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0xF27 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x115D SWAP2 SWAP1 PUSH2 0x1605 JUMP JUMPDEST PUSH2 0xF27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x121F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x120B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x390 DUP5 DUP5 PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1252 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x128F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1294 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x12A5 DUP8 DUP4 DUP4 DUP8 PUSH2 0x12B0 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x131F JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x1318 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x1318 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST POP DUP2 PUSH2 0x390 JUMP JUMPDEST PUSH2 0x390 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x1334 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3EC SWAP2 SWAP1 PUSH2 0x1673 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x13A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x13D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x13F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x140D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1419 DUP11 DUP4 DUP12 ADD PUSH2 0x1390 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x143E DUP11 DUP4 DUP12 ADD PUSH2 0x1390 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1464 DUP10 DUP3 DUP11 ADD PUSH2 0x1390 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x14B7 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1492 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x14EB JUMPI PUSH2 0x14EB PUSH2 0x14C3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x150A JUMPI PUSH2 0x150A PUSH2 0x14C3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1522 JUMPI PUSH2 0x1522 PUSH2 0x14C3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x1562 JUMPI PUSH2 0x1562 PUSH2 0x14C3 JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1587 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x15B3 JUMPI PUSH2 0x15B3 PUSH2 0x14C3 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x15CF JUMPI PUSH2 0x15CF PUSH2 0x14C3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xFA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1642 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x162A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1651 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1669 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1627 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1692 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1627 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH31 0x56A8BE86ED6B4D42CED575F9AB09959DB5B146615705C97902BE777A39503E PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"456:10148:15:-:0;;;1650:7;1621:36;;3050:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:2;719:10:8;936:18:2;:32::i;:::-;285:13:14;:28;;-1:-1:-1;;;;;;285:28:14;719:10:8;285:28:14;;;-1:-1:-1;;;;;3162:31:15;;3154:56;;;;-1:-1:-1;;;3154:56:15;;511:2:25;3154:56:15;;;493:21:25;550:2;530:18;;;523:30;-1:-1:-1;;;569:18:25;;;562:42;621:18;;3154:56:15;;;;;;;;-1:-1:-1;;;;;3282:33:15;;;456:10148;;2433:187:2;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:2;;;-1:-1:-1;;;;;;2541:17:2;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:290:25:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:25;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:25:o;309:336::-;456:10148:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_add_2485":{"entryPoint":4008,"id":2485,"parameterSlots":2,"returnSlots":1},"@_callOptionalReturn_1003":{"entryPoint":4330,"id":1003,"parameterSlots":2,"returnSlots":0},"@_checkOwner_443":{"entryPoint":3610,"id":443,"parameterSlots":0,"returnSlots":0},"@_contains_2588":{"entryPoint":null,"id":2588,"parameterSlots":2,"returnSlots":1},"@_msgSender_1346":{"entryPoint":null,"id":1346,"parameterSlots":0,"returnSlots":1},"@_remove_2569":{"entryPoint":4087,"id":2569,"parameterSlots":2,"returnSlots":1},"@_revert_1333":{"entryPoint":null,"id":1333,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_500":{"entryPoint":3884,"id":500,"parameterSlots":1,"returnSlots":0},"@_values_2633":{"entryPoint":4559,"id":2633,"parameterSlots":1,"returnSlots":1},"@add_2785":{"entryPoint":3700,"id":2785,"parameterSlots":2,"returnSlots":1},"@claimOwnership_3081":{"entryPoint":3042,"id":3081,"parameterSlots":0,"returnSlots":0},"@functionCallWithValue_1158":{"entryPoint":null,"id":1158,"parameterSlots":4,"returnSlots":1},"@functionCall_1094":{"entryPoint":4651,"id":1094,"parameterSlots":3,"returnSlots":1},"@getMembers_3614":{"entryPoint":3309,"id":3614,"parameterSlots":0,"returnSlots":1},"@harvest_3309":{"entryPoint":2626,"id":3309,"parameterSlots":0,"returnSlots":0},"@isContract_1022":{"entryPoint":null,"id":1022,"parameterSlots":1,"returnSlots":1},"@members_3162":{"entryPoint":null,"id":3162,"parameterSlots":0,"returnSlots":0},"@minDuration_3177":{"entryPoint":null,"id":3177,"parameterSlots":0,"returnSlots":0},"@owner_429":{"entryPoint":null,"id":429,"parameterSlots":0,"returnSlots":1},"@pendingHarvest_3655":{"entryPoint":699,"id":3655,"parameterSlots":1,"returnSlots":1},"@pendingOwner_3130":{"entryPoint":null,"id":3130,"parameterSlots":0,"returnSlots":1},"@remove_2812":{"entryPoint":3730,"id":2812,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_3122":{"entryPoint":3164,"id":3122,"parameterSlots":0,"returnSlots":0},"@reserve_3173":{"entryPoint":null,"id":3173,"parameterSlots":0,"returnSlots":0},"@safeTransfer_755":{"entryPoint":3751,"id":755,"parameterSlots":3,"returnSlots":0},"@setAllocations_3578":{"entryPoint":1073,"id":3578,"parameterSlots":6,"returnSlots":0},"@setMinDuration_3602":{"entryPoint":920,"id":3602,"parameterSlots":1,"returnSlots":0},"@token_3170":{"entryPoint":null,"id":3170,"parameterSlots":0,"returnSlots":0},"@transferOwnership_3098":{"entryPoint":3504,"id":3098,"parameterSlots":1,"returnSlots":0},"@unreserved_3672":{"entryPoint":3326,"id":3672,"parameterSlots":0,"returnSlots":1},"@values_2911":{"entryPoint":3988,"id":2911,"parameterSlots":1,"returnSlots":1},"@verifyCallResultFromTarget_1289":{"entryPoint":4784,"id":1289,"parameterSlots":4,"returnSlots":1},"@withdraw_3338":{"entryPoint":2431,"id":3338,"parameterSlots":1,"returnSlots":0},"abi_decode_array_address_dyn_calldata":{"entryPoint":5008,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4942,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":5084,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4983,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":5590,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5719,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":5238,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20_$687__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5747,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_14ceb87ab7af812e92c4e3834f3009df06974b8f915e614b208227f229f7b205__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_454b82c3995abe0e17d215facdf0517a8bee51b5d963b4725d38a121058a9200__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4ad45a29af4d1a11fffff7cb7a07ebeb55a5b27ee49d3e4255f3e6f2fe8d4aa1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4d1e7dfd90f1a9f5ff7eb15697c8849def6789d3dd644f128b7a0451146bc601__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5a4cf96a83d0a38785b2b1a0589568d8f7d392fad654884d30a3f6c440683520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_91549934cd3ddb3b69848a33bb3e6f2f6c6e5aeb53ecdfce1296983a8e8f9ae3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d5d4526f829be465ccbde8596dd019082d9287da875164147f9d3b62eb798278__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d696d95254cfbddd7f9c4536fe32fc4aff9a76fa75ac9e194155d25390e9a490__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e4acb2f2dca5bce49f355e714f7431e47358d79e6463dc0451fed1877b7a6eb2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ecc0a3380755da3568d31401b31e8b3872e01c3836eb4b80fe4866793cf44c8e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint96_t_uint96_t_uint64_t_uint256__to_t_uint96_t_uint96_t_uint64_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5391,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint96":{"entryPoint":5516,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":5482,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5360,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5337,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint96":{"entryPoint":5437,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":5671,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":5564,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5315,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":5615,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":5415,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13259:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:239:25","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:25"},"nodeType":"YulFunctionCall","src":"132:12:25"},"nodeType":"YulExpressionStatement","src":"132:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:25"},"nodeType":"YulFunctionCall","src":"101:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:25"},"nodeType":"YulFunctionCall","src":"97:32:25"},"nodeType":"YulIf","src":"94:52:25"},{"nodeType":"YulVariableDeclaration","src":"155:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:25"},"nodeType":"YulFunctionCall","src":"168:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"277:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"286:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"289:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"279:6:25"},"nodeType":"YulFunctionCall","src":"279:12:25"},"nodeType":"YulExpressionStatement","src":"279:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"231:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:25"},"nodeType":"YulFunctionCall","src":"220:54:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:25"},"nodeType":"YulFunctionCall","src":"210:65:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:25"},"nodeType":"YulFunctionCall","src":"203:73:25"},"nodeType":"YulIf","src":"200:93:25"},{"nodeType":"YulAssignment","src":"302:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"312:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"302:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:25","type":""}],"src":"14:309:25"},{"body":{"nodeType":"YulBlock","src":"429:76:25","statements":[{"nodeType":"YulAssignment","src":"439:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"451:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"462:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"447:3:25"},"nodeType":"YulFunctionCall","src":"447:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"439:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"481:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"492:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"474:6:25"},"nodeType":"YulFunctionCall","src":"474:25:25"},"nodeType":"YulExpressionStatement","src":"474:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"398:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"409:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"420:4:25","type":""}],"src":"328:177:25"},{"body":{"nodeType":"YulBlock","src":"689:294:25","statements":[{"nodeType":"YulAssignment","src":"699:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"711:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"722:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"707:3:25"},"nodeType":"YulFunctionCall","src":"707:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"699:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"735:36:25","value":{"kind":"number","nodeType":"YulLiteral","src":"745:26:25","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"739:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"787:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"802:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"810:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"798:3:25"},"nodeType":"YulFunctionCall","src":"798:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"780:6:25"},"nodeType":"YulFunctionCall","src":"780:34:25"},"nodeType":"YulExpressionStatement","src":"780:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"845:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"830:3:25"},"nodeType":"YulFunctionCall","src":"830:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"862:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"823:6:25"},"nodeType":"YulFunctionCall","src":"823:43:25"},"nodeType":"YulExpressionStatement","src":"823:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"886:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"897:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"882:3:25"},"nodeType":"YulFunctionCall","src":"882:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"906:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"914:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"902:3:25"},"nodeType":"YulFunctionCall","src":"902:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"875:6:25"},"nodeType":"YulFunctionCall","src":"875:59:25"},"nodeType":"YulExpressionStatement","src":"875:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"954:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"965:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"950:3:25"},"nodeType":"YulFunctionCall","src":"950:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"970:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"943:6:25"},"nodeType":"YulFunctionCall","src":"943:34:25"},"nodeType":"YulExpressionStatement","src":"943:34:25"}]},"name":"abi_encode_tuple_t_uint96_t_uint96_t_uint64_t_uint256__to_t_uint96_t_uint96_t_uint64_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"634:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"645:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"653:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"661:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"669:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"680:4:25","type":""}],"src":"510:473:25"},{"body":{"nodeType":"YulBlock","src":"1058:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"1104:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1113:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1116:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1106:6:25"},"nodeType":"YulFunctionCall","src":"1106:12:25"},"nodeType":"YulExpressionStatement","src":"1106:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1079:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1088:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1075:3:25"},"nodeType":"YulFunctionCall","src":"1075:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1071:3:25"},"nodeType":"YulFunctionCall","src":"1071:32:25"},"nodeType":"YulIf","src":"1068:52:25"},{"nodeType":"YulAssignment","src":"1129:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1152:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1139:12:25"},"nodeType":"YulFunctionCall","src":"1139:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1129:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1024:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1035:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1047:6:25","type":""}],"src":"988:180:25"},{"body":{"nodeType":"YulBlock","src":"1257:283:25","statements":[{"body":{"nodeType":"YulBlock","src":"1306:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1315:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1318:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1308:6:25"},"nodeType":"YulFunctionCall","src":"1308:12:25"},"nodeType":"YulExpressionStatement","src":"1308:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1285:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1293:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1281:3:25"},"nodeType":"YulFunctionCall","src":"1281:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1300:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1277:3:25"},"nodeType":"YulFunctionCall","src":"1277:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1270:6:25"},"nodeType":"YulFunctionCall","src":"1270:35:25"},"nodeType":"YulIf","src":"1267:55:25"},{"nodeType":"YulAssignment","src":"1331:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1354:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1341:12:25"},"nodeType":"YulFunctionCall","src":"1341:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1331:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1406:6:25"},"nodeType":"YulFunctionCall","src":"1406:12:25"},"nodeType":"YulExpressionStatement","src":"1406:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1376:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1384:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1373:2:25"},"nodeType":"YulFunctionCall","src":"1373:30:25"},"nodeType":"YulIf","src":"1370:50:25"},{"nodeType":"YulAssignment","src":"1429:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1445:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1453:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1441:3:25"},"nodeType":"YulFunctionCall","src":"1441:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1429:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1518:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1527:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1530:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1520:6:25"},"nodeType":"YulFunctionCall","src":"1520:12:25"},"nodeType":"YulExpressionStatement","src":"1520:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1481:6:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1493:1:25","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"1496:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:14:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1477:3:25"},"nodeType":"YulFunctionCall","src":"1477:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"1506:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1473:3:25"},"nodeType":"YulFunctionCall","src":"1473:38:25"},{"name":"end","nodeType":"YulIdentifier","src":"1513:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1470:2:25"},"nodeType":"YulFunctionCall","src":"1470:47:25"},"nodeType":"YulIf","src":"1467:67:25"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1220:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1228:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1236:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1246:6:25","type":""}],"src":"1173:367:25"},{"body":{"nodeType":"YulBlock","src":"1754:879:25","statements":[{"body":{"nodeType":"YulBlock","src":"1800:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1812:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1802:6:25"},"nodeType":"YulFunctionCall","src":"1802:12:25"},"nodeType":"YulExpressionStatement","src":"1802:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1775:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1784:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1771:3:25"},"nodeType":"YulFunctionCall","src":"1771:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1796:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1767:3:25"},"nodeType":"YulFunctionCall","src":"1767:32:25"},"nodeType":"YulIf","src":"1764:52:25"},{"nodeType":"YulVariableDeclaration","src":"1825:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1852:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1839:12:25"},"nodeType":"YulFunctionCall","src":"1839:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1829:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1871:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1881:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1875:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1928:6:25"},"nodeType":"YulFunctionCall","src":"1928:12:25"},"nodeType":"YulExpressionStatement","src":"1928:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1914:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1922:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1911:2:25"},"nodeType":"YulFunctionCall","src":"1911:14:25"},"nodeType":"YulIf","src":"1908:34:25"},{"nodeType":"YulVariableDeclaration","src":"1951:96:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2019:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"2030:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:25"},"nodeType":"YulFunctionCall","src":"2015:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2039:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"1977:37:25"},"nodeType":"YulFunctionCall","src":"1977:70:25"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"1955:8:25","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"1965:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2056:18:25","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"2066:8:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2056:6:25"}]},{"nodeType":"YulAssignment","src":"2083:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"2093:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2083:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2110:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2139:3:25"},"nodeType":"YulFunctionCall","src":"2139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2126:12:25"},"nodeType":"YulFunctionCall","src":"2126:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2114:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2187:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2196:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2199:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2189:6:25"},"nodeType":"YulFunctionCall","src":"2189:12:25"},"nodeType":"YulExpressionStatement","src":"2189:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2173:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2183:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2170:2:25"},"nodeType":"YulFunctionCall","src":"2170:16:25"},"nodeType":"YulIf","src":"2167:36:25"},{"nodeType":"YulVariableDeclaration","src":"2212:98:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2280:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2291:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2276:3:25"},"nodeType":"YulFunctionCall","src":"2276:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2302:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"2238:37:25"},"nodeType":"YulFunctionCall","src":"2238:72:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2216:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2226:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2319:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2329:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2319:6:25"}]},{"nodeType":"YulAssignment","src":"2346:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2356:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2346:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2373:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2417:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:25"},"nodeType":"YulFunctionCall","src":"2402:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2389:12:25"},"nodeType":"YulFunctionCall","src":"2389:32:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"2377:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2450:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2459:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2462:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2452:6:25"},"nodeType":"YulFunctionCall","src":"2452:12:25"},"nodeType":"YulExpressionStatement","src":"2452:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"2436:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2446:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2433:2:25"},"nodeType":"YulFunctionCall","src":"2433:16:25"},"nodeType":"YulIf","src":"2430:36:25"},{"nodeType":"YulVariableDeclaration","src":"2475:98:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2543:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"2554:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2539:3:25"},"nodeType":"YulFunctionCall","src":"2539:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2565:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"2501:37:25"},"nodeType":"YulFunctionCall","src":"2501:72:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"2479:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"2489:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2582:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2592:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2582:6:25"}]},{"nodeType":"YulAssignment","src":"2609:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"2619:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2609:6:25"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1680:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1691:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1703:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1711:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1719:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1727:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1735:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1743:6:25","type":""}],"src":"1545:1088:25"},{"body":{"nodeType":"YulBlock","src":"2739:125:25","statements":[{"nodeType":"YulAssignment","src":"2749:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2772:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2757:3:25"},"nodeType":"YulFunctionCall","src":"2757:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2749:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2791:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2806:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2814:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2802:3:25"},"nodeType":"YulFunctionCall","src":"2802:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2784:6:25"},"nodeType":"YulFunctionCall","src":"2784:74:25"},"nodeType":"YulExpressionStatement","src":"2784:74:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2708:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2719:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2730:4:25","type":""}],"src":"2638:226:25"},{"body":{"nodeType":"YulBlock","src":"3020:530:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3030:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3040:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3034:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3051:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3069:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3080:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3065:3:25"},"nodeType":"YulFunctionCall","src":"3065:18:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3055:6:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3099:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3110:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3092:6:25"},"nodeType":"YulFunctionCall","src":"3092:21:25"},"nodeType":"YulExpressionStatement","src":"3092:21:25"},{"nodeType":"YulVariableDeclaration","src":"3122:17:25","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"3133:6:25"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"3126:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3148:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3168:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3162:5:25"},"nodeType":"YulFunctionCall","src":"3162:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3152:6:25","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"3191:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"3199:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3184:6:25"},"nodeType":"YulFunctionCall","src":"3184:22:25"},"nodeType":"YulExpressionStatement","src":"3184:22:25"},{"nodeType":"YulAssignment","src":"3215:25:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3226:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3237:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3222:3:25"},"nodeType":"YulFunctionCall","src":"3222:18:25"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3215:3:25"}]},{"nodeType":"YulVariableDeclaration","src":"3249:29:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3267:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3275:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:25"},"nodeType":"YulFunctionCall","src":"3263:15:25"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3253:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3287:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3296:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3291:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3355:169:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3376:3:25"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3391:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3385:5:25"},"nodeType":"YulFunctionCall","src":"3385:13:25"},{"kind":"number","nodeType":"YulLiteral","src":"3400:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3381:3:25"},"nodeType":"YulFunctionCall","src":"3381:62:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3369:6:25"},"nodeType":"YulFunctionCall","src":"3369:75:25"},"nodeType":"YulExpressionStatement","src":"3369:75:25"},{"nodeType":"YulAssignment","src":"3457:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3468:3:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3473:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3464:3:25"},"nodeType":"YulFunctionCall","src":"3464:12:25"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3457:3:25"}]},{"nodeType":"YulAssignment","src":"3489:25:25","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3503:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3511:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3499:3:25"},"nodeType":"YulFunctionCall","src":"3499:15:25"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3489:6:25"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3317:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3320:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3314:2:25"},"nodeType":"YulFunctionCall","src":"3314:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3328:18:25","statements":[{"nodeType":"YulAssignment","src":"3330:14:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3339:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3342:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3335:3:25"},"nodeType":"YulFunctionCall","src":"3335:9:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3330:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3310:3:25","statements":[]},"src":"3306:218:25"},{"nodeType":"YulAssignment","src":"3533:11:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"3541:3:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3533:4:25"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2989:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3000:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3011:4:25","type":""}],"src":"2869:681:25"},{"body":{"nodeType":"YulBlock","src":"3670:125:25","statements":[{"nodeType":"YulAssignment","src":"3680:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3688:3:25"},"nodeType":"YulFunctionCall","src":"3688:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3680:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3722:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3737:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3745:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3733:3:25"},"nodeType":"YulFunctionCall","src":"3733:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3715:6:25"},"nodeType":"YulFunctionCall","src":"3715:74:25"},"nodeType":"YulExpressionStatement","src":"3715:74:25"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$687__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3639:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3650:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3661:4:25","type":""}],"src":"3555:240:25"},{"body":{"nodeType":"YulBlock","src":"3832:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3849:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3852:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3842:6:25"},"nodeType":"YulFunctionCall","src":"3842:88:25"},"nodeType":"YulExpressionStatement","src":"3842:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3946:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3949:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3939:6:25"},"nodeType":"YulFunctionCall","src":"3939:15:25"},"nodeType":"YulExpressionStatement","src":"3939:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3970:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3973:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3963:6:25"},"nodeType":"YulFunctionCall","src":"3963:15:25"},"nodeType":"YulExpressionStatement","src":"3963:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3800:184:25"},{"body":{"nodeType":"YulBlock","src":"4038:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"4060:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4062:16:25"},"nodeType":"YulFunctionCall","src":"4062:18:25"},"nodeType":"YulExpressionStatement","src":"4062:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4054:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"4057:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4051:2:25"},"nodeType":"YulFunctionCall","src":"4051:8:25"},"nodeType":"YulIf","src":"4048:34:25"},{"nodeType":"YulAssignment","src":"4091:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4103:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"4106:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4099:3:25"},"nodeType":"YulFunctionCall","src":"4099:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4091:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4020:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"4023:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4029:4:25","type":""}],"src":"3989:125:25"},{"body":{"nodeType":"YulBlock","src":"4171:176:25","statements":[{"body":{"nodeType":"YulBlock","src":"4290:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4292:16:25"},"nodeType":"YulFunctionCall","src":"4292:18:25"},"nodeType":"YulExpressionStatement","src":"4292:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4202:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4195:6:25"},"nodeType":"YulFunctionCall","src":"4195:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4188:6:25"},"nodeType":"YulFunctionCall","src":"4188:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4210:1:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4217:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"4285:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4213:3:25"},"nodeType":"YulFunctionCall","src":"4213:74:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4207:2:25"},"nodeType":"YulFunctionCall","src":"4207:81:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4184:3:25"},"nodeType":"YulFunctionCall","src":"4184:105:25"},"nodeType":"YulIf","src":"4181:131:25"},{"nodeType":"YulAssignment","src":"4321:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4336:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"4339:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4332:3:25"},"nodeType":"YulFunctionCall","src":"4332:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4321:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4150:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"4153:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4159:7:25","type":""}],"src":"4119:228:25"},{"body":{"nodeType":"YulBlock","src":"4400:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"4427:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4429:16:25"},"nodeType":"YulFunctionCall","src":"4429:18:25"},"nodeType":"YulExpressionStatement","src":"4429:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4416:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4423:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4419:3:25"},"nodeType":"YulFunctionCall","src":"4419:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4413:2:25"},"nodeType":"YulFunctionCall","src":"4413:13:25"},"nodeType":"YulIf","src":"4410:39:25"},{"nodeType":"YulAssignment","src":"4458:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4469:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"4472:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4465:3:25"},"nodeType":"YulFunctionCall","src":"4465:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4458:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4383:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"4386:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"4392:3:25","type":""}],"src":"4352:128:25"},{"body":{"nodeType":"YulBlock","src":"4659:163:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4676:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4687:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4669:6:25"},"nodeType":"YulFunctionCall","src":"4669:21:25"},"nodeType":"YulExpressionStatement","src":"4669:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4710:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4721:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4706:3:25"},"nodeType":"YulFunctionCall","src":"4706:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4726:2:25","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4699:6:25"},"nodeType":"YulFunctionCall","src":"4699:30:25"},"nodeType":"YulExpressionStatement","src":"4699:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4749:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4760:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4745:3:25"},"nodeType":"YulFunctionCall","src":"4745:18:25"},{"hexValue":"7a65726f206475726174696f6e","kind":"string","nodeType":"YulLiteral","src":"4765:15:25","type":"","value":"zero duration"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4738:6:25"},"nodeType":"YulFunctionCall","src":"4738:43:25"},"nodeType":"YulExpressionStatement","src":"4738:43:25"},{"nodeType":"YulAssignment","src":"4790:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4802:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4813:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4798:3:25"},"nodeType":"YulFunctionCall","src":"4798:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4790:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5d4526f829be465ccbde8596dd019082d9287da875164147f9d3b62eb798278__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4636:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4650:4:25","type":""}],"src":"4485:337:25"},{"body":{"nodeType":"YulBlock","src":"5001:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5029:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5011:6:25"},"nodeType":"YulFunctionCall","src":"5011:21:25"},"nodeType":"YulExpressionStatement","src":"5011:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5052:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5063:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5048:3:25"},"nodeType":"YulFunctionCall","src":"5048:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5068:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5041:6:25"},"nodeType":"YulFunctionCall","src":"5041:30:25"},"nodeType":"YulExpressionStatement","src":"5041:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5091:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5102:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5087:3:25"},"nodeType":"YulFunctionCall","src":"5087:18:25"},{"hexValue":"656d707479206172726179","kind":"string","nodeType":"YulLiteral","src":"5107:13:25","type":"","value":"empty array"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5080:6:25"},"nodeType":"YulFunctionCall","src":"5080:41:25"},"nodeType":"YulExpressionStatement","src":"5080:41:25"},{"nodeType":"YulAssignment","src":"5130:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5142:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5153:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5138:3:25"},"nodeType":"YulFunctionCall","src":"5138:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5130:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a4cf96a83d0a38785b2b1a0589568d8f7d392fad654884d30a3f6c440683520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4978:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4992:4:25","type":""}],"src":"4827:335:25"},{"body":{"nodeType":"YulBlock","src":"5341:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5358:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5369:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5351:6:25"},"nodeType":"YulFunctionCall","src":"5351:21:25"},"nodeType":"YulExpressionStatement","src":"5351:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5392:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5403:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5388:3:25"},"nodeType":"YulFunctionCall","src":"5388:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5408:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5381:6:25"},"nodeType":"YulFunctionCall","src":"5381:30:25"},"nodeType":"YulExpressionStatement","src":"5381:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5431:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5442:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5427:3:25"},"nodeType":"YulFunctionCall","src":"5427:18:25"},{"hexValue":"76617279696e672d6c656e67746820617272617973","kind":"string","nodeType":"YulLiteral","src":"5447:23:25","type":"","value":"varying-length arrays"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5420:6:25"},"nodeType":"YulFunctionCall","src":"5420:51:25"},"nodeType":"YulExpressionStatement","src":"5420:51:25"},{"nodeType":"YulAssignment","src":"5480:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5503:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5488:3:25"},"nodeType":"YulFunctionCall","src":"5488:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5480:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_14ceb87ab7af812e92c4e3834f3009df06974b8f915e614b208227f229f7b205__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5318:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5332:4:25","type":""}],"src":"5167:345:25"},{"body":{"nodeType":"YulBlock","src":"5549:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5566:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5569:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5559:6:25"},"nodeType":"YulFunctionCall","src":"5559:88:25"},"nodeType":"YulExpressionStatement","src":"5559:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5663:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5666:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5656:6:25"},"nodeType":"YulFunctionCall","src":"5656:15:25"},"nodeType":"YulExpressionStatement","src":"5656:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5687:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5690:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5680:6:25"},"nodeType":"YulFunctionCall","src":"5680:15:25"},"nodeType":"YulExpressionStatement","src":"5680:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"5517:184:25"},{"body":{"nodeType":"YulBlock","src":"5880:163:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5908:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5890:6:25"},"nodeType":"YulFunctionCall","src":"5890:21:25"},"nodeType":"YulExpressionStatement","src":"5890:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5931:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5942:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5927:3:25"},"nodeType":"YulFunctionCall","src":"5927:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5947:2:25","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5920:6:25"},"nodeType":"YulFunctionCall","src":"5920:30:25"},"nodeType":"YulExpressionStatement","src":"5920:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5970:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5981:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5966:3:25"},"nodeType":"YulFunctionCall","src":"5966:18:25"},{"hexValue":"62616420726563697069656e74","kind":"string","nodeType":"YulLiteral","src":"5986:15:25","type":"","value":"bad recipient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5959:6:25"},"nodeType":"YulFunctionCall","src":"5959:43:25"},"nodeType":"YulExpressionStatement","src":"5959:43:25"},{"nodeType":"YulAssignment","src":"6011:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6023:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6019:3:25"},"nodeType":"YulFunctionCall","src":"6019:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6011:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4acb2f2dca5bce49f355e714f7431e47358d79e6463dc0451fed1877b7a6eb2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5857:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5871:4:25","type":""}],"src":"5706:337:25"},{"body":{"nodeType":"YulBlock","src":"6096:189:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6106:36:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6116:26:25","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6110:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6151:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6166:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6169:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6162:3:25"},"nodeType":"YulFunctionCall","src":"6162:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"6155:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6181:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6196:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6199:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6192:3:25"},"nodeType":"YulFunctionCall","src":"6192:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"6185:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6227:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6229:16:25"},"nodeType":"YulFunctionCall","src":"6229:18:25"},"nodeType":"YulExpressionStatement","src":"6229:18:25"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"6217:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"6222:3:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6214:2:25"},"nodeType":"YulFunctionCall","src":"6214:12:25"},"nodeType":"YulIf","src":"6211:38:25"},{"nodeType":"YulAssignment","src":"6258:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"6270:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"6275:3:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6266:3:25"},"nodeType":"YulFunctionCall","src":"6266:13:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"6258:4:25"}]}]},"name":"checked_sub_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6078:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"6081:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"6087:4:25","type":""}],"src":"6048:237:25"},{"body":{"nodeType":"YulBlock","src":"6464:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6481:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6492:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6474:6:25"},"nodeType":"YulFunctionCall","src":"6474:21:25"},"nodeType":"YulExpressionStatement","src":"6474:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6515:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6526:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6511:3:25"},"nodeType":"YulFunctionCall","src":"6511:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6531:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6504:6:25"},"nodeType":"YulFunctionCall","src":"6504:30:25"},"nodeType":"YulExpressionStatement","src":"6504:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6554:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6565:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6550:3:25"},"nodeType":"YulFunctionCall","src":"6550:18:25"},{"hexValue":"73686f72742076657374696e67206475726174696f6e","kind":"string","nodeType":"YulLiteral","src":"6570:24:25","type":"","value":"short vesting duration"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6543:6:25"},"nodeType":"YulFunctionCall","src":"6543:52:25"},"nodeType":"YulExpressionStatement","src":"6543:52:25"},{"nodeType":"YulAssignment","src":"6604:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6616:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6627:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6612:3:25"},"nodeType":"YulFunctionCall","src":"6612:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6604:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_91549934cd3ddb3b69848a33bb3e6f2f6c6e5aeb53ecdfce1296983a8e8f9ae3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6441:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6455:4:25","type":""}],"src":"6290:346:25"},{"body":{"nodeType":"YulBlock","src":"6815:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6843:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6825:6:25"},"nodeType":"YulFunctionCall","src":"6825:21:25"},"nodeType":"YulExpressionStatement","src":"6825:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6866:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6877:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6862:3:25"},"nodeType":"YulFunctionCall","src":"6862:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6882:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6855:6:25"},"nodeType":"YulFunctionCall","src":"6855:30:25"},"nodeType":"YulExpressionStatement","src":"6855:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6905:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6916:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6901:3:25"},"nodeType":"YulFunctionCall","src":"6901:18:25"},{"hexValue":"696e76616c696420616c6c6f636174696f6e","kind":"string","nodeType":"YulLiteral","src":"6921:20:25","type":"","value":"invalid allocation"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6894:6:25"},"nodeType":"YulFunctionCall","src":"6894:48:25"},"nodeType":"YulExpressionStatement","src":"6894:48:25"},{"nodeType":"YulAssignment","src":"6951:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6963:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6974:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6959:3:25"},"nodeType":"YulFunctionCall","src":"6959:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6951:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_d696d95254cfbddd7f9c4536fe32fc4aff9a76fa75ac9e194155d25390e9a490__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6792:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6806:4:25","type":""}],"src":"6641:342:25"},{"body":{"nodeType":"YulBlock","src":"7034:228:25","statements":[{"body":{"nodeType":"YulBlock","src":"7065:168:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7086:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7089:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7079:6:25"},"nodeType":"YulFunctionCall","src":"7079:88:25"},"nodeType":"YulExpressionStatement","src":"7079:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7187:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7190:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7180:6:25"},"nodeType":"YulFunctionCall","src":"7180:15:25"},"nodeType":"YulExpressionStatement","src":"7180:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7215:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7218:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7208:6:25"},"nodeType":"YulFunctionCall","src":"7208:15:25"},"nodeType":"YulExpressionStatement","src":"7208:15:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7054:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7047:6:25"},"nodeType":"YulFunctionCall","src":"7047:9:25"},"nodeType":"YulIf","src":"7044:189:25"},{"nodeType":"YulAssignment","src":"7242:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7251:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"7254:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7247:3:25"},"nodeType":"YulFunctionCall","src":"7247:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7242:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7019:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"7022:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"7028:1:25","type":""}],"src":"6988:274:25"},{"body":{"nodeType":"YulBlock","src":"7441:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7458:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7469:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7451:6:25"},"nodeType":"YulFunctionCall","src":"7451:21:25"},"nodeType":"YulExpressionStatement","src":"7451:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7503:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7488:3:25"},"nodeType":"YulFunctionCall","src":"7488:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"7508:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7481:6:25"},"nodeType":"YulFunctionCall","src":"7481:30:25"},"nodeType":"YulExpressionStatement","src":"7481:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7531:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7542:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7527:3:25"},"nodeType":"YulFunctionCall","src":"7527:18:25"},{"hexValue":"72617465207472756e636174656420746f207a65726f","kind":"string","nodeType":"YulLiteral","src":"7547:24:25","type":"","value":"rate truncated to zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7520:6:25"},"nodeType":"YulFunctionCall","src":"7520:52:25"},"nodeType":"YulExpressionStatement","src":"7520:52:25"},{"nodeType":"YulAssignment","src":"7581:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7604:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7589:3:25"},"nodeType":"YulFunctionCall","src":"7589:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7581:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_454b82c3995abe0e17d215facdf0517a8bee51b5d963b4725d38a121058a9200__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7418:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7432:4:25","type":""}],"src":"7267:346:25"},{"body":{"nodeType":"YulBlock","src":"7665:197:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7675:36:25","value":{"kind":"number","nodeType":"YulLiteral","src":"7685:26:25","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7679:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7720:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7735:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"7738:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7731:3:25"},"nodeType":"YulFunctionCall","src":"7731:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"7724:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7750:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7765:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"7768:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7761:3:25"},"nodeType":"YulFunctionCall","src":"7761:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"7754:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7805:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7807:16:25"},"nodeType":"YulFunctionCall","src":"7807:18:25"},"nodeType":"YulExpressionStatement","src":"7807:18:25"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"7786:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"7795:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"7799:3:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7791:3:25"},"nodeType":"YulFunctionCall","src":"7791:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7783:2:25"},"nodeType":"YulFunctionCall","src":"7783:21:25"},"nodeType":"YulIf","src":"7780:47:25"},{"nodeType":"YulAssignment","src":"7836:20:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"7847:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"7852:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7843:3:25"},"nodeType":"YulFunctionCall","src":"7843:13:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"7836:3:25"}]}]},"name":"checked_add_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7648:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"7651:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"7657:3:25","type":""}],"src":"7618:244:25"},{"body":{"nodeType":"YulBlock","src":"7996:119:25","statements":[{"nodeType":"YulAssignment","src":"8006:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8029:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8014:3:25"},"nodeType":"YulFunctionCall","src":"8014:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8006:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8048:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8059:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8041:6:25"},"nodeType":"YulFunctionCall","src":"8041:25:25"},"nodeType":"YulExpressionStatement","src":"8041:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8086:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8097:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8082:3:25"},"nodeType":"YulFunctionCall","src":"8082:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"8102:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8075:6:25"},"nodeType":"YulFunctionCall","src":"8075:34:25"},"nodeType":"YulExpressionStatement","src":"8075:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7957:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7968:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7976:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7987:4:25","type":""}],"src":"7867:248:25"},{"body":{"nodeType":"YulBlock","src":"8167:148:25","statements":[{"body":{"nodeType":"YulBlock","src":"8258:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8260:16:25"},"nodeType":"YulFunctionCall","src":"8260:18:25"},"nodeType":"YulExpressionStatement","src":"8260:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8183:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"8190:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8180:2:25"},"nodeType":"YulFunctionCall","src":"8180:77:25"},"nodeType":"YulIf","src":"8177:103:25"},{"nodeType":"YulAssignment","src":"8289:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8300:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"8307:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8296:3:25"},"nodeType":"YulFunctionCall","src":"8296:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"8289:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8149:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"8159:3:25","type":""}],"src":"8120:195:25"},{"body":{"nodeType":"YulBlock","src":"8401:103:25","statements":[{"body":{"nodeType":"YulBlock","src":"8447:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8456:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8459:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8449:6:25"},"nodeType":"YulFunctionCall","src":"8449:12:25"},"nodeType":"YulExpressionStatement","src":"8449:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8422:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8431:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8418:3:25"},"nodeType":"YulFunctionCall","src":"8418:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8443:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8414:3:25"},"nodeType":"YulFunctionCall","src":"8414:32:25"},"nodeType":"YulIf","src":"8411:52:25"},{"nodeType":"YulAssignment","src":"8472:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8488:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8482:5:25"},"nodeType":"YulFunctionCall","src":"8482:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8472:6:25"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8367:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8378:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8390:6:25","type":""}],"src":"8320:184:25"},{"body":{"nodeType":"YulBlock","src":"8683:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8700:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8711:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8693:6:25"},"nodeType":"YulFunctionCall","src":"8693:21:25"},"nodeType":"YulExpressionStatement","src":"8693:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8745:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8730:3:25"},"nodeType":"YulFunctionCall","src":"8730:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"8750:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8723:6:25"},"nodeType":"YulFunctionCall","src":"8723:30:25"},"nodeType":"YulExpressionStatement","src":"8723:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8773:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8784:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8769:3:25"},"nodeType":"YulFunctionCall","src":"8769:18:25"},{"hexValue":"6c6f772062616c616e6365","kind":"string","nodeType":"YulLiteral","src":"8789:13:25","type":"","value":"low balance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8762:6:25"},"nodeType":"YulFunctionCall","src":"8762:41:25"},"nodeType":"YulExpressionStatement","src":"8762:41:25"},{"nodeType":"YulAssignment","src":"8812:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8824:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8835:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8820:3:25"},"nodeType":"YulFunctionCall","src":"8820:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8812:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8660:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8674:4:25","type":""}],"src":"8509:335:25"},{"body":{"nodeType":"YulBlock","src":"9023:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9040:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9051:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9033:6:25"},"nodeType":"YulFunctionCall","src":"9033:21:25"},"nodeType":"YulExpressionStatement","src":"9033:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9074:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9085:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9070:3:25"},"nodeType":"YulFunctionCall","src":"9070:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"9090:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9063:6:25"},"nodeType":"YulFunctionCall","src":"9063:30:25"},"nodeType":"YulExpressionStatement","src":"9063:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9113:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9124:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9109:3:25"},"nodeType":"YulFunctionCall","src":"9109:18:25"},{"hexValue":"6e6f2070656e64696e672068617276657374","kind":"string","nodeType":"YulLiteral","src":"9129:20:25","type":"","value":"no pending harvest"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9102:6:25"},"nodeType":"YulFunctionCall","src":"9102:48:25"},"nodeType":"YulExpressionStatement","src":"9102:48:25"},{"nodeType":"YulAssignment","src":"9159:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9171:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9182:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:25"},"nodeType":"YulFunctionCall","src":"9167:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9159:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_ecc0a3380755da3568d31401b31e8b3872e01c3836eb4b80fe4866793cf44c8e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9000:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9014:4:25","type":""}],"src":"8849:342:25"},{"body":{"nodeType":"YulBlock","src":"9370:178:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9387:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9398:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9380:6:25"},"nodeType":"YulFunctionCall","src":"9380:21:25"},"nodeType":"YulExpressionStatement","src":"9380:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9417:3:25"},"nodeType":"YulFunctionCall","src":"9417:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"9437:2:25","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9410:6:25"},"nodeType":"YulFunctionCall","src":"9410:30:25"},"nodeType":"YulExpressionStatement","src":"9410:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9460:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9471:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9456:3:25"},"nodeType":"YulFunctionCall","src":"9456:18:25"},{"hexValue":"436c61696d61626c653a206e6f742070656e64696e67206f776e6572","kind":"string","nodeType":"YulLiteral","src":"9476:30:25","type":"","value":"Claimable: not pending owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9449:6:25"},"nodeType":"YulFunctionCall","src":"9449:58:25"},"nodeType":"YulExpressionStatement","src":"9449:58:25"},{"nodeType":"YulAssignment","src":"9516:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9528:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9539:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9524:3:25"},"nodeType":"YulFunctionCall","src":"9524:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9516:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4d1e7dfd90f1a9f5ff7eb15697c8849def6789d3dd644f128b7a0451146bc601__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9347:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9361:4:25","type":""}],"src":"9196:352:25"},{"body":{"nodeType":"YulBlock","src":"9727:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9744:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9755:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9737:6:25"},"nodeType":"YulFunctionCall","src":"9737:21:25"},"nodeType":"YulExpressionStatement","src":"9737:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9778:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9789:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9774:3:25"},"nodeType":"YulFunctionCall","src":"9774:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"9794:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9767:6:25"},"nodeType":"YulFunctionCall","src":"9767:30:25"},"nodeType":"YulExpressionStatement","src":"9767:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9828:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9813:3:25"},"nodeType":"YulFunctionCall","src":"9813:18:25"},{"hexValue":"436c61696d61626c653a2070656e64696e67206f776e6572206e6f74207a6572","kind":"string","nodeType":"YulLiteral","src":"9833:34:25","type":"","value":"Claimable: pending owner not zer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9806:6:25"},"nodeType":"YulFunctionCall","src":"9806:62:25"},"nodeType":"YulExpressionStatement","src":"9806:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9888:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9899:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9884:3:25"},"nodeType":"YulFunctionCall","src":"9884:18:25"},{"hexValue":"6f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"9904:11:25","type":"","value":"o address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9877:6:25"},"nodeType":"YulFunctionCall","src":"9877:39:25"},"nodeType":"YulExpressionStatement","src":"9877:39:25"},{"nodeType":"YulAssignment","src":"9925:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9948:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9933:3:25"},"nodeType":"YulFunctionCall","src":"9933:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9925:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4ad45a29af4d1a11fffff7cb7a07ebeb55a5b27ee49d3e4255f3e6f2fe8d4aa1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9704:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9718:4:25","type":""}],"src":"9553:405:25"},{"body":{"nodeType":"YulBlock","src":"10137:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10165:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10147:6:25"},"nodeType":"YulFunctionCall","src":"10147:21:25"},"nodeType":"YulExpressionStatement","src":"10147:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10188:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10199:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10184:3:25"},"nodeType":"YulFunctionCall","src":"10184:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10204:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10177:6:25"},"nodeType":"YulFunctionCall","src":"10177:30:25"},"nodeType":"YulExpressionStatement","src":"10177:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10227:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10238:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10223:3:25"},"nodeType":"YulFunctionCall","src":"10223:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"10243:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10216:6:25"},"nodeType":"YulFunctionCall","src":"10216:62:25"},"nodeType":"YulExpressionStatement","src":"10216:62:25"},{"nodeType":"YulAssignment","src":"10287:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10299:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10310:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10295:3:25"},"nodeType":"YulFunctionCall","src":"10295:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10287:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10114:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10128:4:25","type":""}],"src":"9963:356:25"},{"body":{"nodeType":"YulBlock","src":"10453:168:25","statements":[{"nodeType":"YulAssignment","src":"10463:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10471:3:25"},"nodeType":"YulFunctionCall","src":"10471:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10463:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10505:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10520:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10528:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10516:3:25"},"nodeType":"YulFunctionCall","src":"10516:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10498:6:25"},"nodeType":"YulFunctionCall","src":"10498:74:25"},"nodeType":"YulExpressionStatement","src":"10498:74:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10592:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10603:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10588:3:25"},"nodeType":"YulFunctionCall","src":"10588:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10608:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10581:6:25"},"nodeType":"YulFunctionCall","src":"10581:34:25"},"nodeType":"YulExpressionStatement","src":"10581:34:25"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10414:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10425:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10433:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10444:4:25","type":""}],"src":"10324:297:25"},{"body":{"nodeType":"YulBlock","src":"10658:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10675:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10678:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10668:6:25"},"nodeType":"YulFunctionCall","src":"10668:88:25"},"nodeType":"YulExpressionStatement","src":"10668:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10772:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10775:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10765:6:25"},"nodeType":"YulFunctionCall","src":"10765:15:25"},"nodeType":"YulExpressionStatement","src":"10765:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10796:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10799:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10789:6:25"},"nodeType":"YulFunctionCall","src":"10789:15:25"},"nodeType":"YulExpressionStatement","src":"10789:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"10626:184:25"},{"body":{"nodeType":"YulBlock","src":"10893:199:25","statements":[{"body":{"nodeType":"YulBlock","src":"10939:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10948:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10951:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10941:6:25"},"nodeType":"YulFunctionCall","src":"10941:12:25"},"nodeType":"YulExpressionStatement","src":"10941:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10914:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10923:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10910:3:25"},"nodeType":"YulFunctionCall","src":"10910:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10935:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10906:3:25"},"nodeType":"YulFunctionCall","src":"10906:32:25"},"nodeType":"YulIf","src":"10903:52:25"},{"nodeType":"YulVariableDeclaration","src":"10964:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10983:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10977:5:25"},"nodeType":"YulFunctionCall","src":"10977:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10968:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11046:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11055:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11058:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11048:6:25"},"nodeType":"YulFunctionCall","src":"11048:12:25"},"nodeType":"YulExpressionStatement","src":"11048:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11015:5:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11036:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11029:6:25"},"nodeType":"YulFunctionCall","src":"11029:13:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11022:6:25"},"nodeType":"YulFunctionCall","src":"11022:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11012:2:25"},"nodeType":"YulFunctionCall","src":"11012:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11005:6:25"},"nodeType":"YulFunctionCall","src":"11005:40:25"},"nodeType":"YulIf","src":"11002:60:25"},{"nodeType":"YulAssignment","src":"11071:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11081:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11071:6:25"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10859:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10870:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10882:6:25","type":""}],"src":"10815:277:25"},{"body":{"nodeType":"YulBlock","src":"11271:232:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11288:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11299:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11281:6:25"},"nodeType":"YulFunctionCall","src":"11281:21:25"},"nodeType":"YulExpressionStatement","src":"11281:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11322:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11333:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11318:3:25"},"nodeType":"YulFunctionCall","src":"11318:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11338:2:25","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11311:6:25"},"nodeType":"YulFunctionCall","src":"11311:30:25"},"nodeType":"YulExpressionStatement","src":"11311:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11361:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11372:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11357:3:25"},"nodeType":"YulFunctionCall","src":"11357:18:25"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nodeType":"YulLiteral","src":"11377:34:25","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11350:6:25"},"nodeType":"YulFunctionCall","src":"11350:62:25"},"nodeType":"YulExpressionStatement","src":"11350:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11432:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11443:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11428:3:25"},"nodeType":"YulFunctionCall","src":"11428:18:25"},{"hexValue":"6f742073756363656564","kind":"string","nodeType":"YulLiteral","src":"11448:12:25","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11421:6:25"},"nodeType":"YulFunctionCall","src":"11421:40:25"},"nodeType":"YulExpressionStatement","src":"11421:40:25"},{"nodeType":"YulAssignment","src":"11470:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11482:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11493:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11478:3:25"},"nodeType":"YulFunctionCall","src":"11478:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11470:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11248:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11262:4:25","type":""}],"src":"11097:406:25"},{"body":{"nodeType":"YulBlock","src":"11682:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11699:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11710:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11692:6:25"},"nodeType":"YulFunctionCall","src":"11692:21:25"},"nodeType":"YulExpressionStatement","src":"11692:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11733:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11744:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11729:3:25"},"nodeType":"YulFunctionCall","src":"11729:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11749:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11722:6:25"},"nodeType":"YulFunctionCall","src":"11722:30:25"},"nodeType":"YulExpressionStatement","src":"11722:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nodeType":"YulLiteral","src":"11788:34:25","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11761:6:25"},"nodeType":"YulFunctionCall","src":"11761:62:25"},"nodeType":"YulExpressionStatement","src":"11761:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11843:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11854:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11839:3:25"},"nodeType":"YulFunctionCall","src":"11839:18:25"},{"hexValue":"722063616c6c","kind":"string","nodeType":"YulLiteral","src":"11859:8:25","type":"","value":"r call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11832:6:25"},"nodeType":"YulFunctionCall","src":"11832:36:25"},"nodeType":"YulExpressionStatement","src":"11832:36:25"},{"nodeType":"YulAssignment","src":"11877:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11900:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11885:3:25"},"nodeType":"YulFunctionCall","src":"11885:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11877:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11659:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11673:4:25","type":""}],"src":"11508:402:25"},{"body":{"nodeType":"YulBlock","src":"11968:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"11978:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11987:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11982:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12047:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12072:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"12077:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12068:3:25"},"nodeType":"YulFunctionCall","src":"12068:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12091:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"12096:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12087:3:25"},"nodeType":"YulFunctionCall","src":"12087:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12081:5:25"},"nodeType":"YulFunctionCall","src":"12081:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12061:6:25"},"nodeType":"YulFunctionCall","src":"12061:39:25"},"nodeType":"YulExpressionStatement","src":"12061:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12008:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"12011:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12005:2:25"},"nodeType":"YulFunctionCall","src":"12005:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12019:19:25","statements":[{"nodeType":"YulAssignment","src":"12021:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12030:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"12033:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12026:3:25"},"nodeType":"YulFunctionCall","src":"12026:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12021:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"12001:3:25","statements":[]},"src":"11997:113:25"},{"body":{"nodeType":"YulBlock","src":"12136:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12149:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12154:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12145:3:25"},"nodeType":"YulFunctionCall","src":"12145:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"12163:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12138:6:25"},"nodeType":"YulFunctionCall","src":"12138:27:25"},"nodeType":"YulExpressionStatement","src":"12138:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12125:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"12128:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12122:2:25"},"nodeType":"YulFunctionCall","src":"12122:13:25"},"nodeType":"YulIf","src":"12119:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"11946:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"11951:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"11956:6:25","type":""}],"src":"11915:258:25"},{"body":{"nodeType":"YulBlock","src":"12315:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"12325:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12345:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12339:5:25"},"nodeType":"YulFunctionCall","src":"12339:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12329:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12387:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12395:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12383:3:25"},"nodeType":"YulFunctionCall","src":"12383:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"12402:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12407:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12361:21:25"},"nodeType":"YulFunctionCall","src":"12361:53:25"},"nodeType":"YulExpressionStatement","src":"12361:53:25"},{"nodeType":"YulAssignment","src":"12423:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12434:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12439:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12430:3:25"},"nodeType":"YulFunctionCall","src":"12430:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12423:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12291:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12296:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12307:3:25","type":""}],"src":"12178:274:25"},{"body":{"nodeType":"YulBlock","src":"12631:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12648:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12659:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12641:6:25"},"nodeType":"YulFunctionCall","src":"12641:21:25"},"nodeType":"YulExpressionStatement","src":"12641:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12682:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12693:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12678:3:25"},"nodeType":"YulFunctionCall","src":"12678:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12698:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12671:6:25"},"nodeType":"YulFunctionCall","src":"12671:30:25"},"nodeType":"YulExpressionStatement","src":"12671:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12732:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12717:3:25"},"nodeType":"YulFunctionCall","src":"12717:18:25"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nodeType":"YulLiteral","src":"12737:31:25","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12710:6:25"},"nodeType":"YulFunctionCall","src":"12710:59:25"},"nodeType":"YulExpressionStatement","src":"12710:59:25"},{"nodeType":"YulAssignment","src":"12778:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12790:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12801:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12786:3:25"},"nodeType":"YulFunctionCall","src":"12786:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12778:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12608:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12622:4:25","type":""}],"src":"12457:353:25"},{"body":{"nodeType":"YulBlock","src":"12936:321:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12953:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12964:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12946:6:25"},"nodeType":"YulFunctionCall","src":"12946:21:25"},"nodeType":"YulExpressionStatement","src":"12946:21:25"},{"nodeType":"YulVariableDeclaration","src":"12976:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12996:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12990:5:25"},"nodeType":"YulFunctionCall","src":"12990:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12980:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13023:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13034:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13019:3:25"},"nodeType":"YulFunctionCall","src":"13019:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"13039:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13012:6:25"},"nodeType":"YulFunctionCall","src":"13012:34:25"},"nodeType":"YulExpressionStatement","src":"13012:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13081:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13089:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13077:3:25"},"nodeType":"YulFunctionCall","src":"13077:15:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13098:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13109:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13094:3:25"},"nodeType":"YulFunctionCall","src":"13094:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"13114:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"13055:21:25"},"nodeType":"YulFunctionCall","src":"13055:66:25"},"nodeType":"YulExpressionStatement","src":"13055:66:25"},{"nodeType":"YulAssignment","src":"13130:121:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13146:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13165:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13173:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13161:3:25"},"nodeType":"YulFunctionCall","src":"13161:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"13178:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13157:3:25"},"nodeType":"YulFunctionCall","src":"13157:88:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13142:3:25"},"nodeType":"YulFunctionCall","src":"13142:104:25"},{"kind":"number","nodeType":"YulLiteral","src":"13248:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13138:3:25"},"nodeType":"YulFunctionCall","src":"13138:113:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13130:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12905:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12916:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12927:4:25","type":""}],"src":"12815:442:25"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint96_t_uint96_t_uint64_t_uint256__to_t_uint96_t_uint96_t_uint64_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        let _1 := 0xffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$687__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_d5d4526f829be465ccbde8596dd019082d9287da875164147f9d3b62eb798278__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"zero duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5a4cf96a83d0a38785b2b1a0589568d8f7d392fad654884d30a3f6c440683520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"empty array\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_14ceb87ab7af812e92c4e3834f3009df06974b8f915e614b208227f229f7b205__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"varying-length arrays\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_e4acb2f2dca5bce49f355e714f7431e47358d79e6463dc0451fed1877b7a6eb2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"bad recipient\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint96(x, y) -> diff\n    {\n        let _1 := 0xffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if lt(x_1, y_1) { panic_error_0x11() }\n        diff := sub(x_1, y_1)\n    }\n    function abi_encode_tuple_t_stringliteral_91549934cd3ddb3b69848a33bb3e6f2f6c6e5aeb53ecdfce1296983a8e8f9ae3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"short vesting duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d696d95254cfbddd7f9c4536fe32fc4aff9a76fa75ac9e194155d25390e9a490__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"invalid allocation\")\n        tail := add(headStart, 96)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_454b82c3995abe0e17d215facdf0517a8bee51b5d963b4725d38a121058a9200__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"rate truncated to zero\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint96(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_7708efe8f9e439a7d89f7815a7ac4039dfdc1f0bb479f643603c5e8dde3f73f1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"low balance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ecc0a3380755da3568d31401b31e8b3872e01c3836eb4b80fe4866793cf44c8e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"no pending harvest\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4d1e7dfd90f1a9f5ff7eb15697c8849def6789d3dd644f128b7a0451146bc601__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Claimable: not pending owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4ad45a29af4d1a11fffff7cb7a07ebeb55a5b27ee49d3e4255f3e6f2fe8d4aa1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Claimable: pending owner not zer\")\n        mstore(add(headStart, 96), \"o address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3170":[{"length":32,"start":665},{"length":32,"start":2225},{"length":32,"start":2539},{"length":32,"start":2946},{"length":32,"start":3387}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063cd3293de11610066578063cd3293de14610267578063e30c397814610270578063f2fde38b14610281578063fc0c546a1461029457600080fd5b8063715018a61461021d5780638da5cb5b146102255780639eab52531461024a578063c6728c6c1461025f57600080fd5b80632e1a7d4d116100d35780632e1a7d4d146101f15780634641257d146102045780634e71e0c81461020c578063567157611461021457600080fd5b806307d41e791461010557806308ae4b0c1461012b5780631674bade146101c9578063182a89e6146101de575b600080fd5b61011861011336600461134e565b6102bb565b6040519081526020015b60405180910390f35b61018a61013936600461134e565b600260205260009081526040902080546001909101546bffffffffffffffffffffffff808316926c01000000000000000000000000810490911691600160c01b90910467ffffffffffffffff169084565b604080516bffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff909116918301919091526060820152608001610122565b6101dc6101d7366004611377565b610398565b005b6101dc6101ec3660046113dc565b610431565b6101dc6101ff366004611377565b61097f565b6101dc610a42565b6101dc610be2565b61011860065481565b6101dc610c5c565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610122565b610252610ced565b6040516101229190611476565b610118610cfe565b61011860055481565b6001546001600160a01b0316610232565b6101dc61028f36600461134e565b610db0565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600260209081526040808320815160808101835281546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041694820194909452600160c01b90930467ffffffffffffffff169183018290526001015460608301819052839161033990426114d9565b61034391906114f0565b82602001516bffffffffffffffffffffffff16610360919061150f565b82519091506bffffffffffffffffffffffff16811161037f5780610390565b81516bffffffffffffffffffffffff165b949350505050565b6103a0610e1a565b806000036103f55760405162461bcd60e51b815260206004820152600d60248201527f7a65726f206475726174696f6e0000000000000000000000000000000000000060448201526064015b60405180910390fd5b60068190556040518181527f850b0d4898947ead6a23251622e8c2ea46d217fa5ff2c1f06638f92e91880bfe906020015b60405180910390a150565b610439610e1a565b60055460065486919060008390036104935760405162461bcd60e51b815260206004820152600b60248201527f656d70747920617272617900000000000000000000000000000000000000000060448201526064016103ec565b82861480156104a157508284145b6104ed5760405162461bcd60e51b815260206004820152601560248201527f76617279696e672d6c656e67746820617272617973000000000000000000000060448201526064016103ec565b60005b838110156108805760008a8a8381811061050c5761050c611527565b9050602002016020810190610521919061134e565b9050600089898481811061053757610537611527565b905060200201359050600088888581811061055457610554611527565b60200291909101359150506001600160a01b0383166105b55760405162461bcd60e51b815260206004820152600d60248201527f62616420726563697069656e740000000000000000000000000000000000000060448201526064016103ec565b6001600160a01b038316600090815260026020526040902080546bffffffffffffffffffffffff16801561065c5760006105ee866102bb565b83547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff166c010000000000000000000000006bffffffffffffffffffffffff831602178455905061063f818361153d565b610657906bffffffffffffffffffffffff168a6114d9565b985090505b83156107cd57868310156106b25760405162461bcd60e51b815260206004820152601660248201527f73686f72742076657374696e67206475726174696f6e0000000000000000000060448201526064016103ec565b6bffffffffffffffffffffffff84111561070e5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420616c6c6f636174696f6e000000000000000000000000000060448201526064016103ec565b610718848961150f565b97506000610726848661156a565b9050806000036107785760405162461bcd60e51b815260206004820152601660248201527f72617465207472756e636174656420746f207a65726f0000000000000000000060448201526064016103ec565b610782858361158c565b60018401829055835477ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b4267ffffffffffffffff160217845591506107c6600387610e74565b50506107f0565b806bffffffffffffffffffffffff166000036107f0576107ee600386610e92565b505b81547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff821617825560408051858152602081018590526001600160a01b038716917f159e9e56dec3d6bf3e3c20510a7b005a0b9f89bd991ff9eb0c4f387b1fd3682d910160405180910390a2505050505080610879906115bc565b90506104f0565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092491906115d6565b10156109725760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b5060055550505050505050565b610987610e1a565b80610990610cfe565b10156109de5760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b610a126001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b6040518181527f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b5690602001610426565b33600081815260026020526040812091610a5b906102bb565b905080600003610aad5760405162461bcd60e51b815260206004820152601260248201527f6e6f2070656e64696e672068617276657374000000000000000000000000000060448201526064016103ec565b81546bffffffffffffffffffffffff908116600160c01b4267ffffffffffffffff16027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff81168217855583928592600092610b0c92869291161761153d565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508060056000828254610b4c91906114d9565b909155505081546bffffffffffffffffffffffff16600003610b7557610b73600333610e92565b505b610ba96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b60405181815233907f121c5042302bae5fc561fbc64368f297ca60a880878e1e3a7f7e9380377260bf9060200160405180910390a25050565b6001546001600160a01b0316336001600160a01b031614610c455760405162461bcd60e51b815260206004820152601c60248201527f436c61696d61626c653a206e6f742070656e64696e67206f776e65720000000060448201526064016103ec565b600154610c5a906001600160a01b0316610f2c565b565b610c64610e1a565b6001546001600160a01b031615610ce35760405162461bcd60e51b815260206004820152602960248201527f436c61696d61626c653a2070656e64696e67206f776e6572206e6f74207a657260448201527f6f2061646472657373000000000000000000000000000000000000000000000060648201526084016103ec565b610c5a6000610f2c565b6060610cf96003610f94565b905090565b6005546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906115d6565b610cf991906114d9565b610db8610e1a565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f68f49b346b94582a8b5f9d10e3fe3365318fe8f191ff8dce7c59c6cad06b02f590600090a250565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ec565b6000610e89836001600160a01b038416610fa8565b90505b92915050565b6000610e89836001600160a01b038416610ff7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f279084906110ea565b505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606000610fa1836111cf565b9392505050565b6000818152600183016020526040812054610fef57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e8c565b506000610e8c565b600081815260018301602052604081205480156110e057600061101b6001836114d9565b855490915060009061102f906001906114d9565b905081811461109457600086600001828154811061104f5761104f611527565b906000526020600020015490508087600001848154811061107257611072611527565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806110a5576110a56115ef565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610e8c565b6000915050610e8c565b600061113f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661122b9092919063ffffffff16565b805190915015610f27578080602001905181019061115d9190611605565b610f275760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103ec565b60608160000180548060200260200160405190810160405280929190818152602001828054801561121f57602002820191906000526020600020905b81548152602001906001019080831161120b575b50505050509050919050565b6060610390848460008585600080866001600160a01b031685876040516112529190611657565b60006040518083038185875af1925050503d806000811461128f576040519150601f19603f3d011682016040523d82523d6000602084013e611294565b606091505b50915091506112a5878383876112b0565b979650505050505050565b6060831561131f578251600003611318576001600160a01b0385163b6113185760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ec565b5081610390565b61039083838151156113345781518083602001fd5b8060405162461bcd60e51b81526004016103ec9190611673565b60006020828403121561136057600080fd5b81356001600160a01b0381168114610fa157600080fd5b60006020828403121561138957600080fd5b5035919050565b60008083601f8401126113a257600080fd5b50813567ffffffffffffffff8111156113ba57600080fd5b6020830191508360208260051b85010111156113d557600080fd5b9250929050565b600080600080600080606087890312156113f557600080fd5b863567ffffffffffffffff8082111561140d57600080fd5b6114198a838b01611390565b9098509650602089013591508082111561143257600080fd5b61143e8a838b01611390565b9096509450604089013591508082111561145757600080fd5b5061146489828a01611390565b979a9699509497509295939492505050565b6020808252825182820181905260009190848201906040850190845b818110156114b75783516001600160a01b031683529284019291840191600101611492565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156114eb576114eb6114c3565b500390565b600081600019048311821515161561150a5761150a6114c3565b500290565b60008219821115611522576115226114c3565b500190565b634e487b7160e01b600052603260045260246000fd5b60006bffffffffffffffffffffffff83811690831681811015611562576115626114c3565b039392505050565b60008261158757634e487b7160e01b600052601260045260246000fd5b500490565b60006bffffffffffffffffffffffff8083168185168083038211156115b3576115b36114c3565b01949350505050565b600060001982036115cf576115cf6114c3565b5060010190565b6000602082840312156115e857600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561161757600080fd5b81518015158114610fa157600080fd5b60005b8381101561164257818101518382015260200161162a565b83811115611651576000848401525b50505050565b60008251611669818460208701611627565b9190910192915050565b6020815260008251806020840152611692816040850160208701611627565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212207e56a8be86ed6b4d42ced575f9ab09959db5b146615705c97902be777a39503e64736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xCD3293DE GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xCD3293DE EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x9EAB5253 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xC6728C6C EQ PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E1A7D4D GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x4641257D EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x4E71E0C8 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x56715761 EQ PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D41E79 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8AE4B0C EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x1674BADE EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x182A89E6 EQ PUSH2 0x1DE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x134E JUMP JUMPDEST PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18A PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x134E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND SWAP3 PUSH13 0x1000000000000000000000000 DUP2 DIV SWAP1 SWAP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP6 DUP7 AND DUP2 MSTORE SWAP5 SWAP1 SWAP4 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x122 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1377 JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DC PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0x13DC JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x1377 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0xA42 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0xBE2 JUMP JUMPDEST PUSH2 0x118 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0xC5C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x122 JUMP JUMPDEST PUSH2 0x252 PUSH2 0xCED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x118 PUSH2 0xCFE JUMP JUMPDEST PUSH2 0x118 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x232 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x134E JUMP JUMPDEST PUSH2 0xDB0 JUMP JUMPDEST PUSH2 0x232 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH13 0x1000000000000000000000000 DUP3 DIV AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP4 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 ADD SLOAD PUSH1 0x60 DUP4 ADD DUP2 SWAP1 MSTORE DUP4 SWAP2 PUSH2 0x339 SWAP1 TIMESTAMP PUSH2 0x14D9 JUMP JUMPDEST PUSH2 0x343 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x150F JUMP JUMPDEST DUP3 MLOAD SWAP1 SWAP2 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 GT PUSH2 0x37F JUMPI DUP1 PUSH2 0x390 JUMP JUMPDEST DUP2 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3A0 PUSH2 0xE1A JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x3F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7A65726F206475726174696F6E00000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x850B0D4898947EAD6A23251622E8C2EA46D217FA5FF2C1F06638F92E91880BFE SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x439 PUSH2 0xE1A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x6 SLOAD DUP7 SWAP2 SWAP1 PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0x493 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x656D707479206172726179000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST DUP3 DUP7 EQ DUP1 ISZERO PUSH2 0x4A1 JUMPI POP DUP3 DUP5 EQ JUMPDEST PUSH2 0x4ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76617279696E672D6C656E677468206172726179730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x880 JUMPI PUSH1 0x0 DUP11 DUP11 DUP4 DUP2 DUP2 LT PUSH2 0x50C JUMPI PUSH2 0x50C PUSH2 0x1527 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x521 SWAP2 SWAP1 PUSH2 0x134E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP10 DUP5 DUP2 DUP2 LT PUSH2 0x537 JUMPI PUSH2 0x537 PUSH2 0x1527 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP PUSH1 0x0 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x554 JUMPI PUSH2 0x554 PUSH2 0x1527 JUMP JUMPDEST PUSH1 0x20 MUL SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x62616420726563697069656E7400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 PUSH2 0x5EE DUP7 PUSH2 0x2BB JUMP JUMPDEST DUP4 SLOAD PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND MUL OR DUP5 SSTORE SWAP1 POP PUSH2 0x63F DUP2 DUP4 PUSH2 0x153D JUMP JUMPDEST PUSH2 0x657 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH2 0x14D9 JUMP JUMPDEST SWAP9 POP SWAP1 POP JUMPDEST DUP4 ISZERO PUSH2 0x7CD JUMPI DUP7 DUP4 LT ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x73686F72742076657374696E67206475726174696F6E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x70E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616C6C6F636174696F6E0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x718 DUP5 DUP10 PUSH2 0x150F JUMP JUMPDEST SWAP8 POP PUSH1 0x0 PUSH2 0x726 DUP5 DUP7 PUSH2 0x156A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x72617465207472756E636174656420746F207A65726F00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x782 DUP6 DUP4 PUSH2 0x158C JUMP JUMPDEST PUSH1 0x1 DUP5 ADD DUP3 SWAP1 SSTORE DUP4 SLOAD PUSH24 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xC0 SHL TIMESTAMP PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR DUP5 SSTORE SWAP2 POP PUSH2 0x7C6 PUSH1 0x3 DUP8 PUSH2 0xE74 JUMP JUMPDEST POP POP PUSH2 0x7F0 JUMP JUMPDEST DUP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x7F0 JUMPI PUSH2 0x7EE PUSH1 0x3 DUP7 PUSH2 0xE92 JUMP JUMPDEST POP JUMPDEST DUP2 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND OR DUP3 SSTORE PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH32 0x159E9E56DEC3D6BF3E3C20510A7B005A0B9F89BD991FF9EB0C4F387B1FD3682D SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP DUP1 PUSH2 0x879 SWAP1 PUSH2 0x15BC JUMP JUMPDEST SWAP1 POP PUSH2 0x4F0 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x900 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x924 SWAP2 SWAP1 PUSH2 0x15D6 JUMP JUMPDEST LT ISZERO PUSH2 0x972 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6C6F772062616C616E6365000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST POP PUSH1 0x5 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x987 PUSH2 0xE1A JUMP JUMPDEST DUP1 PUSH2 0x990 PUSH2 0xCFE JUMP JUMPDEST LT ISZERO PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6C6F772062616C616E6365000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0xA12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP4 PUSH2 0xEA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x430648DE173157E069201C943ADB2D4E340E7CF5B27B1B09C9CB852F03D63B56 SWAP1 PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 PUSH2 0xA5B SWAP1 PUSH2 0x2BB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0xAAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F2070656E64696E6720686172766573740000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xC0 SHL TIMESTAMP PUSH8 0xFFFFFFFFFFFFFFFF AND MUL PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP3 OR DUP6 SSTORE DUP4 SWAP3 DUP6 SWAP3 PUSH1 0x0 SWAP3 PUSH2 0xB0C SWAP3 DUP7 SWAP3 SWAP2 AND OR PUSH2 0x153D JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x5 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB4C SWAP2 SWAP1 PUSH2 0x14D9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0xB75 JUMPI PUSH2 0xB73 PUSH1 0x3 CALLER PUSH2 0xE92 JUMP JUMPDEST POP JUMPDEST PUSH2 0xBA9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP4 PUSH2 0xEA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE CALLER SWAP1 PUSH32 0x121C5042302BAE5FC561FBC64368F297CA60A880878E1E3A7F7E9380377260BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436C61696D61626C653A206E6F742070656E64696E67206F776E657200000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xC5A SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF2C JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xC64 PUSH2 0xE1A JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xCE3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436C61696D61626C653A2070656E64696E67206F776E6572206E6F74207A6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F20616464726573730000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0xC5A PUSH1 0x0 PUSH2 0xF2C JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF9 PUSH1 0x3 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDA6 SWAP2 SWAP1 PUSH2 0x15D6 JUMP JUMPDEST PUSH2 0xCF9 SWAP2 SWAP1 PUSH2 0x14D9 JUMP JUMPDEST PUSH2 0xDB8 PUSH2 0xE1A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x68F49B346B94582A8B5F9D10E3FE3365318FE8F191FF8DCE7C59C6CAD06B02F5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE89 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xFA8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE89 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xFF7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0xF27 SWAP1 DUP5 SWAP1 PUSH2 0x10EA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xFA1 DUP4 PUSH2 0x11CF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xFEF JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xE8C JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xE8C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x10E0 JUMPI PUSH1 0x0 PUSH2 0x101B PUSH1 0x1 DUP4 PUSH2 0x14D9 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x102F SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x14D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1094 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x104F JUMPI PUSH2 0x104F PUSH2 0x1527 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1072 JUMPI PUSH2 0x1072 PUSH2 0x1527 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x10A5 JUMPI PUSH2 0x10A5 PUSH2 0x15EF JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xE8C JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xE8C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x113F DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x122B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0xF27 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x115D SWAP2 SWAP1 PUSH2 0x1605 JUMP JUMPDEST PUSH2 0xF27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x121F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x120B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x390 DUP5 DUP5 PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1252 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x128F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1294 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x12A5 DUP8 DUP4 DUP4 DUP8 PUSH2 0x12B0 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x131F JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x1318 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x1318 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EC JUMP JUMPDEST POP DUP2 PUSH2 0x390 JUMP JUMPDEST PUSH2 0x390 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x1334 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3EC SWAP2 SWAP1 PUSH2 0x1673 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x13A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x13D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x13F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x140D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1419 DUP11 DUP4 DUP12 ADD PUSH2 0x1390 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x143E DUP11 DUP4 DUP12 ADD PUSH2 0x1390 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1464 DUP10 DUP3 DUP11 ADD PUSH2 0x1390 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x14B7 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1492 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x14EB JUMPI PUSH2 0x14EB PUSH2 0x14C3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x150A JUMPI PUSH2 0x150A PUSH2 0x14C3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1522 JUMPI PUSH2 0x1522 PUSH2 0x14C3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x1562 JUMPI PUSH2 0x1562 PUSH2 0x14C3 JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1587 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x15B3 JUMPI PUSH2 0x15B3 PUSH2 0x14C3 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x15CF JUMPI PUSH2 0x15CF PUSH2 0x14C3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xFA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1642 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x162A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1651 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1669 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1627 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1692 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1627 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH31 0x56A8BE86ED6B4D42CED575F9AB09959DB5B146615705C97902BE777A39503E PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"456:10148:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9790:493;;;;;;:::i;:::-;;:::i;:::-;;;474:25:25;;;462:2;447:18;9790:493:15;;;;;;;;1108:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1108:41:15;;;;;;;;;;;;745:26:25;798:15;;;780:34;;850:15;;;;845:2;830:18;;823:43;914:18;902:31;;;882:18;;;875:59;;;;965:2;950:18;;943:34;722:3;707:19;1108:41:15;510:473:25;8944:324:15;;;;;;:::i;:::-;;:::i;:::-;;5232:3530;;;;;;:::i;:::-;;:::i;4517:361::-;;;;;;:::i;:::-;;:::i;3423:917::-;;;:::i;329:168:14:-;;;:::i;1621:36:15:-;;;;;;676:204:14;;;:::i;1201:85:2:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:2;1201:85;;;-1:-1:-1;;;;;2802:55:25;;;2784:74;;2772:2;2757:18;1201:85:2;2638:226:25;9435:115:15;;;:::i;:::-;;;;;;;:::i;10483:118::-;;;:::i;1515:22::-;;;;;;888:101:14;968:13;;-1:-1:-1;;;;;968:13:14;888:101;;505:163;;;;;;:::i;:::-;;:::i;1383:29:15:-;;;;;9790:493;-1:-1:-1;;;;;9939:16:15;;9852:7;9939:16;;;:7;:16;;;;;;;;9916:39;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9916:39:15;;;;;;;;;;;;;;;;;;;;9852:7;;10089:35;;:15;:35;:::i;:::-;10088:51;;;;:::i;:::-;10072:6;:12;;;:68;;;;;;:::i;:::-;10235:14;;10055:85;;-1:-1:-1;10226:23:15;;;;:49;;10269:6;10226:49;;;10252:14;;10226:49;;;10219:56;9790:493;-1:-1:-1;;;;9790:493:15:o;8944:324::-;1094:13:2;:11;:13::i;:::-;9084:14:15::1;9102:1;9084:19:::0;9076:45:::1;;;::::0;-1:-1:-1;;;9076:45:15;;4687:2:25;9076:45:15::1;::::0;::::1;4669:21:25::0;4726:2;4706:18;;;4699:30;4765:15;4745:18;;;4738:43;4798:18;;9076:45:15::1;;;;;;;;;9186:11;:28:::0;;;9230:30:::1;::::0;474:25:25;;;9230:30:15::1;::::0;462:2:25;447:18;9230:30:15::1;;;;;;;;8944:324:::0;:::o;5232:3530::-;1094:13:2;:11;:13::i;:::-;5540:7:15::1;::::0;5583:11:::1;::::0;5493:8;;5540:7;5476:14:::1;5676:11:::0;;;5668:35:::1;;;::::0;-1:-1:-1;;;5668:35:15;;5029:2:25;5668:35:15::1;::::0;::::1;5011:21:25::0;5068:2;5048:18;;;5041:30;5107:13;5087:18;;;5080:41;5138:18;;5668:35:15::1;4827:335:25::0;5668:35:15::1;5736:28:::0;;::::1;:58:::0;::::1;;;-1:-1:-1::0;5768:26:15;;::::1;5736:58;5714:129;;;::::0;-1:-1:-1;;;5714:129:15;;5369:2:25;5714:129:15::1;::::0;::::1;5351:21:25::0;5408:2;5388:18;;;5381:30;5447:23;5427:18;;;5420:51;5488:18;;5714:129:15::1;5167:345:25::0;5714:129:15::1;5912:9;5907:2601;5927:6;5923:1;:10;5907:2601;;;6011:15;6029:8;;6038:1;6029:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6011:29;;6055:18;6076:11;;6088:1;6076:14;;;;;;;:::i;:::-;;;;;;;6055:35;;6105:16;6124:9;;6134:1;6124:12;;;;;;;:::i;:::-;;;::::0;;;::::1;;::::0;-1:-1:-1;;;;;;;6225:21:15;::::1;6217:47;;;::::0;-1:-1:-1;;;6217:47:15;;5908:2:25;6217:47:15::1;::::0;::::1;5890:21:25::0;5947:2;5927:18;;;5920:30;5986:15;5966:18;;;5959:43;6019:18;;6217:47:15::1;5706:337:25::0;6217:47:15::1;-1:-1:-1::0;;;;;6385:16:15;::::1;6361:21;6385:16:::0;;;:7:::1;:16;::::0;;;;6442:14;;::::1;;6534:21:::0;;6530:521:::1;;6661:21;6692:23;6707:7;6692:14;:23::i;:::-;6735:29:::0;;;::::1;::::0;::::1;::::0;::::1;;;::::0;;;-1:-1:-1;6879:33:15::1;6735:29:::0;6879:16;:33:::1;:::i;:::-;6864:49;::::0;::::1;;::::0;::::1;:::i;:::-;::::0;-1:-1:-1;7021:14:15;-1:-1:-1;6530:521:15::1;7122:15:::0;;7118:1126:::1;;7279:14;7267:8;:26;;7259:61;;;::::0;-1:-1:-1;;;7259:61:15;;6492:2:25;7259:61:15::1;::::0;::::1;6474:21:25::0;6531:2;6511:18;;;6504:30;6570:24;6550:18;;;6543:52;6612:18;;7259:61:15::1;6290:346:25::0;7259:61:15::1;7361:16;7347:30:::0;::::1;;7339:61;;;::::0;-1:-1:-1;;;7339:61:15;;6843:2:25;7339:61:15::1;::::0;::::1;6825:21:25::0;6882:2;6862:18;;;6855:30;6921:20;6901:18;;;6894:48;6959:18;;7339:61:15::1;6641:342:25::0;7339:61:15::1;7477:24;7491:10:::0;7477:24;::::1;:::i;:::-;::::0;-1:-1:-1;7600:12:15::1;7615:21;7628:8:::0;7615:10;:21:::1;:::i;:::-;7600:36;;7663:4;7671:1;7663:9:::0;7655:44:::1;;;::::0;-1:-1:-1;;;7655:44:15;;7469:2:25;7655:44:15::1;::::0;::::1;7451:21:25::0;7508:2;7488:18;;;7481:30;7547:24;7527:18;;;7520:52;7589:18;;7655:44:15::1;7267:346:25::0;7655:44:15::1;7766:38;7793:10:::0;7766:38;::::1;:::i;:::-;7823:11;::::0;::::1;:18:::0;;;7860:43;;;::::1;-1:-1:-1::0;;;7887:15:15::1;7860:43;;;;::::0;;7766:38;-1:-1:-1;8020:30:15::1;:17;8042:7:::0;8020:21:::1;:30::i;:::-;;7139:927;7118:1126;;;8076:16;:21;;8096:1;8076:21:::0;8072:172:::1;;8195:33;:17;8220:7:::0;8195:24:::1;:33::i;:::-;;8072:172;8343:33:::0;;;::::1;;::::0;::::1;;::::0;;8452:44:::1;::::0;;8041:25:25;;;8097:2;8082:18;;8075:34;;;-1:-1:-1;;;;;8452:44:15;::::1;::::0;::::1;::::0;8014:18:25;8452:44:15::1;;;;;;;5940:2568;;;;;5935:3;;;;:::i;:::-;;;5907:2601;;;-1:-1:-1::0;8598:30:15::1;::::0;;;;8622:4:::1;8598:30;::::0;::::1;2784:74:25::0;8632:10:15;;8598:5:::1;-1:-1:-1::0;;;;;8598:15:15::1;::::0;::::1;::::0;2757:18:25;;8598:30:15::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;8590:68;;;::::0;-1:-1:-1;;;8590:68:15;;8711:2:25;8590:68:15::1;::::0;::::1;8693:21:25::0;8750:2;8730:18;;;8723:30;8789:13;8769:18;;;8762:41;8820:18;;8590:68:15::1;8509:335:25::0;8590:68:15::1;-1:-1:-1::0;8734:7:15::1;:20:::0;-1:-1:-1;;;;;;;5232:3530:15:o;4517:361::-;1094:13:2;:11;:13::i;:::-;4676:6:15::1;4660:12;:10;:12::i;:::-;:22;;4652:46;;;::::0;-1:-1:-1;;;4652:46:15;;8711:2:25;4652:46:15::1;::::0;::::1;8693:21:25::0;8750:2;8730:18;;;8723:30;8789:13;8769:18;;;8762:41;8820:18;;4652:46:15::1;8509:335:25::0;4652:46:15::1;4799:38;-1:-1:-1::0;;;;;4799:5:15::1;:18;4818:10;4830:6:::0;4799:18:::1;:38::i;:::-;4853:17;::::0;474:25:25;;;4853:17:15::1;::::0;462:2:25;447:18;4853:17:15::1;328:177:25::0;3423:917:15;3546:10;3514:21;3538:19;;;:7;:19;;;;;;3640:26;;:14;:26::i;:::-;3623:43;;3685:6;3695:1;3685:11;3677:42;;;;-1:-1:-1;;;3677:42:15;;9051:2:25;3677:42:15;;;9033:21:25;9090:2;9070:18;;;9063:30;9129:20;9109:18;;;9102:48;9167:18;;3677:42:15;8849:342:25;3677:42:15;3774:43;;3828:16;;;;-1:-1:-1;;;3801:15:15;3774:43;;;3828:16;;;;;;;3880:6;;3774:43;;-1:-1:-1;;3855:32:15;;3880:6;;3855:32;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3962:6;3951:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;4063:14:15;;;;;:19;4059:88;;4099:36;:17;4124:10;4099:24;:36::i;:::-;;4059:88;4249:38;-1:-1:-1;;;;;4249:5:15;:18;4268:10;4280:6;4249:18;:38::i;:::-;4303:29;;474:25:25;;;4313:10:15;;4303:29;;462:2:25;447:18;4303:29:15;;;;;;;3451:889;;3423:917::o;329:168:14:-;399:13;;-1:-1:-1;;;;;399:13:14;719:10:8;-1:-1:-1;;;;;383:29:14;;375:70;;;;-1:-1:-1;;;375:70:14;;9398:2:25;375:70:14;;;9380:21:25;9437:2;9417:18;;;9410:30;9476;9456:18;;;9449:58;9524:18;;375:70:14;9196:352:25;375:70:14;475:13;;456:33;;-1:-1:-1;;;;;475:13:14;456:18;:33::i;:::-;329:168::o;676:204::-;1094:13:2;:11;:13::i;:::-;758::14::1;::::0;-1:-1:-1;;;;;758:13:14::1;:27:::0;750:81:::1;;;::::0;-1:-1:-1;;;750:81:14;;9755:2:25;750:81:14::1;::::0;::::1;9737:21:25::0;9794:2;9774:18;;;9767:30;9833:34;9813:18;;;9806:62;9904:11;9884:18;;;9877:39;9933:19;;750:81:14::1;9553:405:25::0;750:81:14::1;842:30;869:1;842:18;:30::i;9435:115:15:-:0;9480:16;9516:26;:17;:24;:26::i;:::-;9509:33;;9435:115;:::o;10483:118::-;10586:7;;10553:30;;;;;10577:4;10553:30;;;2784:74:25;10526:7:15;;10586;-1:-1:-1;;;;;10553:5:15;:15;;;;2757:18:25;;10553:30:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;505:163:14:-;1094:13:2;:11;:13::i;:::-;595::14::1;:24:::0;;;::::1;-1:-1:-1::0;;;;;595:24:14;::::1;::::0;;::::1;::::0;;;635:25:::1;::::0;::::1;::::0;-1:-1:-1;;635:25:14::1;505:163:::0;:::o;1359:130:2:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:2;719:10:8;1422:23:2;1414:68;;;;-1:-1:-1;;;1414:68:2;;10165:2:25;1414:68:2;;;10147:21:25;;;10184:18;;;10177:30;10243:34;10223:18;;;10216:62;10295:18;;1414:68:2;9963:356:25;8297:150:13;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:13;;8390:4;:50::i;:::-;8383:57;;8297:150;;;;;:::o;8615:156::-;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:13;;8711:7;:53::i;763:205:6:-;902:58;;;-1:-1:-1;;;;;10516:55:25;;902:58:6;;;10498:74:25;10588:18;;;;10581:34;;;902:58:6;;;;;;;;;;10471:18:25;;;;902:58:6;;;;;;;;;;925:23;902:58;;;875:86;;895:5;;875:19;:86::i;:::-;763:205;;;:::o;2433:187:2:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:2;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;10251:300:13:-;10314:16;10342:22;10367:19;10375:3;10367:7;:19::i;:::-;10342:44;10251:300;-1:-1:-1;;;10251:300:13:o;2206:404::-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:13;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:13;2581:12;;2778:1388;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:13;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;3747:706:6;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;-1:-1:-1;;;;;4192:27:6;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:6;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;-1:-1:-1;;;4351:85:6;;11299:2:25;4351:85:6;;;11281:21:25;11338:2;11318:18;;;11311:30;11377:34;11357:18;;;11350:62;11448:12;11428:18;;;11421:40;11478:19;;4351:85:6;11097:406:25;5562:109:13;5618:16;5653:3;:11;;5646:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5562:109;;;:::o;3873:223:7:-;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4006;5241;5255:23;5282:6;-1:-1:-1;;;;;5282:11:7;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;4960:446;-1:-1:-1;;;;;;;4960:446:7:o;7466:628::-;7646:12;7674:7;7670:418;;;7701:10;:17;7722:1;7701:22;7697:286;;-1:-1:-1;;;;;1465:19:7;;;7908:60;;;;-1:-1:-1;;;7908:60:7;;12659:2:25;7908:60:7;;;12641:21:25;12698:2;12678:18;;;12671:30;12737:31;12717:18;;;12710:59;12786:18;;7908:60:7;12457:353:25;7908:60:7;-1:-1:-1;8003:10:7;7996:17;;7670:418;8044:33;8052:10;8064:12;8775:17;;:21;8771:379;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;-1:-1:-1;;;9119:20:7;;;;;;;;:::i;14:309:25:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;-1:-1:-1;;;;;224:5:25;220:54;213:5;210:65;200:93;;289:1;286;279:12;988:180;1047:6;1100:2;1088:9;1079:7;1075:23;1071:32;1068:52;;;1116:1;1113;1106:12;1068:52;-1:-1:-1;1139:23:25;;988:180;-1:-1:-1;988:180:25:o;1173:367::-;1236:8;1246:6;1300:3;1293:4;1285:6;1281:17;1277:27;1267:55;;1318:1;1315;1308:12;1267:55;-1:-1:-1;1341:20:25;;1384:18;1373:30;;1370:50;;;1416:1;1413;1406:12;1370:50;1453:4;1445:6;1441:17;1429:29;;1513:3;1506:4;1496:6;1493:1;1489:14;1481:6;1477:27;1473:38;1470:47;1467:67;;;1530:1;1527;1520:12;1467:67;1173:367;;;;;:::o;1545:1088::-;1703:6;1711;1719;1727;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1852:9;1839:23;1881:18;1922:2;1914:6;1911:14;1908:34;;;1938:1;1935;1928:12;1908:34;1977:70;2039:7;2030:6;2019:9;2015:22;1977:70;:::i;:::-;2066:8;;-1:-1:-1;1951:96:25;-1:-1:-1;2154:2:25;2139:18;;2126:32;;-1:-1:-1;2170:16:25;;;2167:36;;;2199:1;2196;2189:12;2167:36;2238:72;2302:7;2291:8;2280:9;2276:24;2238:72;:::i;:::-;2329:8;;-1:-1:-1;2212:98:25;-1:-1:-1;2417:2:25;2402:18;;2389:32;;-1:-1:-1;2433:16:25;;;2430:36;;;2462:1;2459;2452:12;2430:36;;2501:72;2565:7;2554:8;2543:9;2539:24;2501:72;:::i;:::-;1545:1088;;;;-1:-1:-1;1545:1088:25;;-1:-1:-1;1545:1088:25;;2592:8;;1545:1088;-1:-1:-1;;;1545:1088:25:o;2869:681::-;3040:2;3092:21;;;3162:13;;3065:18;;;3184:22;;;3011:4;;3040:2;3263:15;;;;3237:2;3222:18;;;3011:4;3306:218;3320:6;3317:1;3314:13;3306:218;;;3385:13;;-1:-1:-1;;;;;3381:62:25;3369:75;;3499:15;;;;3464:12;;;;3342:1;3335:9;3306:218;;;-1:-1:-1;3541:3:25;;2869:681;-1:-1:-1;;;;;;2869:681:25:o;3800:184::-;-1:-1:-1;;;3849:1:25;3842:88;3949:4;3946:1;3939:15;3973:4;3970:1;3963:15;3989:125;4029:4;4057:1;4054;4051:8;4048:34;;;4062:18;;:::i;:::-;-1:-1:-1;4099:9:25;;3989:125::o;4119:228::-;4159:7;4285:1;-1:-1:-1;;4213:74:25;4210:1;4207:81;4202:1;4195:9;4188:17;4184:105;4181:131;;;4292:18;;:::i;:::-;-1:-1:-1;4332:9:25;;4119:228::o;4352:128::-;4392:3;4423:1;4419:6;4416:1;4413:13;4410:39;;;4429:18;;:::i;:::-;-1:-1:-1;4465:9:25;;4352:128::o;5517:184::-;-1:-1:-1;;;5566:1:25;5559:88;5666:4;5663:1;5656:15;5690:4;5687:1;5680:15;6048:237;6087:4;6116:26;6192:10;;;;6162;;6214:12;;;6211:38;;;6229:18;;:::i;:::-;6266:13;;6048:237;-1:-1:-1;;;6048:237:25:o;6988:274::-;7028:1;7054;7044:189;;-1:-1:-1;;;7086:1:25;7079:88;7190:4;7187:1;7180:15;7218:4;7215:1;7208:15;7044:189;-1:-1:-1;7247:9:25;;6988:274::o;7618:244::-;7657:3;7685:26;7738:2;7735:1;7731:10;7768:2;7765:1;7761:10;7799:3;7795:2;7791:12;7786:3;7783:21;7780:47;;;7807:18;;:::i;:::-;7843:13;;7618:244;-1:-1:-1;;;;7618:244:25:o;8120:195::-;8159:3;-1:-1:-1;;8183:5:25;8180:77;8177:103;;8260:18;;:::i;:::-;-1:-1:-1;8307:1:25;8296:13;;8120:195::o;8320:184::-;8390:6;8443:2;8431:9;8422:7;8418:23;8414:32;8411:52;;;8459:1;8456;8449:12;8411:52;-1:-1:-1;8482:16:25;;8320:184;-1:-1:-1;8320:184:25:o;10626:::-;-1:-1:-1;;;10675:1:25;10668:88;10775:4;10772:1;10765:15;10799:4;10796:1;10789:15;10815:277;10882:6;10935:2;10923:9;10914:7;10910:23;10906:32;10903:52;;;10951:1;10948;10941:12;10903:52;10983:9;10977:16;11036:5;11029:13;11022:21;11015:5;11012:32;11002:60;;11058:1;11055;11048:12;11915:258;11987:1;11997:113;12011:6;12008:1;12005:13;11997:113;;;12087:11;;;12081:18;12068:11;;;12061:39;12033:2;12026:10;11997:113;;;12128:6;12125:1;12122:13;12119:48;;;12163:1;12154:6;12149:3;12145:16;12138:27;12119:48;;11915:258;;;:::o;12178:274::-;12307:3;12345:6;12339:13;12361:53;12407:6;12402:3;12395:4;12387:6;12383:17;12361:53;:::i;:::-;12430:16;;;;;12178:274;-1:-1:-1;;12178:274:25:o;12815:442::-;12964:2;12953:9;12946:21;12927:4;12996:6;12990:13;13039:6;13034:2;13023:9;13019:18;13012:34;13055:66;13114:6;13109:2;13098:9;13094:18;13089:2;13081:6;13077:15;13055:66;:::i;:::-;13173:2;13161:15;13178:66;13157:88;13142:104;;;;13248:2;13138:113;;12815:442;-1:-1:-1;;12815:442:25:o"},"methodIdentifiers":{"claimOwnership()":"4e71e0c8","getMembers()":"9eab5253","harvest()":"4641257d","members(address)":"08ae4b0c","minDuration()":"56715761","owner()":"8da5cb5b","pendingHarvest(address)":"07d41e79","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","reserve()":"cd3293de","setAllocations(address[],uint256[],uint256[])":"182a89e6","setMinDuration(uint256)":"1674bade","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","unreserved()":"c6728c6c","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributionToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"AllocationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Harvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinDuration\",\"type\":\"uint256\"}],\"name\":\"MinDurationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"PendingOwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"harvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"members\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"reserve\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"stash\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"lastUpdate\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingHarvest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"allocations\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"durations\",\"type\":\"uint256[]\"}],\"name\":\"setAllocations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinDuration\",\"type\":\"uint256\"}],\"name\":\"setMinDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unreserved\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"shung for Pangolin\",\"events\":{\"AllocationSet(address,uint256,uint256)\":{\"params\":{\"allocation\":\"The new amount of tokens allocated for the member.\",\"duration\":\"The time it will take to distribute the whole `allocation`.\",\"member\":\"The address of the member whose allocation was changed.\"}},\"Harvested(address,uint256)\":{\"params\":{\"amount\":\"The amount of reward tokens that was harvested.\",\"member\":\"The address of the member whose rewards were harvested.\"}},\"MinDurationSet(uint256)\":{\"params\":{\"newMinDuration\":\"The minimum duration that can be defined for any allocation set after this event.\"}},\"Withdrawn(uint256)\":{\"params\":{\"amount\":\"The amount of reward tokens that was withdrawn from the contract.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"distributionToken\":\"The address of the token to be distributed.\"}},\"getMembers()\":{\"returns\":{\"_0\":\"The list of all members who have remaining allocation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingHarvest(address)\":{\"params\":{\"account\":\"The address of the member.\"},\"returns\":{\"_0\":\"The amount of harvestable reward tokens of the member.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAllocations(address[],uint256[],uint256[])\":{\"params\":{\"accounts\":\"An array of member addresses.\",\"allocations\":\"The amount of tokens to allocate to the corresponding member.\",\"durations\":\"The duration the corresponding allocation will last for.\"}},\"setMinDuration(uint256)\":{\"params\":{\"newMinDuration\":\"The new minimum duration a vesting can last for.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unreserved()\":{\"returns\":{\"_0\":\"The amount of unallocated reward tokens in the contract.\"}},\"withdraw(uint256)\":{\"params\":{\"amount\":\"The amount of tokens to withdraw.\"}}},\"title\":\"Allocation Vester\",\"version\":1},\"userdoc\":{\"events\":{\"AllocationSet(address,uint256,uint256)\":{\"notice\":\"Emit an event whenever an allocation is changed.\"},\"Harvested(address,uint256)\":{\"notice\":\"Emit an event whenever a member's pending rewards are harvested.\"},\"MinDurationSet(uint256)\":{\"notice\":\"Emit an event whenever the `minDuration` is changed.\"},\"Withdrawn(uint256)\":{\"notice\":\"Emit an event when unallocated tokens from the contract are withdrawn by the admin.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructs a new AllocationVester contract.\"},\"getMembers()\":{\"notice\":\"External view function to get all active the members.\"},\"harvest()\":{\"notice\":\"External function to claim pending rewards of the caller.\"},\"members(address)\":{\"notice\":\"The mapping of member addresses to their properties.\"},\"minDuration()\":{\"notice\":\"The minimum duration a vesting can last.\"},\"pendingHarvest(address)\":{\"notice\":\"Public view function to get the amount of pending reward tokens of a member.\"},\"reserve()\":{\"notice\":\"The total amount of tokens set to be vested to all members.\"},\"setAllocations(address[],uint256[],uint256[])\":{\"notice\":\"External restricted function to add or removes members, or change their allocations.\"},\"setMinDuration(uint256)\":{\"notice\":\"External restricted function to change the minimum duration.\"},\"token()\":{\"notice\":\"The address of the token being distributed.\"},\"unreserved()\":{\"notice\":\"Public view function to get the amount of unallocated reward tokens in the contract.\"},\"withdraw(uint256)\":{\"notice\":\"External restricted function to withdraw unallocated tokens from the contract.\"}},\"notice\":\"This contract allows allocating and distributing tokens to recipients by vesting (i.e., streaming) it for arbitrary durations for each recipient.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allocation-vester/AllocationVester.sol\":\"AllocationVester\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/Claimable.sol\":{\"keccak256\":\"0x069b9d3847d68112b118cf523e07dc1df889faad3e15d6dc2e7173d44ed29935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be5a1360f3b0b2ac79898c9586bb4f4eb91b49c7c62d9fd19fd9c5882a9cc830\",\"dweb:/ipfs/QmdtFZW8P2uKdAVBgAM6yxxWqWETUFHMdfUCSbKKhkXfqk\"]},\"contracts/allocation-vester/AllocationVester.sol\":{\"keccak256\":\"0xc7a07bb90f1ae501511f530e4e61ef401c158aa968c155180d0031d519655da2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0090bf696ce3f3a7f840c32e11a046ce8e670b18197ff22fd7fa640d241fc4a3\",\"dweb:/ipfs/QmczkUV9mN4pfRXx1YesMDV9s28eg1AZQUY31SLHAiqFc6\"]}},\"version\":1}"}},"contracts/fee-collector/FeeCollector.sol":{"FeeCollector":{"abi":[{"inputs":[{"internalType":"address","name":"_wrappedToken","type":"address"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"bytes32","name":"_initHash","type":"bytes32"},{"internalType":"address","name":"_stakingRewards","type":"address"},{"internalType":"address","name":"_miniChef","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_governor","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HARVEST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_HARVEST_INCENTIVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAIR_INIT_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RECOVERY_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WRAPPED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPangolinPair[]","name":"liquidityPairs","type":"address[]"},{"internalType":"bool","name":"claimMiniChef","type":"bool"},{"internalType":"uint256","name":"minFinalBalance","type":"uint256"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"harvestIncentive","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isRecoverable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miniChef","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miniChefPoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"liquidityPairs","type":"address[]"}],"name":"recoverLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_harvestIncentive","type":"uint256"}],"name":"setHarvestIncentive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_miniChef","type":"address"}],"name":"setMiniChef","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"setMiniChefPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setRecoverable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingRewards","type":"address"}],"name":"setRewardsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardsDuration","type":"uint256"}],"name":"setRewardsDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"}],"name":"setTreasuryFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingRewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingRewardsRewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferStakingOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3931":{"entryPoint":null,"id":3931,"parameterSlots":9,"returnSlots":0},"@_528":{"entryPoint":null,"id":528,"parameterSlots":0,"returnSlots":0},"@_grantRole_283":{"entryPoint":716,"id":283,"parameterSlots":2,"returnSlots":0},"@_msgSender_1346":{"entryPoint":null,"id":1346,"parameterSlots":0,"returnSlots":1},"@_setRoleAdmin_251":{"entryPoint":877,"id":251,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_146":{"entryPoint":null,"id":146,"parameterSlots":1,"returnSlots":1},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":952,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1150,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes32t_addresst_addresst_uint256t_addresst_addresst_address_fromMemory":{"entryPoint":981,"id":null,"parameterSlots":2,"returnSlots":9},"abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1952:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:25","statements":[{"nodeType":"YulAssignment","src":"84:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:25"},"nodeType":"YulFunctionCall","src":"93:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:25"}]},{"body":{"nodeType":"YulBlock","src":"169:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:25"},"nodeType":"YulFunctionCall","src":"171:12:25"},"nodeType":"YulExpressionStatement","src":"171:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:25"},"nodeType":"YulFunctionCall","src":"150:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:25"},"nodeType":"YulFunctionCall","src":"146:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:25"},"nodeType":"YulFunctionCall","src":"135:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:25"},"nodeType":"YulFunctionCall","src":"125:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:25"},"nodeType":"YulFunctionCall","src":"118:50:25"},"nodeType":"YulIf","src":"115:70:25"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:25","type":""}],"src":"14:177:25"},{"body":{"nodeType":"YulBlock","src":"413:629:25","statements":[{"body":{"nodeType":"YulBlock","src":"460:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"469:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"472:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"462:6:25"},"nodeType":"YulFunctionCall","src":"462:12:25"},"nodeType":"YulExpressionStatement","src":"462:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"434:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"443:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"430:3:25"},"nodeType":"YulFunctionCall","src":"430:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"455:3:25","type":"","value":"288"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"426:3:25"},"nodeType":"YulFunctionCall","src":"426:33:25"},"nodeType":"YulIf","src":"423:53:25"},{"nodeType":"YulAssignment","src":"485:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"525:9:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"495:29:25"},"nodeType":"YulFunctionCall","src":"495:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"485:6:25"}]},{"nodeType":"YulAssignment","src":"544:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"588:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"599:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:25"},"nodeType":"YulFunctionCall","src":"584:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"554:29:25"},"nodeType":"YulFunctionCall","src":"554:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"544:6:25"}]},{"nodeType":"YulAssignment","src":"612:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"632:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"643:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"628:3:25"},"nodeType":"YulFunctionCall","src":"628:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"622:5:25"},"nodeType":"YulFunctionCall","src":"622:25:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"612:6:25"}]},{"nodeType":"YulAssignment","src":"656:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"700:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"711:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"696:3:25"},"nodeType":"YulFunctionCall","src":"696:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"666:29:25"},"nodeType":"YulFunctionCall","src":"666:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"656:6:25"}]},{"nodeType":"YulAssignment","src":"724:60:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"768:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"779:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"764:3:25"},"nodeType":"YulFunctionCall","src":"764:19:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"734:29:25"},"nodeType":"YulFunctionCall","src":"734:50:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"724:6:25"}]},{"nodeType":"YulAssignment","src":"793:36:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"813:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"824:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"809:3:25"},"nodeType":"YulFunctionCall","src":"809:19:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"803:5:25"},"nodeType":"YulFunctionCall","src":"803:26:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"793:6:25"}]},{"nodeType":"YulAssignment","src":"838:60:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"893:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"878:3:25"},"nodeType":"YulFunctionCall","src":"878:19:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"848:29:25"},"nodeType":"YulFunctionCall","src":"848:50:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"838:6:25"}]},{"nodeType":"YulAssignment","src":"907:60:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"951:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"962:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"947:3:25"},"nodeType":"YulFunctionCall","src":"947:19:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"917:29:25"},"nodeType":"YulFunctionCall","src":"917:50:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"907:6:25"}]},{"nodeType":"YulAssignment","src":"976:60:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1031:3:25","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1016:3:25"},"nodeType":"YulFunctionCall","src":"1016:19:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"986:29:25"},"nodeType":"YulFunctionCall","src":"986:50:25"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"976:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes32t_addresst_addresst_uint256t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"315:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"326:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"338:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"346:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"354:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"362:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"370:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"378:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"386:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"394:6:25","type":""},{"name":"value8","nodeType":"YulTypedName","src":"402:6:25","type":""}],"src":"196:846:25"},{"body":{"nodeType":"YulBlock","src":"1221:165:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1238:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1249:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1231:6:25"},"nodeType":"YulFunctionCall","src":"1231:21:25"},"nodeType":"YulExpressionStatement","src":"1231:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1283:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1268:3:25"},"nodeType":"YulFunctionCall","src":"1268:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1288:2:25","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1261:6:25"},"nodeType":"YulFunctionCall","src":"1261:30:25"},"nodeType":"YulExpressionStatement","src":"1261:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1311:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1322:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1307:3:25"},"nodeType":"YulFunctionCall","src":"1307:18:25"},{"hexValue":"496e76616c69642061646472657373","kind":"string","nodeType":"YulLiteral","src":"1327:17:25","type":"","value":"Invalid address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1300:6:25"},"nodeType":"YulFunctionCall","src":"1300:45:25"},"nodeType":"YulExpressionStatement","src":"1300:45:25"},{"nodeType":"YulAssignment","src":"1354:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1366:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1377:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1362:3:25"},"nodeType":"YulFunctionCall","src":"1362:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1354:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1198:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1212:4:25","type":""}],"src":"1047:339:25"},{"body":{"nodeType":"YulBlock","src":"1472:127:25","statements":[{"body":{"nodeType":"YulBlock","src":"1518:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1527:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1530:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1520:6:25"},"nodeType":"YulFunctionCall","src":"1520:12:25"},"nodeType":"YulExpressionStatement","src":"1520:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1493:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1502:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1485:3:25"},"nodeType":"YulFunctionCall","src":"1485:32:25"},"nodeType":"YulIf","src":"1482:52:25"},{"nodeType":"YulAssignment","src":"1543:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1583:9:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1553:29:25"},"nodeType":"YulFunctionCall","src":"1553:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1543:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1438:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1449:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1461:6:25","type":""}],"src":"1391:208:25"},{"body":{"nodeType":"YulBlock","src":"1778:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1795:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1806:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1788:6:25"},"nodeType":"YulFunctionCall","src":"1788:21:25"},"nodeType":"YulExpressionStatement","src":"1788:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1840:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1825:3:25"},"nodeType":"YulFunctionCall","src":"1825:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1818:6:25"},"nodeType":"YulFunctionCall","src":"1818:30:25"},"nodeType":"YulExpressionStatement","src":"1818:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1868:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1879:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:25"},"nodeType":"YulFunctionCall","src":"1864:18:25"},{"hexValue":"496e76616c6964207374616b696e6720726577617264","kind":"string","nodeType":"YulLiteral","src":"1884:24:25","type":"","value":"Invalid staking reward"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1857:6:25"},"nodeType":"YulFunctionCall","src":"1857:52:25"},"nodeType":"YulExpressionStatement","src":"1857:52:25"},{"nodeType":"YulAssignment","src":"1918:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1930:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1941:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:25"},"nodeType":"YulFunctionCall","src":"1926:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1918:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1755:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1769:4:25","type":""}],"src":"1604:346:25"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_bytes32t_addresst_addresst_uint256t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := mload(add(headStart, 64))\n        value3 := abi_decode_address_fromMemory(add(headStart, 96))\n        value4 := abi_decode_address_fromMemory(add(headStart, 128))\n        value5 := mload(add(headStart, 160))\n        value6 := abi_decode_address_fromMemory(add(headStart, 192))\n        value7 := abi_decode_address_fromMemory(add(headStart, 224))\n        value8 := abi_decode_address_fromMemory(add(headStart, 256))\n    }\n    function abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid address\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Invalid staking reward\")\n        tail := add(headStart, 96)\n    }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e06040526105dc600455600a6005553480156200001c57600080fd5b5060405162002cfb38038062002cfb8339810160408190526200003f91620003d5565b6001805460ff191690556001600160a01b03808a1660c05288811660805260a08890528616620000a85760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b6000866001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010f91906200047e565b90506001600160a01b038116620001695760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207374616b696e67207265776172640000000000000000000060448201526064016200009f565b60018054610100600160a81b0319166101006001600160a01b038a81169190910291909117909155600280546001600160a01b031990811684841617909155600680548216898416179055600787905560038054909116918616919091179055620001d6600083620002cc565b620002027f90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c83620002cc565b6200022e7f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d83620002cc565b6200025a7f0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff883620002cc565b620002867f0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff8806200036d565b620002a160008051602062002cdb83398151915284620002cc565b620002bc60008051602062002cdb833981519152806200036d565b50505050505050505050620004a3565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000369576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003283390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b80516001600160a01b0381168114620003d057600080fd5b919050565b60008060008060008060008060006101208a8c031215620003f557600080fd5b620004008a620003b8565b98506200041060208b01620003b8565b975060408a015196506200042760608b01620003b8565b95506200043760808b01620003b8565b945060a08a015193506200044e60c08b01620003b8565b92506200045e60e08b01620003b8565b91506200046f6101008b01620003b8565b90509295985092959850929598565b6000602082840312156200049157600080fd5b6200049c82620003b8565b9392505050565b60805160a05160c0516127e5620004f6600039600081816104f301528181611774015281816117af01526117fa0152600081816105d60152611bd601526000818161032d0152611b9b01526127e56000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80637e2be19511610160578063cd6e7def116100d8578063d73792a91161008c578063f0f4426011610071578063f0f44260146105be578063fa881298146105d1578063fbb12d07146105f857600080fd5b8063d73792a9146105a2578063dfa0dfa5146105ab57600080fd5b8063cf3b69b6116100bd578063cf3b69b614610574578063cfabe8ed1461057c578063d547741f1461058f57600080fd5b8063cd6e7def14610558578063ce306b801461056157600080fd5b8063a217fddf1161012f578063cc1a378f11610114578063cc1a378f14610515578063cc32d17614610528578063ccc574901461053157600080fd5b8063a217fddf146104e6578063b7c71db4146104ee57600080fd5b80637e2be195146104815780638456cb591461049457806386da6f7c1461049c57806391d14854146104af57600080fd5b80633792a7fb1161020e5780635c975abb116101c2578063635cc7b8116101a7578063635cc7b81461044357806364b87a701461045657806377e741c71461046e57600080fd5b80635c975abb1461042557806361d027b31461043057600080fd5b80633f4ba83a116101f35780633f4ba83a146103f75780634005760a146103ff578063572996c71461041257600080fd5b80633792a7fb146103bd578063389ed267146103d057600080fd5b80632dd31000116102655780633024a3071161024a5780633024a3071461037a57806331993a1c1461038357806336568abe146103aa57600080fd5b80632dd31000146103285780632f2ff15d1461036757600080fd5b806301ffc9a71461029757806316242bee146102bf578063248a9ca3146102d45780632851bbc914610305575b600080fd5b6102aa6102a53660046122ba565b61061f565b60405190151581526020015b60405180910390f35b6102d26102cd36600461231f565b6106b8565b005b6102f76102e2366004612358565b60009081526020819052604090206001015490565b6040519081526020016102b6565b6102aa610313366004612371565b60086020526000908152604090205460ff1681565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b6565b6102d261037536600461238e565b61070e565b6102f760075481565b6102f77f0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff881565b6102d26103b836600461238e565b610738565b6102d26103cb366004612358565b6107c9565b6102f77f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d81565b6102d26107da565b60065461034f906001600160a01b031681565b6102d2610420366004612371565b61080f565b60015460ff166102aa565b60035461034f906001600160a01b031681565b6102d26104513660046123ff565b61085d565b60015461034f9061010090046001600160a01b031681565b6102d261047c366004612358565b610b5d565b6102d261048f366004612358565b610bec565b6102d2610cad565b60025461034f906001600160a01b031681565b6102aa6104bd36600461238e565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6102f7600081565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b6102d2610523366004612358565b610cdf565b6102f760045481565b6102f77f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5581565b6102f760055481565b6102d261056f36600461245c565b610d6a565b6102f760c881565b6102d261058a366004612371565b610ee5565b6102d261059d36600461238e565b610f41565b6102f761271081565b6102d26105b9366004612371565b610f66565b6102d26105cc366004612371565b6110e1565b6102f77f000000000000000000000000000000000000000000000000000000000000000081565b6102f77f90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106b257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7f0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff86106e28161112f565b506001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000828152602081905260409020600101546107298161112f565b6107338383611139565b505050565b6001600160a01b03811633146107bb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6107c582826111d7565b5050565b60006107d48161112f565b50600755565b7f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d6108048161112f565b61080c611256565b50565b600061081a8161112f565b6001600160a01b03821661082d57600080fd5b506006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6108656112a8565b7f90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c61088f8161112f565b6002546001600160a01b031684156108df576108df8686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508592506112fd915050565b8315610967576006546007546040517f18fccc7600000000000000000000000000000000000000000000000000000000815260048101919091523060248201526001600160a01b03909116906318fccc7690604401600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d2919061249e565b905083811015610a245760405162461bcd60e51b815260206004820152600d60248201527f4869676820536c6970706167650000000000000000000000000000000000000060448201526064016107b2565b600061271060055483610a3791906124cd565b610a4191906124ec565b9050600061271060045484610a5691906124cd565b610a6091906124ec565b9050600081610a6f848661250e565b610a79919061250e565b90508015610b17576001546001600160a01b03610100909104811690610aa29087168284611416565b6040517f3c6b16ab000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03821690633c6b16ab90602401600060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b50505050505b8115610b3757600354610b37906001600160a01b03878116911684611416565b8215610b5157610b516001600160a01b0386163385611416565b50505050505050505050565b7f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55610b878161112f565b61271082600554610b989190612525565b1115610be65760405162461bcd60e51b815260206004820152601660248201527f546f74616c2066656573206d757374203c3d203130300000000000000000000060448201526064016107b2565b50600455565b6000610bf78161112f565b60c8821115610c485760405162461bcd60e51b815260206004820152601360248201527f496e63656e7469766520746f6f206c617267650000000000000000000000000060448201526064016107b2565b61271060045483610c599190612525565b1115610ca75760405162461bcd60e51b815260206004820152601660248201527f546f74616c2066656573206d757374203c3d203130300000000000000000000060448201526064016107b2565b50600555565b7f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d610cd78161112f565b61080c611496565b6000610cea8161112f565b6001546040517fcc1a378f000000000000000000000000000000000000000000000000000000008152600481018490526101009091046001600160a01b03169063cc1a378f906024015b600060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050505050565b610d726112a8565b6000610d7d8161112f565b6003546001600160a01b03168260005b81811015610d625760086000878784818110610dab57610dab61253d565b9050602002016020810190610dc09190612371565b6001600160a01b0316815260208101919091526040016000205460ff16610e295760405162461bcd60e51b815260206004820152600e60248201527f43616e6e6f74207265636f76657200000000000000000000000000000000000060448201526064016107b2565b6000868683818110610e3d57610e3d61253d565b9050602002016020810190610e529190612371565b6040516370a0823160e01b8152306004820152909150610ed49085906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec3919061249e565b6001600160a01b0384169190611416565b50610ede81612553565b9050610d8d565b6000610ef08161112f565b6001546040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526101009092049091169063f2fde38b90602401610d34565b600082815260208190526040902060010154610f5c8161112f565b61073383836111d7565b6000610f718161112f565b6001600160a01b038216610fc75760405162461bcd60e51b815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016107b2565b6000826001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102b919061256d565b90506001600160a01b0381166110835760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207374616b696e67207265776172640000000000000000000060448201526064016107b2565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03958616021790556002805473ffffffffffffffffffffffffffffffffffffffff1916919093161790915550565b60006110ec8161112f565b6001600160a01b0382166110ff57600080fd5b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61080c81336114d1565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107c5576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111933390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156107c5576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61125e611544565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60015460ff16156112fb5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016107b2565b565b60005b825181101561073357600083828151811061131d5761131d61253d565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611396919061249e565b90508015611403576000806000806113ae8686611596565b9350935093509350876001600160a01b0316846001600160a01b0316146113da576113da848985611772565b876001600160a01b0316826001600160a01b0316146113fe576113fe828983611772565b505050505b50508061140f90612553565b9050611300565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261073390849061181f565b61149e6112a8565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361128b565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107c55761150281611904565b61150d836020611916565b60405160200161151e9291906125ba565b60408051601f198184030181529082905262461bcd60e51b82526107b291600401612667565b60015460ff166112fb5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016107b2565b600080600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fe919061256d565b9350856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611662919061256d565b9150856001600160a01b03166116788584611b46565b6001600160a01b0316146116ce5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c69642070616972000000000000000000000000000000000000000060448201526064016107b2565b6116e26001600160a01b0387168787611416565b6040517f89afcb440000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038716906389afcb449060240160408051808303816000875af1158015611740573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611764919061267a565b949790965091945090915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806117e357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b156117f357610733818484611c73565b61073381847f000000000000000000000000000000000000000000000000000000000000000085611dad565b6000611874826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120099092919063ffffffff16565b8051909150156107335780806020019051810190611892919061269e565b6107335760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107b2565b60606106b26001600160a01b03831660145b606060006119258360026124cd565b611930906002612525565b67ffffffffffffffff811115611948576119486126bb565b6040519080825280601f01601f191660200182016040528015611972576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106119a9576119a961253d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a0c57611a0c61253d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611a488460026124cd565b611a53906001612525565b90505b6001811115611af0577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a9457611a9461253d565b1a60f81b828281518110611aaa57611aaa61253d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611ae9816126d1565b9050611a56565b508315611b3f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107b2565b9392505050565b6000806000836001600160a01b0316856001600160a01b031610611b6b578385611b6e565b84845b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b16603482015291935091507f000000000000000000000000000000000000000000000000000000000000000090604801604051602081830303815290604052805190602001207f0000000000000000000000000000000000000000000000000000000000000000604051602001611c52939291907fff00000000000000000000000000000000000000000000000000000000000000815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f19818403018152919052805160209091012095945050505050565b6000611c7f8383611b46565b90506000611c8f85838686612020565b9050611ca56001600160a01b0385168387611416565b826001600160a01b0316846001600160a01b03161015611d3557604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0384169163022c0d9f91611cfe919085903090602481016126e8565b600060405180830381600087803b158015611d1857600080fd5b505af1158015611d2c573d6000803e3d6000fd5b50505050611da6565b604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0384169163022c0d9f91611d739185913090602481016126e8565b600060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050505b5050505050565b6000611db98484611b46565b90506000611dc78484611b46565b90506000611dd787848888612020565b90506000611de782848888612020565b9050611dfd6001600160a01b038816858a611416565b856001600160a01b0316876001600160a01b03161015611e8d57604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0386169163022c0d9f91611e56919086908890602481016126e8565b600060405180830381600087803b158015611e7057600080fd5b505af1158015611e84573d6000803e3d6000fd5b50505050611efe565b604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0386169163022c0d9f91611ecb9186918890602481016126e8565b600060405180830381600087803b158015611ee557600080fd5b505af1158015611ef9573d6000803e3d6000fd5b505050505b846001600160a01b0316866001600160a01b03161015611f8e57604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0385169163022c0d9f91611f57919085903090602481016126e8565b600060405180830381600087803b158015611f7157600080fd5b505af1158015611f85573d6000803e3d6000fd5b50505050611fff565b604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0385169163022c0d9f91611fcc9185913090602481016126e8565b600060405180830381600087803b158015611fe657600080fd5b505af1158015611ffa573d6000803e3d6000fd5b505050505b5050505050505050565b6060612018848460008561212a565b949350505050565b6000806000856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190612743565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600080856001600160a01b0316876001600160a01b0316106120cf5782846120d2565b83835b909250905060006120e58a6103e56124cd565b905060006120f383836124cd565b9050600082612104866103e86124cd565b61210e9190612525565b905061211a81836124ec565b9c9b505050505050505050505050565b6060824710156121a25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016107b2565b600080866001600160a01b031685876040516121be9190612793565b60006040518083038185875af1925050503d80600081146121fb576040519150601f19603f3d011682016040523d82523d6000602084013e612200565b606091505b50915091506122118783838761221c565b979650505050505050565b6060831561228b578251600003612284576001600160a01b0385163b6122845760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107b2565b5081612018565b61201883838151156122a05781518083602001fd5b8060405162461bcd60e51b81526004016107b29190612667565b6000602082840312156122cc57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b3f57600080fd5b6001600160a01b038116811461080c57600080fd5b801515811461080c57600080fd5b6000806040838503121561233257600080fd5b823561233d816122fc565b9150602083013561234d81612311565b809150509250929050565b60006020828403121561236a57600080fd5b5035919050565b60006020828403121561238357600080fd5b8135611b3f816122fc565b600080604083850312156123a157600080fd5b82359150602083013561234d816122fc565b60008083601f8401126123c557600080fd5b50813567ffffffffffffffff8111156123dd57600080fd5b6020830191508360208260051b85010111156123f857600080fd5b9250929050565b6000806000806060858703121561241557600080fd5b843567ffffffffffffffff81111561242c57600080fd5b612438878288016123b3565b909550935050602085013561244c81612311565b9396929550929360400135925050565b6000806020838503121561246f57600080fd5b823567ffffffffffffffff81111561248657600080fd5b612492858286016123b3565b90969095509350505050565b6000602082840312156124b057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156124e7576124e76124b7565b500290565b60008261250957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612520576125206124b7565b500390565b60008219821115612538576125386124b7565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198203612566576125666124b7565b5060010190565b60006020828403121561257f57600080fd5b8151611b3f816122fc565b60005b838110156125a557818101518382015260200161258d565b838111156125b4576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516125f281601785016020880161258a565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161262f81602884016020880161258a565b01602801949350505050565b6000815180845261265381602086016020860161258a565b601f01601f19169290920160200192915050565b602081526000611b3f602083018461263b565b6000806040838503121561268d57600080fd5b505080516020909101519092909150565b6000602082840312156126b057600080fd5b8151611b3f81612311565b634e487b7160e01b600052604160045260246000fd5b6000816126e0576126e06124b7565b506000190190565b8481528360208201526001600160a01b0383166040820152608060608201526000612716608083018461263b565b9695505050505050565b80516dffffffffffffffffffffffffffff8116811461273e57600080fd5b919050565b60008060006060848603121561275857600080fd5b61276184612720565b925061276f60208501612720565b9150604084015163ffffffff8116811461278857600080fd5b809150509250925092565b600082516127a581846020870161258a565b919091019291505056fea26469706673582212207c791ea85fca9fb53c7a043b5c87abb267791256910b8e33717b16a8665419ce64736f6c634300080d00337935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE PUSH2 0x5DC PUSH1 0x4 SSTORE PUSH1 0xA PUSH1 0x5 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2CFB CODESIZE SUB DUP1 PUSH3 0x2CFB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x3F SWAP2 PUSH3 0x3D5 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP11 AND PUSH1 0xC0 MSTORE DUP9 DUP2 AND PUSH1 0x80 MSTORE PUSH1 0xA0 DUP9 SWAP1 MSTORE DUP7 AND PUSH3 0xA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C69642061646472657373 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD1AF0C7D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x10F SWAP2 SWAP1 PUSH3 0x47E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x169 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207374616B696E672072657761726400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x9F JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 SWAP1 SWAP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND DUP5 DUP5 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP1 SLOAD DUP3 AND DUP10 DUP5 AND OR SWAP1 SSTORE PUSH1 0x7 DUP8 SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x1D6 PUSH1 0x0 DUP4 PUSH3 0x2CC JUMP JUMPDEST PUSH3 0x202 PUSH32 0x90FF0FDC2A5E2F52090B2C8A629804C58D5C1156B5405C8437A00DA5ABBA239C DUP4 PUSH3 0x2CC JUMP JUMPDEST PUSH3 0x22E PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D DUP4 PUSH3 0x2CC JUMP JUMPDEST PUSH3 0x25A PUSH32 0xACF805600123EF007091DA3B3FFB39474074C656C127AA68CB0FFEC232A8FF8 DUP4 PUSH3 0x2CC JUMP JUMPDEST PUSH3 0x286 PUSH32 0xACF805600123EF007091DA3B3FFB39474074C656C127AA68CB0FFEC232A8FF8 DUP1 PUSH3 0x36D JUMP JUMPDEST PUSH3 0x2A1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2CDB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 PUSH3 0x2CC JUMP JUMPDEST PUSH3 0x2BC PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2CDB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH3 0x36D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP PUSH3 0x4A3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x369 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x328 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH3 0x3F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x400 DUP11 PUSH3 0x3B8 JUMP JUMPDEST SWAP9 POP PUSH3 0x410 PUSH1 0x20 DUP12 ADD PUSH3 0x3B8 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD MLOAD SWAP7 POP PUSH3 0x427 PUSH1 0x60 DUP12 ADD PUSH3 0x3B8 JUMP JUMPDEST SWAP6 POP PUSH3 0x437 PUSH1 0x80 DUP12 ADD PUSH3 0x3B8 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD MLOAD SWAP4 POP PUSH3 0x44E PUSH1 0xC0 DUP12 ADD PUSH3 0x3B8 JUMP JUMPDEST SWAP3 POP PUSH3 0x45E PUSH1 0xE0 DUP12 ADD PUSH3 0x3B8 JUMP JUMPDEST SWAP2 POP PUSH3 0x46F PUSH2 0x100 DUP12 ADD PUSH3 0x3B8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x49C DUP3 PUSH3 0x3B8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x27E5 PUSH3 0x4F6 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4F3 ADD MSTORE DUP2 DUP2 PUSH2 0x1774 ADD MSTORE DUP2 DUP2 PUSH2 0x17AF ADD MSTORE PUSH2 0x17FA ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x5D6 ADD MSTORE PUSH2 0x1BD6 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x32D ADD MSTORE PUSH2 0x1B9B ADD MSTORE PUSH2 0x27E5 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x292 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7E2BE195 GT PUSH2 0x160 JUMPI DUP1 PUSH4 0xCD6E7DEF GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xF0F44260 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xF0F44260 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xFA881298 EQ PUSH2 0x5D1 JUMPI DUP1 PUSH4 0xFBB12D07 EQ PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0xDFA0DFA5 EQ PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCF3B69B6 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xCF3B69B6 EQ PUSH2 0x574 JUMPI DUP1 PUSH4 0xCFABE8ED EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCD6E7DEF EQ PUSH2 0x558 JUMPI DUP1 PUSH4 0xCE306B80 EQ PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x12F JUMPI DUP1 PUSH4 0xCC1A378F GT PUSH2 0x114 JUMPI DUP1 PUSH4 0xCC1A378F EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0xCC32D176 EQ PUSH2 0x528 JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x4E6 JUMPI DUP1 PUSH4 0xB7C71DB4 EQ PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7E2BE195 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x494 JUMPI DUP1 PUSH4 0x86DA6F7C EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3792A7FB GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x635CC7B8 GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x635CC7B8 EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x64B87A70 EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x77E741C7 EQ PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x425 JUMPI DUP1 PUSH4 0x61D027B3 EQ PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x3F7 JUMPI DUP1 PUSH4 0x4005760A EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x572996C7 EQ PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3792A7FB EQ PUSH2 0x3BD JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DD31000 GT PUSH2 0x265 JUMPI DUP1 PUSH4 0x3024A307 GT PUSH2 0x24A JUMPI DUP1 PUSH4 0x3024A307 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x31993A1C EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DD31000 EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x16242BEE EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x2851BBC9 EQ PUSH2 0x305 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22BA JUMP JUMPDEST PUSH2 0x61F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D2 PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x231F JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2F7 PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x34F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x375 CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH2 0x70E JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0xACF805600123EF007091DA3B3FFB39474074C656C127AA68CB0FFEC232A8FF8 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH2 0x738 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x7DA JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x34F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x420 CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x80F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x34F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x85D JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x34F SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x48F CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xBEC JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0xCAD JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x34F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x34F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xCDF JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x7935BD0AE54BC31F548C14DBA4D37C5C64B3F8CA900CB468FB8ABD54D5894F55 DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x56F CALLDATASIZE PUSH1 0x4 PUSH2 0x245C JUMP JUMPDEST PUSH2 0xD6A JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0xC8 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0xEE5 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH2 0xF41 JUMP JUMPDEST PUSH2 0x2F7 PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0xF66 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x10E1 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x90FF0FDC2A5E2F52090B2C8A629804C58D5C1156B5405C8437A00DA5ABBA239C DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x6B2 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xACF805600123EF007091DA3B3FFB39474074C656C127AA68CB0FFEC232A8FF8 PUSH2 0x6E2 DUP2 PUSH2 0x112F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x729 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x733 DUP4 DUP4 PUSH2 0x1139 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x7BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7C5 DUP3 DUP3 PUSH2 0x11D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D4 DUP2 PUSH2 0x112F JUMP JUMPDEST POP PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D PUSH2 0x804 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x80C PUSH2 0x1256 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x81A DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x865 PUSH2 0x12A8 JUMP JUMPDEST PUSH32 0x90FF0FDC2A5E2F52090B2C8A629804C58D5C1156B5405C8437A00DA5ABBA239C PUSH2 0x88F DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 ISZERO PUSH2 0x8DF JUMPI PUSH2 0x8DF DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP6 SWAP3 POP PUSH2 0x12FD SWAP2 POP POP JUMP JUMPDEST DUP4 ISZERO PUSH2 0x967 JUMPI PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18FCCC7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x18FCCC76 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x94E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9D2 SWAP2 SWAP1 PUSH2 0x249E JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xA24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4869676820536C69707061676500000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2710 PUSH1 0x5 SLOAD DUP4 PUSH2 0xA37 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0xA41 SWAP2 SWAP1 PUSH2 0x24EC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2710 PUSH1 0x4 SLOAD DUP5 PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x24EC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0xA6F DUP5 DUP7 PUSH2 0x250E JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x250E JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0xAA2 SWAP1 DUP8 AND DUP3 DUP5 PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3C6B16AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3C6B16AB SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB11 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST DUP2 ISZERO PUSH2 0xB37 JUMPI PUSH1 0x3 SLOAD PUSH2 0xB37 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP2 AND DUP5 PUSH2 0x1416 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xB51 JUMPI PUSH2 0xB51 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER DUP6 PUSH2 0x1416 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x7935BD0AE54BC31F548C14DBA4D37C5C64B3F8CA900CB468FB8ABD54D5894F55 PUSH2 0xB87 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x2710 DUP3 PUSH1 0x5 SLOAD PUSH2 0xB98 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST GT ISZERO PUSH2 0xBE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x546F74616C2066656573206D757374203C3D2031303000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST POP PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF7 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0xC8 DUP3 GT ISZERO PUSH2 0xC48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E63656E7469766520746F6F206C6172676500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH2 0x2710 PUSH1 0x4 SLOAD DUP4 PUSH2 0xC59 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST GT ISZERO PUSH2 0xCA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x546F74616C2066656573206D757374203C3D2031303000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST POP PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D PUSH2 0xCD7 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x80C PUSH2 0x1496 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCEA DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCC1A378F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCC1A378F SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD62 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD72 PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7D DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD62 JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xDAB JUMPI PUSH2 0xDAB PUSH2 0x253D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xDC0 SWAP2 SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xE29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207265636F766572000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0xE3D JUMPI PUSH2 0xE3D PUSH2 0x253D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE52 SWAP2 SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xED4 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEC3 SWAP2 SWAP1 PUSH2 0x249E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 SWAP1 PUSH2 0x1416 JUMP JUMPDEST POP PUSH2 0xEDE DUP2 PUSH2 0x2553 JUMP JUMPDEST SWAP1 POP PUSH2 0xD8D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF0 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0x100 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH2 0xD34 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xF5C DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x733 DUP4 DUP4 PUSH2 0x11D7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C696420616464726573730000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD1AF0C7D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x102B SWAP2 SWAP1 PUSH2 0x256D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1083 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207374616B696E672072657761726400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FF AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND MUL OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP4 AND OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10EC DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x80C DUP2 CALLER PUSH2 0x14D1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7C5 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1193 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x7C5 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x125E PUSH2 0x1544 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x12FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x733 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x131D JUMPI PUSH2 0x131D PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1372 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1396 SWAP2 SWAP1 PUSH2 0x249E JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1403 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x13AE DUP7 DUP7 PUSH2 0x1596 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13DA JUMPI PUSH2 0x13DA DUP5 DUP10 DUP6 PUSH2 0x1772 JUMP JUMPDEST DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13FE JUMPI PUSH2 0x13FE DUP3 DUP10 DUP4 PUSH2 0x1772 JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP DUP1 PUSH2 0x140F SWAP1 PUSH2 0x2553 JUMP JUMPDEST SWAP1 POP PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0x733 SWAP1 DUP5 SWAP1 PUSH2 0x181F JUMP JUMPDEST PUSH2 0x149E PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 CALLER PUSH2 0x128B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7C5 JUMPI PUSH2 0x1502 DUP2 PUSH2 0x1904 JUMP JUMPDEST PUSH2 0x150D DUP4 PUSH1 0x20 PUSH2 0x1916 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x151E SWAP3 SWAP2 SWAP1 PUSH2 0x25BA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x7B2 SWAP2 PUSH1 0x4 ADD PUSH2 0x2667 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND PUSH2 0x12FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15FE SWAP2 SWAP1 PUSH2 0x256D JUMP JUMPDEST SWAP4 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1662 SWAP2 SWAP1 PUSH2 0x256D JUMP JUMPDEST SWAP2 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1678 DUP6 DUP5 PUSH2 0x1B46 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C696420706169720000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH2 0x16E2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP8 DUP8 PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x89AFCB4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH4 0x89AFCB44 SWAP1 PUSH1 0x24 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1740 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1764 SWAP2 SWAP1 PUSH2 0x267A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP2 SWAP5 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x17E3 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST ISZERO PUSH2 0x17F3 JUMPI PUSH2 0x733 DUP2 DUP5 DUP5 PUSH2 0x1C73 JUMP JUMPDEST PUSH2 0x733 DUP2 DUP5 PUSH32 0x0 DUP6 PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1874 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2009 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x733 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1892 SWAP2 SWAP1 PUSH2 0x269E JUMP JUMPDEST PUSH2 0x733 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6B2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1925 DUP4 PUSH1 0x2 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0x1930 SWAP1 PUSH1 0x2 PUSH2 0x2525 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1948 JUMPI PUSH2 0x1948 PUSH2 0x26BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x19A9 JUMPI PUSH2 0x19A9 PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1A0C JUMPI PUSH2 0x1A0C PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x1A48 DUP5 PUSH1 0x2 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0x1A53 SWAP1 PUSH1 0x1 PUSH2 0x2525 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1AF0 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1A94 JUMPI PUSH2 0x1A94 PUSH2 0x253D JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AAA JUMPI PUSH2 0x1AAA PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1AE9 DUP2 PUSH2 0x26D1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A56 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x1B6B JUMPI DUP4 DUP6 PUSH2 0x1B6E JUMP JUMPDEST DUP5 DUP5 JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP5 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP4 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE SWAP2 SWAP4 POP SWAP2 POP PUSH32 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C52 SWAP4 SWAP3 SWAP2 SWAP1 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 DUP5 ADD MSTORE PUSH1 0x15 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x35 DUP3 ADD MSTORE PUSH1 0x55 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C7F DUP4 DUP4 PUSH2 0x1B46 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C8F DUP6 DUP4 DUP7 DUP7 PUSH2 0x2020 JUMP JUMPDEST SWAP1 POP PUSH2 0x1CA5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP4 DUP8 PUSH2 0x1416 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT ISZERO PUSH2 0x1D35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1CFE SWAP2 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1DA6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1D73 SWAP2 DUP6 SWAP2 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DB9 DUP5 DUP5 PUSH2 0x1B46 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DC7 DUP5 DUP5 PUSH2 0x1B46 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DD7 DUP8 DUP5 DUP9 DUP9 PUSH2 0x2020 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DE7 DUP3 DUP5 DUP9 DUP9 PUSH2 0x2020 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DFD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP6 DUP11 PUSH2 0x1416 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT ISZERO PUSH2 0x1E8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1E56 SWAP2 SWAP1 DUP7 SWAP1 DUP9 SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1EFE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1ECB SWAP2 DUP7 SWAP2 DUP9 SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT ISZERO PUSH2 0x1F8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1F57 SWAP2 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1FFF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1FCC SWAP2 DUP6 SWAP2 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2018 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x212A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2087 SWAP2 SWAP1 PUSH2 0x2743 JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x20CF JUMPI DUP3 DUP5 PUSH2 0x20D2 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x20E5 DUP11 PUSH2 0x3E5 PUSH2 0x24CD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x20F3 DUP4 DUP4 PUSH2 0x24CD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x2104 DUP7 PUSH2 0x3E8 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0x210E SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST SWAP1 POP PUSH2 0x211A DUP2 DUP4 PUSH2 0x24EC JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x21A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x21BE SWAP2 SWAP1 PUSH2 0x2793 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x21FB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2211 DUP8 DUP4 DUP4 DUP8 PUSH2 0x221C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x228B JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x2284 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x2284 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST POP DUP2 PUSH2 0x2018 JUMP JUMPDEST PUSH2 0x2018 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x22A0 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B2 SWAP2 SWAP1 PUSH2 0x2667 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x80C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x80C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x233D DUP2 PUSH2 0x22FC JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x234D DUP2 PUSH2 0x2311 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B3F DUP2 PUSH2 0x22FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x234D DUP2 PUSH2 0x22FC JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x23C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x23F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x242C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2438 DUP8 DUP3 DUP9 ADD PUSH2 0x23B3 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x244C DUP2 PUSH2 0x2311 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x40 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x246F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2492 DUP6 DUP3 DUP7 ADD PUSH2 0x23B3 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x24E7 JUMPI PUSH2 0x24E7 PUSH2 0x24B7 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2509 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2520 JUMPI PUSH2 0x2520 PUSH2 0x24B7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2538 JUMPI PUSH2 0x2538 PUSH2 0x24B7 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x2566 JUMPI PUSH2 0x2566 PUSH2 0x24B7 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x257F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B3F DUP2 PUSH2 0x22FC JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x258D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x25B4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x25F2 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x258A JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x262F DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x258A JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2653 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x258A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1B3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x263B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x268D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B3F DUP2 PUSH2 0x2311 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x26E0 JUMPI PUSH2 0x26E0 PUSH2 0x24B7 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2716 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x263B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x273E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2758 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2761 DUP5 PUSH2 0x2720 JUMP JUMPDEST SWAP3 POP PUSH2 0x276F PUSH1 0x20 DUP6 ADD PUSH2 0x2720 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x27A5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x258A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0x791EA85FCA9FB53C7A043B5C87ABB267791256910B8E33717B16A86654 NOT 0xCE PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER PUSH26 0x35BD0AE54BC31F548C14DBA4D37C5C64B3F8CA900CB468FB8ABD SLOAD 0xD5 DUP10 0x4F SSTORE ","sourceMap":"1119:13615:16:-:0;;;1915:4;1886:33;;1967:2;1933:36;;2108:1241;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;996:7:3;:15;;-1:-1:-1;;996:15:3;;;-1:-1:-1;;;;;2391:29:16;;;;;2431:18;;;;;2460:26;;;;2507:29;;2499:57;;;;-1:-1:-1;;;2499:57:16;;1249:2:25;2499:57:16;;;1231:21:25;1288:2;1268:18;;;1261:30;-1:-1:-1;;;1307:18:25;;;1300:45;1362:18;;2499:57:16;;;;;;;;;2567:34;2620:15;-1:-1:-1;;;;;2604:45:16;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2567:84;-1:-1:-1;;;;;;2670:40:16;;2662:75;;;;-1:-1:-1;;;2662:75:16;;1806:2:25;2662:75:16;;;1788:21:25;1845:2;1825:18;;;1818:30;1884:24;1864:18;;;1857:52;1926:18;;2662:75:16;1604:346:25;2662:75:16;2748:14;:32;;-1:-1:-1;;;;;;2748:32:16;;-1:-1:-1;;;;;2748:32:16;;;;;;;;;;;;;;2791:25;:54;;-1:-1:-1;;;;;;2791:54:16;;;;;;;;;;2858:8;:20;;;;;;;;;;2889:14;:21;;;2921:8;:20;;;;;;;;;;;;;;2954:38;-1:-1:-1;2985:6:16;2954:10;:38::i;:::-;3003:32;1403:25;3028:6;3003:10;:32::i;:::-;3046:30;1472:23;3069:6;3046:10;:30::i;:::-;3087:33;1542:26;3113:6;3087:10;:33::i;:::-;3131:43;1542:26;;3131:13;:43::i;:::-;3218:36;-1:-1:-1;;;;;;;;;;;3244:9:16;3218:10;:36::i;:::-;3265:43;-1:-1:-1;;;;;;;;;;;1615:26:16;3265:13;:43::i;:::-;2380:969;2108:1241;;;;;;;;;1119:13615;;7461:233:0;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:8;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7539:149;7461:233;;:::o;7046:247::-;7129:25;4478:12;;;;;;;;;;;:22;;;;7185:34;;;;7234:52;;4478:22;;7185:34;;4478:22;;:12;;7234:52;;7129:25;7234:52;7119:174;7046:247;;:::o;14:177:25:-;93:13;;-1:-1:-1;;;;;135:31:25;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:846::-;338:6;346;354;362;370;378;386;394;402;455:3;443:9;434:7;430:23;426:33;423:53;;;472:1;469;462:12;423:53;495:40;525:9;495:40;:::i;:::-;485:50;;554:49;599:2;588:9;584:18;554:49;:::i;:::-;544:59;;643:2;632:9;628:18;622:25;612:35;;666:49;711:2;700:9;696:18;666:49;:::i;:::-;656:59;;734:50;779:3;768:9;764:19;734:50;:::i;:::-;724:60;;824:3;813:9;809:19;803:26;793:36;;848:50;893:3;882:9;878:19;848:50;:::i;:::-;838:60;;917:50;962:3;951:9;947:19;917:50;:::i;:::-;907:60;;986:50;1031:3;1020:9;1016:19;986:50;:::i;:::-;976:60;;196:846;;;;;;;;;;;:::o;1391:208::-;1461:6;1514:2;1502:9;1493:7;1489:23;1485:32;1482:52;;;1530:1;1527;1520:12;1482:52;1553:40;1583:9;1553:40;:::i;:::-;1543:50;1391:208;-1:-1:-1;;;1391:208:25:o;1604:346::-;1119:13615:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_27":{"entryPoint":null,"id":27,"parameterSlots":0,"returnSlots":0},"@FACTORY_3764":{"entryPoint":null,"id":3764,"parameterSlots":0,"returnSlots":0},"@FEE_DENOMINATOR_3791":{"entryPoint":null,"id":3791,"parameterSlots":0,"returnSlots":0},"@GOVERNOR_ROLE_3788":{"entryPoint":null,"id":3788,"parameterSlots":0,"returnSlots":0},"@HARVEST_ROLE_3773":{"entryPoint":null,"id":3773,"parameterSlots":0,"returnSlots":0},"@MAX_HARVEST_INCENTIVE_3794":{"entryPoint":null,"id":3794,"parameterSlots":0,"returnSlots":0},"@PAIR_INIT_HASH_3766":{"entryPoint":null,"id":3766,"parameterSlots":0,"returnSlots":0},"@PAUSE_ROLE_3778":{"entryPoint":null,"id":3778,"parameterSlots":0,"returnSlots":0},"@RECOVERY_ROLE_3783":{"entryPoint":null,"id":3783,"parameterSlots":0,"returnSlots":0},"@WRAPPED_TOKEN_3768":{"entryPoint":null,"id":3768,"parameterSlots":0,"returnSlots":0},"@_callOptionalReturn_1003":{"entryPoint":6175,"id":1003,"parameterSlots":2,"returnSlots":0},"@_checkRole_131":{"entryPoint":5329,"id":131,"parameterSlots":2,"returnSlots":0},"@_checkRole_92":{"entryPoint":4399,"id":92,"parameterSlots":1,"returnSlots":0},"@_convertLiquidity_4346":{"entryPoint":4861,"id":4346,"parameterSlots":2,"returnSlots":0},"@_grantRole_283":{"entryPoint":4409,"id":283,"parameterSlots":2,"returnSlots":0},"@_msgSender_1346":{"entryPoint":null,"id":1346,"parameterSlots":0,"returnSlots":1},"@_pause_592":{"entryPoint":5270,"id":592,"parameterSlots":0,"returnSlots":0},"@_pullLiquidity_4229":{"entryPoint":5526,"id":4229,"parameterSlots":2,"returnSlots":4},"@_requireNotPaused_565":{"entryPoint":4776,"id":565,"parameterSlots":0,"returnSlots":0},"@_requirePaused_576":{"entryPoint":5444,"id":576,"parameterSlots":0,"returnSlots":0},"@_revert_1333":{"entryPoint":null,"id":1333,"parameterSlots":2,"returnSlots":0},"@_revokeRole_314":{"entryPoint":4567,"id":314,"parameterSlots":2,"returnSlots":0},"@_swap_4263":{"entryPoint":6002,"id":4263,"parameterSlots":3,"returnSlots":0},"@_unpause_608":{"entryPoint":4694,"id":608,"parameterSlots":0,"returnSlots":0},"@direct2Swap_4623":{"entryPoint":7283,"id":4623,"parameterSlots":3,"returnSlots":0},"@direct3Swap_4745":{"entryPoint":7597,"id":4745,"parameterSlots":4,"returnSlots":0},"@functionCallWithValue_1158":{"entryPoint":8490,"id":1158,"parameterSlots":4,"returnSlots":1},"@functionCall_1094":{"entryPoint":8201,"id":1094,"parameterSlots":3,"returnSlots":1},"@getAmountOut_4811":{"entryPoint":8224,"id":4811,"parameterSlots":4,"returnSlots":1},"@getRoleAdmin_146":{"entryPoint":null,"id":146,"parameterSlots":1,"returnSlots":1},"@grantRole_166":{"entryPoint":1806,"id":166,"parameterSlots":2,"returnSlots":0},"@harvestIncentive_3806":{"entryPoint":null,"id":3806,"parameterSlots":0,"returnSlots":0},"@harvest_4487":{"entryPoint":2141,"id":4487,"parameterSlots":4,"returnSlots":0},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"@isContract_1022":{"entryPoint":null,"id":1022,"parameterSlots":1,"returnSlots":1},"@isRecoverable_3814":{"entryPoint":null,"id":3814,"parameterSlots":0,"returnSlots":0},"@miniChefPoolId_3810":{"entryPoint":null,"id":3810,"parameterSlots":0,"returnSlots":0},"@miniChef_3808":{"entryPoint":null,"id":3808,"parameterSlots":0,"returnSlots":0},"@pairFor_4863":{"entryPoint":6982,"id":4863,"parameterSlots":2,"returnSlots":1},"@pause_4018":{"entryPoint":3245,"id":4018,"parameterSlots":0,"returnSlots":0},"@paused_553":{"entryPoint":null,"id":553,"parameterSlots":0,"returnSlots":1},"@recoverLP_4551":{"entryPoint":3434,"id":4551,"parameterSlots":2,"returnSlots":0},"@renounceRole_209":{"entryPoint":1848,"id":209,"parameterSlots":2,"returnSlots":0},"@revokeRole_186":{"entryPoint":3905,"id":186,"parameterSlots":2,"returnSlots":0},"@safeTransfer_755":{"entryPoint":5142,"id":755,"parameterSlots":3,"returnSlots":0},"@setHarvestIncentive_4007":{"entryPoint":3052,"id":4007,"parameterSlots":1,"returnSlots":0},"@setMiniChefPool_4130":{"entryPoint":1993,"id":4130,"parameterSlots":1,"returnSlots":0},"@setMiniChef_4116":{"entryPoint":2063,"id":4116,"parameterSlots":1,"returnSlots":0},"@setRecoverable_4047":{"entryPoint":1720,"id":4047,"parameterSlots":2,"returnSlots":0},"@setRewardsContract_3977":{"entryPoint":3942,"id":3977,"parameterSlots":1,"returnSlots":0},"@setRewardsDuration_4147":{"entryPoint":3295,"id":4147,"parameterSlots":1,"returnSlots":0},"@setTreasuryFee_4070":{"entryPoint":2909,"id":4070,"parameterSlots":1,"returnSlots":0},"@setTreasury_4093":{"entryPoint":4321,"id":4093,"parameterSlots":1,"returnSlots":0},"@stakingRewardsRewardToken_3798":{"entryPoint":null,"id":3798,"parameterSlots":0,"returnSlots":0},"@stakingRewards_3796":{"entryPoint":null,"id":3796,"parameterSlots":0,"returnSlots":0},"@supportsInterface_1554":{"entryPoint":null,"id":1554,"parameterSlots":1,"returnSlots":1},"@supportsInterface_60":{"entryPoint":1567,"id":60,"parameterSlots":1,"returnSlots":1},"@toHexString_1510":{"entryPoint":6422,"id":1510,"parameterSlots":2,"returnSlots":1},"@toHexString_1530":{"entryPoint":6404,"id":1530,"parameterSlots":1,"returnSlots":1},"@transferStakingOwnership_4164":{"entryPoint":3813,"id":4164,"parameterSlots":1,"returnSlots":0},"@treasuryFee_3803":{"entryPoint":null,"id":3803,"parameterSlots":0,"returnSlots":0},"@treasury_3800":{"entryPoint":null,"id":3800,"parameterSlots":0,"returnSlots":0},"@unpause_4029":{"entryPoint":2010,"id":4029,"parameterSlots":0,"returnSlots":0},"@verifyCallResultFromTarget_1289":{"entryPoint":8732,"id":1289,"parameterSlots":4,"returnSlots":1},"abi_decode_array_contract_IPangolinPair_dyn_calldata":{"entryPoint":9139,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":9581,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bool":{"entryPoint":8991,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":9308,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptrt_boolt_uint256":{"entryPoint":9215,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":9886,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":9048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":9102,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":8890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory":{"entryPoint":10051,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":9850,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint112_fromMemory":{"entryPoint":10016,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_string":{"entryPoint":9787,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10131,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9_t_address_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9658,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_0_by_1_t_uint256_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9960,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170fb541e2b36e11ce629c830863665c9d83f3af17f1866063a64770ae59bed1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1fc389bc00670d4c2895432c0160675ee55ab241421a2665fe34f10079e93332__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2a845d0b81b644719e5819264d8c4c6738666e960bd64554dedf9f417f516194__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_356fa128b111a78c16f9f5610237700b9b03c95c9cf18624beceff426daa62b1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_rational_0_by_1_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9509,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":9452,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":9421,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":9486,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":9610,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":9937,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":9555,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":9399,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9533,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9915,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":8956,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":8977,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17112:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"83:263:25","statements":[{"body":{"nodeType":"YulBlock","src":"129:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"138:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"141:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"131:6:25"},"nodeType":"YulFunctionCall","src":"131:12:25"},"nodeType":"YulExpressionStatement","src":"131:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"104:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"113:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:25"},"nodeType":"YulFunctionCall","src":"100:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"125:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"96:3:25"},"nodeType":"YulFunctionCall","src":"96:32:25"},"nodeType":"YulIf","src":"93:52:25"},{"nodeType":"YulVariableDeclaration","src":"154:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"180:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"167:12:25"},"nodeType":"YulFunctionCall","src":"167:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"158:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:25"},"nodeType":"YulFunctionCall","src":"302:12:25"},"nodeType":"YulExpressionStatement","src":"302:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"212:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"230:66:25","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"219:3:25"},"nodeType":"YulFunctionCall","src":"219:78:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"209:2:25"},"nodeType":"YulFunctionCall","src":"209:89:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"202:6:25"},"nodeType":"YulFunctionCall","src":"202:97:25"},"nodeType":"YulIf","src":"199:117:25"},{"nodeType":"YulAssignment","src":"325:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"335:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"325:6:25"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"60:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"72:6:25","type":""}],"src":"14:332:25"},{"body":{"nodeType":"YulBlock","src":"446:92:25","statements":[{"nodeType":"YulAssignment","src":"456:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:25"},"nodeType":"YulFunctionCall","src":"464:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"456:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"523:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"516:6:25"},"nodeType":"YulFunctionCall","src":"516:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"509:6:25"},"nodeType":"YulFunctionCall","src":"509:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"491:6:25"},"nodeType":"YulFunctionCall","src":"491:41:25"},"nodeType":"YulExpressionStatement","src":"491:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"415:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"426:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"437:4:25","type":""}],"src":"351:187:25"},{"body":{"nodeType":"YulBlock","src":"588:109:25","statements":[{"body":{"nodeType":"YulBlock","src":"675:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"684:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"687:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:25"},"nodeType":"YulFunctionCall","src":"677:12:25"},"nodeType":"YulExpressionStatement","src":"677:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"611:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"622:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"629:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"618:3:25"},"nodeType":"YulFunctionCall","src":"618:54:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"608:2:25"},"nodeType":"YulFunctionCall","src":"608:65:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"601:6:25"},"nodeType":"YulFunctionCall","src":"601:73:25"},"nodeType":"YulIf","src":"598:93:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"577:5:25","type":""}],"src":"543:154:25"},{"body":{"nodeType":"YulBlock","src":"744:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"798:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"807:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"810:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"800:6:25"},"nodeType":"YulFunctionCall","src":"800:12:25"},"nodeType":"YulExpressionStatement","src":"800:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"767:5:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"788:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"781:6:25"},"nodeType":"YulFunctionCall","src":"781:13:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"774:6:25"},"nodeType":"YulFunctionCall","src":"774:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"764:2:25"},"nodeType":"YulFunctionCall","src":"764:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"757:6:25"},"nodeType":"YulFunctionCall","src":"757:40:25"},"nodeType":"YulIf","src":"754:60:25"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"733:5:25","type":""}],"src":"702:118:25"},{"body":{"nodeType":"YulBlock","src":"909:298:25","statements":[{"body":{"nodeType":"YulBlock","src":"955:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"964:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"967:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"957:6:25"},"nodeType":"YulFunctionCall","src":"957:12:25"},"nodeType":"YulExpressionStatement","src":"957:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"930:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"939:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"926:3:25"},"nodeType":"YulFunctionCall","src":"926:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"951:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"922:3:25"},"nodeType":"YulFunctionCall","src":"922:32:25"},"nodeType":"YulIf","src":"919:52:25"},{"nodeType":"YulVariableDeclaration","src":"980:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1006:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"993:12:25"},"nodeType":"YulFunctionCall","src":"993:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"984:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1050:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1025:24:25"},"nodeType":"YulFunctionCall","src":"1025:31:25"},"nodeType":"YulExpressionStatement","src":"1025:31:25"},{"nodeType":"YulAssignment","src":"1065:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1075:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1089:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:25"},"nodeType":"YulFunctionCall","src":"1117:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1104:12:25"},"nodeType":"YulFunctionCall","src":"1104:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1093:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1167:7:25"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"1145:21:25"},"nodeType":"YulFunctionCall","src":"1145:30:25"},"nodeType":"YulExpressionStatement","src":"1145:30:25"},{"nodeType":"YulAssignment","src":"1184:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1194:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1184:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"867:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"878:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"890:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"898:6:25","type":""}],"src":"825:382:25"},{"body":{"nodeType":"YulBlock","src":"1282:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"1328:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1337:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1340:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1330:6:25"},"nodeType":"YulFunctionCall","src":"1330:12:25"},"nodeType":"YulExpressionStatement","src":"1330:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1303:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1312:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1299:3:25"},"nodeType":"YulFunctionCall","src":"1299:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1324:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1295:3:25"},"nodeType":"YulFunctionCall","src":"1295:32:25"},"nodeType":"YulIf","src":"1292:52:25"},{"nodeType":"YulAssignment","src":"1353:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1376:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1363:12:25"},"nodeType":"YulFunctionCall","src":"1363:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1353:6:25"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1248:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1259:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1271:6:25","type":""}],"src":"1212:180:25"},{"body":{"nodeType":"YulBlock","src":"1498:76:25","statements":[{"nodeType":"YulAssignment","src":"1508:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1531:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1516:3:25"},"nodeType":"YulFunctionCall","src":"1516:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1508:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1550:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1561:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1543:6:25"},"nodeType":"YulFunctionCall","src":"1543:25:25"},"nodeType":"YulExpressionStatement","src":"1543:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1467:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1478:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1489:4:25","type":""}],"src":"1397:177:25"},{"body":{"nodeType":"YulBlock","src":"1649:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"1695:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1704:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1707:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1697:6:25"},"nodeType":"YulFunctionCall","src":"1697:12:25"},"nodeType":"YulExpressionStatement","src":"1697:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1670:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1679:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1666:3:25"},"nodeType":"YulFunctionCall","src":"1666:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1691:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1662:3:25"},"nodeType":"YulFunctionCall","src":"1662:32:25"},"nodeType":"YulIf","src":"1659:52:25"},{"nodeType":"YulVariableDeclaration","src":"1720:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1746:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1733:12:25"},"nodeType":"YulFunctionCall","src":"1733:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1724:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1790:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1765:24:25"},"nodeType":"YulFunctionCall","src":"1765:31:25"},"nodeType":"YulExpressionStatement","src":"1765:31:25"},{"nodeType":"YulAssignment","src":"1805:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1815:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1805:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1615:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1626:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1638:6:25","type":""}],"src":"1579:247:25"},{"body":{"nodeType":"YulBlock","src":"1932:125:25","statements":[{"nodeType":"YulAssignment","src":"1942:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1954:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1965:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:25"},"nodeType":"YulFunctionCall","src":"1950:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1942:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1984:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1999:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2007:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1995:3:25"},"nodeType":"YulFunctionCall","src":"1995:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1977:6:25"},"nodeType":"YulFunctionCall","src":"1977:74:25"},"nodeType":"YulExpressionStatement","src":"1977:74:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1901:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1912:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1923:4:25","type":""}],"src":"1831:226:25"},{"body":{"nodeType":"YulBlock","src":"2149:228:25","statements":[{"body":{"nodeType":"YulBlock","src":"2195:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2204:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2207:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:12:25"},"nodeType":"YulExpressionStatement","src":"2197:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2170:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2179:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2166:3:25"},"nodeType":"YulFunctionCall","src":"2166:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2191:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2162:3:25"},"nodeType":"YulFunctionCall","src":"2162:32:25"},"nodeType":"YulIf","src":"2159:52:25"},{"nodeType":"YulAssignment","src":"2220:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2243:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2230:12:25"},"nodeType":"YulFunctionCall","src":"2230:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2220:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2262:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:25"},"nodeType":"YulFunctionCall","src":"2288:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2275:12:25"},"nodeType":"YulFunctionCall","src":"2275:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2266:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2341:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2316:24:25"},"nodeType":"YulFunctionCall","src":"2316:31:25"},"nodeType":"YulExpressionStatement","src":"2316:31:25"},{"nodeType":"YulAssignment","src":"2356:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"2366:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2356:6:25"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2107:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2118:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2130:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2138:6:25","type":""}],"src":"2062:315:25"},{"body":{"nodeType":"YulBlock","src":"2483:76:25","statements":[{"nodeType":"YulAssignment","src":"2493:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2505:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2516:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2501:3:25"},"nodeType":"YulFunctionCall","src":"2501:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2493:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2535:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2546:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2528:6:25"},"nodeType":"YulFunctionCall","src":"2528:25:25"},"nodeType":"YulExpressionStatement","src":"2528:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2452:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2463:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2474:4:25","type":""}],"src":"2382:177:25"},{"body":{"nodeType":"YulBlock","src":"2634:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"2680:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2692:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:12:25"},"nodeType":"YulExpressionStatement","src":"2682:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2655:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2664:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2651:3:25"},"nodeType":"YulFunctionCall","src":"2651:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2676:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2647:3:25"},"nodeType":"YulFunctionCall","src":"2647:32:25"},"nodeType":"YulIf","src":"2644:52:25"},{"nodeType":"YulAssignment","src":"2705:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2728:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2715:12:25"},"nodeType":"YulFunctionCall","src":"2715:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2705:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2600:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2611:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2623:6:25","type":""}],"src":"2564:180:25"},{"body":{"nodeType":"YulBlock","src":"2848:283:25","statements":[{"body":{"nodeType":"YulBlock","src":"2897:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2906:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2909:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2899:6:25"},"nodeType":"YulFunctionCall","src":"2899:12:25"},"nodeType":"YulExpressionStatement","src":"2899:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2876:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2884:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2872:3:25"},"nodeType":"YulFunctionCall","src":"2872:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2891:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2868:3:25"},"nodeType":"YulFunctionCall","src":"2868:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2861:6:25"},"nodeType":"YulFunctionCall","src":"2861:35:25"},"nodeType":"YulIf","src":"2858:55:25"},{"nodeType":"YulAssignment","src":"2922:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2945:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2932:12:25"},"nodeType":"YulFunctionCall","src":"2932:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2922:6:25"}]},{"body":{"nodeType":"YulBlock","src":"2995:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3004:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3007:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2997:6:25"},"nodeType":"YulFunctionCall","src":"2997:12:25"},"nodeType":"YulExpressionStatement","src":"2997:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2967:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2975:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2964:2:25"},"nodeType":"YulFunctionCall","src":"2964:30:25"},"nodeType":"YulIf","src":"2961:50:25"},{"nodeType":"YulAssignment","src":"3020:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3036:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3044:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3032:3:25"},"nodeType":"YulFunctionCall","src":"3032:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3020:8:25"}]},{"body":{"nodeType":"YulBlock","src":"3109:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3118:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3121:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3111:6:25"},"nodeType":"YulFunctionCall","src":"3111:12:25"},"nodeType":"YulExpressionStatement","src":"3111:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3072:6:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3084:1:25","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"3087:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3080:3:25"},"nodeType":"YulFunctionCall","src":"3080:14:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3068:3:25"},"nodeType":"YulFunctionCall","src":"3068:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3097:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3064:3:25"},"nodeType":"YulFunctionCall","src":"3064:38:25"},{"name":"end","nodeType":"YulIdentifier","src":"3104:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3061:2:25"},"nodeType":"YulFunctionCall","src":"3061:47:25"},"nodeType":"YulIf","src":"3058:67:25"}]},"name":"abi_decode_array_contract_IPangolinPair_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2811:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2819:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"2827:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"2837:6:25","type":""}],"src":"2749:382:25"},{"body":{"nodeType":"YulBlock","src":"3294:513:25","statements":[{"body":{"nodeType":"YulBlock","src":"3340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:25"},"nodeType":"YulFunctionCall","src":"3342:12:25"},"nodeType":"YulExpressionStatement","src":"3342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3315:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3324:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3311:3:25"},"nodeType":"YulFunctionCall","src":"3311:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3336:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3307:3:25"},"nodeType":"YulFunctionCall","src":"3307:32:25"},"nodeType":"YulIf","src":"3304:52:25"},{"nodeType":"YulVariableDeclaration","src":"3365:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3392:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3379:12:25"},"nodeType":"YulFunctionCall","src":"3379:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3369:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3445:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3454:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3457:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3447:6:25"},"nodeType":"YulFunctionCall","src":"3447:12:25"},"nodeType":"YulExpressionStatement","src":"3447:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3417:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3425:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3414:2:25"},"nodeType":"YulFunctionCall","src":"3414:30:25"},"nodeType":"YulIf","src":"3411:50:25"},{"nodeType":"YulVariableDeclaration","src":"3470:111:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3553:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3564:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3549:3:25"},"nodeType":"YulFunctionCall","src":"3549:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3573:7:25"}],"functionName":{"name":"abi_decode_array_contract_IPangolinPair_dyn_calldata","nodeType":"YulIdentifier","src":"3496:52:25"},"nodeType":"YulFunctionCall","src":"3496:85:25"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"3474:8:25","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"3484:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3590:18:25","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"3600:8:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3590:6:25"}]},{"nodeType":"YulAssignment","src":"3617:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3627:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3617:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3644:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3674:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3685:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3670:3:25"},"nodeType":"YulFunctionCall","src":"3670:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3657:12:25"},"nodeType":"YulFunctionCall","src":"3657:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3648:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3720:5:25"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3698:21:25"},"nodeType":"YulFunctionCall","src":"3698:28:25"},"nodeType":"YulExpressionStatement","src":"3698:28:25"},{"nodeType":"YulAssignment","src":"3735:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"3745:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3735:6:25"}]},{"nodeType":"YulAssignment","src":"3759:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3786:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3797:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3782:3:25"},"nodeType":"YulFunctionCall","src":"3782:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3769:12:25"},"nodeType":"YulFunctionCall","src":"3769:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3759:6:25"}]}]},"name":"abi_decode_tuple_t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptrt_boolt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3236:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3247:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3259:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3267:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3275:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3283:6:25","type":""}],"src":"3136:671:25"},{"body":{"nodeType":"YulBlock","src":"3917:347:25","statements":[{"body":{"nodeType":"YulBlock","src":"3963:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3972:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3975:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3965:6:25"},"nodeType":"YulFunctionCall","src":"3965:12:25"},"nodeType":"YulExpressionStatement","src":"3965:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3938:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3947:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3934:3:25"},"nodeType":"YulFunctionCall","src":"3934:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3959:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3930:3:25"},"nodeType":"YulFunctionCall","src":"3930:32:25"},"nodeType":"YulIf","src":"3927:52:25"},{"nodeType":"YulVariableDeclaration","src":"3988:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4015:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4002:12:25"},"nodeType":"YulFunctionCall","src":"4002:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3992:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4068:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4077:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4080:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4070:6:25"},"nodeType":"YulFunctionCall","src":"4070:12:25"},"nodeType":"YulExpressionStatement","src":"4070:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4040:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4048:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4037:2:25"},"nodeType":"YulFunctionCall","src":"4037:30:25"},"nodeType":"YulIf","src":"4034:50:25"},{"nodeType":"YulVariableDeclaration","src":"4093:111:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4176:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"4187:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4172:3:25"},"nodeType":"YulFunctionCall","src":"4172:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4196:7:25"}],"functionName":{"name":"abi_decode_array_contract_IPangolinPair_dyn_calldata","nodeType":"YulIdentifier","src":"4119:52:25"},"nodeType":"YulFunctionCall","src":"4119:85:25"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"4097:8:25","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"4107:8:25","type":""}]},{"nodeType":"YulAssignment","src":"4213:18:25","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"4223:8:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4213:6:25"}]},{"nodeType":"YulAssignment","src":"4240:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"4250:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4240:6:25"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3875:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3886:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3898:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3906:6:25","type":""}],"src":"3812:452:25"},{"body":{"nodeType":"YulBlock","src":"4443:237:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4460:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4471:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4453:6:25"},"nodeType":"YulFunctionCall","src":"4453:21:25"},"nodeType":"YulExpressionStatement","src":"4453:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4494:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4505:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4490:3:25"},"nodeType":"YulFunctionCall","src":"4490:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4510:2:25","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4483:6:25"},"nodeType":"YulFunctionCall","src":"4483:30:25"},"nodeType":"YulExpressionStatement","src":"4483:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4533:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4544:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4529:3:25"},"nodeType":"YulFunctionCall","src":"4529:18:25"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"4549:34:25","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4522:6:25"},"nodeType":"YulFunctionCall","src":"4522:62:25"},"nodeType":"YulExpressionStatement","src":"4522:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4604:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4615:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4600:3:25"},"nodeType":"YulFunctionCall","src":"4600:18:25"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"4620:17:25","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4593:6:25"},"nodeType":"YulFunctionCall","src":"4593:45:25"},"nodeType":"YulExpressionStatement","src":"4593:45:25"},{"nodeType":"YulAssignment","src":"4647:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4659:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4670:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4655:3:25"},"nodeType":"YulFunctionCall","src":"4655:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4647:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4420:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4434:4:25","type":""}],"src":"4269:411:25"},{"body":{"nodeType":"YulBlock","src":"4814:168:25","statements":[{"nodeType":"YulAssignment","src":"4824:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4847:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4832:3:25"},"nodeType":"YulFunctionCall","src":"4832:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4824:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4866:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4859:6:25"},"nodeType":"YulFunctionCall","src":"4859:25:25"},"nodeType":"YulExpressionStatement","src":"4859:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4915:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4900:3:25"},"nodeType":"YulFunctionCall","src":"4900:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4932:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4920:3:25"},"nodeType":"YulFunctionCall","src":"4920:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4893:6:25"},"nodeType":"YulFunctionCall","src":"4893:83:25"},"nodeType":"YulExpressionStatement","src":"4893:83:25"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4775:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4786:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4794:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4805:4:25","type":""}],"src":"4685:297:25"},{"body":{"nodeType":"YulBlock","src":"5068:103:25","statements":[{"body":{"nodeType":"YulBlock","src":"5114:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5123:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5126:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5116:6:25"},"nodeType":"YulFunctionCall","src":"5116:12:25"},"nodeType":"YulExpressionStatement","src":"5116:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5089:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5098:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5085:3:25"},"nodeType":"YulFunctionCall","src":"5085:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5110:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5081:3:25"},"nodeType":"YulFunctionCall","src":"5081:32:25"},"nodeType":"YulIf","src":"5078:52:25"},{"nodeType":"YulAssignment","src":"5139:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5155:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5149:5:25"},"nodeType":"YulFunctionCall","src":"5149:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5139:6:25"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5034:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5045:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5057:6:25","type":""}],"src":"4987:184:25"},{"body":{"nodeType":"YulBlock","src":"5350:163:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5367:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5378:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5360:6:25"},"nodeType":"YulFunctionCall","src":"5360:21:25"},"nodeType":"YulExpressionStatement","src":"5360:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5401:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5412:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5397:3:25"},"nodeType":"YulFunctionCall","src":"5397:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5417:2:25","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5390:6:25"},"nodeType":"YulFunctionCall","src":"5390:30:25"},"nodeType":"YulExpressionStatement","src":"5390:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5451:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5436:3:25"},"nodeType":"YulFunctionCall","src":"5436:18:25"},{"hexValue":"4869676820536c697070616765","kind":"string","nodeType":"YulLiteral","src":"5456:15:25","type":"","value":"High Slippage"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5429:6:25"},"nodeType":"YulFunctionCall","src":"5429:43:25"},"nodeType":"YulExpressionStatement","src":"5429:43:25"},{"nodeType":"YulAssignment","src":"5481:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5504:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5489:3:25"},"nodeType":"YulFunctionCall","src":"5489:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5481:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170fb541e2b36e11ce629c830863665c9d83f3af17f1866063a64770ae59bed1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5327:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5341:4:25","type":""}],"src":"5176:337:25"},{"body":{"nodeType":"YulBlock","src":"5550:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5567:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5570:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5560:6:25"},"nodeType":"YulFunctionCall","src":"5560:88:25"},"nodeType":"YulExpressionStatement","src":"5560:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5664:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5667:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5657:6:25"},"nodeType":"YulFunctionCall","src":"5657:15:25"},"nodeType":"YulExpressionStatement","src":"5657:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5691:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5681:6:25"},"nodeType":"YulFunctionCall","src":"5681:15:25"},"nodeType":"YulExpressionStatement","src":"5681:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5518:184:25"},{"body":{"nodeType":"YulBlock","src":"5759:176:25","statements":[{"body":{"nodeType":"YulBlock","src":"5878:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5880:16:25"},"nodeType":"YulFunctionCall","src":"5880:18:25"},"nodeType":"YulExpressionStatement","src":"5880:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5790:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5783:6:25"},"nodeType":"YulFunctionCall","src":"5783:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5776:6:25"},"nodeType":"YulFunctionCall","src":"5776:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5798:1:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5805:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"5873:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5801:3:25"},"nodeType":"YulFunctionCall","src":"5801:74:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5795:2:25"},"nodeType":"YulFunctionCall","src":"5795:81:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5772:3:25"},"nodeType":"YulFunctionCall","src":"5772:105:25"},"nodeType":"YulIf","src":"5769:131:25"},{"nodeType":"YulAssignment","src":"5909:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5924:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"5927:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5920:3:25"},"nodeType":"YulFunctionCall","src":"5920:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"5909:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5738:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"5741:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"5747:7:25","type":""}],"src":"5707:228:25"},{"body":{"nodeType":"YulBlock","src":"5986:228:25","statements":[{"body":{"nodeType":"YulBlock","src":"6017:168:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6038:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6041:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6031:6:25"},"nodeType":"YulFunctionCall","src":"6031:88:25"},"nodeType":"YulExpressionStatement","src":"6031:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6139:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6142:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6132:6:25"},"nodeType":"YulFunctionCall","src":"6132:15:25"},"nodeType":"YulExpressionStatement","src":"6132:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6167:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6170:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6160:6:25"},"nodeType":"YulFunctionCall","src":"6160:15:25"},"nodeType":"YulExpressionStatement","src":"6160:15:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6006:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5999:6:25"},"nodeType":"YulFunctionCall","src":"5999:9:25"},"nodeType":"YulIf","src":"5996:189:25"},{"nodeType":"YulAssignment","src":"6194:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6203:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"6206:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6199:3:25"},"nodeType":"YulFunctionCall","src":"6199:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6194:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5971:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"5974:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"5980:1:25","type":""}],"src":"5940:274:25"},{"body":{"nodeType":"YulBlock","src":"6268:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"6290:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6292:16:25"},"nodeType":"YulFunctionCall","src":"6292:18:25"},"nodeType":"YulExpressionStatement","src":"6292:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6284:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"6287:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6281:2:25"},"nodeType":"YulFunctionCall","src":"6281:8:25"},"nodeType":"YulIf","src":"6278:34:25"},{"nodeType":"YulAssignment","src":"6321:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6333:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"6336:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6329:3:25"},"nodeType":"YulFunctionCall","src":"6329:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"6321:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6250:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"6253:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"6259:4:25","type":""}],"src":"6219:125:25"},{"body":{"nodeType":"YulBlock","src":"6397:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"6424:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6426:16:25"},"nodeType":"YulFunctionCall","src":"6426:18:25"},"nodeType":"YulExpressionStatement","src":"6426:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6413:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6420:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6416:3:25"},"nodeType":"YulFunctionCall","src":"6416:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6410:2:25"},"nodeType":"YulFunctionCall","src":"6410:13:25"},"nodeType":"YulIf","src":"6407:39:25"},{"nodeType":"YulAssignment","src":"6455:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6466:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"6469:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6462:3:25"},"nodeType":"YulFunctionCall","src":"6462:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6455:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6380:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"6383:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6389:3:25","type":""}],"src":"6349:128:25"},{"body":{"nodeType":"YulBlock","src":"6656:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6673:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6684:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6666:6:25"},"nodeType":"YulFunctionCall","src":"6666:21:25"},"nodeType":"YulExpressionStatement","src":"6666:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6707:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6718:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6703:3:25"},"nodeType":"YulFunctionCall","src":"6703:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6723:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6696:6:25"},"nodeType":"YulFunctionCall","src":"6696:30:25"},"nodeType":"YulExpressionStatement","src":"6696:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6746:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6757:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6742:3:25"},"nodeType":"YulFunctionCall","src":"6742:18:25"},{"hexValue":"546f74616c2066656573206d757374203c3d20313030","kind":"string","nodeType":"YulLiteral","src":"6762:24:25","type":"","value":"Total fees must <= 100"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6735:6:25"},"nodeType":"YulFunctionCall","src":"6735:52:25"},"nodeType":"YulExpressionStatement","src":"6735:52:25"},{"nodeType":"YulAssignment","src":"6796:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6808:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6819:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6804:3:25"},"nodeType":"YulFunctionCall","src":"6804:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6796:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6633:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6647:4:25","type":""}],"src":"6482:346:25"},{"body":{"nodeType":"YulBlock","src":"7007:169:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7035:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7017:6:25"},"nodeType":"YulFunctionCall","src":"7017:21:25"},"nodeType":"YulExpressionStatement","src":"7017:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7069:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7054:3:25"},"nodeType":"YulFunctionCall","src":"7054:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"7074:2:25","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7047:6:25"},"nodeType":"YulFunctionCall","src":"7047:30:25"},"nodeType":"YulExpressionStatement","src":"7047:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7108:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7093:3:25"},"nodeType":"YulFunctionCall","src":"7093:18:25"},{"hexValue":"496e63656e7469766520746f6f206c61726765","kind":"string","nodeType":"YulLiteral","src":"7113:21:25","type":"","value":"Incentive too large"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7086:6:25"},"nodeType":"YulFunctionCall","src":"7086:49:25"},"nodeType":"YulExpressionStatement","src":"7086:49:25"},{"nodeType":"YulAssignment","src":"7144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7167:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7152:3:25"},"nodeType":"YulFunctionCall","src":"7152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7144:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a845d0b81b644719e5819264d8c4c6738666e960bd64554dedf9f417f516194__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6984:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6998:4:25","type":""}],"src":"6833:343:25"},{"body":{"nodeType":"YulBlock","src":"7213:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7230:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7233:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7223:6:25"},"nodeType":"YulFunctionCall","src":"7223:88:25"},"nodeType":"YulExpressionStatement","src":"7223:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7327:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7330:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7320:6:25"},"nodeType":"YulFunctionCall","src":"7320:15:25"},"nodeType":"YulExpressionStatement","src":"7320:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7351:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7354:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7344:6:25"},"nodeType":"YulFunctionCall","src":"7344:15:25"},"nodeType":"YulExpressionStatement","src":"7344:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7181:184:25"},{"body":{"nodeType":"YulBlock","src":"7544:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7572:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7554:6:25"},"nodeType":"YulFunctionCall","src":"7554:21:25"},"nodeType":"YulExpressionStatement","src":"7554:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7595:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7606:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7591:3:25"},"nodeType":"YulFunctionCall","src":"7591:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7584:6:25"},"nodeType":"YulFunctionCall","src":"7584:30:25"},"nodeType":"YulExpressionStatement","src":"7584:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7645:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7630:3:25"},"nodeType":"YulFunctionCall","src":"7630:18:25"},{"hexValue":"43616e6e6f74207265636f766572","kind":"string","nodeType":"YulLiteral","src":"7650:16:25","type":"","value":"Cannot recover"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7623:6:25"},"nodeType":"YulFunctionCall","src":"7623:44:25"},"nodeType":"YulExpressionStatement","src":"7623:44:25"},{"nodeType":"YulAssignment","src":"7676:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7688:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7699:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7684:3:25"},"nodeType":"YulFunctionCall","src":"7684:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7676:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_356fa128b111a78c16f9f5610237700b9b03c95c9cf18624beceff426daa62b1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7521:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7535:4:25","type":""}],"src":"7370:338:25"},{"body":{"nodeType":"YulBlock","src":"7760:148:25","statements":[{"body":{"nodeType":"YulBlock","src":"7851:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7853:16:25"},"nodeType":"YulFunctionCall","src":"7853:18:25"},"nodeType":"YulExpressionStatement","src":"7853:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7776:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"7783:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7773:2:25"},"nodeType":"YulFunctionCall","src":"7773:77:25"},"nodeType":"YulIf","src":"7770:103:25"},{"nodeType":"YulAssignment","src":"7882:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7893:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"7900:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7889:3:25"},"nodeType":"YulFunctionCall","src":"7889:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"7882:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7742:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"7752:3:25","type":""}],"src":"7713:195:25"},{"body":{"nodeType":"YulBlock","src":"8087:165:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8104:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8115:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8097:6:25"},"nodeType":"YulFunctionCall","src":"8097:21:25"},"nodeType":"YulExpressionStatement","src":"8097:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8138:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8149:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8134:3:25"},"nodeType":"YulFunctionCall","src":"8134:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"8154:2:25","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8127:6:25"},"nodeType":"YulFunctionCall","src":"8127:30:25"},"nodeType":"YulExpressionStatement","src":"8127:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8177:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8188:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8173:3:25"},"nodeType":"YulFunctionCall","src":"8173:18:25"},{"hexValue":"496e76616c69642061646472657373","kind":"string","nodeType":"YulLiteral","src":"8193:17:25","type":"","value":"Invalid address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8166:6:25"},"nodeType":"YulFunctionCall","src":"8166:45:25"},"nodeType":"YulExpressionStatement","src":"8166:45:25"},{"nodeType":"YulAssignment","src":"8220:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8232:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8243:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8228:3:25"},"nodeType":"YulFunctionCall","src":"8228:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8220:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8064:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8078:4:25","type":""}],"src":"7913:339:25"},{"body":{"nodeType":"YulBlock","src":"8338:170:25","statements":[{"body":{"nodeType":"YulBlock","src":"8384:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8393:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8396:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8386:6:25"},"nodeType":"YulFunctionCall","src":"8386:12:25"},"nodeType":"YulExpressionStatement","src":"8386:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8359:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8355:3:25"},"nodeType":"YulFunctionCall","src":"8355:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8380:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8351:3:25"},"nodeType":"YulFunctionCall","src":"8351:32:25"},"nodeType":"YulIf","src":"8348:52:25"},{"nodeType":"YulVariableDeclaration","src":"8409:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8428:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8422:5:25"},"nodeType":"YulFunctionCall","src":"8422:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8413:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8472:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8447:24:25"},"nodeType":"YulFunctionCall","src":"8447:31:25"},"nodeType":"YulExpressionStatement","src":"8447:31:25"},{"nodeType":"YulAssignment","src":"8487:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"8497:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8487:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8304:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8315:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8327:6:25","type":""}],"src":"8257:251:25"},{"body":{"nodeType":"YulBlock","src":"8687:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8704:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8715:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8697:6:25"},"nodeType":"YulFunctionCall","src":"8697:21:25"},"nodeType":"YulExpressionStatement","src":"8697:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8738:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8749:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8734:3:25"},"nodeType":"YulFunctionCall","src":"8734:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"8754:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8727:6:25"},"nodeType":"YulFunctionCall","src":"8727:30:25"},"nodeType":"YulExpressionStatement","src":"8727:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8777:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8788:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8773:3:25"},"nodeType":"YulFunctionCall","src":"8773:18:25"},{"hexValue":"496e76616c6964207374616b696e6720726577617264","kind":"string","nodeType":"YulLiteral","src":"8793:24:25","type":"","value":"Invalid staking reward"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8766:6:25"},"nodeType":"YulFunctionCall","src":"8766:52:25"},"nodeType":"YulExpressionStatement","src":"8766:52:25"},{"nodeType":"YulAssignment","src":"8827:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8839:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8850:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8835:3:25"},"nodeType":"YulFunctionCall","src":"8835:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8827:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8664:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8678:4:25","type":""}],"src":"8513:346:25"},{"body":{"nodeType":"YulBlock","src":"9038:166:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9055:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9066:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9048:6:25"},"nodeType":"YulFunctionCall","src":"9048:21:25"},"nodeType":"YulExpressionStatement","src":"9048:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9089:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9100:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9085:3:25"},"nodeType":"YulFunctionCall","src":"9085:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"9105:2:25","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9078:6:25"},"nodeType":"YulFunctionCall","src":"9078:30:25"},"nodeType":"YulExpressionStatement","src":"9078:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9139:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9124:3:25"},"nodeType":"YulFunctionCall","src":"9124:18:25"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"9144:18:25","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9117:6:25"},"nodeType":"YulFunctionCall","src":"9117:46:25"},"nodeType":"YulExpressionStatement","src":"9117:46:25"},{"nodeType":"YulAssignment","src":"9172:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9184:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9195:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9180:3:25"},"nodeType":"YulFunctionCall","src":"9180:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9172:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9015:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9029:4:25","type":""}],"src":"8864:340:25"},{"body":{"nodeType":"YulBlock","src":"9338:168:25","statements":[{"nodeType":"YulAssignment","src":"9348:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9360:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9371:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9356:3:25"},"nodeType":"YulFunctionCall","src":"9356:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9348:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9390:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9405:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"9413:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9401:3:25"},"nodeType":"YulFunctionCall","src":"9401:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9383:6:25"},"nodeType":"YulFunctionCall","src":"9383:74:25"},"nodeType":"YulExpressionStatement","src":"9383:74:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9477:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9488:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9473:3:25"},"nodeType":"YulFunctionCall","src":"9473:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"9493:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9466:6:25"},"nodeType":"YulFunctionCall","src":"9466:34:25"},"nodeType":"YulExpressionStatement","src":"9466:34:25"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9299:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9310:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9318:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9329:4:25","type":""}],"src":"9209:297:25"},{"body":{"nodeType":"YulBlock","src":"9564:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"9574:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9583:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9578:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9643:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9668:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"9673:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9664:3:25"},"nodeType":"YulFunctionCall","src":"9664:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9687:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"9692:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9683:3:25"},"nodeType":"YulFunctionCall","src":"9683:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9677:5:25"},"nodeType":"YulFunctionCall","src":"9677:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9657:6:25"},"nodeType":"YulFunctionCall","src":"9657:39:25"},"nodeType":"YulExpressionStatement","src":"9657:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9604:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"9607:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9601:2:25"},"nodeType":"YulFunctionCall","src":"9601:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9615:19:25","statements":[{"nodeType":"YulAssignment","src":"9617:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9626:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"9629:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9622:3:25"},"nodeType":"YulFunctionCall","src":"9622:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9617:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"9597:3:25","statements":[]},"src":"9593:113:25"},{"body":{"nodeType":"YulBlock","src":"9732:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9745:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"9750:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9741:3:25"},"nodeType":"YulFunctionCall","src":"9741:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"9759:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9734:6:25"},"nodeType":"YulFunctionCall","src":"9734:27:25"},"nodeType":"YulExpressionStatement","src":"9734:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9721:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"9724:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9718:2:25"},"nodeType":"YulFunctionCall","src":"9718:13:25"},"nodeType":"YulIf","src":"9715:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"9542:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"9547:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"9552:6:25","type":""}],"src":"9511:258:25"},{"body":{"nodeType":"YulBlock","src":"10163:397:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10180:3:25"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"10185:25:25","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10173:6:25"},"nodeType":"YulFunctionCall","src":"10173:38:25"},"nodeType":"YulExpressionStatement","src":"10173:38:25"},{"nodeType":"YulVariableDeclaration","src":"10220:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10240:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10234:5:25"},"nodeType":"YulFunctionCall","src":"10234:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10224:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10282:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10290:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10278:3:25"},"nodeType":"YulFunctionCall","src":"10278:17:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10301:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"10306:2:25","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10297:3:25"},"nodeType":"YulFunctionCall","src":"10297:12:25"},{"name":"length","nodeType":"YulIdentifier","src":"10311:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10256:21:25"},"nodeType":"YulFunctionCall","src":"10256:62:25"},"nodeType":"YulExpressionStatement","src":"10256:62:25"},{"nodeType":"YulVariableDeclaration","src":"10327:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10341:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"10346:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10337:3:25"},"nodeType":"YulFunctionCall","src":"10337:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10331:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10373:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"10377:2:25","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10369:3:25"},"nodeType":"YulFunctionCall","src":"10369:11:25"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"10382:19:25","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10362:6:25"},"nodeType":"YulFunctionCall","src":"10362:40:25"},"nodeType":"YulExpressionStatement","src":"10362:40:25"},{"nodeType":"YulVariableDeclaration","src":"10411:29:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10433:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10427:5:25"},"nodeType":"YulFunctionCall","src":"10427:13:25"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"10415:8:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10475:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10483:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10471:3:25"},"nodeType":"YulFunctionCall","src":"10471:17:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10494:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"10498:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10490:3:25"},"nodeType":"YulFunctionCall","src":"10490:11:25"},{"name":"length_1","nodeType":"YulIdentifier","src":"10503:8:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10449:21:25"},"nodeType":"YulFunctionCall","src":"10449:63:25"},"nodeType":"YulExpressionStatement","src":"10449:63:25"},{"nodeType":"YulAssignment","src":"10521:33:25","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10536:2:25"},{"name":"length_1","nodeType":"YulIdentifier","src":"10540:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10532:3:25"},"nodeType":"YulFunctionCall","src":"10532:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"10551:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10528:3:25"},"nodeType":"YulFunctionCall","src":"10528:26:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10521:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10131:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10136:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10144:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10155:3:25","type":""}],"src":"9774:786:25"},{"body":{"nodeType":"YulBlock","src":"10615:267:25","statements":[{"nodeType":"YulVariableDeclaration","src":"10625:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10645:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10639:5:25"},"nodeType":"YulFunctionCall","src":"10639:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10629:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10667:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"10672:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10660:6:25"},"nodeType":"YulFunctionCall","src":"10660:19:25"},"nodeType":"YulExpressionStatement","src":"10660:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10714:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"10721:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10710:3:25"},"nodeType":"YulFunctionCall","src":"10710:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10732:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"10737:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10728:3:25"},"nodeType":"YulFunctionCall","src":"10728:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"10744:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10688:21:25"},"nodeType":"YulFunctionCall","src":"10688:63:25"},"nodeType":"YulExpressionStatement","src":"10688:63:25"},{"nodeType":"YulAssignment","src":"10760:116:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10775:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10788:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10796:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10784:3:25"},"nodeType":"YulFunctionCall","src":"10784:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"10801:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10780:3:25"},"nodeType":"YulFunctionCall","src":"10780:88:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10771:3:25"},"nodeType":"YulFunctionCall","src":"10771:98:25"},{"kind":"number","nodeType":"YulLiteral","src":"10871:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10767:3:25"},"nodeType":"YulFunctionCall","src":"10767:109:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10760:3:25"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10592:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10599:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10607:3:25","type":""}],"src":"10565:317:25"},{"body":{"nodeType":"YulBlock","src":"11008:99:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11025:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11036:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11018:6:25"},"nodeType":"YulFunctionCall","src":"11018:21:25"},"nodeType":"YulExpressionStatement","src":"11018:21:25"},{"nodeType":"YulAssignment","src":"11048:53:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11074:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11086:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11097:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11082:3:25"},"nodeType":"YulFunctionCall","src":"11082:18:25"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"11056:17:25"},"nodeType":"YulFunctionCall","src":"11056:45:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11048:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10977:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10988:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10999:4:25","type":""}],"src":"10887:220:25"},{"body":{"nodeType":"YulBlock","src":"11286:170:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11303:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11314:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11296:6:25"},"nodeType":"YulFunctionCall","src":"11296:21:25"},"nodeType":"YulExpressionStatement","src":"11296:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11348:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11333:3:25"},"nodeType":"YulFunctionCall","src":"11333:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11353:2:25","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11326:6:25"},"nodeType":"YulFunctionCall","src":"11326:30:25"},"nodeType":"YulExpressionStatement","src":"11326:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11387:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11372:3:25"},"nodeType":"YulFunctionCall","src":"11372:18:25"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"11392:22:25","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11365:6:25"},"nodeType":"YulFunctionCall","src":"11365:50:25"},"nodeType":"YulExpressionStatement","src":"11365:50:25"},{"nodeType":"YulAssignment","src":"11424:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11436:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11447:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11432:3:25"},"nodeType":"YulFunctionCall","src":"11432:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11424:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11263:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11277:4:25","type":""}],"src":"11112:344:25"},{"body":{"nodeType":"YulBlock","src":"11635:162:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11663:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11645:6:25"},"nodeType":"YulFunctionCall","src":"11645:21:25"},"nodeType":"YulExpressionStatement","src":"11645:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11697:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11682:3:25"},"nodeType":"YulFunctionCall","src":"11682:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11702:2:25","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11675:6:25"},"nodeType":"YulFunctionCall","src":"11675:30:25"},"nodeType":"YulExpressionStatement","src":"11675:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11725:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11736:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11721:3:25"},"nodeType":"YulFunctionCall","src":"11721:18:25"},{"hexValue":"496e76616c69642070616972","kind":"string","nodeType":"YulLiteral","src":"11741:14:25","type":"","value":"Invalid pair"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11714:6:25"},"nodeType":"YulFunctionCall","src":"11714:42:25"},"nodeType":"YulExpressionStatement","src":"11714:42:25"},{"nodeType":"YulAssignment","src":"11765:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11777:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11788:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11773:3:25"},"nodeType":"YulFunctionCall","src":"11773:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11765:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1fc389bc00670d4c2895432c0160675ee55ab241421a2665fe34f10079e93332__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11612:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11626:4:25","type":""}],"src":"11461:336:25"},{"body":{"nodeType":"YulBlock","src":"11900:147:25","statements":[{"body":{"nodeType":"YulBlock","src":"11946:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11955:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11958:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11948:6:25"},"nodeType":"YulFunctionCall","src":"11948:12:25"},"nodeType":"YulExpressionStatement","src":"11948:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11921:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11917:3:25"},"nodeType":"YulFunctionCall","src":"11917:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11942:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11913:3:25"},"nodeType":"YulFunctionCall","src":"11913:32:25"},"nodeType":"YulIf","src":"11910:52:25"},{"nodeType":"YulAssignment","src":"11971:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11987:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11981:5:25"},"nodeType":"YulFunctionCall","src":"11981:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11971:6:25"}]},{"nodeType":"YulAssignment","src":"12006:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12026:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12037:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12022:3:25"},"nodeType":"YulFunctionCall","src":"12022:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12016:5:25"},"nodeType":"YulFunctionCall","src":"12016:25:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12006:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11858:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11869:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11881:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11889:6:25","type":""}],"src":"11802:245:25"},{"body":{"nodeType":"YulBlock","src":"12130:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"12176:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12185:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12188:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12178:6:25"},"nodeType":"YulFunctionCall","src":"12178:12:25"},"nodeType":"YulExpressionStatement","src":"12178:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12151:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12160:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12147:3:25"},"nodeType":"YulFunctionCall","src":"12147:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12172:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12143:3:25"},"nodeType":"YulFunctionCall","src":"12143:32:25"},"nodeType":"YulIf","src":"12140:52:25"},{"nodeType":"YulVariableDeclaration","src":"12201:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12220:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12214:5:25"},"nodeType":"YulFunctionCall","src":"12214:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12205:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12261:5:25"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"12239:21:25"},"nodeType":"YulFunctionCall","src":"12239:28:25"},"nodeType":"YulExpressionStatement","src":"12239:28:25"},{"nodeType":"YulAssignment","src":"12276:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12286:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12276:6:25"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12096:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12107:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12119:6:25","type":""}],"src":"12052:245:25"},{"body":{"nodeType":"YulBlock","src":"12476:232:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12504:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12486:6:25"},"nodeType":"YulFunctionCall","src":"12486:21:25"},"nodeType":"YulExpressionStatement","src":"12486:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12538:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12523:3:25"},"nodeType":"YulFunctionCall","src":"12523:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12543:2:25","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12516:6:25"},"nodeType":"YulFunctionCall","src":"12516:30:25"},"nodeType":"YulExpressionStatement","src":"12516:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12577:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12562:3:25"},"nodeType":"YulFunctionCall","src":"12562:18:25"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nodeType":"YulLiteral","src":"12582:34:25","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12555:6:25"},"nodeType":"YulFunctionCall","src":"12555:62:25"},"nodeType":"YulExpressionStatement","src":"12555:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12637:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12648:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12633:3:25"},"nodeType":"YulFunctionCall","src":"12633:18:25"},{"hexValue":"6f742073756363656564","kind":"string","nodeType":"YulLiteral","src":"12653:12:25","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12626:6:25"},"nodeType":"YulFunctionCall","src":"12626:40:25"},"nodeType":"YulExpressionStatement","src":"12626:40:25"},{"nodeType":"YulAssignment","src":"12675:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12687:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12698:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12683:3:25"},"nodeType":"YulFunctionCall","src":"12683:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12675:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12453:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12467:4:25","type":""}],"src":"12302:406:25"},{"body":{"nodeType":"YulBlock","src":"12745:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12762:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12765:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12755:6:25"},"nodeType":"YulFunctionCall","src":"12755:88:25"},"nodeType":"YulExpressionStatement","src":"12755:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12859:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12862:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12852:6:25"},"nodeType":"YulFunctionCall","src":"12852:15:25"},"nodeType":"YulExpressionStatement","src":"12852:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12883:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12886:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12876:6:25"},"nodeType":"YulFunctionCall","src":"12876:15:25"},"nodeType":"YulExpressionStatement","src":"12876:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"12713:184:25"},{"body":{"nodeType":"YulBlock","src":"12949:149:25","statements":[{"body":{"nodeType":"YulBlock","src":"12976:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12978:16:25"},"nodeType":"YulFunctionCall","src":"12978:18:25"},"nodeType":"YulExpressionStatement","src":"12978:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12969:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12962:6:25"},"nodeType":"YulFunctionCall","src":"12962:13:25"},"nodeType":"YulIf","src":"12959:39:25"},{"nodeType":"YulAssignment","src":"13007:85:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13018:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"13025:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13014:3:25"},"nodeType":"YulFunctionCall","src":"13014:78:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"13007:3:25"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12931:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12941:3:25","type":""}],"src":"12902:196:25"},{"body":{"nodeType":"YulBlock","src":"13277:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13294:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13305:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13287:6:25"},"nodeType":"YulFunctionCall","src":"13287:21:25"},"nodeType":"YulExpressionStatement","src":"13287:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13328:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13339:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13324:3:25"},"nodeType":"YulFunctionCall","src":"13324:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13344:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13317:6:25"},"nodeType":"YulFunctionCall","src":"13317:30:25"},"nodeType":"YulExpressionStatement","src":"13317:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13367:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13378:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13363:3:25"},"nodeType":"YulFunctionCall","src":"13363:18:25"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"13383:34:25","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13356:6:25"},"nodeType":"YulFunctionCall","src":"13356:62:25"},"nodeType":"YulExpressionStatement","src":"13356:62:25"},{"nodeType":"YulAssignment","src":"13427:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13439:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13450:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13435:3:25"},"nodeType":"YulFunctionCall","src":"13435:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13427:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13254:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13268:4:25","type":""}],"src":"13103:356:25"},{"body":{"nodeType":"YulBlock","src":"13611:221:25","statements":[{"nodeType":"YulVariableDeclaration","src":"13621:76:25","value":{"kind":"number","nodeType":"YulLiteral","src":"13631:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13625:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13713:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13726:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"13730:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13722:3:25"},"nodeType":"YulFunctionCall","src":"13722:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13739:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13718:3:25"},"nodeType":"YulFunctionCall","src":"13718:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13706:6:25"},"nodeType":"YulFunctionCall","src":"13706:37:25"},"nodeType":"YulExpressionStatement","src":"13706:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13763:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"13768:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13759:3:25"},"nodeType":"YulFunctionCall","src":"13759:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13781:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"13785:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13777:3:25"},"nodeType":"YulFunctionCall","src":"13777:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13794:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13773:3:25"},"nodeType":"YulFunctionCall","src":"13773:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13752:6:25"},"nodeType":"YulFunctionCall","src":"13752:46:25"},"nodeType":"YulExpressionStatement","src":"13752:46:25"},{"nodeType":"YulAssignment","src":"13807:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13818:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"13823:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13814:3:25"},"nodeType":"YulFunctionCall","src":"13814:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13807:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13579:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13584:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13592:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13603:3:25","type":""}],"src":"13464:368:25"},{"body":{"nodeType":"YulBlock","src":"14113:315:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14130:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"14135:66:25","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14123:6:25"},"nodeType":"YulFunctionCall","src":"14123:79:25"},"nodeType":"YulExpressionStatement","src":"14123:79:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14222:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"14227:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14218:3:25"},"nodeType":"YulFunctionCall","src":"14218:11:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14239:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"14243:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14235:3:25"},"nodeType":"YulFunctionCall","src":"14235:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"14252:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14231:3:25"},"nodeType":"YulFunctionCall","src":"14231:88:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14211:6:25"},"nodeType":"YulFunctionCall","src":"14211:109:25"},"nodeType":"YulExpressionStatement","src":"14211:109:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14340:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"14345:2:25","type":"","value":"21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14336:3:25"},"nodeType":"YulFunctionCall","src":"14336:12:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14350:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14329:6:25"},"nodeType":"YulFunctionCall","src":"14329:28:25"},"nodeType":"YulExpressionStatement","src":"14329:28:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14377:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"14382:2:25","type":"","value":"53"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14373:3:25"},"nodeType":"YulFunctionCall","src":"14373:12:25"},{"name":"value2","nodeType":"YulIdentifier","src":"14387:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14366:6:25"},"nodeType":"YulFunctionCall","src":"14366:28:25"},"nodeType":"YulExpressionStatement","src":"14366:28:25"},{"nodeType":"YulAssignment","src":"14403:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14414:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"14419:2:25","type":"","value":"85"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14410:3:25"},"nodeType":"YulFunctionCall","src":"14410:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14403:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9_t_address_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14073:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14078:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14086:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14094:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14105:3:25","type":""}],"src":"13837:591:25"},{"body":{"nodeType":"YulBlock","src":"14644:279:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14661:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14672:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14654:6:25"},"nodeType":"YulFunctionCall","src":"14654:25:25"},"nodeType":"YulExpressionStatement","src":"14654:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14699:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14710:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14695:3:25"},"nodeType":"YulFunctionCall","src":"14695:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14715:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14688:6:25"},"nodeType":"YulFunctionCall","src":"14688:34:25"},"nodeType":"YulExpressionStatement","src":"14688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14753:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14738:3:25"},"nodeType":"YulFunctionCall","src":"14738:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14762:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14770:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14758:3:25"},"nodeType":"YulFunctionCall","src":"14758:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14731:6:25"},"nodeType":"YulFunctionCall","src":"14731:83:25"},"nodeType":"YulExpressionStatement","src":"14731:83:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14845:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14830:3:25"},"nodeType":"YulFunctionCall","src":"14830:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14850:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14823:6:25"},"nodeType":"YulFunctionCall","src":"14823:31:25"},"nodeType":"YulExpressionStatement","src":"14823:31:25"},{"nodeType":"YulAssignment","src":"14863:54:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14889:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14901:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14912:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14897:3:25"},"nodeType":"YulFunctionCall","src":"14897:19:25"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"14871:17:25"},"nodeType":"YulFunctionCall","src":"14871:46:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14863:4:25"}]}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_uint256_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14589:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14600:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14608:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14616:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14624:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14635:4:25","type":""}],"src":"14433:490:25"},{"body":{"nodeType":"YulBlock","src":"15139:279:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15156:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"15167:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15149:6:25"},"nodeType":"YulFunctionCall","src":"15149:25:25"},"nodeType":"YulExpressionStatement","src":"15149:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15194:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15205:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15190:3:25"},"nodeType":"YulFunctionCall","src":"15190:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"15210:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15183:6:25"},"nodeType":"YulFunctionCall","src":"15183:34:25"},"nodeType":"YulExpressionStatement","src":"15183:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15237:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15248:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15233:3:25"},"nodeType":"YulFunctionCall","src":"15233:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"15257:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15265:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15253:3:25"},"nodeType":"YulFunctionCall","src":"15253:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15226:6:25"},"nodeType":"YulFunctionCall","src":"15226:83:25"},"nodeType":"YulExpressionStatement","src":"15226:83:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15329:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15340:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15325:3:25"},"nodeType":"YulFunctionCall","src":"15325:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15345:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15318:6:25"},"nodeType":"YulFunctionCall","src":"15318:31:25"},"nodeType":"YulExpressionStatement","src":"15318:31:25"},{"nodeType":"YulAssignment","src":"15358:54:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15384:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15396:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15407:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15392:3:25"},"nodeType":"YulFunctionCall","src":"15392:19:25"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"15366:17:25"},"nodeType":"YulFunctionCall","src":"15366:46:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15358:4:25"}]}]},"name":"abi_encode_tuple_t_uint256_t_rational_0_by_1_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15084:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15095:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15103:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15111:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15119:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15130:4:25","type":""}],"src":"14928:490:25"},{"body":{"nodeType":"YulBlock","src":"15483:128:25","statements":[{"nodeType":"YulAssignment","src":"15493:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15508:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15502:5:25"},"nodeType":"YulFunctionCall","src":"15502:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15493:5:25"}]},{"body":{"nodeType":"YulBlock","src":"15589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15591:6:25"},"nodeType":"YulFunctionCall","src":"15591:12:25"},"nodeType":"YulExpressionStatement","src":"15591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15537:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15548:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"15555:30:25","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15544:3:25"},"nodeType":"YulFunctionCall","src":"15544:42:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15534:2:25"},"nodeType":"YulFunctionCall","src":"15534:53:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15527:6:25"},"nodeType":"YulFunctionCall","src":"15527:61:25"},"nodeType":"YulIf","src":"15524:81:25"}]},"name":"abi_decode_uint112_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"15462:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"15473:5:25","type":""}],"src":"15423:188:25"},{"body":{"nodeType":"YulBlock","src":"15730:336:25","statements":[{"body":{"nodeType":"YulBlock","src":"15776:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15785:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15788:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15778:6:25"},"nodeType":"YulFunctionCall","src":"15778:12:25"},"nodeType":"YulExpressionStatement","src":"15778:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15751:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"15760:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15747:3:25"},"nodeType":"YulFunctionCall","src":"15747:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"15772:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15743:3:25"},"nodeType":"YulFunctionCall","src":"15743:32:25"},"nodeType":"YulIf","src":"15740:52:25"},{"nodeType":"YulAssignment","src":"15801:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15841:9:25"}],"functionName":{"name":"abi_decode_uint112_fromMemory","nodeType":"YulIdentifier","src":"15811:29:25"},"nodeType":"YulFunctionCall","src":"15811:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15801:6:25"}]},{"nodeType":"YulAssignment","src":"15860:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15915:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15900:3:25"},"nodeType":"YulFunctionCall","src":"15900:18:25"}],"functionName":{"name":"abi_decode_uint112_fromMemory","nodeType":"YulIdentifier","src":"15870:29:25"},"nodeType":"YulFunctionCall","src":"15870:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15860:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"15928:38:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15951:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15962:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15947:3:25"},"nodeType":"YulFunctionCall","src":"15947:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15941:5:25"},"nodeType":"YulFunctionCall","src":"15941:25:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15932:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"16020:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16029:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16032:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:12:25"},"nodeType":"YulExpressionStatement","src":"16022:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15988:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15999:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"16006:10:25","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15995:3:25"},"nodeType":"YulFunctionCall","src":"15995:22:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15985:2:25"},"nodeType":"YulFunctionCall","src":"15985:33:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15978:6:25"},"nodeType":"YulFunctionCall","src":"15978:41:25"},"nodeType":"YulIf","src":"15975:61:25"},{"nodeType":"YulAssignment","src":"16045:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"16055:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"16045:6:25"}]}]},"name":"abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15680:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15691:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15703:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15711:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15719:6:25","type":""}],"src":"15616:450:25"},{"body":{"nodeType":"YulBlock","src":"16245:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16273:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16255:6:25"},"nodeType":"YulFunctionCall","src":"16255:21:25"},"nodeType":"YulExpressionStatement","src":"16255:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16296:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16307:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16292:3:25"},"nodeType":"YulFunctionCall","src":"16292:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16312:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16285:6:25"},"nodeType":"YulFunctionCall","src":"16285:30:25"},"nodeType":"YulExpressionStatement","src":"16285:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16346:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16331:3:25"},"nodeType":"YulFunctionCall","src":"16331:18:25"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nodeType":"YulLiteral","src":"16351:34:25","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16324:6:25"},"nodeType":"YulFunctionCall","src":"16324:62:25"},"nodeType":"YulExpressionStatement","src":"16324:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16406:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16417:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16402:3:25"},"nodeType":"YulFunctionCall","src":"16402:18:25"},{"hexValue":"722063616c6c","kind":"string","nodeType":"YulLiteral","src":"16422:8:25","type":"","value":"r call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16395:6:25"},"nodeType":"YulFunctionCall","src":"16395:36:25"},"nodeType":"YulExpressionStatement","src":"16395:36:25"},{"nodeType":"YulAssignment","src":"16440:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16440:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16222:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16236:4:25","type":""}],"src":"16071:402:25"},{"body":{"nodeType":"YulBlock","src":"16615:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"16625:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16645:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16639:5:25"},"nodeType":"YulFunctionCall","src":"16639:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16629:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16687:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16695:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16683:3:25"},"nodeType":"YulFunctionCall","src":"16683:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"16702:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"16707:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"16661:21:25"},"nodeType":"YulFunctionCall","src":"16661:53:25"},"nodeType":"YulExpressionStatement","src":"16661:53:25"},{"nodeType":"YulAssignment","src":"16723:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16734:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"16739:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16730:3:25"},"nodeType":"YulFunctionCall","src":"16730:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16723:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16591:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16596:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16607:3:25","type":""}],"src":"16478:274:25"},{"body":{"nodeType":"YulBlock","src":"16931:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16948:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16959:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16941:6:25"},"nodeType":"YulFunctionCall","src":"16941:21:25"},"nodeType":"YulExpressionStatement","src":"16941:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16982:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16993:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16978:3:25"},"nodeType":"YulFunctionCall","src":"16978:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16998:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16971:6:25"},"nodeType":"YulFunctionCall","src":"16971:30:25"},"nodeType":"YulExpressionStatement","src":"16971:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17021:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17032:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17017:3:25"},"nodeType":"YulFunctionCall","src":"17017:18:25"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nodeType":"YulLiteral","src":"17037:31:25","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17010:6:25"},"nodeType":"YulFunctionCall","src":"17010:59:25"},"nodeType":"YulExpressionStatement","src":"17010:59:25"},{"nodeType":"YulAssignment","src":"17078:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17090:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17101:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17086:3:25"},"nodeType":"YulFunctionCall","src":"17086:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17078:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16908:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16922:4:25","type":""}],"src":"16757:353:25"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_array_contract_IPangolinPair_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_contract$_IPangolinPair_$3725_$dyn_calldata_ptrt_boolt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_contract_IPangolinPair_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_contract_IPangolinPair_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_170fb541e2b36e11ce629c830863665c9d83f3af17f1866063a64770ae59bed1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"High Slippage\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_9be54a03d8f6d5d46b41e000519fe31472c98ecb51665fad2b1041586c694ea2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Total fees must <= 100\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2a845d0b81b644719e5819264d8c4c6738666e960bd64554dedf9f417f516194__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Incentive too large\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_356fa128b111a78c16f9f5610237700b9b03c95c9cf18624beceff426daa62b1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"Cannot recover\")\n        tail := add(headStart, 96)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid address\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_7d69002104da2e5435c18e278628bac977eef7004d96c117db060054d8cf9237__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Invalid staking reward\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1fc389bc00670d4c2895432c0160675ee55ab241421a2665fe34f10079e93332__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"Invalid pair\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := mload(headStart)\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        mstore(pos, and(shl(96, value0), _1))\n        mstore(add(pos, 20), and(shl(96, value1), _1))\n        end := add(pos, 40)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9_t_address_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, 0xff00000000000000000000000000000000000000000000000000000000000000)\n        mstore(add(pos, 1), and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 21), value1)\n        mstore(add(pos, 53), value2)\n        end := add(pos, 85)\n    }\n    function abi_encode_tuple_t_rational_0_by_1_t_uint256_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_uint256_t_rational_0_by_1_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_uint112_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint112_fromMemory(headStart)\n        value1 := abi_decode_uint112_fromMemory(add(headStart, 32))\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n        value2 := value\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3764":[{"length":32,"start":813},{"length":32,"start":7067}],"3766":[{"length":32,"start":1494},{"length":32,"start":7126}],"3768":[{"length":32,"start":1267},{"length":32,"start":6004},{"length":32,"start":6063},{"length":32,"start":6138}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102925760003560e01c80637e2be19511610160578063cd6e7def116100d8578063d73792a91161008c578063f0f4426011610071578063f0f44260146105be578063fa881298146105d1578063fbb12d07146105f857600080fd5b8063d73792a9146105a2578063dfa0dfa5146105ab57600080fd5b8063cf3b69b6116100bd578063cf3b69b614610574578063cfabe8ed1461057c578063d547741f1461058f57600080fd5b8063cd6e7def14610558578063ce306b801461056157600080fd5b8063a217fddf1161012f578063cc1a378f11610114578063cc1a378f14610515578063cc32d17614610528578063ccc574901461053157600080fd5b8063a217fddf146104e6578063b7c71db4146104ee57600080fd5b80637e2be195146104815780638456cb591461049457806386da6f7c1461049c57806391d14854146104af57600080fd5b80633792a7fb1161020e5780635c975abb116101c2578063635cc7b8116101a7578063635cc7b81461044357806364b87a701461045657806377e741c71461046e57600080fd5b80635c975abb1461042557806361d027b31461043057600080fd5b80633f4ba83a116101f35780633f4ba83a146103f75780634005760a146103ff578063572996c71461041257600080fd5b80633792a7fb146103bd578063389ed267146103d057600080fd5b80632dd31000116102655780633024a3071161024a5780633024a3071461037a57806331993a1c1461038357806336568abe146103aa57600080fd5b80632dd31000146103285780632f2ff15d1461036757600080fd5b806301ffc9a71461029757806316242bee146102bf578063248a9ca3146102d45780632851bbc914610305575b600080fd5b6102aa6102a53660046122ba565b61061f565b60405190151581526020015b60405180910390f35b6102d26102cd36600461231f565b6106b8565b005b6102f76102e2366004612358565b60009081526020819052604090206001015490565b6040519081526020016102b6565b6102aa610313366004612371565b60086020526000908152604090205460ff1681565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b6565b6102d261037536600461238e565b61070e565b6102f760075481565b6102f77f0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff881565b6102d26103b836600461238e565b610738565b6102d26103cb366004612358565b6107c9565b6102f77f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d81565b6102d26107da565b60065461034f906001600160a01b031681565b6102d2610420366004612371565b61080f565b60015460ff166102aa565b60035461034f906001600160a01b031681565b6102d26104513660046123ff565b61085d565b60015461034f9061010090046001600160a01b031681565b6102d261047c366004612358565b610b5d565b6102d261048f366004612358565b610bec565b6102d2610cad565b60025461034f906001600160a01b031681565b6102aa6104bd36600461238e565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6102f7600081565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b6102d2610523366004612358565b610cdf565b6102f760045481565b6102f77f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5581565b6102f760055481565b6102d261056f36600461245c565b610d6a565b6102f760c881565b6102d261058a366004612371565b610ee5565b6102d261059d36600461238e565b610f41565b6102f761271081565b6102d26105b9366004612371565b610f66565b6102d26105cc366004612371565b6110e1565b6102f77f000000000000000000000000000000000000000000000000000000000000000081565b6102f77f90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106b257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7f0acf805600123ef007091da3b3ffb39474074c656c127aa68cb0ffec232a8ff86106e28161112f565b506001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000828152602081905260409020600101546107298161112f565b6107338383611139565b505050565b6001600160a01b03811633146107bb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6107c582826111d7565b5050565b60006107d48161112f565b50600755565b7f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d6108048161112f565b61080c611256565b50565b600061081a8161112f565b6001600160a01b03821661082d57600080fd5b506006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6108656112a8565b7f90ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239c61088f8161112f565b6002546001600160a01b031684156108df576108df8686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508592506112fd915050565b8315610967576006546007546040517f18fccc7600000000000000000000000000000000000000000000000000000000815260048101919091523060248201526001600160a01b03909116906318fccc7690604401600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d2919061249e565b905083811015610a245760405162461bcd60e51b815260206004820152600d60248201527f4869676820536c6970706167650000000000000000000000000000000000000060448201526064016107b2565b600061271060055483610a3791906124cd565b610a4191906124ec565b9050600061271060045484610a5691906124cd565b610a6091906124ec565b9050600081610a6f848661250e565b610a79919061250e565b90508015610b17576001546001600160a01b03610100909104811690610aa29087168284611416565b6040517f3c6b16ab000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03821690633c6b16ab90602401600060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b50505050505b8115610b3757600354610b37906001600160a01b03878116911684611416565b8215610b5157610b516001600160a01b0386163385611416565b50505050505050505050565b7f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55610b878161112f565b61271082600554610b989190612525565b1115610be65760405162461bcd60e51b815260206004820152601660248201527f546f74616c2066656573206d757374203c3d203130300000000000000000000060448201526064016107b2565b50600455565b6000610bf78161112f565b60c8821115610c485760405162461bcd60e51b815260206004820152601360248201527f496e63656e7469766520746f6f206c617267650000000000000000000000000060448201526064016107b2565b61271060045483610c599190612525565b1115610ca75760405162461bcd60e51b815260206004820152601660248201527f546f74616c2066656573206d757374203c3d203130300000000000000000000060448201526064016107b2565b50600555565b7f139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d610cd78161112f565b61080c611496565b6000610cea8161112f565b6001546040517fcc1a378f000000000000000000000000000000000000000000000000000000008152600481018490526101009091046001600160a01b03169063cc1a378f906024015b600060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050505050565b610d726112a8565b6000610d7d8161112f565b6003546001600160a01b03168260005b81811015610d625760086000878784818110610dab57610dab61253d565b9050602002016020810190610dc09190612371565b6001600160a01b0316815260208101919091526040016000205460ff16610e295760405162461bcd60e51b815260206004820152600e60248201527f43616e6e6f74207265636f76657200000000000000000000000000000000000060448201526064016107b2565b6000868683818110610e3d57610e3d61253d565b9050602002016020810190610e529190612371565b6040516370a0823160e01b8152306004820152909150610ed49085906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec3919061249e565b6001600160a01b0384169190611416565b50610ede81612553565b9050610d8d565b6000610ef08161112f565b6001546040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526101009092049091169063f2fde38b90602401610d34565b600082815260208190526040902060010154610f5c8161112f565b61073383836111d7565b6000610f718161112f565b6001600160a01b038216610fc75760405162461bcd60e51b815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016107b2565b6000826001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102b919061256d565b90506001600160a01b0381166110835760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207374616b696e67207265776172640000000000000000000060448201526064016107b2565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03958616021790556002805473ffffffffffffffffffffffffffffffffffffffff1916919093161790915550565b60006110ec8161112f565b6001600160a01b0382166110ff57600080fd5b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61080c81336114d1565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107c5576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111933390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156107c5576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61125e611544565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60015460ff16156112fb5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016107b2565b565b60005b825181101561073357600083828151811061131d5761131d61253d565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611396919061249e565b90508015611403576000806000806113ae8686611596565b9350935093509350876001600160a01b0316846001600160a01b0316146113da576113da848985611772565b876001600160a01b0316826001600160a01b0316146113fe576113fe828983611772565b505050505b50508061140f90612553565b9050611300565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261073390849061181f565b61149e6112a8565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361128b565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107c55761150281611904565b61150d836020611916565b60405160200161151e9291906125ba565b60408051601f198184030181529082905262461bcd60e51b82526107b291600401612667565b60015460ff166112fb5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016107b2565b600080600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fe919061256d565b9350856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611662919061256d565b9150856001600160a01b03166116788584611b46565b6001600160a01b0316146116ce5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c69642070616972000000000000000000000000000000000000000060448201526064016107b2565b6116e26001600160a01b0387168787611416565b6040517f89afcb440000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038716906389afcb449060240160408051808303816000875af1158015611740573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611764919061267a565b949790965091945090915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806117e357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b156117f357610733818484611c73565b61073381847f000000000000000000000000000000000000000000000000000000000000000085611dad565b6000611874826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120099092919063ffffffff16565b8051909150156107335780806020019051810190611892919061269e565b6107335760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107b2565b60606106b26001600160a01b03831660145b606060006119258360026124cd565b611930906002612525565b67ffffffffffffffff811115611948576119486126bb565b6040519080825280601f01601f191660200182016040528015611972576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106119a9576119a961253d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a0c57611a0c61253d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611a488460026124cd565b611a53906001612525565b90505b6001811115611af0577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a9457611a9461253d565b1a60f81b828281518110611aaa57611aaa61253d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611ae9816126d1565b9050611a56565b508315611b3f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107b2565b9392505050565b6000806000836001600160a01b0316856001600160a01b031610611b6b578385611b6e565b84845b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b16603482015291935091507f000000000000000000000000000000000000000000000000000000000000000090604801604051602081830303815290604052805190602001207f0000000000000000000000000000000000000000000000000000000000000000604051602001611c52939291907fff00000000000000000000000000000000000000000000000000000000000000815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f19818403018152919052805160209091012095945050505050565b6000611c7f8383611b46565b90506000611c8f85838686612020565b9050611ca56001600160a01b0385168387611416565b826001600160a01b0316846001600160a01b03161015611d3557604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0384169163022c0d9f91611cfe919085903090602481016126e8565b600060405180830381600087803b158015611d1857600080fd5b505af1158015611d2c573d6000803e3d6000fd5b50505050611da6565b604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0384169163022c0d9f91611d739185913090602481016126e8565b600060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050505b5050505050565b6000611db98484611b46565b90506000611dc78484611b46565b90506000611dd787848888612020565b90506000611de782848888612020565b9050611dfd6001600160a01b038816858a611416565b856001600160a01b0316876001600160a01b03161015611e8d57604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0386169163022c0d9f91611e56919086908890602481016126e8565b600060405180830381600087803b158015611e7057600080fd5b505af1158015611e84573d6000803e3d6000fd5b50505050611efe565b604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0386169163022c0d9f91611ecb9186918890602481016126e8565b600060405180830381600087803b158015611ee557600080fd5b505af1158015611ef9573d6000803e3d6000fd5b505050505b846001600160a01b0316866001600160a01b03161015611f8e57604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0385169163022c0d9f91611f57919085903090602481016126e8565b600060405180830381600087803b158015611f7157600080fd5b505af1158015611f85573d6000803e3d6000fd5b50505050611fff565b604080516000808252602082019283905263022c0d9f60e01b9092526001600160a01b0385169163022c0d9f91611fcc9185913090602481016126e8565b600060405180830381600087803b158015611fe657600080fd5b505af1158015611ffa573d6000803e3d6000fd5b505050505b5050505050505050565b6060612018848460008561212a565b949350505050565b6000806000856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190612743565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600080856001600160a01b0316876001600160a01b0316106120cf5782846120d2565b83835b909250905060006120e58a6103e56124cd565b905060006120f383836124cd565b9050600082612104866103e86124cd565b61210e9190612525565b905061211a81836124ec565b9c9b505050505050505050505050565b6060824710156121a25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016107b2565b600080866001600160a01b031685876040516121be9190612793565b60006040518083038185875af1925050503d80600081146121fb576040519150601f19603f3d011682016040523d82523d6000602084013e612200565b606091505b50915091506122118783838761221c565b979650505050505050565b6060831561228b578251600003612284576001600160a01b0385163b6122845760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107b2565b5081612018565b61201883838151156122a05781518083602001fd5b8060405162461bcd60e51b81526004016107b29190612667565b6000602082840312156122cc57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b3f57600080fd5b6001600160a01b038116811461080c57600080fd5b801515811461080c57600080fd5b6000806040838503121561233257600080fd5b823561233d816122fc565b9150602083013561234d81612311565b809150509250929050565b60006020828403121561236a57600080fd5b5035919050565b60006020828403121561238357600080fd5b8135611b3f816122fc565b600080604083850312156123a157600080fd5b82359150602083013561234d816122fc565b60008083601f8401126123c557600080fd5b50813567ffffffffffffffff8111156123dd57600080fd5b6020830191508360208260051b85010111156123f857600080fd5b9250929050565b6000806000806060858703121561241557600080fd5b843567ffffffffffffffff81111561242c57600080fd5b612438878288016123b3565b909550935050602085013561244c81612311565b9396929550929360400135925050565b6000806020838503121561246f57600080fd5b823567ffffffffffffffff81111561248657600080fd5b612492858286016123b3565b90969095509350505050565b6000602082840312156124b057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156124e7576124e76124b7565b500290565b60008261250957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612520576125206124b7565b500390565b60008219821115612538576125386124b7565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198203612566576125666124b7565b5060010190565b60006020828403121561257f57600080fd5b8151611b3f816122fc565b60005b838110156125a557818101518382015260200161258d565b838111156125b4576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516125f281601785016020880161258a565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161262f81602884016020880161258a565b01602801949350505050565b6000815180845261265381602086016020860161258a565b601f01601f19169290920160200192915050565b602081526000611b3f602083018461263b565b6000806040838503121561268d57600080fd5b505080516020909101519092909150565b6000602082840312156126b057600080fd5b8151611b3f81612311565b634e487b7160e01b600052604160045260246000fd5b6000816126e0576126e06124b7565b506000190190565b8481528360208201526001600160a01b0383166040820152608060608201526000612716608083018461263b565b9695505050505050565b80516dffffffffffffffffffffffffffff8116811461273e57600080fd5b919050565b60008060006060848603121561275857600080fd5b61276184612720565b925061276f60208501612720565b9150604084015163ffffffff8116811461278857600080fd5b809150509250925092565b600082516127a581846020870161258a565b919091019291505056fea26469706673582212207c791ea85fca9fb53c7a043b5c87abb267791256910b8e33717b16a8665419ce64736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x292 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7E2BE195 GT PUSH2 0x160 JUMPI DUP1 PUSH4 0xCD6E7DEF GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xF0F44260 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xF0F44260 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xFA881298 EQ PUSH2 0x5D1 JUMPI DUP1 PUSH4 0xFBB12D07 EQ PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0xDFA0DFA5 EQ PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCF3B69B6 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xCF3B69B6 EQ PUSH2 0x574 JUMPI DUP1 PUSH4 0xCFABE8ED EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCD6E7DEF EQ PUSH2 0x558 JUMPI DUP1 PUSH4 0xCE306B80 EQ PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x12F JUMPI DUP1 PUSH4 0xCC1A378F GT PUSH2 0x114 JUMPI DUP1 PUSH4 0xCC1A378F EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0xCC32D176 EQ PUSH2 0x528 JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x4E6 JUMPI DUP1 PUSH4 0xB7C71DB4 EQ PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7E2BE195 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x494 JUMPI DUP1 PUSH4 0x86DA6F7C EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3792A7FB GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x635CC7B8 GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x635CC7B8 EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x64B87A70 EQ PUSH2 0x456 JUMPI DUP1 PUSH4 0x77E741C7 EQ PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x425 JUMPI DUP1 PUSH4 0x61D027B3 EQ PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x3F7 JUMPI DUP1 PUSH4 0x4005760A EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x572996C7 EQ PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3792A7FB EQ PUSH2 0x3BD JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DD31000 GT PUSH2 0x265 JUMPI DUP1 PUSH4 0x3024A307 GT PUSH2 0x24A JUMPI DUP1 PUSH4 0x3024A307 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x31993A1C EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DD31000 EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x16242BEE EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x2851BBC9 EQ PUSH2 0x305 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22BA JUMP JUMPDEST PUSH2 0x61F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D2 PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x231F JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2F7 PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x34F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x375 CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH2 0x70E JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0xACF805600123EF007091DA3B3FFB39474074C656C127AA68CB0FFEC232A8FF8 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH2 0x738 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x7DA JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x34F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x420 CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x80F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x34F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x451 CALLDATASIZE PUSH1 0x4 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x85D JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x34F SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x48F CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xBEC JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0xCAD JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x34F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x34F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xCDF JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x7935BD0AE54BC31F548C14DBA4D37C5C64B3F8CA900CB468FB8ABD54D5894F55 DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x56F CALLDATASIZE PUSH1 0x4 PUSH2 0x245C JUMP JUMPDEST PUSH2 0xD6A JUMP JUMPDEST PUSH2 0x2F7 PUSH1 0xC8 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0xEE5 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x238E JUMP JUMPDEST PUSH2 0xF41 JUMP JUMPDEST PUSH2 0x2F7 PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0xF66 JUMP JUMPDEST PUSH2 0x2D2 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x10E1 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2F7 PUSH32 0x90FF0FDC2A5E2F52090B2C8A629804C58D5C1156B5405C8437A00DA5ABBA239C DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x6B2 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xACF805600123EF007091DA3B3FFB39474074C656C127AA68CB0FFEC232A8FF8 PUSH2 0x6E2 DUP2 PUSH2 0x112F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x729 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x733 DUP4 DUP4 PUSH2 0x1139 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x7BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7C5 DUP3 DUP3 PUSH2 0x11D7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D4 DUP2 PUSH2 0x112F JUMP JUMPDEST POP PUSH1 0x7 SSTORE JUMP JUMPDEST PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D PUSH2 0x804 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x80C PUSH2 0x1256 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x81A DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x865 PUSH2 0x12A8 JUMP JUMPDEST PUSH32 0x90FF0FDC2A5E2F52090B2C8A629804C58D5C1156B5405C8437A00DA5ABBA239C PUSH2 0x88F DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 ISZERO PUSH2 0x8DF JUMPI PUSH2 0x8DF DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP6 SWAP3 POP PUSH2 0x12FD SWAP2 POP POP JUMP JUMPDEST DUP4 ISZERO PUSH2 0x967 JUMPI PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18FCCC7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x18FCCC76 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x94E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9D2 SWAP2 SWAP1 PUSH2 0x249E JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xA24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4869676820536C69707061676500000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2710 PUSH1 0x5 SLOAD DUP4 PUSH2 0xA37 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0xA41 SWAP2 SWAP1 PUSH2 0x24EC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2710 PUSH1 0x4 SLOAD DUP5 PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0xA60 SWAP2 SWAP1 PUSH2 0x24EC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0xA6F DUP5 DUP7 PUSH2 0x250E JUMP JUMPDEST PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x250E JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0xAA2 SWAP1 DUP8 AND DUP3 DUP5 PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3C6B16AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3C6B16AB SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB11 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST DUP2 ISZERO PUSH2 0xB37 JUMPI PUSH1 0x3 SLOAD PUSH2 0xB37 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP2 AND DUP5 PUSH2 0x1416 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xB51 JUMPI PUSH2 0xB51 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER DUP6 PUSH2 0x1416 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x7935BD0AE54BC31F548C14DBA4D37C5C64B3F8CA900CB468FB8ABD54D5894F55 PUSH2 0xB87 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x2710 DUP3 PUSH1 0x5 SLOAD PUSH2 0xB98 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST GT ISZERO PUSH2 0xBE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x546F74616C2066656573206D757374203C3D2031303000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST POP PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF7 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0xC8 DUP3 GT ISZERO PUSH2 0xC48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E63656E7469766520746F6F206C6172676500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH2 0x2710 PUSH1 0x4 SLOAD DUP4 PUSH2 0xC59 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST GT ISZERO PUSH2 0xCA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x546F74616C2066656573206D757374203C3D2031303000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST POP PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH32 0x139C2898040EF16910DC9F44DC697DF79363DA767D8BC92F2E310312B816E46D PUSH2 0xCD7 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x80C PUSH2 0x1496 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCEA DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCC1A378F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCC1A378F SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD62 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD72 PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7D DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD62 JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xDAB JUMPI PUSH2 0xDAB PUSH2 0x253D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xDC0 SWAP2 SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xE29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F74207265636F766572000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0xE3D JUMPI PUSH2 0xE3D PUSH2 0x253D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE52 SWAP2 SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xED4 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEC3 SWAP2 SWAP1 PUSH2 0x249E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 SWAP1 PUSH2 0x1416 JUMP JUMPDEST POP PUSH2 0xEDE DUP2 PUSH2 0x2553 JUMP JUMPDEST SWAP1 POP PUSH2 0xD8D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF0 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0x100 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH2 0xD34 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xF5C DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH2 0x733 DUP4 DUP4 PUSH2 0x11D7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C696420616464726573730000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD1AF0C7D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x102B SWAP2 SWAP1 PUSH2 0x256D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1083 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207374616B696E672072657761726400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FF AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND MUL OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP4 AND OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10EC DUP2 PUSH2 0x112F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x80C DUP2 CALLER PUSH2 0x14D1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7C5 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1193 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x7C5 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x125E PUSH2 0x1544 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x12FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x733 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x131D JUMPI PUSH2 0x131D PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1372 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1396 SWAP2 SWAP1 PUSH2 0x249E JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1403 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x13AE DUP7 DUP7 PUSH2 0x1596 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13DA JUMPI PUSH2 0x13DA DUP5 DUP10 DUP6 PUSH2 0x1772 JUMP JUMPDEST DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13FE JUMPI PUSH2 0x13FE DUP3 DUP10 DUP4 PUSH2 0x1772 JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP DUP1 PUSH2 0x140F SWAP1 PUSH2 0x2553 JUMP JUMPDEST SWAP1 POP PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0x733 SWAP1 DUP5 SWAP1 PUSH2 0x181F JUMP JUMPDEST PUSH2 0x149E PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 CALLER PUSH2 0x128B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7C5 JUMPI PUSH2 0x1502 DUP2 PUSH2 0x1904 JUMP JUMPDEST PUSH2 0x150D DUP4 PUSH1 0x20 PUSH2 0x1916 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x151E SWAP3 SWAP2 SWAP1 PUSH2 0x25BA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x7B2 SWAP2 PUSH1 0x4 ADD PUSH2 0x2667 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND PUSH2 0x12FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15FE SWAP2 SWAP1 PUSH2 0x256D JUMP JUMPDEST SWAP4 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1662 SWAP2 SWAP1 PUSH2 0x256D JUMP JUMPDEST SWAP2 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1678 DUP6 DUP5 PUSH2 0x1B46 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C696420706169720000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH2 0x16E2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP8 DUP8 PUSH2 0x1416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x89AFCB4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH4 0x89AFCB44 SWAP1 PUSH1 0x24 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1740 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1764 SWAP2 SWAP1 PUSH2 0x267A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP2 SWAP5 POP SWAP1 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x17E3 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST ISZERO PUSH2 0x17F3 JUMPI PUSH2 0x733 DUP2 DUP5 DUP5 PUSH2 0x1C73 JUMP JUMPDEST PUSH2 0x733 DUP2 DUP5 PUSH32 0x0 DUP6 PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1874 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2009 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x733 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1892 SWAP2 SWAP1 PUSH2 0x269E JUMP JUMPDEST PUSH2 0x733 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6B2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1925 DUP4 PUSH1 0x2 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0x1930 SWAP1 PUSH1 0x2 PUSH2 0x2525 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1948 JUMPI PUSH2 0x1948 PUSH2 0x26BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1972 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x19A9 JUMPI PUSH2 0x19A9 PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1A0C JUMPI PUSH2 0x1A0C PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x1A48 DUP5 PUSH1 0x2 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0x1A53 SWAP1 PUSH1 0x1 PUSH2 0x2525 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1AF0 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1A94 JUMPI PUSH2 0x1A94 PUSH2 0x253D JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AAA JUMPI PUSH2 0x1AAA PUSH2 0x253D JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1AE9 DUP2 PUSH2 0x26D1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A56 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x1B6B JUMPI DUP4 DUP6 PUSH2 0x1B6E JUMP JUMPDEST DUP5 DUP5 JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP5 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP4 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE SWAP2 SWAP4 POP SWAP2 POP PUSH32 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C52 SWAP4 SWAP3 SWAP2 SWAP1 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 DUP5 ADD MSTORE PUSH1 0x15 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x35 DUP3 ADD MSTORE PUSH1 0x55 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C7F DUP4 DUP4 PUSH2 0x1B46 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C8F DUP6 DUP4 DUP7 DUP7 PUSH2 0x2020 JUMP JUMPDEST SWAP1 POP PUSH2 0x1CA5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP4 DUP8 PUSH2 0x1416 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT ISZERO PUSH2 0x1D35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1CFE SWAP2 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1DA6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1D73 SWAP2 DUP6 SWAP2 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DB9 DUP5 DUP5 PUSH2 0x1B46 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DC7 DUP5 DUP5 PUSH2 0x1B46 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DD7 DUP8 DUP5 DUP9 DUP9 PUSH2 0x2020 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DE7 DUP3 DUP5 DUP9 DUP9 PUSH2 0x2020 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DFD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP6 DUP11 PUSH2 0x1416 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT ISZERO PUSH2 0x1E8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1E56 SWAP2 SWAP1 DUP7 SWAP1 DUP9 SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1EFE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1ECB SWAP2 DUP7 SWAP2 DUP9 SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT ISZERO PUSH2 0x1F8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1F57 SWAP2 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1FFF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x22C0D9F PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH4 0x22C0D9F SWAP2 PUSH2 0x1FCC SWAP2 DUP6 SWAP2 ADDRESS SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2018 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x212A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2087 SWAP2 SWAP1 PUSH2 0x2743 JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x20CF JUMPI DUP3 DUP5 PUSH2 0x20D2 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x20E5 DUP11 PUSH2 0x3E5 PUSH2 0x24CD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x20F3 DUP4 DUP4 PUSH2 0x24CD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x2104 DUP7 PUSH2 0x3E8 PUSH2 0x24CD JUMP JUMPDEST PUSH2 0x210E SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST SWAP1 POP PUSH2 0x211A DUP2 DUP4 PUSH2 0x24EC JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x21A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x21BE SWAP2 SWAP1 PUSH2 0x2793 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x21FB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2211 DUP8 DUP4 DUP4 DUP8 PUSH2 0x221C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x228B JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x2284 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x2284 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x7B2 JUMP JUMPDEST POP DUP2 PUSH2 0x2018 JUMP JUMPDEST PUSH2 0x2018 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x22A0 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B2 SWAP2 SWAP1 PUSH2 0x2667 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x80C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x80C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x233D DUP2 PUSH2 0x22FC JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x234D DUP2 PUSH2 0x2311 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x236A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B3F DUP2 PUSH2 0x22FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x234D DUP2 PUSH2 0x22FC JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x23C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x23F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x242C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2438 DUP8 DUP3 DUP9 ADD PUSH2 0x23B3 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x244C DUP2 PUSH2 0x2311 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x40 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x246F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2492 DUP6 DUP3 DUP7 ADD PUSH2 0x23B3 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x24E7 JUMPI PUSH2 0x24E7 PUSH2 0x24B7 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2509 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2520 JUMPI PUSH2 0x2520 PUSH2 0x24B7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2538 JUMPI PUSH2 0x2538 PUSH2 0x24B7 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x2566 JUMPI PUSH2 0x2566 PUSH2 0x24B7 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x257F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B3F DUP2 PUSH2 0x22FC JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x258D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x25B4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x25F2 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x258A JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x262F DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x258A JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2653 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x258A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1B3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x263B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x268D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B3F DUP2 PUSH2 0x2311 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x26E0 JUMPI PUSH2 0x26E0 PUSH2 0x24B7 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2716 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x263B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x273E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2758 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2761 DUP5 PUSH2 0x2720 JUMP JUMPDEST SWAP3 POP PUSH2 0x276F PUSH1 0x20 DUP6 ADD PUSH2 0x2720 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x27A5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x258A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0x791EA85FCA9FB53C7A043B5C87ABB267791256910B8E33717B16A86654 NOT 0xCE PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"1119:13615:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:0;;;;;;:::i;:::-;;:::i;:::-;;;516:14:25;;509:22;491:41;;479:2;464:18;2606:202:0;;;;;;;;4865:135:16;;;;;;:::i;:::-;;:::i;:::-;;4378:129:0;;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;;;;1543:25:25;;;1531:2;1516:18;4378:129:0;1397:177:25;2054:45:16;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1212:32;;;;;;;;-1:-1:-1;;;;;1995:55:25;;;1977:74;;1965:2;1950:18;1212:32:16;1831:226:25;4803:145:0;;;;;;:::i;:::-;;:::i;2016:29:16:-;;;;;;1502:66;;1542:26;1502:66;;5912:214:0;;;;;;:::i;:::-;;:::i;6054:117:16:-;;;;;;:::i;:::-;;:::i;1435:60::-;;1472:23;1435:60;;4616:78;;;:::i;1986:23::-;;;;;-1:-1:-1;;;;;1986:23:16;;;5754:160;;;;;;:::i;:::-;;:::i;1615:84:3:-;1685:7;;;;1615:84;;1856:23:16;;;;;-1:-1:-1;;;;;1856:23:16;;;9836:1476;;;;;;:::i;:::-;;:::i;1771:29::-;;;;;;;;-1:-1:-1;;;;;1771:29:16;;;5138:220;;;;;;:::i;:::-;;:::i;4076:330::-;;;;;;:::i;:::-;;:::i;4473:74::-;;;:::i;1807:40::-;;;;;-1:-1:-1;;;;;1807:40:16;;;2895:145:0;;;;;;:::i;:::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145;2027:49;;2072:4;2027:49;;1317:38:16;;;;;6324:179;;;;;;:::i;:::-;;:::i;1886:33::-;;;;;;1575:66;;1615:26;1575:66;;1933:36;;;;;;11564:480;;;;;;:::i;:::-;;:::i;1705:51::-;;1753:3;1705:51;;6648:170;;;;;;:::i;:::-;;:::i;5228:147:0:-;;;;;;:::i;:::-;;:::i;1650:48:16:-;;1692:6;1650:48;;3469:456;;;;;;:::i;:::-;;:::i;5470:160::-;;;;;;:::i;:::-;;:::i;1251:39::-;;;;;1364:64;;1403:25;1364:64;;2606:202:0;2691:4;2714:47;;;2729:32;2714:47;;:87;;-1:-1:-1;952:25:10;937:40;;;;2765:36:0;2707:94;2606:202;-1:-1:-1;;2606:202:0:o;4865:135:16:-;1542:26;2505:16:0;2516:4;2505:10;:16::i;:::-;-1:-1:-1;;;;;;4962:20:16;;;::::1;;::::0;;;:13:::1;:20;::::0;;;;:30;;-1:-1:-1;;4962:30:16::1;::::0;::::1;;::::0;;;::::1;::::0;;4865:135::o;4803:145:0:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;:::-;4803:145:::0;;;:::o;5912:214::-;-1:-1:-1;;;;;6007:23:0;;719:10:8;6007:23:0;5999:83;;;;-1:-1:-1;;;5999:83:0;;4471:2:25;5999:83:0;;;4453:21:25;4510:2;4490:18;;;4483:30;4549:34;4529:18;;;4522:62;4620:17;4600:18;;;4593:45;4655:19;;5999:83:0;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;6054:117:16:-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;-1:-1:-1;6142:14:16::1;:21:::0;6054:117::o;4616:78::-;1472:23;2505:16:0;2516:4;2505:10;:16::i;:::-;4676:10:16::1;:8;:10::i;:::-;4616:78:::0;:::o;5754:160::-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;-1:-1:-1;;;;;5851:23:16;::::1;5843:32;;;::::0;::::1;;-1:-1:-1::0;5886:8:16::1;:20:::0;;-1:-1:-1;;5886:20:16::1;-1:-1:-1::0;;;;;5886:20:16;;;::::1;::::0;;;::::1;::::0;;5754:160::o;9836:1476::-;1239:19:3;:17;:19::i;:::-;1403:25:16::1;2505:16:0;2516:4;2505:10;:16::i;:::-;10067:25:16::2;::::0;-1:-1:-1;;;;;10067:25:16::2;10124::::0;;10120:119:::2;;10166:61;10184:14;;10166:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;10200:26:16;;-1:-1:-1;10166:17:16::2;::::0;-1:-1:-1;;10166:61:16:i:2;:::-;10255:13;10251:104;;;10295:8;::::0;10313:14:::2;::::0;10285:58:::2;::::0;;;;::::2;::::0;::::2;4859:25:25::0;;;;10337:4:16::2;4900:18:25::0;;;4893:83;-1:-1:-1;;;;;10295:8:16;;::::2;::::0;10285:27:::2;::::0;4832:18:25;;10285:58:16::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10251:104;10390:59;::::0;-1:-1:-1;;;10390:59:16;;10443:4:::2;10390:59;::::0;::::2;1977:74:25::0;10367:20:16::2;::::0;-1:-1:-1;;;;;10390:44:16;::::2;::::0;::::2;::::0;1950:18:25;;10390:59:16::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10367:82;;10484:15;10468:12;:31;;10460:57;;;::::0;-1:-1:-1;;;10460:57:16;;5378:2:25;10460:57:16::2;::::0;::::2;5360:21:25::0;5417:2;5397:18;;;5390:30;5456:15;5436:18;;;5429:43;5489:18;;10460:57:16::2;5176:337:25::0;10460:57:16::2;10530:22;1692:6;10570:16;;10555:12;:31;;;;:::i;:::-;:49;;;;:::i;:::-;10530:74;;10615:20;1692:6;10653:11;;10638:12;:26;;;;:::i;:::-;:44;;;;:::i;:::-;10615:67:::0;-1:-1:-1;10693:21:16::2;10615:67:::0;10717:29:::2;10732:14:::0;10717:12;:29:::2;:::i;:::-;:44;;;;:::i;:::-;10693:68:::0;-1:-1:-1;10778:17:16;;10774:265:::2;;10838:14;::::0;-1:-1:-1;;;;;10838:14:16::2;::::0;;::::2;::::0;::::2;::::0;10867:79:::2;::::0;:47;::::2;10838:14:::0;10932:13;10867:47:::2;:79::i;:::-;10961:66;::::0;;;;::::2;::::0;::::2;1543:25:25::0;;;-1:-1:-1;;;;;10961:51:16;::::2;::::0;::::2;::::0;1516:18:25;;10961:66:16::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10797:242;10774:265;11053:16:::0;;11049:120:::2;;11134:8;::::0;11086:71:::2;::::0;-1:-1:-1;;;;;11086:47:16;;::::2;::::0;11134:8:::2;11144:12:::0;11086:47:::2;:71::i;:::-;11183:18:::0;;11179:126:::2;;11218:75;-1:-1:-1::0;;;;;11218:47:16;::::2;11266:10;11278:14:::0;11218:47:::2;:75::i;:::-;10019:1293;;;;;1268:1:3::1;9836:1476:16::0;;;;:::o;5138:220::-;1615:26;2505:16:0;2516:4;2505:10;:16::i;:::-;1692:6:16::1;5255:12;5236:16;;:31;;;;:::i;:::-;:50;;5228:85;;;::::0;-1:-1:-1;;;5228:85:16;;6684:2:25;5228:85:16::1;::::0;::::1;6666:21:25::0;6723:2;6703:18;;;6696:30;6762:24;6742:18;;;6735:52;6804:18;;5228:85:16::1;6482:346:25::0;5228:85:16::1;-1:-1:-1::0;5324:11:16::1;:26:::0;5138:220::o;4076:330::-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;1753:3:16::1;4189:17;:42;;4181:74;;;::::0;-1:-1:-1;;;4181:74:16;;7035:2:25;4181:74:16::1;::::0;::::1;7017:21:25::0;7074:2;7054:18;;;7047:30;7113:21;7093:18;;;7086:49;7152:18;;4181:74:16::1;6833:343:25::0;4181:74:16::1;1692:6;4294:11;;4274:17;:31;;;;:::i;:::-;:50;;4266:85;;;::::0;-1:-1:-1;;;4266:85:16;;6684:2:25;4266:85:16::1;::::0;::::1;6666:21:25::0;6723:2;6703:18;;;6696:30;6762:24;6742:18;;;6735:52;6804:18;;4266:85:16::1;6482:346:25::0;4266:85:16::1;-1:-1:-1::0;4362:16:16::1;:36:::0;4076:330::o;4473:74::-;1472:23;2505:16:0;2516:4;2505:10;:16::i;:::-;4531:8:16::1;:6;:8::i;6324:179::-:0;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;6443:14:16::1;::::0;6427:68:::1;::::0;;;;::::1;::::0;::::1;1543:25:25::0;;;6443:14:16::1;::::0;;::::1;-1:-1:-1::0;;;;;6443:14:16::1;::::0;6427:50:::1;::::0;1516:18:25;;6427:68:16::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6324:179:::0;;:::o;11564:480::-;1239:19:3;:17;:19::i;:::-;2072:4:0::1;2505:16;2072:4:::0;2505:10:::1;:16::i;:::-;11701:8:16::2;::::0;-1:-1:-1;;;;;11701:8:16::2;11734:14:::0;11681:17:::2;11766:271;11786:3;11782:1;:7;11766:271;;;11819:13;:32;11833:14;;11848:1;11833:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11819:32:16::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;11819:32:16;;::::2;;11811:59;;;::::0;-1:-1:-1;;;11811:59:16;;7572:2:25;11811:59:16::2;::::0;::::2;7554:21:25::0;7611:2;7591:18;;;7584:30;7650:16;7630:18;;;7623:44;7684:18;;11811:59:16::2;7370:338:25::0;11811:59:16::2;11885:20;11915:14;;11930:1;11915:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11986:38;::::0;-1:-1:-1;;;11986:38:16;;12018:4:::2;11986:38;::::0;::::2;1977:74:25::0;11885:48:16;;-1:-1:-1;11948:77:16::2;::::0;11975:9;;-1:-1:-1;;;;;11986:23:16;::::2;::::0;::::2;::::0;1950:18:25;;11986:38:16::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11948:26:16;::::2;::::0;:77;:26:::2;:77::i;:::-;-1:-1:-1::0;11791:3:16::2;::::0;::::2;:::i;:::-;;;11766:271;;6648:170:::0;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;6766:14:16::1;::::0;6750:60:::1;::::0;;;;-1:-1:-1;;;;;1995:55:25;;;6750:60:16::1;::::0;::::1;1977:74:25::0;6766:14:16::1;::::0;;::::1;::::0;;::::1;::::0;6750:49:::1;::::0;1950:18:25;;6750:60:16::1;1831:226:25::0;5228:147:0;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;3469:456:16:-:0;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;-1:-1:-1;;;;;3579:29:16;::::1;3571:57;;;::::0;-1:-1:-1;;;3571:57:16;;8115:2:25;3571:57:16::1;::::0;::::1;8097:21:25::0;8154:2;8134:18;;;8127:30;8193:17;8173:18;;;8166:45;8228:18;;3571:57:16::1;7913:339:25::0;3571:57:16::1;3639:34;3692:15;-1:-1:-1::0;;;;;3676:45:16::1;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3639:84:::0;-1:-1:-1;;;;;;3742:40:16;::::1;3734:75;;;::::0;-1:-1:-1;;;3734:75:16;;8715:2:25;3734:75:16::1;::::0;::::1;8697:21:25::0;8754:2;8734:18;;;8727:30;8793:24;8773:18;;;8766:52;8835:18;;3734:75:16::1;8513:346:25::0;3734:75:16::1;3820:14;:32:::0;;;::::1;;-1:-1:-1::0;;;;;3820:32:16;;::::1;;;::::0;;3863:25:::1;:54:::0;;-1:-1:-1;;3863:54:16::1;::::0;;;::::1;;::::0;;;-1:-1:-1;3469:456:16:o;5470:160::-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;-1:-1:-1;;;;;5567:23:16;::::1;5559:32;;;::::0;::::1;;-1:-1:-1::0;5602:8:16::1;:20:::0;;-1:-1:-1;;5602:20:16::1;-1:-1:-1::0;;;;;5602:20:16;;;::::1;::::0;;;::::1;::::0;;5470:160::o;3334:103:0:-;3400:30;3411:4;719:10:8;3400::0;:30::i;7461:233::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:8;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;7865:234::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:0;;;;;;;;;;:37;;-1:-1:-1;;7986:37:0;;;8042:40;719:10:8;;7986:12:0;;8042:40;;8018:5;8042:40;7865:234;;:::o;2433:117:3:-;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;2491:15:3::1;::::0;;2521:22:::1;719:10:8::0;2530:12:3::1;2521:22;::::0;-1:-1:-1;;;;;1995:55:25;;;1977:74;;1965:2;1950:18;2521:22:3::1;;;;;;;2433:117::o:0;1767:106::-;1685:7;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:3;;9066:2:25;1828:38:3;;;9048:21:25;9105:2;9085:18;;;9078:30;9144:18;9124;;;9117:46;9180:18;;1828:38:3;8864:340:25;1828:38:3;1767:106::o;8554:866:16:-;8665:9;8660:753;8680:14;:21;8676:1;:25;8660:753;;;8723:27;8753:14;8768:1;8753:17;;;;;;;;:::i;:::-;;;;;;;;;;;8806:38;;-1:-1:-1;;;8806:38:16;;8838:4;8806:38;;;1977:74:25;8753:17:16;;-1:-1:-1;8785:18:16;;-1:-1:-1;;;;;8806:23:16;;;;;1950:18:25;;8806:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8785:59;-1:-1:-1;8863:14:16;;8859:543;;8921:14;8958:20;9001:14;9038:20;9080:50;9103:13;9119:10;9080:14;:50::i;:::-;8898:232;;;;;;;;9163:11;-1:-1:-1;;;;;9153:21:16;:6;-1:-1:-1;;;;;9153:21:16;;9149:110;;9199:40;9205:6;9213:11;9226:12;9199:5;:40::i;:::-;9291:11;-1:-1:-1;;;;;9281:21:16;:6;-1:-1:-1;;;;;9281:21:16;;9277:110;;9327:40;9333:6;9341:11;9354:12;9327:5;:40::i;:::-;8879:523;;;;8859:543;8708:705;;8703:3;;;;:::i;:::-;;;8660:753;;763:205:6;902:58;;;-1:-1:-1;;;;;9401:55:25;;902:58:6;;;9383:74:25;9473:18;;;;9466:34;;;902:58:6;;;;;;;;;;9356:18:25;;;;902:58:6;;;;;;;;;;925:23;902:58;;;875:86;;895:5;;875:19;:86::i;2186:115:3:-;1239:19;:17;:19::i;:::-;2255:4:::1;2245:14:::0;;-1:-1:-1;;2245:14:3::1;::::0;::::1;::::0;;2274:20:::1;719:10:8::0;2281:12:3::1;640:96:8::0;3718:479:0;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:0;;;;;;;;;;-1:-1:-1;;;3844:336:0;;;;;;;:::i;1945:106:3:-;1685:7;;;;2003:41;;;;-1:-1:-1;;;2003:41:3;;11314:2:25;2003:41:3;;;11296:21:25;11353:2;11333:18;;;11326:30;11392:22;11372:18;;;11365:50;11432:18;;2003:41:3;11112:344:25;7223:503:16;7330:14;7355:15;7381:14;7406:15;7463:4;-1:-1:-1;;;;;7449:26:16;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7440:37;;7511:4;-1:-1:-1;;;;;7497:26:16;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7488:37;;7573:4;-1:-1:-1;;;;;7546:31:16;:23;7554:6;7562;7546:7;:23::i;:::-;-1:-1:-1;;;;;7546:31:16;;7538:56;;;;-1:-1:-1;;;7538:56:16;;11663:2:25;7538:56:16;;;11645:21:25;11702:2;11682:18;;;11675:30;11741:14;11721:18;;;11714:42;11773:18;;7538:56:16;11461:336:25;7538:56:16;7607:40;-1:-1:-1;;;;;7607:25:16;;7633:4;7639:7;7607:25;:40::i;:::-;7679:39;;;;;7712:4;7679:39;;;1977:74:25;-1:-1:-1;;;;;7679:24:16;;;;;1950:18:25;;7679:39:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7223:503;;7658:60;;-1:-1:-1;7223:503:16;;-1:-1:-1;7223:503:16;;-1:-1:-1;;7223:503:16:o;7990:306::-;8089:13;-1:-1:-1;;;;;8080:22:16;:5;-1:-1:-1;;;;;8080:22:16;;:54;;;;8121:13;-1:-1:-1;;;;;8106:28:16;:11;-1:-1:-1;;;;;8106:28:16;;8080:54;8076:213;;;8151:39;8163:6;8171:5;8178:11;8151;:39::i;8076:213::-;8223:54;8235:6;8243:5;8250:13;8265:11;8223;:54::i;3747:706:6:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;-1:-1:-1;;;;;4192:27:6;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:6;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;-1:-1:-1;;;4351:85:6;;12504:2:25;4351:85:6;;;12486:21:25;12543:2;12523:18;;;12516:30;12582:34;12562:18;;;12555:62;12653:12;12633:18;;;12626:40;12683:19;;4351:85:6;12302:406:25;2102:149:9;2160:13;2192:52;-1:-1:-1;;;;;2204:22:9;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:9;;1613:47;;1670:15;:6;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1695;:6;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1725:9:9;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;1791:8;1800:5;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;1836:1:9;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:9;;1857:55;;;;-1:-1:-1;;;1857:55:9;;13305:2:25;1857:55:9;;;13287:21:25;;;13324:18;;;13317:30;13383:34;13363:18;;;13356:62;13435:18;;1857:55:9;13103:356:25;1857:55:9;1936:6;1513:437;-1:-1:-1;;;1513:437:9:o;14325:406:16:-;14396:12;14422:14;14438;14465:6;-1:-1:-1;;;;;14456:15:16;:6;-1:-1:-1;;;;;14456:15:16;;:53;;14494:6;14502;14456:53;;;14475:6;14483;14456:53;14646:32;;-1:-1:-1;;13726:2:25;13722:15;;;13718:24;;14646:32:16;;;13706:37:25;13777:15;;;13773:24;13759:12;;;13752:46;14421:88:16;;-1:-1:-1;14421:88:16;-1:-1:-1;14614:7:16;;13814:12:25;;14646:32:16;;;;;;;;;;;;14636:43;;;;;;14694:14;14561:158;;;;;;;;;14135:66:25;14123:79;;14239:2;14235:15;;;;-1:-1:-1;;14231:88:25;14227:1;14218:11;;14211:109;14345:2;14336:12;;14329:28;;;;14382:2;14373:12;;14366:28;14419:2;14410:12;;13837:591;14561:158:16;;;;-1:-1:-1;;14561:158:16;;;;;;;;;14551:169;;14561:158;14551:169;;;;;14325:406;-1:-1:-1;;;;;14325:406:16:o;12052:513::-;12143:14;12160:23;12168:6;12176;12160:7;:23::i;:::-;12143:40;;12196:19;12218:46;12231:8;12241:6;12249;12257;12218:12;:46::i;:::-;12196:68;-1:-1:-1;12277:45:16;-1:-1:-1;;;;;12277:27:16;;12305:6;12313:8;12277:27;:45::i;:::-;12348:6;-1:-1:-1;;;;;12339:15:16;:6;-1:-1:-1;;;;;12339:15:16;;12335:223;;;12429:12;;;12398:1;12429:12;;;;;;;;;;-1:-1:-1;;;12371:71:16;;;-1:-1:-1;;;;;12371:26:16;;;;;:71;;12398:1;12401:11;;12422:4;;12371:71;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12335:223;;;12533:12;;;12515:1;12533:12;;;;;;;;;;-1:-1:-1;;;12475:71:16;;;-1:-1:-1;;;;;12475:26:16;;;;;:71;;12502:11;;12526:4;;12475:71;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12335:223;12132:433;;12052:513;;;:::o;12573:883::-;12680:14;12697:23;12705:6;12713;12697:7;:23::i;:::-;12680:40;;12731:14;12748:23;12756:6;12764;12748:7;:23::i;:::-;12731:40;;12784:19;12806:46;12819:8;12829:6;12837;12845;12806:12;:46::i;:::-;12784:68;;12863:19;12885:49;12898:11;12911:6;12919;12927;12885:12;:49::i;:::-;12863:71;-1:-1:-1;12947:45:16;-1:-1:-1;;;;;12947:27:16;;12975:6;12983:8;12947:27;:45::i;:::-;13018:6;-1:-1:-1;;;;;13009:15:16;:6;-1:-1:-1;;;;;13009:15:16;;13005:209;;;13092:12;;;13068:1;13092:12;;;;;;;;;;-1:-1:-1;;;13041:64:16;;;-1:-1:-1;;;;;13041:26:16;;;;;:64;;13068:1;13071:11;;13084:6;;13041:64;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13005:209;;;13189:12;;;13178:1;13189:12;;;;;;;;;;-1:-1:-1;;;13138:64:16;;;-1:-1:-1;;;;;13138:26:16;;;;;:64;;13165:11;;13181:6;;13138:64;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13005:209;13239:6;-1:-1:-1;;;;;13230:15:16;:6;-1:-1:-1;;;;;13230:15:16;;13226:223;;;13320:12;;;13289:1;13320:12;;;;;;;;;;-1:-1:-1;;;13262:71:16;;;-1:-1:-1;;;;;13262:26:16;;;;;:71;;13289:1;13292:11;;13313:4;;13262:71;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13226:223;;;13424:12;;;13406:1;13424:12;;;;;;;;;;-1:-1:-1;;;13366:71:16;;;-1:-1:-1;;;;;13366:26:16;;;;;:71;;13393:11;;13417:4;;13366:71;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13226:223;12669:787;;;;12573:883;;;;:::o;3873:223:7:-;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4037:21;:52::i;:::-;4030:59;3873:223;-1:-1:-1;;;;3873:223:7:o;13582:604:16:-;13734:17;13765:16;13783;13818:4;-1:-1:-1;;;;;13804:31:16;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13764:73;;;;;;;;;13849:17;13868:18;13899:6;-1:-1:-1;;;;;13890:15:16;:6;-1:-1:-1;;;;;13890:15:16;;:61;;13932:8;13942;13890:61;;;13909:8;13919;13890:61;13848:103;;-1:-1:-1;13848:103:16;-1:-1:-1;13964:23:16;13990:14;:8;14001:3;13990:14;:::i;:::-;13964:40;-1:-1:-1;14015:17:16;14035:28;14053:10;13964:40;14035:28;:::i;:::-;14015:48;-1:-1:-1;14074:19:16;14117:15;14097:16;:9;14109:4;14097:16;:::i;:::-;14096:36;;;;:::i;:::-;14074:58;-1:-1:-1;14155:23:16;14074:58;14155:9;:23;:::i;:::-;14143:35;13582:604;-1:-1:-1;;;;;;;;;;;;13582:604:16:o;4960:446:7:-;5125:12;5182:5;5157:21;:30;;5149:81;;;;-1:-1:-1;;;5149:81:7;;16273:2:25;5149:81:7;;;16255:21:25;16312:2;16292:18;;;16285:30;16351:34;16331:18;;;16324:62;16422:8;16402:18;;;16395:36;16448:19;;5149:81:7;16071:402:25;5149:81:7;5241:12;5255:23;5282:6;-1:-1:-1;;;;;5282:11:7;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;4960:446;-1:-1:-1;;;;;;;4960:446:7:o;7466:628::-;7646:12;7674:7;7670:418;;;7701:10;:17;7722:1;7701:22;7697:286;;-1:-1:-1;;;;;1465:19:7;;;7908:60;;;;-1:-1:-1;;;7908:60:7;;16959:2:25;7908:60:7;;;16941:21:25;16998:2;16978:18;;;16971:30;17037:31;17017:18;;;17010:59;17086:18;;7908:60:7;16757:353:25;7908:60:7;-1:-1:-1;8003:10:7;7996:17;;7670:418;8044:33;8052:10;8064:12;8775:17;;:21;8771:379;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;-1:-1:-1;;;9119:20:7;;;;;;;;:::i;14:332:25:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:154;-1:-1:-1;;;;;622:5:25;618:54;611:5;608:65;598:93;;687:1;684;677:12;702:118;788:5;781:13;774:21;767:5;764:32;754:60;;810:1;807;800:12;825:382;890:6;898;951:2;939:9;930:7;926:23;922:32;919:52;;;967:1;964;957:12;919:52;1006:9;993:23;1025:31;1050:5;1025:31;:::i;:::-;1075:5;-1:-1:-1;1132:2:25;1117:18;;1104:32;1145:30;1104:32;1145:30;:::i;:::-;1194:7;1184:17;;;825:382;;;;;:::o;1212:180::-;1271:6;1324:2;1312:9;1303:7;1299:23;1295:32;1292:52;;;1340:1;1337;1330:12;1292:52;-1:-1:-1;1363:23:25;;1212:180;-1:-1:-1;1212:180:25:o;1579:247::-;1638:6;1691:2;1679:9;1670:7;1666:23;1662:32;1659:52;;;1707:1;1704;1697:12;1659:52;1746:9;1733:23;1765:31;1790:5;1765:31;:::i;2062:315::-;2130:6;2138;2191:2;2179:9;2170:7;2166:23;2162:32;2159:52;;;2207:1;2204;2197:12;2159:52;2243:9;2230:23;2220:33;;2303:2;2292:9;2288:18;2275:32;2316:31;2341:5;2316:31;:::i;2749:382::-;2827:8;2837:6;2891:3;2884:4;2876:6;2872:17;2868:27;2858:55;;2909:1;2906;2899:12;2858:55;-1:-1:-1;2932:20:25;;2975:18;2964:30;;2961:50;;;3007:1;3004;2997:12;2961:50;3044:4;3036:6;3032:17;3020:29;;3104:3;3097:4;3087:6;3084:1;3080:14;3072:6;3068:27;3064:38;3061:47;3058:67;;;3121:1;3118;3111:12;3058:67;2749:382;;;;;:::o;3136:671::-;3259:6;3267;3275;3283;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;3392:9;3379:23;3425:18;3417:6;3414:30;3411:50;;;3457:1;3454;3447:12;3411:50;3496:85;3573:7;3564:6;3553:9;3549:22;3496:85;:::i;:::-;3600:8;;-1:-1:-1;3470:111:25;-1:-1:-1;;3685:2:25;3670:18;;3657:32;3698:28;3657:32;3698:28;:::i;:::-;3136:671;;;;-1:-1:-1;3745:5:25;;3797:2;3782:18;3769:32;;-1:-1:-1;;3136:671:25:o;3812:452::-;3898:6;3906;3959:2;3947:9;3938:7;3934:23;3930:32;3927:52;;;3975:1;3972;3965:12;3927:52;4015:9;4002:23;4048:18;4040:6;4037:30;4034:50;;;4080:1;4077;4070:12;4034:50;4119:85;4196:7;4187:6;4176:9;4172:22;4119:85;:::i;:::-;4223:8;;4093:111;;-1:-1:-1;3812:452:25;-1:-1:-1;;;;3812:452:25:o;4987:184::-;5057:6;5110:2;5098:9;5089:7;5085:23;5081:32;5078:52;;;5126:1;5123;5116:12;5078:52;-1:-1:-1;5149:16:25;;4987:184;-1:-1:-1;4987:184:25:o;5518:::-;-1:-1:-1;;;5567:1:25;5560:88;5667:4;5664:1;5657:15;5691:4;5688:1;5681:15;5707:228;5747:7;5873:1;-1:-1:-1;;5801:74:25;5798:1;5795:81;5790:1;5783:9;5776:17;5772:105;5769:131;;;5880:18;;:::i;:::-;-1:-1:-1;5920:9:25;;5707:228::o;5940:274::-;5980:1;6006;5996:189;;-1:-1:-1;;;6038:1:25;6031:88;6142:4;6139:1;6132:15;6170:4;6167:1;6160:15;5996:189;-1:-1:-1;6199:9:25;;5940:274::o;6219:125::-;6259:4;6287:1;6284;6281:8;6278:34;;;6292:18;;:::i;:::-;-1:-1:-1;6329:9:25;;6219:125::o;6349:128::-;6389:3;6420:1;6416:6;6413:1;6410:13;6407:39;;;6426:18;;:::i;:::-;-1:-1:-1;6462:9:25;;6349:128::o;7181:184::-;-1:-1:-1;;;7230:1:25;7223:88;7330:4;7327:1;7320:15;7354:4;7351:1;7344:15;7713:195;7752:3;-1:-1:-1;;7776:5:25;7773:77;7770:103;;7853:18;;:::i;:::-;-1:-1:-1;7900:1:25;7889:13;;7713:195::o;8257:251::-;8327:6;8380:2;8368:9;8359:7;8355:23;8351:32;8348:52;;;8396:1;8393;8386:12;8348:52;8428:9;8422:16;8447:31;8472:5;8447:31;:::i;9511:258::-;9583:1;9593:113;9607:6;9604:1;9601:13;9593:113;;;9683:11;;;9677:18;9664:11;;;9657:39;9629:2;9622:10;9593:113;;;9724:6;9721:1;9718:13;9715:48;;;9759:1;9750:6;9745:3;9741:16;9734:27;9715:48;;9511:258;;;:::o;9774:786::-;10185:25;10180:3;10173:38;10155:3;10240:6;10234:13;10256:62;10311:6;10306:2;10301:3;10297:12;10290:4;10282:6;10278:17;10256:62;:::i;:::-;10382:19;10377:2;10337:16;;;10369:11;;;10362:40;10427:13;;10449:63;10427:13;10498:2;10490:11;;10483:4;10471:17;;10449:63;:::i;:::-;10532:17;10551:2;10528:26;;9774:786;-1:-1:-1;;;;9774:786:25:o;10565:317::-;10607:3;10645:5;10639:12;10672:6;10667:3;10660:19;10688:63;10744:6;10737:4;10732:3;10728:14;10721:4;10714:5;10710:16;10688:63;:::i;:::-;10796:2;10784:15;-1:-1:-1;;10780:88:25;10771:98;;;;10871:4;10767:109;;10565:317;-1:-1:-1;;10565:317:25:o;10887:220::-;11036:2;11025:9;11018:21;10999:4;11056:45;11097:2;11086:9;11082:18;11074:6;11056:45;:::i;11802:245::-;11881:6;11889;11942:2;11930:9;11921:7;11917:23;11913:32;11910:52;;;11958:1;11955;11948:12;11910:52;-1:-1:-1;;11981:16:25;;12037:2;12022:18;;;12016:25;11981:16;;12016:25;;-1:-1:-1;11802:245:25:o;12052:::-;12119:6;12172:2;12160:9;12151:7;12147:23;12143:32;12140:52;;;12188:1;12185;12178:12;12140:52;12220:9;12214:16;12239:28;12261:5;12239:28;:::i;12713:184::-;-1:-1:-1;;;12762:1:25;12755:88;12862:4;12859:1;12852:15;12886:4;12883:1;12876:15;12902:196;12941:3;12969:5;12959:39;;12978:18;;:::i;:::-;-1:-1:-1;;;13014:78:25;;12902:196::o;14433:490::-;14672:6;14661:9;14654:25;14715:6;14710:2;14699:9;14695:18;14688:34;-1:-1:-1;;;;;14762:6:25;14758:55;14753:2;14742:9;14738:18;14731:83;14850:3;14845:2;14834:9;14830:18;14823:31;14635:4;14871:46;14912:3;14901:9;14897:19;14889:6;14871:46;:::i;:::-;14863:54;14433:490;-1:-1:-1;;;;;;14433:490:25:o;15423:188::-;15502:13;;15555:30;15544:42;;15534:53;;15524:81;;15601:1;15598;15591:12;15524:81;15423:188;;;:::o;15616:450::-;15703:6;15711;15719;15772:2;15760:9;15751:7;15747:23;15743:32;15740:52;;;15788:1;15785;15778:12;15740:52;15811:40;15841:9;15811:40;:::i;:::-;15801:50;;15870:49;15915:2;15904:9;15900:18;15870:49;:::i;:::-;15860:59;;15962:2;15951:9;15947:18;15941:25;16006:10;15999:5;15995:22;15988:5;15985:33;15975:61;;16032:1;16029;16022:12;15975:61;16055:5;16045:15;;;15616:450;;;;;:::o;16478:274::-;16607:3;16645:6;16639:13;16661:53;16707:6;16702:3;16695:4;16687:6;16683:17;16661:53;:::i;:::-;16730:16;;;;;16478:274;-1:-1:-1;;16478:274:25:o"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FEE_DENOMINATOR()":"d73792a9","GOVERNOR_ROLE()":"ccc57490","HARVEST_ROLE()":"fbb12d07","MAX_HARVEST_INCENTIVE()":"cf3b69b6","PAIR_INIT_HASH()":"fa881298","PAUSE_ROLE()":"389ed267","RECOVERY_ROLE()":"31993a1c","WRAPPED_TOKEN()":"b7c71db4","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","harvest(address[],bool,uint256)":"635cc7b8","harvestIncentive()":"cd6e7def","hasRole(bytes32,address)":"91d14854","isRecoverable(address)":"2851bbc9","miniChef()":"4005760a","miniChefPoolId()":"3024a307","pause()":"8456cb59","paused()":"5c975abb","recoverLP(address[])":"ce306b80","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHarvestIncentive(uint256)":"7e2be195","setMiniChef(address)":"572996c7","setMiniChefPool(uint256)":"3792a7fb","setRecoverable(address,bool)":"16242bee","setRewardsContract(address)":"dfa0dfa5","setRewardsDuration(uint256)":"cc1a378f","setTreasury(address)":"f0f44260","setTreasuryFee(uint256)":"77e741c7","stakingRewards()":"64b87a70","stakingRewardsRewardToken()":"86da6f7c","supportsInterface(bytes4)":"01ffc9a7","transferStakingOwnership(address)":"cfabe8ed","treasury()":"61d027b3","treasuryFee()":"cc32d176","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wrappedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_initHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_stakingRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_miniChef\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_governor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOVERNOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HARVEST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_HARVEST_INCENTIVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAIR_INIT_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECOVERY_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WRAPPED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPangolinPair[]\",\"name\":\"liquidityPairs\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"claimMiniChef\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"minFinalBalance\",\"type\":\"uint256\"}],\"name\":\"harvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"harvestIncentive\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isRecoverable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"miniChef\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"miniChefPoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"liquidityPairs\",\"type\":\"address[]\"}],\"name\":\"recoverLP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_harvestIncentive\",\"type\":\"uint256\"}],\"name\":\"setHarvestIncentive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_miniChef\",\"type\":\"address\"}],\"name\":\"setMiniChef\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"}],\"name\":\"setMiniChefPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setRecoverable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stakingRewards\",\"type\":\"address\"}],\"name\":\"setRewardsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardsDuration\",\"type\":\"uint256\"}],\"name\":\"setRewardsDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_treasuryFee\",\"type\":\"uint256\"}],\"name\":\"setTreasuryFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakingRewards\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakingRewardsRewardToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStakingOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"harvest(address[],bool,uint256)\":{\"params\":{\"claimMiniChef\":\"- whether to also harvest additional rewards accrued via MiniChef\",\"liquidityPairs\":\"- list of all the pairs to harvest\",\"minFinalBalance\":\"- required min png balance after the buybacks (slippage control)\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"recoverLP(address[])\":{\"details\":\"Intended to recover LP involving a token with fees on transfer\",\"params\":{\"liquidityPairs\":\"- list of all the pairs to recover\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHarvestIncentive(uint256)\":{\"params\":{\"_harvestIncentive\":\"- New incentive ratio in bips\"}},\"setMiniChef(address)\":{\"params\":{\"_miniChef\":\"- New MiniChef address\"}},\"setMiniChefPool(uint256)\":{\"params\":{\"_pid\":\"- ID of the pool on MiniChef\"}},\"setRecoverable(address,bool)\":{\"details\":\"Intended for recovering LP involving a token with fees on transfer\"},\"setRewardsContract(address)\":{\"params\":{\"_stakingRewards\":\"- New contract address\"}},\"setRewardsDuration(uint256)\":{\"params\":{\"_rewardsDuration\":\"- the duration of the new period\"}},\"setTreasury(address)\":{\"params\":{\"_treasury\":\"- New treasury wallet\"}},\"setTreasuryFee(uint256)\":{\"params\":{\"_treasuryFee\":\"- New ratio in bips\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferStakingOwnership(address)\":{\"params\":{\"_newOwner\":\"- address to transfer ownership to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"harvest(address[],bool,uint256)\":{\"notice\":\"- Converts all the LP tokens specified to the rewards token and transfers it to the staking contract, treasury, and caller\"},\"pause()\":{\"notice\":\"Disable the harvest and recover functions\"},\"recoverLP(address[])\":{\"notice\":\"Recovers LP tokens to the treasury. Requires LP is whitelisted by the RECOVERY_ROLE\"},\"setHarvestIncentive(uint256)\":{\"notice\":\"Change the percentage of each harvest that goes to the caller\"},\"setMiniChef(address)\":{\"notice\":\"Sets the MiniChef address to collect rewards from\"},\"setMiniChefPool(uint256)\":{\"notice\":\"Sets the MiniChef pool used to accumulate rewards from emissions\"},\"setRecoverable(address,bool)\":{\"notice\":\"Allows a liquidity token to be withdrawn fully without a buyback\"},\"setRewardsContract(address)\":{\"notice\":\"Change staking rewards contract address\"},\"setRewardsDuration(uint256)\":{\"notice\":\"Proxy function to set reward duration on the staking contract\"},\"setTreasury(address)\":{\"notice\":\"Updates the recipient of treasury fees\"},\"setTreasuryFee(uint256)\":{\"notice\":\"Change the percentage of each harvest that goes to the treasury\"},\"transferStakingOwnership(address)\":{\"notice\":\"Proxy function to change ownership of the staking contract\"},\"unpause()\":{\"notice\":\"Re-enable the harvest and recover functions\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/fee-collector/FeeCollector.sol\":\"FeeCollector\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/fee-collector/FeeCollector.sol\":{\"keccak256\":\"0x9fb61fc36c2360d84fdaf327ff1f2cdd4528b461e48c9923ab2c940a420a7d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb8d42c334420b8b79776cd2270dd6b30c91e7e433563c1d88a80fbaf301dc0e\",\"dweb:/ipfs/QmYwbTb3rHspd6hWusqfdDZjkCstEUUPqDMb4R7CpQUJ9o\"]}},\"version\":1}"},"IMiniChef":{"abi":[{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"harvest(uint256,address)":"18fccc76"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"harvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/fee-collector/FeeCollector.sol\":\"IMiniChef\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/fee-collector/FeeCollector.sol\":{\"keccak256\":\"0x9fb61fc36c2360d84fdaf327ff1f2cdd4528b461e48c9923ab2c940a420a7d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb8d42c334420b8b79776cd2270dd6b30c91e7e433563c1d88a80fbaf301dc0e\",\"dweb:/ipfs/QmYwbTb3rHspd6hWusqfdDZjkCstEUUPqDMb4R7CpQUJ9o\"]}},\"version\":1}"},"IPangolinPair":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address)":"70a08231","burn(address)":"89afcb44","getReserves()":"0902f1ac","swap(uint256,uint256,address,bytes)":"022c0d9f","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/fee-collector/FeeCollector.sol\":\"IPangolinPair\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/fee-collector/FeeCollector.sol\":{\"keccak256\":\"0x9fb61fc36c2360d84fdaf327ff1f2cdd4528b461e48c9923ab2c940a420a7d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb8d42c334420b8b79776cd2270dd6b30c91e7e433563c1d88a80fbaf301dc0e\",\"dweb:/ipfs/QmYwbTb3rHspd6hWusqfdDZjkCstEUUPqDMb4R7CpQUJ9o\"]}},\"version\":1}"},"IStakingRewards":{"abi":[{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardsDuration","type":"uint256"}],"name":"setRewardsDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"notifyRewardAmount(uint256)":"3c6b16ab","rewardsToken()":"d1af0c7d","setRewardsDuration(uint256)":"cc1a378f","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardsDuration\",\"type\":\"uint256\"}],\"name\":\"setRewardsDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/fee-collector/FeeCollector.sol\":\"IStakingRewards\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/fee-collector/FeeCollector.sol\":{\"keccak256\":\"0x9fb61fc36c2360d84fdaf327ff1f2cdd4528b461e48c9923ab2c940a420a7d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb8d42c334420b8b79776cd2270dd6b30c91e7e433563c1d88a80fbaf301dc0e\",\"dweb:/ipfs/QmYwbTb3rHspd6hWusqfdDZjkCstEUUPqDMb4R7CpQUJ9o\"]}},\"version\":1}"}},"contracts/pangolin-core/interfaces/IPangolinFactory.sol":{"IPangolinFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setFeeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setFeeToSetter","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allPairs(uint256)":"1e3dd18b","allPairsLength()":"574f2ba3","createPair(address,address)":"c9c65396","feeTo()":"017e7e58","feeToSetter()":"094b7415","getPair(address,address)":"e6a43905","setFeeTo(address)":"f46901ed","setFeeToSetter(address)":"a2e74af6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":\"IPangolinFactory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb3fe51fccd8da7b99d23634d45ab5fc978496bc2763ae8436867c14d144a0b02\",\"urls\":[\"bzz-raw://076378342d9b196439c99464a818629babdb273daf7919b3a71e3b0531b4fb65\",\"dweb:/ipfs/QmPdVowLwaPrTu4yTNJdy1eBkKaAfH3uhU3Eu85ecmdNuC\"]}},\"version\":1}"}},"contracts/pangolin-core/interfaces/IPangolinPair.sol":{"IPangolinPair":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","MINIMUM_LIQUIDITY()":"ba9a7a56","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address)":"89afcb44","decimals()":"313ce567","factory()":"c45a0155","getReserves()":"0902f1ac","initialize(address,address)":"485cc955","kLast()":"7464fc3d","mint(address)":"6a627842","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","skim(address)":"bc25cf77","swap(uint256,uint256,address,bytes)":"022c0d9f","symbol()":"95d89b41","sync()":"fff6cae9","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":\"IPangolinPair\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0x0511ddea9c27b93469fea324ad29206830b559f6bfd16e9d033ba05edc37f1ab\",\"urls\":[\"bzz-raw://721a8c3595a7a7cc8ddf44a41a6db15b186e6e275990dc0e1790b61679b736a3\",\"dweb:/ipfs/QmU2UX4i5ZYtzv333x4FVjLQymC8rFmJ6Hsmi3Ka1HjFMu\"]}},\"version\":1}"}},"contracts/pangolin-lib/libraries/TransferHelper.sol":{"TransferHelper":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b2a42db29d97aa3bdf995ec65cf4f83a29922d82b9fef65f3a5705ffcd21e00b64736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 LOG4 0x2D 0xB2 SWAP14 SWAP8 0xAA EXTCODESIZE 0xDF SWAP10 0x5E 0xC6 0x5C DELEGATECALL 0xF8 GASPRICE 0x29 SWAP3 0x2D DUP3 0xB9 INVALID 0xF6 0x5F GASPRICE JUMPI SDIV SELFDESTRUCT 0xCD 0x21 0xE0 SIGNEXTEND PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"189:1500:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;189:1500:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b2a42db29d97aa3bdf995ec65cf4f83a29922d82b9fef65f3a5705ffcd21e00b64736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 LOG4 0x2D 0xB2 SWAP14 SWAP8 0xAA EXTCODESIZE 0xDF SWAP10 0x5E 0xC6 0x5C DELEGATECALL 0xF8 GASPRICE 0x29 SWAP3 0x2D DUP3 0xB9 INVALID 0xF6 0x5F GASPRICE JUMPI SDIV SELFDESTRUCT 0xCD 0x21 0xE0 SIGNEXTEND PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"189:1500:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-lib/libraries/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-lib/libraries/TransferHelper.sol\":{\"keccak256\":\"0xfc5b469642639405484afdba1d1ad1bdc70bd5cd4f01fe53c3be27c12a149f1f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4c82e4d301a6bb7b9aac332299cb982dc8188d52942cc04796546dfb5cbd7a\",\"dweb:/ipfs/QmeeiUQrF2asciybNWEQyzeMsSkdavRABfZreMpCmKUpcG\"]}},\"version\":1}"}},"contracts/pangolin-periphery/PangolinRouterSupportingFees.sol":{"PangolinRouterSupportingFees":{"abi":[{"inputs":[{"internalType":"address","name":"_FACTORY","type":"address"},{"internalType":"address","name":"_WAVAX","type":"address"},{"internalType":"address","name":"firstOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":false,"internalType":"uint24","name":"feePartner","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeProtocol","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeTotal","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeCut","type":"uint24"}],"name":"FeeChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"feeFloor","type":"uint24"}],"name":"FeeFloorChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"FeeWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":false,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bool","name":"isAllowed","type":"bool"}],"name":"ManagerChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":false,"internalType":"uint24","name":"feePartner","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeProtocol","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeTotal","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeCut","type":"uint24"}],"name":"PartnerActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PartnerFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ProtocolFee","type":"event"},{"inputs":[],"name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_FLOOR","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"}],"name":"activatePartner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeTo","type":"address"}],"name":"getFeeInfo","outputs":[{"internalType":"uint24","name":"feePartner","type":"uint24"},{"internalType":"uint24","name":"feeProtocol","type":"uint24"},{"internalType":"uint24","name":"feeTotal","type":"uint24"},{"internalType":"uint24","name":"feeCut","type":"uint24"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"uint24","name":"feeCut","type":"uint24"}],"name":"modifyFeeCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"feeFloor","type":"uint24"}],"name":"modifyFeeFloor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"bool","name":"isAllowed","type":"bool"}],"name":"modifyManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"uint24","name":"feeTotal","type":"uint24"}],"name":"modifyTotalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapAVAXForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactAVAXForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapTokensForExactAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_412":{"entryPoint":null,"id":412,"parameterSlots":0,"returnSlots":0},"@_5439":{"entryPoint":null,"id":5439,"parameterSlots":3,"returnSlots":0},"@_checkOwner_443":{"entryPoint":578,"id":443,"parameterSlots":0,"returnSlots":0},"@_msgSender_1346":{"entryPoint":null,"id":1346,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_500":{"entryPoint":371,"id":500,"parameterSlots":1,"returnSlots":0},"@owner_429":{"entryPoint":null,"id":429,"parameterSlots":0,"returnSlots":1},"@transferOwnership_480":{"entryPoint":451,"id":480,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":672,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_address_fromMemory":{"entryPoint":701,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_stringliteral_10b9ce8af142467925ca568eca10a22d164612f6c5bcce7f67dda653dc161c9a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4ddc3cbbe07914fb66ab04ac72c3abb0366e86ffb1c6b0fed4ff8de47b020d69__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bd78db41aeb1b482220e74d8a1f3d0122aafb31cbeace251134940ab1f9c0002__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2389:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:25","statements":[{"nodeType":"YulAssignment","src":"84:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:25"},"nodeType":"YulFunctionCall","src":"93:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:25"}]},{"body":{"nodeType":"YulBlock","src":"169:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:25"},"nodeType":"YulFunctionCall","src":"171:12:25"},"nodeType":"YulExpressionStatement","src":"171:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:25"},"nodeType":"YulFunctionCall","src":"150:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:25"},"nodeType":"YulFunctionCall","src":"146:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:25"},"nodeType":"YulFunctionCall","src":"135:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:25"},"nodeType":"YulFunctionCall","src":"125:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:25"},"nodeType":"YulFunctionCall","src":"118:50:25"},"nodeType":"YulIf","src":"115:70:25"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:25","type":""}],"src":"14:177:25"},{"body":{"nodeType":"YulBlock","src":"311:263:25","statements":[{"body":{"nodeType":"YulBlock","src":"357:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"366:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"369:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"359:6:25"},"nodeType":"YulFunctionCall","src":"359:12:25"},"nodeType":"YulExpressionStatement","src":"359:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"332:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"341:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"328:3:25"},"nodeType":"YulFunctionCall","src":"328:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"353:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"324:3:25"},"nodeType":"YulFunctionCall","src":"324:32:25"},"nodeType":"YulIf","src":"321:52:25"},{"nodeType":"YulAssignment","src":"382:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"422:9:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"392:29:25"},"nodeType":"YulFunctionCall","src":"392:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"382:6:25"}]},{"nodeType":"YulAssignment","src":"441:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"485:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"496:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:25"},"nodeType":"YulFunctionCall","src":"481:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"451:29:25"},"nodeType":"YulFunctionCall","src":"451:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"441:6:25"}]},{"nodeType":"YulAssignment","src":"509:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"549:3:25"},"nodeType":"YulFunctionCall","src":"549:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"519:29:25"},"nodeType":"YulFunctionCall","src":"519:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"509:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"261:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"272:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"284:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"292:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"300:6:25","type":""}],"src":"196:378:25"},{"body":{"nodeType":"YulBlock","src":"753:165:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"770:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"781:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"763:6:25"},"nodeType":"YulFunctionCall","src":"763:21:25"},"nodeType":"YulExpressionStatement","src":"763:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"815:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"800:3:25"},"nodeType":"YulFunctionCall","src":"800:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"820:2:25","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"793:6:25"},"nodeType":"YulFunctionCall","src":"793:30:25"},"nodeType":"YulExpressionStatement","src":"793:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"843:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"854:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:18:25"},{"hexValue":"496e76616c696420666163746f7279","kind":"string","nodeType":"YulLiteral","src":"859:17:25","type":"","value":"Invalid factory"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"832:6:25"},"nodeType":"YulFunctionCall","src":"832:45:25"},"nodeType":"YulExpressionStatement","src":"832:45:25"},{"nodeType":"YulAssignment","src":"886:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"898:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"909:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"886:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_bd78db41aeb1b482220e74d8a1f3d0122aafb31cbeace251134940ab1f9c0002__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"730:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"744:4:25","type":""}],"src":"579:339:25"},{"body":{"nodeType":"YulBlock","src":"1097:174:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1125:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1107:6:25"},"nodeType":"YulFunctionCall","src":"1107:21:25"},"nodeType":"YulExpressionStatement","src":"1107:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1148:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1159:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1144:3:25"},"nodeType":"YulFunctionCall","src":"1144:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1164:2:25","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1137:6:25"},"nodeType":"YulFunctionCall","src":"1137:30:25"},"nodeType":"YulExpressionStatement","src":"1137:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1198:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1183:3:25"},"nodeType":"YulFunctionCall","src":"1183:18:25"},{"hexValue":"496e76616c696420777261707065642063757272656e6379","kind":"string","nodeType":"YulLiteral","src":"1203:26:25","type":"","value":"Invalid wrapped currency"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1176:6:25"},"nodeType":"YulFunctionCall","src":"1176:54:25"},"nodeType":"YulExpressionStatement","src":"1176:54:25"},{"nodeType":"YulAssignment","src":"1239:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1251:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1262:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1247:3:25"},"nodeType":"YulFunctionCall","src":"1247:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1239:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4ddc3cbbe07914fb66ab04ac72c3abb0366e86ffb1c6b0fed4ff8de47b020d69__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1074:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1088:4:25","type":""}],"src":"923:348:25"},{"body":{"nodeType":"YulBlock","src":"1450:169:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1467:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1478:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1460:6:25"},"nodeType":"YulFunctionCall","src":"1460:21:25"},"nodeType":"YulExpressionStatement","src":"1460:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1501:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1512:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1497:3:25"},"nodeType":"YulFunctionCall","src":"1497:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1517:2:25","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1490:6:25"},"nodeType":"YulFunctionCall","src":"1490:30:25"},"nodeType":"YulExpressionStatement","src":"1490:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1540:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1551:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1536:3:25"},"nodeType":"YulFunctionCall","src":"1536:18:25"},{"hexValue":"496e76616c6964206669727374206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1556:21:25","type":"","value":"Invalid first owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1529:6:25"},"nodeType":"YulFunctionCall","src":"1529:49:25"},"nodeType":"YulExpressionStatement","src":"1529:49:25"},{"nodeType":"YulAssignment","src":"1587:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1599:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1610:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1595:3:25"},"nodeType":"YulFunctionCall","src":"1595:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1587:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_10b9ce8af142467925ca568eca10a22d164612f6c5bcce7f67dda653dc161c9a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1427:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1441:4:25","type":""}],"src":"1276:343:25"},{"body":{"nodeType":"YulBlock","src":"1798:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1815:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1826:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1808:6:25"},"nodeType":"YulFunctionCall","src":"1808:21:25"},"nodeType":"YulExpressionStatement","src":"1808:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1849:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1860:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1845:3:25"},"nodeType":"YulFunctionCall","src":"1845:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1865:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1838:6:25"},"nodeType":"YulFunctionCall","src":"1838:30:25"},"nodeType":"YulExpressionStatement","src":"1838:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1888:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1899:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1884:3:25"},"nodeType":"YulFunctionCall","src":"1884:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"1904:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1877:6:25"},"nodeType":"YulFunctionCall","src":"1877:62:25"},"nodeType":"YulExpressionStatement","src":"1877:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1959:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1970:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1955:3:25"},"nodeType":"YulFunctionCall","src":"1955:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"1975:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1948:6:25"},"nodeType":"YulFunctionCall","src":"1948:36:25"},"nodeType":"YulExpressionStatement","src":"1948:36:25"},{"nodeType":"YulAssignment","src":"1993:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2005:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2016:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2001:3:25"},"nodeType":"YulFunctionCall","src":"2001:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1993:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1775:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1789:4:25","type":""}],"src":"1624:402:25"},{"body":{"nodeType":"YulBlock","src":"2205:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2222:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2233:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2215:6:25"},"nodeType":"YulFunctionCall","src":"2215:21:25"},"nodeType":"YulExpressionStatement","src":"2215:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2256:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2267:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2252:3:25"},"nodeType":"YulFunctionCall","src":"2252:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"2272:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2245:6:25"},"nodeType":"YulFunctionCall","src":"2245:30:25"},"nodeType":"YulExpressionStatement","src":"2245:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2295:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2306:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2291:3:25"},"nodeType":"YulFunctionCall","src":"2291:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"2311:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2284:6:25"},"nodeType":"YulFunctionCall","src":"2284:62:25"},"nodeType":"YulExpressionStatement","src":"2284:62:25"},{"nodeType":"YulAssignment","src":"2355:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2367:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2378:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2363:3:25"},"nodeType":"YulFunctionCall","src":"2363:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2355:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2182:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2196:4:25","type":""}],"src":"2031:356:25"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_bd78db41aeb1b482220e74d8a1f3d0122aafb31cbeace251134940ab1f9c0002__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid factory\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4ddc3cbbe07914fb66ab04ac72c3abb0366e86ffb1c6b0fed4ff8de47b020d69__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Invalid wrapped currency\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_10b9ce8af142467925ca568eca10a22d164612f6c5bcce7f67dda653dc161c9a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Invalid first owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c06040526000805462ffffff60a01b191690553480156200002057600080fd5b50604051620053d5380380620053d58339810160408190526200004391620002bd565b6200004e3362000173565b6001600160a01b0383166200009c5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420666163746f727960881b60448201526064015b60405180910390fd5b6001600160a01b038216620000f45760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420777261707065642063757272656e63790000000000000000604482015260640162000093565b6001600160a01b0381166200014c5760405162461bcd60e51b815260206004820152601360248201527f496e76616c6964206669727374206f776e657200000000000000000000000000604482015260640162000093565b6001600160a01b03808416608052821660a0526200016a81620001c3565b50505062000307565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001cd62000242565b6001600160a01b038116620002345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000093565b6200023f8162000173565b50565b6000546001600160a01b031633146200029e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000093565b565b80516001600160a01b0381168114620002b857600080fd5b919050565b600080600060608486031215620002d357600080fd5b620002de84620002a0565b9250620002ee60208501620002a0565b9150620002fe60408501620002a0565b90509250925092565b60805160a051614f896200044c600039600081816101d6015281816103f201528181610b8301528181610eb80152818161107e015281816110f20152818161114501528181611670015281816117af0152818161187701528181611d8201528181611e1901528181611e8d01528181611ee001528181612331015281816127810152818161299501528181612a0901528181612a5c01528181613d7d01528181613df401528181613e1c0152613eb7015260008181610313015281816108e301528181610a2901528181610cae01528181610db201528181610e4c01528181610fe201528181611124015281816115200152818161173701528181611d1f01528181611ebf0152818161242e015281816125740152818161287d01528181612a3b015281816139e701528181613a37015281816144b001526146670152614f896000f3fe6080604052600436106101c65760003560e01c80638da5cb5b116100f7578063e56e780a11610095578063f2fde38b11610064578063f2fde38b1461060d578063f824f62e1461062d578063fa44620f1461064d578063febb9e4f1461066d57600080fd5b8063e56e780a146105a7578063e5e47889146105ba578063e80e6eed146105da578063eaf92ef4146105fa57600080fd5b8063bc063e1a116100d1578063bc063e1a14610532578063cdbf012e14610547578063cfde04d914610567578063d06ca61f1461058757600080fd5b80638da5cb5b146104d4578063a32166ee146104f2578063ad615dec1461051257600080fd5b80632eb9cc7411610164578063715018a61161013e578063715018a6146103cb57806373b295c2146103e05780637439459b1461041457806385f8c259146104b457600080fd5b80632eb9cc741461034d57806331f91a84146103605780633fe9bd7c1461038057600080fd5b80630ece8e24116101a05780630ece8e241461028a57806318d73e9b146102aa5780631f00ca74146102e15780632dd310001461030157600080fd5b806301e8a4751461020a578063054d50d41461022a57806305a1450d1461025d57600080fd5b3661020557336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461020357610203614924565b005b600080fd5b34801561021657600080fd5b50610203610225366004614956565b61068d565b34801561023657600080fd5b5061024a610245366004614971565b61082a565b6040519081526020015b60405180910390f35b34801561026957600080fd5b5061027d6102783660046149e2565b61083f565b6040516102549190614a64565b34801561029657600080fd5b5061027d6102a53660046149e2565b610b3c565b3480156102b657600080fd5b506000546102cd90600160a01b900462ffffff1681565b60405162ffffff9091168152602001610254565b3480156102ed57600080fd5b5061027d6102fc366004614abe565b610e45565b34801561030d57600080fd5b506103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610254565b61027d61035b366004614b8f565b610e79565b34801561036c57600080fd5b5061020361037b366004614c06565b611283565b34801561038c57600080fd5b506103bb61039b366004614c87565b600260209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610254565b3480156103d757600080fd5b5061020361142d565b3480156103ec57600080fd5b506103357f000000000000000000000000000000000000000000000000000000000000000081565b34801561042057600080fd5b5061047d61042f366004614956565b6001600160a01b031660009081526001602052604090205462ffffff808216926301000000830482169266010000000000008104831692600160481b82041691600160601b90910460ff1690565b6040805162ffffff96871681529486166020860152928516928401929092529092166060820152901515608082015260a001610254565b3480156104c057600080fd5b5061024a6104cf366004614971565b611441565b3480156104e057600080fd5b506000546001600160a01b0316610335565b3480156104fe57600080fd5b5061027d61050d3660046149e2565b61144e565b34801561051e57600080fd5b5061024a61052d366004614971565b61161e565b34801561053e57600080fd5b506102cd60c881565b34801561055357600080fd5b506102036105623660046149e2565b61162b565b34801561057357600080fd5b50610203610582366004614ccd565b611a12565b34801561059357600080fd5b5061027d6105a2366004614abe565b611d18565b6102036105b5366004614b8f565b611d45565b3480156105c657600080fd5b5061027d6105d53660046149e2565b6122ea565b3480156105e657600080fd5b506102036105f5366004614cf7565b612621565b61027d610608366004614b8f565b612742565b34801561061957600080fd5b50610203610628366004614956565b612bbb565b34801561063957600080fd5b506102036106483660046149e2565b612c4b565b34801561065957600080fd5b50610203610668366004614ccd565b612fd5565b34801561067957600080fd5b50610203610688366004614d20565b613223565b6001600160a01b03811660009081526001602052604090208054600160601b900460ff16156107035760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a65640000000000000000000000000060448201526064015b60405180910390fd5b600054600160a01b900462ffffff16801561077d57815461271062ffffff611388840281169190910480821663010000000265ffffffffffff19838616660100000000000002167fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000090941693909317908403909116171782555b81547fffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff81166c01001388000000000000000000178084556040805162ffffff9384168152630100000083048416602082015266010000000000009092049092169181019190915261138860608201526001600160a01b038416907f6b5fc252492dc36106011c1c3866e04a5c11af764428a2c91980de4994e4331f906080015b60405180910390a2505050565b6000610837848484613405565b949350505050565b6060824281101561087c5760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166108de5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b61093c7f00000000000000000000000000000000000000000000000000000000000000008b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061353692505050565b9250600080600085600187516109529190614d7d565b8151811061096257610962614d94565b602090810291909101015184549091506127109061098f906601000000000000900462ffffff1683614daa565b6109999190614dc9565b92506109a58382614d7d565b9150508a8110156109f85760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b610aa38a8a6000818110610a0e57610a0e614d94565b9050602002016020810190610a239190614956565b33610a9d7f00000000000000000000000000000000000000000000000000000000000000008e8e6000818110610a5b57610a5b614d94565b9050602002016020810190610a709190614956565b8f8f6001818110610a8357610a83614d94565b9050602002016020810190610a989190614956565b61369c565b8f61378d565b610ae0858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b610b2d818b8b610af1600182614d7d565b818110610b0057610b00614d94565b9050602002016020810190610b159190614956565b85548b908a90600160481b900462ffffff1687613b09565b50505050979650505050505050565b60608242811015610b795760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168787610bb0600182614d7d565b818110610bbf57610bbf614d94565b9050602002016020810190610bd49190614956565b6001600160a01b031614610c195760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff16610c7b5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b805460009061271090610c9d906601000000000000900462ffffff168d614daa565b610ca79190614dc9565b9050610d107f0000000000000000000000000000000000000000000000000000000000000000610cd7838e614deb565b8b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613bfa92505050565b9350600084600081518110610d2757610d27614d94565b602002602001015190508a811115610d815760405162461bcd60e51b815260206004820152601660248201527f4558434553534956455f494e5055545f414d4f554e540000000000000000000060448201526064016106fa565b610dea8a8a6000818110610d9757610d97614d94565b9050602002016020810190610dac9190614956565b33610de47f00000000000000000000000000000000000000000000000000000000000000008e8e6000818110610a5b57610a5b614d94565b8461378d565b610e27858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b8254610b2d908d908a908990600160481b900462ffffff1686613d4c565b6060610e727f00000000000000000000000000000000000000000000000000000000000000008484613bfa565b9392505050565b60608242811015610eb65760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031687876000818110610ef357610ef3614d94565b9050602002016020810190610f089190614956565b6001600160a01b031614610f4d5760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff16610faf5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b805460009061271090610fd1906601000000000000900462ffffff168c614daa565b610fdb9190614dc9565b905061100b7f0000000000000000000000000000000000000000000000000000000000000000610cd7838d614deb565b935060008460008151811061102257611022614d94565b602002602001015190503481111561107c5760405162461bcd60e51b815260206004820152601660248201527f4558434553534956455f494e5055545f414d4f554e540000000000000000000060448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110d757600080fd5b505af11580156110eb573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6111777f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008e8e6001818110610a8357610a83614d94565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190614e03565b61120c5761120c614924565b611249858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b61125a8b8b8b610af1600182614d7d565b8034111561127557611275336112708334614d7d565b613f21565b505050509695505050505050565b6000546001600160a01b031633146112dd5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b8382811461132d5760405162461bcd60e51b815260206004820152601860248201527f4d69736d617463686564206172726179206c656e67746873000000000000000060448201526064016106fa565b60005b818110156114245761138187878381811061134d5761134d614d94565b90506020020160208101906113629190614956565b8487878581811061137557611375614d94565b90506020020135614003565b86868281811061139357611393614d94565b90506020020160208101906113a89190614956565b6001600160a01b03167ff3a15b70ef42163a42bbb07edb60d02f31fd11d394c9326022f78e1c7e12f6858686848181106113e4576113e4614d94565b905060200201358560405161140c9291909182526001600160a01b0316602082015260400190565b60405180910390a261141d81614e20565b9050611330565b50505050505050565b61143561414c565b61143f60006141a6565b565b600061083784848461420e565b6060824281101561148b5760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166114ed5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b80546000906127109061150f906601000000000000900462ffffff168d614daa565b6115199190614dc9565b90506115497f0000000000000000000000000000000000000000000000000000000000000000610cd7838e614deb565b935060008460008151811061156057611560614d94565b602002602001015190508a8111156115ba5760405162461bcd60e51b815260206004820152601660248201527f4558434553534956455f494e5055545f414d4f554e540000000000000000000060448201526064016106fa565b6115d08a8a6000818110610d9757610d97614d94565b61160d858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b610b2d8c8b8b610af1600182614d7d565b6000610837848484614344565b81428110156116665760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868661169d600182614d7d565b8181106116ac576116ac614d94565b90506020020160208101906116c19190614956565b6001600160a01b0316146117065760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6117978686600081811061171c5761171c614d94565b90506020020160208101906117319190614956565b336117917f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061176957611769614d94565b905060200201602081019061177e9190614956565b8b8b6001818110610a8357610a83614d94565b8b61378d565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156117fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118229190614e3a565b905061186087878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061443b92505050565b6040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ea9190614e3a565b6118f49190614d7d565b6001600160a01b0384166000908152600160205260409020805491925090600160601b900460ff1661195a5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b80546000906127109061197c906601000000000000900462ffffff1685614daa565b6119869190614dc9565b905060006119948285614d7d565b90508a8110156119e65760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b8254611a049082908a908990600160481b900462ffffff1686613d4c565b505050505050505050505050565b336001600160a01b0383161480611a3357506000546001600160a01b031633145b80611a6157506001600160a01b038216600090815260026020908152604080832033845290915290205460ff165b611aad5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b60c862ffffff82161115611b035760405162461bcd60e51b815260206004820152601360248201527f45786365737369766520746f74616c206665650000000000000000000000000060448201526064016106fa565b60005462ffffff600160a01b90910481169082161015611b655760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e7420746f74616c206665650000000000000000000060448201526064016106fa565b6001600160a01b03821660009081526001602052604090208054600160601b900460ff16611bd55760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016106fa565b805462ffffff80841666010000000000009092041603611c375760405162461bcd60e51b815260206004820152601260248201527f4e6f206368616e6765207265717569726564000000000000000000000000000060448201526064016106fa565b80546000908190612710600160481b90910462ffffff90811686021604808503845462ffffff82811665ffffffffffff1990921682176301000000858316908102919091177fffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff1666010000000000008a841690810291909117808a5560408051958652602086019390935291840152600160481b900416606082015291935091506001600160a01b038616907f268bb6f24d6bcf8e423acb11150cdda69e8aa10804aada92e6e8e32ad9e724fb906080015b60405180910390a25050505050565b6060610e727f00000000000000000000000000000000000000000000000000000000000000008484613536565b8142811015611d805760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611dbd57611dbd614d94565b9050602002016020810190611dd29190614956565b6001600160a01b031614611e175760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611e7257600080fd5b505af1158015611e86573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611f127f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008a8a6001818110610a8357610a83614d94565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201523460248201526044016020604051808303816000875af1158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9a9190614e03565b611fa657611fa6614924565b60008686611fb5600182614d7d565b818110611fc457611fc4614d94565b9050602002016020810190611fd99190614956565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918316906370a0823190602401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190614e3a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b79190614e3a565b90506120f589898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061443b92505050565b6040516370a0823160e01b815230600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561213b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215f9190614e3a565b6121699190614d7d565b6001600160a01b0386166000908152600160205260409020805491925090600160601b900460ff166121cf5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b8054600090612710906121f1906601000000000000900462ffffff1685614daa565b6121fb9190614dc9565b905061222461220a8285614d7d565b835487908c908b90600160481b900462ffffff1686613b09565b6040516370a0823160e01b81526001600160a01b038a811660048301528d9186918816906370a0823190602401602060405180830381865afa15801561226e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122929190614e3a565b61229c9190614d7d565b1015611a045760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b606082428110156123275760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016878761235e600182614d7d565b81811061236d5761236d614d94565b90506020020160208101906123829190614956565b6001600160a01b0316146123c75760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166124295760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b6124877f00000000000000000000000000000000000000000000000000000000000000008b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061353692505050565b92506000806000856001875161249d9190614d7d565b815181106124ad576124ad614d94565b60209081029190910101518454909150612710906124da906601000000000000900462ffffff1683614daa565b6124e49190614dc9565b92506124f08382614d7d565b9150508a8110156125435760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b6125c68a8a600081811061255957612559614d94565b905060200201602081019061256e9190614956565b336125a67f00000000000000000000000000000000000000000000000000000000000000008e8e6000818110610a5b57610a5b614d94565b886000815181106125b9576125b9614d94565b602002602001015161378d565b612603858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b8254610b2d9082908a908990600160481b900462ffffff1686613d4c565b6000546001600160a01b0316331461267b5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b601e62ffffff821611156126d15760405162461bcd60e51b815260206004820152601360248201527f4578636573736976652066656520666c6f6f720000000000000000000000000060448201526064016106fa565b600080547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff16600160a01b62ffffff8416908102919091179091556040519081527f14c0e8536178612bd3938abcc5b94b0c0ca07a71800ba09c1c10e61b02209c559060200160405180910390a150565b6060824281101561277f5760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316878760008181106127bc576127bc614d94565b90506020020160208101906127d19190614956565b6001600160a01b0316146128165760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166128785760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b6128d67f0000000000000000000000000000000000000000000000000000000000000000348a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061353692505050565b9250600083600185516128e99190614d7d565b815181106128f9576128f9614d94565b6020908102919091010151825490915060009061271090612929906601000000000000900462ffffff1684614daa565b6129339190614dc9565b905060006129418284614d7d565b90508b8110156129935760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156129ee57600080fd5b505af1158015612a02573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612a8e7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008f8f6001818110610a8357610a83614d94565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201523460248201526044016020604051808303816000875af1158015612af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b169190614e03565b612b2257612b22614924565b612b5f868c8c8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b612bac818c8c612b70600182614d7d565b818110612b7f57612b7f614d94565b9050602002016020810190612b949190614956565b86548c908b90600160481b900462ffffff1687613b09565b50505050509695505050505050565b612bc361414c565b6001600160a01b038116612c3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106fa565b612c48816141a6565b50565b8142811015612c865760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b612c9c8686600081811061171c5761171c614d94565b60008686612cab600182614d7d565b818110612cba57612cba614d94565b9050602002016020810190612ccf9190614956565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918316906370a0823190602401602060405180830381865afa158015612d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3f9190614e3a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dad9190614e3a565b9050612deb89898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061443b92505050565b6040516370a0823160e01b815230600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa158015612e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e559190614e3a565b612e5f9190614d7d565b6001600160a01b0386166000908152600160205260409020805491925090600160601b900460ff16612ec55760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b805460009061271090612ee7906601000000000000900462ffffff1685614daa565b612ef19190614dc9565b9050612f0061220a8285614d7d565b6040516370a0823160e01b81526001600160a01b038a811660048301528d9186918816906370a0823190602401602060405180830381865afa158015612f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6e9190614e3a565b612f789190614d7d565b1015612fc65760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b50505050505050505050505050565b6000546001600160a01b0316331461302f5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b61138862ffffff821611156130865760405162461bcd60e51b815260206004820152601160248201527f457863657373697665206665652063757400000000000000000000000000000060448201526064016106fa565b6001600160a01b03821660009081526001602052604090208054600160601b900460ff166130f65760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016106fa565b805462ffffff808416600160481b90920416036131555760405162461bcd60e51b815260206004820152601260248201527f4e6f206368616e6765207265717569726564000000000000000000000000000060448201526064016106fa565b805462ffffff838116600160481b81027fffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff612710660100000000000080870486168981028716929092048087166301000000810265ffffffffffff19909916938290038089169485179990991794909416949094178089556040805193845260208401949094520490941690840152606083019190915291906001600160a01b038616907f268bb6f24d6bcf8e423acb11150cdda69e8aa10804aada92e6e8e32ad9e724fb90608001611d09565b336001600160a01b038416148061324457506000546001600160a01b031633145b6132905760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b6001600160a01b038316600090815260016020526040902054600160601b900460ff166132ff5760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016106fa565b6001600160a01b0380841660009081526002602090815260408083209386168352929052205481151560ff90911615150361337c5760405162461bcd60e51b815260206004820152601260248201527f4e6f206368616e6765207265717569726564000000000000000000000000000060448201526064016106fa565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915582519485529084015290917f46751f89d74c14e8ae5fd281384537c0da96b674099c7e7aad93aa38f39e9acc910161081d565b600080841161347c5760405162461bcd60e51b815260206004820152602a60248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e60448201527f5055545f414d4f554e540000000000000000000000000000000000000000000060648201526084016106fa565b60008311801561348c5750600082115b6134e85760405162461bcd60e51b815260206004820152602760248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b60648201526084016106fa565b60006134f6856103e5614daa565b905060006135048483614daa565b9050600082613515876103e8614daa565b61351f9190614deb565b905061352b8183614dc9565b979650505050505050565b606060028251101561358a5760405162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f5041544800000060448201526064016106fa565b815167ffffffffffffffff8111156135a4576135a4614aa8565b6040519080825280602002602001820160405280156135cd578160200160208202803683370190505b50905082816000815181106135e4576135e4614d94565b60200260200101818152505060005b6001835103811015613694576000806136428786858151811061361857613618614d94565b602002602001015187866001018151811061363557613635614d94565b602002602001015161473e565b9150915061366a84848151811061365b5761365b614d94565b60200260200101518383613405565b84846001018151811061367f5761367f614d94565b602090810291909101015250506001016135f3565b509392505050565b60008060006136ab8585614816565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b166034820152919350915086906048016040516020818303038152906040528051906020012060405160200161376b9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052915160009283929088169161381f9190614e83565b6000604051808303816000865af19150503d806000811461385c576040519150601f19603f3d011682016040523d82523d6000602084013e613861565b606091505b509150915081801561388b57508051158061388b57508080602001905181019061388b9190614e03565b6138fc5760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c45440000000000000000000000000000000000000000000000000000000060648201526084016106fa565b505050505050565b60005b600182516139159190614d7d565b811015613b045760008083838151811061393157613931614d94565b6020026020010151848460016139479190614deb565b8151811061395757613957614d94565b602002602001015191509150600061396f8383614816565b509050600086613980866001614deb565b8151811061399057613990614d94565b60200260200101519050600080836001600160a01b0316866001600160a01b0316146139be578260006139c2565b6000835b915091506000600289516139d69190614d7d565b88106139e25730613a30565b613a307f0000000000000000000000000000000000000000000000000000000000000000878b613a138c6002614deb565b81518110613a2357613a23614d94565b602002602001015161369c565b9050613a5d7f0000000000000000000000000000000000000000000000000000000000000000888861369c565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015613a9a576020820181803683370190505b506040518563ffffffff1660e01b8152600401613aba9493929190614e9f565b600060405180830381600087803b158015613ad457600080fd5b505af1158015613ae8573d6000803e3d6000fd5b505050505050505050505080613afd90614e20565b9050613907565b505050565b6000612710613b188484614daa565b613b229190614dc9565b90506000613b308284614d7d565b90508115613b8657866001600160a01b0316856001600160a01b03167f20e2995330eff898aba363dafa356ef1daadce6099c9cc7ca8d54eefe4592b4c84604051613b7d91815260200190565b60405180910390a35b8015613be557613b97878683614003565b866001600160a01b0316856001600160a01b03167f773af6b6713c6b692509715062c62888d71211ffdd7012cf0835abfdc18992fa83604051613bdc91815260200190565b60405180910390a35b613bf087878a614003565b5050505050505050565b6060600282511015613c4e5760405162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f5041544800000060448201526064016106fa565b815167ffffffffffffffff811115613c6857613c68614aa8565b604051908082528060200260200182016040528015613c91578160200160208202803683370190505b5090508281600183510381518110613cab57613cab614d94565b60209081029190910101528151600019015b801561369457600080613cf987866001860381518110613cdf57613cdf614d94565b602002602001015187868151811061363557613635614d94565b91509150613d21848481518110613d1257613d12614d94565b6020026020010151838361420e565b846001850381518110613d3657613d36614d94565b6020908102919091010152505060001901613cbd565b6000612710613d5b8484614daa565b613d659190614dc9565b90506000613d738284614d7d565b90508115613de9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03167f20e2995330eff898aba363dafa356ef1daadce6099c9cc7ca8d54eefe4592b4c84604051613de091815260200190565b60405180910390a35b8015613e8857613e1a7f00000000000000000000000000000000000000000000000000000000000000008683614003565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03167f773af6b6713c6b692509715062c62888d71211ffdd7012cf0835abfdc18992fa83604051613e7f91815260200190565b60405180910390a35b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015613f0357600080fd5b505af1158015613f17573d6000803e3d6000fd5b5050505061142486885b604080516000808252602082019092526001600160a01b038416908390604051613f4b9190614e83565b60006040518083038185875af1925050503d8060008114613f88576040519150601f19603f3d011682016040523d82523d6000602084013e613f8d565b606091505b5050905080613b045760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a20415641585f5452414e534645525f464160448201527f494c45440000000000000000000000000000000000000000000000000000000060648201526084016106fa565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161408d9190614e83565b6000604051808303816000865af19150503d80600081146140ca576040519150601f19603f3d011682016040523d82523d6000602084013e6140cf565b606091505b50915091508180156140f95750805115806140f95750808060200190518101906140f99190614e03565b6141455760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016106fa565b5050505050565b6000546001600160a01b0316331461143f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008084116142855760405162461bcd60e51b815260206004820152602b60248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f5560448201527f545055545f414d4f554e5400000000000000000000000000000000000000000060648201526084016106fa565b6000831180156142955750600082115b6142f15760405162461bcd60e51b815260206004820152602760248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b60648201526084016106fa565b60006142fd8585614daa565b614309906103e8614daa565b905060006143178685614d7d565b614323906103e5614daa565b905061432f8183614dc9565b61433a906001614deb565b9695505050505050565b60008084116143ba5760405162461bcd60e51b8152602060048201526024808201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d60448201527f4f554e540000000000000000000000000000000000000000000000000000000060648201526084016106fa565b6000831180156143ca5750600082115b6144265760405162461bcd60e51b815260206004820152602760248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b60648201526084016106fa565b826144318386614daa565b6108379190614dc9565b60005b6001825161444c9190614d7d565b81101561473a5760008083838151811061446857614468614d94565b60200260200101518484600161447e9190614deb565b8151811061448e5761448e614d94565b60200260200101519150915060006144a68383614816565b50905060006144d67f0000000000000000000000000000000000000000000000000000000000000000858561369c565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561451c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145409190614f0e565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600080876001600160a01b03168a6001600160a01b03161461458857828461458b565b83835b6040516370a0823160e01b81526001600160a01b038a8116600483015292945090925083918c16906370a0823190602401602060405180830381865afa1580156145d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145fd9190614e3a565b6146079190614d7d565b9550614614868383613405565b945050505050600080856001600160a01b0316886001600160a01b03161461463e57826000614642565b6000835b91509150600060028b516146569190614d7d565b8a106146625730614693565b6146937f0000000000000000000000000000000000000000000000000000000000000000898d613a138e6002614deb565b604080516000815260208101918290527f022c0d9f000000000000000000000000000000000000000000000000000000009091529091506001600160a01b0387169063022c0d9f906146ee9086908690869060248101614e9f565b600060405180830381600087803b15801561470857600080fd5b505af115801561471c573d6000803e3d6000fd5b505050505050505050505050508061473390614e20565b905061443e565b5050565b600080600061474d8585614816565b50905060008061475e88888861369c565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561479b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147bf9190614f0e565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614614804578082614807565b81815b90999098509650505050505050565b600080826001600160a01b0316846001600160a01b03160361489f5760405162461bcd60e51b8152602060048201526024808201527f50616e676f6c696e4c6962726172793a204944454e544943414c5f414444524560448201527f535345530000000000000000000000000000000000000000000000000000000060648201526084016106fa565b826001600160a01b0316846001600160a01b0316106148bf5782846148c2565b83835b90925090506001600160a01b03821661491d5760405162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a205a45524f5f4144445245535300000060448201526064016106fa565b9250929050565b634e487b7160e01b600052600160045260246000fd5b80356001600160a01b038116811461495157600080fd5b919050565b60006020828403121561496857600080fd5b610e728261493a565b60008060006060848603121561498657600080fd5b505081359360208301359350604090920135919050565b60008083601f8401126149af57600080fd5b50813567ffffffffffffffff8111156149c757600080fd5b6020830191508360208260051b850101111561491d57600080fd5b600080600080600080600060c0888a0312156149fd57600080fd5b8735965060208801359550604088013567ffffffffffffffff811115614a2257600080fd5b614a2e8a828b0161499d565b9096509450614a4190506060890161493a565b925060808801359150614a5660a0890161493a565b905092959891949750929550565b6020808252825182820181905260009190848201906040850190845b81811015614a9c57835183529284019291840191600101614a80565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215614ad157600080fd5b8235915060208084013567ffffffffffffffff80821115614af157600080fd5b818601915086601f830112614b0557600080fd5b813581811115614b1757614b17614aa8565b8060051b604051601f19603f83011681018181108582111715614b3c57614b3c614aa8565b604052918252848201925083810185019189831115614b5a57600080fd5b938501935b82851015614b7f57614b708561493a565b84529385019392850192614b5f565b8096505050505050509250929050565b60008060008060008060a08789031215614ba857600080fd5b86359550602087013567ffffffffffffffff811115614bc657600080fd5b614bd289828a0161499d565b9096509450614be590506040880161493a565b925060608701359150614bfa6080880161493a565b90509295509295509295565b600080600080600060608688031215614c1e57600080fd5b853567ffffffffffffffff80821115614c3657600080fd5b614c4289838a0161499d565b90975095506020880135915080821115614c5b57600080fd5b50614c688882890161499d565b9094509250614c7b90506040870161493a565b90509295509295909350565b60008060408385031215614c9a57600080fd5b614ca38361493a565b9150614cb16020840161493a565b90509250929050565b803562ffffff8116811461495157600080fd5b60008060408385031215614ce057600080fd5b614ce98361493a565b9150614cb160208401614cba565b600060208284031215614d0957600080fd5b610e7282614cba565b8015158114612c4857600080fd5b600080600060608486031215614d3557600080fd5b614d3e8461493a565b9250614d4c6020850161493a565b91506040840135614d5c81614d12565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600082821015614d8f57614d8f614d67565b500390565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615614dc457614dc4614d67565b500290565b600082614de657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115614dfe57614dfe614d67565b500190565b600060208284031215614e1557600080fd5b8151610e7281614d12565b60006000198203614e3357614e33614d67565b5060010190565b600060208284031215614e4c57600080fd5b5051919050565b60005b83811015614e6e578181015183820152602001614e56565b83811115614e7d576000848401525b50505050565b60008251614e95818460208701614e53565b9190910192915050565b8481528360208201526001600160a01b03831660408201526080606082015260008251806080840152614ed98160a0850160208701614e53565b601f01601f19169190910160a00195945050505050565b80516dffffffffffffffffffffffffffff8116811461495157600080fd5b600080600060608486031215614f2357600080fd5b614f2c84614ef0565b9250614f3a60208501614ef0565b9150604084015163ffffffff81168114614d5c57600080fdfea26469706673582212208d04eafbcd8aaa3616d9b3b04c82401be03d11653e42597b89035df4f843e45464736f6c634300080d0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH3 0xFFFFFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x53D5 CODESIZE SUB DUP1 PUSH3 0x53D5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x2BD JUMP JUMPDEST PUSH3 0x4E CALLER PUSH3 0x173 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C696420666163746F7279 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C696420777261707065642063757272656E63790000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x14C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964206669727374206F776E657200000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x80 MSTORE DUP3 AND PUSH1 0xA0 MSTORE PUSH3 0x16A DUP2 PUSH3 0x1C3 JUMP JUMPDEST POP POP POP PUSH3 0x307 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0x1CD PUSH3 0x242 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x234 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x93 JUMP JUMPDEST PUSH3 0x23F DUP2 PUSH3 0x173 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x29E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x93 JUMP JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2DE DUP5 PUSH3 0x2A0 JUMP JUMPDEST SWAP3 POP PUSH3 0x2EE PUSH1 0x20 DUP6 ADD PUSH3 0x2A0 JUMP JUMPDEST SWAP2 POP PUSH3 0x2FE PUSH1 0x40 DUP6 ADD PUSH3 0x2A0 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x4F89 PUSH3 0x44C PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1D6 ADD MSTORE DUP2 DUP2 PUSH2 0x3F2 ADD MSTORE DUP2 DUP2 PUSH2 0xB83 ADD MSTORE DUP2 DUP2 PUSH2 0xEB8 ADD MSTORE DUP2 DUP2 PUSH2 0x107E ADD MSTORE DUP2 DUP2 PUSH2 0x10F2 ADD MSTORE DUP2 DUP2 PUSH2 0x1145 ADD MSTORE DUP2 DUP2 PUSH2 0x1670 ADD MSTORE DUP2 DUP2 PUSH2 0x17AF ADD MSTORE DUP2 DUP2 PUSH2 0x1877 ADD MSTORE DUP2 DUP2 PUSH2 0x1D82 ADD MSTORE DUP2 DUP2 PUSH2 0x1E19 ADD MSTORE DUP2 DUP2 PUSH2 0x1E8D ADD MSTORE DUP2 DUP2 PUSH2 0x1EE0 ADD MSTORE DUP2 DUP2 PUSH2 0x2331 ADD MSTORE DUP2 DUP2 PUSH2 0x2781 ADD MSTORE DUP2 DUP2 PUSH2 0x2995 ADD MSTORE DUP2 DUP2 PUSH2 0x2A09 ADD MSTORE DUP2 DUP2 PUSH2 0x2A5C ADD MSTORE DUP2 DUP2 PUSH2 0x3D7D ADD MSTORE DUP2 DUP2 PUSH2 0x3DF4 ADD MSTORE DUP2 DUP2 PUSH2 0x3E1C ADD MSTORE PUSH2 0x3EB7 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x313 ADD MSTORE DUP2 DUP2 PUSH2 0x8E3 ADD MSTORE DUP2 DUP2 PUSH2 0xA29 ADD MSTORE DUP2 DUP2 PUSH2 0xCAE ADD MSTORE DUP2 DUP2 PUSH2 0xDB2 ADD MSTORE DUP2 DUP2 PUSH2 0xE4C ADD MSTORE DUP2 DUP2 PUSH2 0xFE2 ADD MSTORE DUP2 DUP2 PUSH2 0x1124 ADD MSTORE DUP2 DUP2 PUSH2 0x1520 ADD MSTORE DUP2 DUP2 PUSH2 0x1737 ADD MSTORE DUP2 DUP2 PUSH2 0x1D1F ADD MSTORE DUP2 DUP2 PUSH2 0x1EBF ADD MSTORE DUP2 DUP2 PUSH2 0x242E ADD MSTORE DUP2 DUP2 PUSH2 0x2574 ADD MSTORE DUP2 DUP2 PUSH2 0x287D ADD MSTORE DUP2 DUP2 PUSH2 0x2A3B ADD MSTORE DUP2 DUP2 PUSH2 0x39E7 ADD MSTORE DUP2 DUP2 PUSH2 0x3A37 ADD MSTORE DUP2 DUP2 PUSH2 0x44B0 ADD MSTORE PUSH2 0x4667 ADD MSTORE PUSH2 0x4F89 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE56E780A GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0xF824F62E EQ PUSH2 0x62D JUMPI DUP1 PUSH4 0xFA44620F EQ PUSH2 0x64D JUMPI DUP1 PUSH4 0xFEBB9E4F EQ PUSH2 0x66D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE56E780A EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xE5E47889 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xE80E6EED EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0xEAF92EF4 EQ PUSH2 0x5FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC063E1A GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xBC063E1A EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0xCDBF012E EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xCFDE04D9 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xA32166EE EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB9CC74 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0x73B295C2 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0x7439459B EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x85F8C259 EQ PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB9CC74 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x31F91A84 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x3FE9BD7C EQ PUSH2 0x380 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xECE8E24 GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xECE8E24 EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0x18D73E9B EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x2DD31000 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1E8A475 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x54D50D4 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x5A1450D EQ PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x205 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x203 JUMPI PUSH2 0x203 PUSH2 0x4924 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x4956 JUMP JUMPDEST PUSH2 0x68D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x245 CALLDATASIZE PUSH1 0x4 PUSH2 0x4971 JUMP JUMPDEST PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x83F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x254 SWAP2 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x296 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0xB3C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x2CD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x2FC CALLDATASIZE PUSH1 0x4 PUSH2 0x4ABE JUMP JUMPDEST PUSH2 0xE45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x254 JUMP JUMPDEST PUSH2 0x27D PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x4B8F JUMP JUMPDEST PUSH2 0xE79 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x37B CALLDATASIZE PUSH1 0x4 PUSH2 0x4C06 JUMP JUMPDEST PUSH2 0x1283 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3BB PUSH2 0x39B CALLDATASIZE PUSH1 0x4 PUSH2 0x4C87 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x142D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH2 0x42F CALLDATASIZE PUSH1 0x4 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH3 0xFFFFFF DUP1 DUP3 AND SWAP3 PUSH4 0x1000000 DUP4 DIV DUP3 AND SWAP3 PUSH7 0x1000000000000 DUP2 DIV DUP4 AND SWAP3 PUSH1 0x1 PUSH1 0x48 SHL DUP3 DIV AND SWAP2 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH3 0xFFFFFF SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 DUP6 AND SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x4CF CALLDATASIZE PUSH1 0x4 PUSH2 0x4971 JUMP JUMPDEST PUSH2 0x1441 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x335 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x144E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x52D CALLDATASIZE PUSH1 0x4 PUSH2 0x4971 JUMP JUMPDEST PUSH2 0x161E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH1 0xC8 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x162B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CCD JUMP JUMPDEST PUSH2 0x1A12 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4ABE JUMP JUMPDEST PUSH2 0x1D18 JUMP JUMPDEST PUSH2 0x203 PUSH2 0x5B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B8F JUMP JUMPDEST PUSH2 0x1D45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x22EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x5F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF7 JUMP JUMPDEST PUSH2 0x2621 JUMP JUMPDEST PUSH2 0x27D PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B8F JUMP JUMPDEST PUSH2 0x2742 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x628 CALLDATASIZE PUSH1 0x4 PUSH2 0x4956 JUMP JUMPDEST PUSH2 0x2BBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x648 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x2C4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x668 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CCD JUMP JUMPDEST PUSH2 0x2FD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x679 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x688 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D20 JUMP JUMPDEST PUSH2 0x3223 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x703 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416C726561647920696E697469616C697A656400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP1 ISZERO PUSH2 0x77D JUMPI DUP2 SLOAD PUSH2 0x2710 PUSH3 0xFFFFFF PUSH2 0x1388 DUP5 MUL DUP2 AND SWAP2 SWAP1 SWAP2 DIV DUP1 DUP3 AND PUSH4 0x1000000 MUL PUSH6 0xFFFFFFFFFFFF NOT DUP4 DUP7 AND PUSH7 0x1000000000000 MUL AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 DUP5 SUB SWAP1 SWAP2 AND OR OR DUP3 SSTORE JUMPDEST DUP2 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFF DUP2 AND PUSH13 0x1001388000000000000000000 OR DUP1 DUP5 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH3 0xFFFFFF SWAP4 DUP5 AND DUP2 MSTORE PUSH4 0x1000000 DUP4 DIV DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x1000000000000 SWAP1 SWAP3 DIV SWAP1 SWAP3 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x1388 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x6B5FC252492DC36106011C1C3866E04A5C11AF764428A2C91980DE4994E4331F SWAP1 PUSH1 0x80 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x837 DUP5 DUP5 DUP5 PUSH2 0x3405 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x87C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x93C PUSH32 0x0 DUP12 DUP11 DUP11 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3536 SWAP3 POP POP POP JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 DUP8 MLOAD PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x962 JUMPI PUSH2 0x962 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP5 SLOAD SWAP1 SWAP2 POP PUSH2 0x2710 SWAP1 PUSH2 0x98F SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP4 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x999 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP3 POP PUSH2 0x9A5 DUP4 DUP3 PUSH2 0x4D7D JUMP JUMPDEST SWAP2 POP POP DUP11 DUP2 LT ISZERO PUSH2 0x9F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0xAA3 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA0E JUMPI PUSH2 0xA0E PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA23 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0xA9D PUSH32 0x0 DUP15 DUP15 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA5B JUMPI PUSH2 0xA5B PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA70 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP16 DUP16 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA98 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH2 0x369C JUMP JUMPDEST DUP16 PUSH2 0x378D JUMP JUMPDEST PUSH2 0xAE0 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB2D DUP2 DUP12 DUP12 PUSH2 0xAF1 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0xB00 JUMPI PUSH2 0xB00 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP6 SLOAD DUP12 SWAP1 DUP11 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP8 PUSH2 0x3B09 JUMP JUMPDEST POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xB79 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP8 DUP8 PUSH2 0xBB0 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0xBBF JUMPI PUSH2 0xBBF PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xBD4 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xC7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xC9D SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP14 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0xCA7 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0xD10 PUSH32 0x0 PUSH2 0xCD7 DUP4 DUP15 PUSH2 0x4DEB JUMP JUMPDEST DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3BFA SWAP3 POP POP POP JUMP JUMPDEST SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD27 JUMPI PUSH2 0xD27 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xD81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558434553534956455F494E5055545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0xDEA DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xD97 JUMPI PUSH2 0xD97 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xDAC SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0xDE4 PUSH32 0x0 DUP15 DUP15 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA5B JUMPI PUSH2 0xA5B PUSH2 0x4D94 JUMP JUMPDEST DUP5 PUSH2 0x378D JUMP JUMPDEST PUSH2 0xE27 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST DUP3 SLOAD PUSH2 0xB2D SWAP1 DUP14 SWAP1 DUP11 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3D4C JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE72 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3BFA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 DUP8 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xEF3 JUMPI PUSH2 0xEF3 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF08 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xFD1 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP13 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0xFDB SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x100B PUSH32 0x0 PUSH2 0xCD7 DUP4 DUP14 PUSH2 0x4DEB JUMP JUMPDEST SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1022 JUMPI PUSH2 0x1022 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP CALLVALUE DUP2 GT ISZERO PUSH2 0x107C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558434553534956455F494E5055545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1177 PUSH32 0x0 PUSH32 0x0 DUP15 DUP15 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1200 SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x120C JUMPI PUSH2 0x120C PUSH2 0x4924 JUMP JUMPDEST PUSH2 0x1249 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x125A DUP12 DUP12 DUP12 PUSH2 0xAF1 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP1 CALLVALUE GT ISZERO PUSH2 0x1275 JUMPI PUSH2 0x1275 CALLER PUSH2 0x1270 DUP4 CALLVALUE PUSH2 0x4D7D JUMP JUMPDEST PUSH2 0x3F21 JUMP JUMPDEST POP POP POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x12DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP4 DUP3 DUP2 EQ PUSH2 0x132D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D69736D617463686564206172726179206C656E677468730000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1424 JUMPI PUSH2 0x1381 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x134D JUMPI PUSH2 0x134D PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1362 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP5 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x1375 JUMPI PUSH2 0x1375 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x4003 JUMP JUMPDEST DUP7 DUP7 DUP3 DUP2 DUP2 LT PUSH2 0x1393 JUMPI PUSH2 0x1393 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x13A8 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF3A15B70EF42163A42BBB07EDB60D02F31FD11D394C9326022F78E1C7E12F685 DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x13E4 JUMPI PUSH2 0x13E4 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 PUSH1 0x40 MLOAD PUSH2 0x140C SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x141D DUP2 PUSH2 0x4E20 JUMP JUMPDEST SWAP1 POP PUSH2 0x1330 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1435 PUSH2 0x414C JUMP JUMPDEST PUSH2 0x143F PUSH1 0x0 PUSH2 0x41A6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x837 DUP5 DUP5 DUP5 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x148B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x14ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x150F SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP14 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x1519 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x1549 PUSH32 0x0 PUSH2 0xCD7 DUP4 DUP15 PUSH2 0x4DEB JUMP JUMPDEST SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1560 JUMPI PUSH2 0x1560 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0x15BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558434553534956455F494E5055545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x15D0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xD97 JUMPI PUSH2 0xD97 PUSH2 0x4D94 JUMP JUMPDEST PUSH2 0x160D DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB2D DUP13 DUP12 DUP12 PUSH2 0xAF1 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x837 DUP5 DUP5 DUP5 PUSH2 0x4344 JUMP JUMPDEST DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH2 0x169D PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x16AC JUMPI PUSH2 0x16AC PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16C1 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1706 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x1797 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x171C JUMPI PUSH2 0x171C PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1731 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0x1791 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1769 JUMPI PUSH2 0x1769 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x177E SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST DUP12 PUSH2 0x378D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1822 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST SWAP1 POP PUSH2 0x1860 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x443B SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP2 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18EA SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x18F4 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x195A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x197C SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1994 DUP3 DUP6 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP11 DUP2 LT ISZERO PUSH2 0x19E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP3 SLOAD PUSH2 0x1A04 SWAP1 DUP3 SWAP1 DUP11 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3D4C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ DUP1 PUSH2 0x1A33 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0x1A61 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x1AAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0xC8 PUSH3 0xFFFFFF DUP3 AND GT ISZERO PUSH2 0x1B03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45786365737369766520746F74616C2066656500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0xFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND LT ISZERO PUSH2 0x1B65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E73756666696369656E7420746F74616C2066656500000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1BD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420696E697469616C697A65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH3 0xFFFFFF DUP1 DUP5 AND PUSH7 0x1000000000000 SWAP1 SWAP3 DIV AND SUB PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206368616E67652072657175697265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x2710 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV PUSH3 0xFFFFFF SWAP1 DUP2 AND DUP7 MUL AND DIV DUP1 DUP6 SUB DUP5 SLOAD PUSH3 0xFFFFFF DUP3 DUP2 AND PUSH6 0xFFFFFFFFFFFF NOT SWAP1 SWAP3 AND DUP3 OR PUSH4 0x1000000 DUP6 DUP4 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF AND PUSH7 0x1000000000000 DUP11 DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR DUP1 DUP11 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV AND PUSH1 0x60 DUP3 ADD MSTORE SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH32 0x268BB6F24D6BCF8E423ACB11150CDDA69E8AA10804AADA92E6E8E32AD9E724FB SWAP1 PUSH1 0x80 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE72 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3536 JUMP JUMPDEST DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1D80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1DBD JUMPI PUSH2 0x1DBD PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1DD2 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E86 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1F12 PUSH32 0x0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLVALUE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F76 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F9A SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x1FA6 JUMPI PUSH2 0x1FA6 PUSH2 0x4924 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH2 0x1FB5 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x1FC4 JUMPI PUSH2 0x1FC4 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1FD9 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2025 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2049 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20B7 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST SWAP1 POP PUSH2 0x20F5 DUP10 DUP10 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x443B SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x213B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215F SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x2169 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x21CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x21F1 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x21FB SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x2224 PUSH2 0x220A DUP3 DUP6 PUSH2 0x4D7D JUMP JUMPDEST DUP4 SLOAD DUP8 SWAP1 DUP13 SWAP1 DUP12 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3B09 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP14 SWAP2 DUP7 SWAP2 DUP9 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x226E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2292 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x229C SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST LT ISZERO PUSH2 0x1A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP8 DUP8 PUSH2 0x235E PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x236D JUMPI PUSH2 0x236D PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2382 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x23C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x2487 PUSH32 0x0 DUP12 DUP11 DUP11 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3536 SWAP3 POP POP POP JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 DUP8 MLOAD PUSH2 0x249D SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x24AD JUMPI PUSH2 0x24AD PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP5 SLOAD SWAP1 SWAP2 POP PUSH2 0x2710 SWAP1 PUSH2 0x24DA SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP4 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x24E4 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP3 POP PUSH2 0x24F0 DUP4 DUP3 PUSH2 0x4D7D JUMP JUMPDEST SWAP2 POP POP DUP11 DUP2 LT ISZERO PUSH2 0x2543 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x25C6 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2559 JUMPI PUSH2 0x2559 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x256E SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0x25A6 PUSH32 0x0 DUP15 DUP15 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA5B JUMPI PUSH2 0xA5B PUSH2 0x4D94 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x25B9 JUMPI PUSH2 0x25B9 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x378D JUMP JUMPDEST PUSH2 0x2603 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST DUP3 SLOAD PUSH2 0xB2D SWAP1 DUP3 SWAP1 DUP11 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3D4C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x267B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1E PUSH3 0xFFFFFF DUP3 AND GT ISZERO PUSH2 0x26D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578636573736976652066656520666C6F6F7200000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH3 0xFFFFFF DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x14C0E8536178612BD3938ABCC5B94B0C0CA07A71800BA09C1C10E61B02209C55 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x277F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 DUP8 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x27BC JUMPI PUSH2 0x27BC PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x27D1 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2816 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2878 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x28D6 PUSH32 0x0 CALLVALUE DUP11 DUP11 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3536 SWAP3 POP POP POP JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP4 PUSH1 0x1 DUP6 MLOAD PUSH2 0x28E9 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x28F9 JUMPI PUSH2 0x28F9 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x2929 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP5 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x2933 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2941 DUP3 DUP5 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP12 DUP2 LT ISZERO PUSH2 0x2993 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A02 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2A8E PUSH32 0x0 PUSH32 0x0 DUP16 DUP16 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLVALUE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AF2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B16 SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x2B22 JUMPI PUSH2 0x2B22 PUSH2 0x4924 JUMP JUMPDEST PUSH2 0x2B5F DUP7 DUP13 DUP13 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2BAC DUP2 DUP13 DUP13 PUSH2 0x2B70 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x2B7F JUMPI PUSH2 0x2B7F PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2B94 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP7 SLOAD DUP13 SWAP1 DUP12 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP8 PUSH2 0x3B09 JUMP JUMPDEST POP POP POP POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2BC3 PUSH2 0x414C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2C3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x2C48 DUP2 PUSH2 0x41A6 JUMP JUMPDEST POP JUMP JUMPDEST DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x2C9C DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x171C JUMPI PUSH2 0x171C PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH2 0x2CAB PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x2CBA JUMPI PUSH2 0x2CBA PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2CCF SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D3F SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DAD SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST SWAP1 POP PUSH2 0x2DEB DUP10 DUP10 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x443B SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E55 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x2E5F SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2EC5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x2EE7 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x2EF1 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x2F00 PUSH2 0x220A DUP3 DUP6 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP14 SWAP2 DUP7 SWAP2 DUP9 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F4A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F6E SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x2F78 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST LT ISZERO PUSH2 0x2FC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x302F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x1388 PUSH3 0xFFFFFF DUP3 AND GT ISZERO PUSH2 0x3086 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578636573736976652066656520637574000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x30F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420696E697469616C697A65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH3 0xFFFFFF DUP1 DUP5 AND PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP3 DIV AND SUB PUSH2 0x3155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206368616E67652072657175697265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH3 0xFFFFFF DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x48 SHL DUP2 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF PUSH2 0x2710 PUSH7 0x1000000000000 DUP1 DUP8 DIV DUP7 AND DUP10 DUP2 MUL DUP8 AND SWAP3 SWAP1 SWAP3 DIV DUP1 DUP8 AND PUSH4 0x1000000 DUP2 MUL PUSH6 0xFFFFFFFFFFFF NOT SWAP1 SWAP10 AND SWAP4 DUP3 SWAP1 SUB DUP1 DUP10 AND SWAP5 DUP6 OR SWAP10 SWAP1 SWAP10 OR SWAP5 SWAP1 SWAP5 AND SWAP5 SWAP1 SWAP5 OR DUP1 DUP10 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DIV SWAP1 SWAP5 AND SWAP1 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH32 0x268BB6F24D6BCF8E423ACB11150CDDA69E8AA10804AADA92E6E8E32AD9E724FB SWAP1 PUSH1 0x80 ADD PUSH2 0x1D09 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EQ DUP1 PUSH2 0x3244 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x3290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420696E697469616C697A65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD DUP2 ISZERO ISZERO PUSH1 0xFF SWAP1 SWAP2 AND ISZERO ISZERO SUB PUSH2 0x337C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206368616E67652072657175697265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP5 DUP6 MSTORE SWAP1 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH32 0x46751F89D74C14E8AE5FD281384537C0DA96B674099C7E7AAD93AA38F39E9ACC SWAP2 ADD PUSH2 0x81D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x347C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5055545F414D4F554E5400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x348C JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x34E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x51554944495459 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34F6 DUP6 PUSH2 0x3E5 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3504 DUP5 DUP4 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3515 DUP8 PUSH2 0x3E8 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x351F SWAP2 SWAP1 PUSH2 0x4DEB JUMP JUMPDEST SWAP1 POP PUSH2 0x352B DUP2 DUP4 PUSH2 0x4DC9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x358A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35A4 JUMPI PUSH2 0x35A4 PUSH2 0x4AA8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x35CD JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35E4 JUMPI PUSH2 0x35E4 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3694 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3642 DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3618 JUMPI PUSH2 0x3618 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3635 JUMPI PUSH2 0x3635 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x473E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x366A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x365B JUMPI PUSH2 0x365B PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3405 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x367F JUMPI PUSH2 0x367F PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x35F3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x36AB DUP6 DUP6 PUSH2 0x4816 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP5 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP4 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE SWAP2 SWAP4 POP SWAP2 POP DUP7 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x376B SWAP3 SWAP2 SWAP1 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 DUP4 ADD MSTORE PUSH1 0x15 DUP3 ADD MSTORE PUSH32 0x40231F6B438BCE0797C9ADA29B718A87EA0A5CEA3FE9A771ABDD76BD41A3E545 PUSH1 0x35 DUP3 ADD MSTORE PUSH1 0x55 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x381F SWAP2 SWAP1 PUSH2 0x4E83 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x385C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x388B JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x388B JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x388B SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x38FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F46524F4D5F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x494C454400000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP3 MLOAD PUSH2 0x3915 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x3B04 JUMPI PUSH1 0x0 DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3931 JUMPI PUSH2 0x3931 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP5 PUSH1 0x1 PUSH2 0x3947 SWAP2 SWAP1 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3957 JUMPI PUSH2 0x3957 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x396F DUP4 DUP4 PUSH2 0x4816 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x3980 DUP7 PUSH1 0x1 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3990 JUMPI PUSH2 0x3990 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x39BE JUMPI DUP3 PUSH1 0x0 PUSH2 0x39C2 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP10 MLOAD PUSH2 0x39D6 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP9 LT PUSH2 0x39E2 JUMPI ADDRESS PUSH2 0x3A30 JUMP JUMPDEST PUSH2 0x3A30 PUSH32 0x0 DUP8 DUP12 PUSH2 0x3A13 DUP13 PUSH1 0x2 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3A23 JUMPI PUSH2 0x3A23 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x369C JUMP JUMPDEST SWAP1 POP PUSH2 0x3A5D PUSH32 0x0 DUP9 DUP9 PUSH2 0x369C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3A9A JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3ABA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4E9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3AD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3AE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP DUP1 PUSH2 0x3AFD SWAP1 PUSH2 0x4E20 JUMP JUMPDEST SWAP1 POP PUSH2 0x3907 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2710 PUSH2 0x3B18 DUP5 DUP5 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x3B22 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B30 DUP3 DUP5 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0x3B86 JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x20E2995330EFF898ABA363DAFA356EF1DAADCE6099C9CC7CA8D54EEFE4592B4C DUP5 PUSH1 0x40 MLOAD PUSH2 0x3B7D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST DUP1 ISZERO PUSH2 0x3BE5 JUMPI PUSH2 0x3B97 DUP8 DUP7 DUP4 PUSH2 0x4003 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x773AF6B6713C6B692509715062C62888D71211FFDD7012CF0835ABFDC18992FA DUP4 PUSH1 0x40 MLOAD PUSH2 0x3BDC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST PUSH2 0x3BF0 DUP8 DUP8 DUP11 PUSH2 0x4003 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3C4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C68 JUMPI PUSH2 0x3C68 PUSH2 0x4AA8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3C91 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x3CAB JUMPI PUSH2 0x3CAB PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x3694 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3CF9 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3CDF JUMPI PUSH2 0x3CDF PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x3635 JUMPI PUSH2 0x3635 PUSH2 0x4D94 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3D21 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3D12 JUMPI PUSH2 0x3D12 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x420E JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3D36 JUMPI PUSH2 0x3D36 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x3CBD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2710 PUSH2 0x3D5B DUP5 DUP5 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x3D65 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3D73 DUP3 DUP5 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0x3DE9 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x20E2995330EFF898ABA363DAFA356EF1DAADCE6099C9CC7CA8D54EEFE4592B4C DUP5 PUSH1 0x40 MLOAD PUSH2 0x3DE0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST DUP1 ISZERO PUSH2 0x3E88 JUMPI PUSH2 0x3E1A PUSH32 0x0 DUP7 DUP4 PUSH2 0x4003 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x773AF6B6713C6B692509715062C62888D71211FFDD7012CF0835ABFDC18992FA DUP4 PUSH1 0x40 MLOAD PUSH2 0x3E7F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2E1A7D4D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2E1A7D4D SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F17 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1424 DUP7 DUP9 JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x3F4B SWAP2 SWAP1 PUSH2 0x4E83 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3F88 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3F8D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3B04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415641585F5452414E534645525F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x494C454400000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x408D SWAP2 SWAP1 PUSH2 0x4E83 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x40CA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x40CF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x40F9 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x40F9 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x40F9 SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x4145 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x143F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x4285 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4F55 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x545055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x4295 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x42F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x51554944495459 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42FD DUP6 DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x4309 SWAP1 PUSH2 0x3E8 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4317 DUP7 DUP6 PUSH2 0x4D7D JUMP JUMPDEST PUSH2 0x4323 SWAP1 PUSH2 0x3E5 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH2 0x432F DUP2 DUP4 PUSH2 0x4DC9 JUMP JUMPDEST PUSH2 0x433A SWAP1 PUSH1 0x1 PUSH2 0x4DEB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x43BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F414D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x4F554E5400000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x43CA JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x4426 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x51554944495459 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST DUP3 PUSH2 0x4431 DUP4 DUP7 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x837 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP3 MLOAD PUSH2 0x444C SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x473A JUMPI PUSH1 0x0 DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x4468 JUMPI PUSH2 0x4468 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP5 PUSH1 0x1 PUSH2 0x447E SWAP2 SWAP1 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x448E JUMPI PUSH2 0x448E PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x44A6 DUP4 DUP4 PUSH2 0x4816 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x44D6 PUSH32 0x0 DUP6 DUP6 PUSH2 0x369C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x451C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4540 SWAP2 SWAP1 PUSH2 0x4F0E JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH1 0x0 DUP1 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4588 JUMPI DUP3 DUP5 PUSH2 0x458B JUMP JUMPDEST DUP4 DUP4 JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP4 SWAP2 DUP13 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x45D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x45FD SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x4607 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST SWAP6 POP PUSH2 0x4614 DUP7 DUP4 DUP4 PUSH2 0x3405 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x463E JUMPI DUP3 PUSH1 0x0 PUSH2 0x4642 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP12 MLOAD PUSH2 0x4656 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP11 LT PUSH2 0x4662 JUMPI ADDRESS PUSH2 0x4693 JUMP JUMPDEST PUSH2 0x4693 PUSH32 0x0 DUP10 DUP14 PUSH2 0x3A13 DUP15 PUSH1 0x2 PUSH2 0x4DEB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH32 0x22C0D9F00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH4 0x22C0D9F SWAP1 PUSH2 0x46EE SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x4E9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x471C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP DUP1 PUSH2 0x4733 SWAP1 PUSH2 0x4E20 JUMP JUMPDEST SWAP1 POP PUSH2 0x443E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x474D DUP6 DUP6 PUSH2 0x4816 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x475E DUP9 DUP9 DUP9 PUSH2 0x369C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x479B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x47BF SWAP2 SWAP1 PUSH2 0x4F0E JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4804 JUMPI DUP1 DUP3 PUSH2 0x4807 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x489F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A204944454E544943414C5F4144445245 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5353455300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x48BF JUMPI DUP3 DUP5 PUSH2 0x48C2 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x491D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A205A45524F5F41444452455353000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE72 DUP3 PUSH2 0x493A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x49AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x49C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x491D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x49FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4A22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A2E DUP11 DUP3 DUP12 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x4A41 SWAP1 POP PUSH1 0x60 DUP10 ADD PUSH2 0x493A JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4A56 PUSH1 0xA0 DUP10 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4A9C JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4A80 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4AD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4B05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4B17 JUMPI PUSH2 0x4B17 PUSH2 0x4AA8 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x4B3C JUMPI PUSH2 0x4B3C PUSH2 0x4AA8 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP5 DUP3 ADD SWAP3 POP DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP10 DUP4 GT ISZERO PUSH2 0x4B5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x4B7F JUMPI PUSH2 0x4B70 DUP6 PUSH2 0x493A JUMP JUMPDEST DUP5 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH2 0x4B5F JUMP JUMPDEST DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4BA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4BD2 DUP10 DUP3 DUP11 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x4BE5 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x493A JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4BFA PUSH1 0x80 DUP9 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4C1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4C36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C42 DUP10 DUP4 DUP11 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4C5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C68 DUP9 DUP3 DUP10 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x4C7B SWAP1 POP PUSH1 0x40 DUP8 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4CA3 DUP4 PUSH2 0x493A JUMP JUMPDEST SWAP2 POP PUSH2 0x4CB1 PUSH1 0x20 DUP5 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4CE9 DUP4 PUSH2 0x493A JUMP JUMPDEST SWAP2 POP PUSH2 0x4CB1 PUSH1 0x20 DUP5 ADD PUSH2 0x4CBA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE72 DUP3 PUSH2 0x4CBA JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2C48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4D35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D3E DUP5 PUSH2 0x493A JUMP JUMPDEST SWAP3 POP PUSH2 0x4D4C PUSH1 0x20 DUP6 ADD PUSH2 0x493A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4D5C DUP2 PUSH2 0x4D12 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4D8F JUMPI PUSH2 0x4D8F PUSH2 0x4D67 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x4DC4 JUMPI PUSH2 0x4DC4 PUSH2 0x4D67 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4DE6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4DFE JUMPI PUSH2 0x4DFE PUSH2 0x4D67 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xE72 DUP2 PUSH2 0x4D12 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x4E33 JUMPI PUSH2 0x4E33 PUSH2 0x4D67 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4E6E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E56 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4E7D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4E95 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4E53 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4ED9 DUP2 PUSH1 0xA0 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4E53 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0xA0 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4F23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F2C DUP5 PUSH2 0x4EF0 JUMP JUMPDEST SWAP3 POP PUSH2 0x4F3A PUSH1 0x20 DUP6 ADD PUSH2 0x4EF0 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4D5C JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 DIV 0xEA 0xFB 0xCD DUP11 0xAA CALLDATASIZE AND 0xD9 0xB3 0xB0 0x4C DUP3 BLOCKHASH SHL 0xE0 RETURNDATASIZE GT PUSH6 0x3E42597B8903 0x5D DELEGATECALL 0xF8 NUMBER 0xE4 SLOAD PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"430:20731:20:-:0;;;826:1;800:27;;-1:-1:-1;;;;800:27:20;;;1174:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:2;719:10:8;936:18:2;:32::i;:::-;-1:-1:-1;;;;;1259:22:20;;1251:50;;;;-1:-1:-1;;;1251:50:20;;781:2:25;1251:50:20;;;763:21:25;820:2;800:18;;;793:30;-1:-1:-1;;;839:18:25;;;832:45;894:18;;1251:50:20;;;;;;;;;-1:-1:-1;;;;;1320:20:20;;1312:57;;;;-1:-1:-1;;;1312:57:20;;1125:2:25;1312:57:20;;;1107:21:25;1164:2;1144:18;;;1137:30;1203:26;1183:18;;;1176:54;1247:18;;1312:57:20;923:348:25;1312:57:20;-1:-1:-1;;;;;1388:24:20;;1380:56;;;;-1:-1:-1;;;1380:56:20;;1478:2:25;1380:56:20;;;1460:21:25;1517:2;1497:18;;;1490:30;1556:21;1536:18;;;1529:49;1595:18;;1380:56:20;1276:343:25;1380:56:20;-1:-1:-1;;;;;1447:18:20;;;;;1476:14;;;;1501:29;1519:10;1501:17;:29::i;:::-;1174:364;;;430:20731;;2433:187:2;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:2;;;-1:-1:-1;;;;;;2541:17:2;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2081:198::-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:2;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:2;;1826:2:25;2161:73:2::1;::::0;::::1;1808:21:25::0;1865:2;1845:18;;;1838:30;1904:34;1884:18;;;1877:62;-1:-1:-1;;;1955:18:25;;;1948:36;2001:19;;2161:73:2::1;1624:402:25::0;2161:73:2::1;2244:28;2263:8:::0;2244:18:::1;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:2;719:10:8;1422:23:2;1414:68;;;;-1:-1:-1;;;1414:68:2;;2233:2:25;1414:68:2;;;2215:21:25;;;2252:18;;;2245:30;2311:34;2291:18;;;2284:62;2363:18;;1414:68:2;2031:356:25;1414:68:2;1359:130::o;14:177:25:-;93:13;;-1:-1:-1;;;;;135:31:25;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;2031:356::-;430:20731:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@FACTORY_5344":{"entryPoint":null,"id":5344,"parameterSlots":0,"returnSlots":0},"@FEE_FLOOR_5362":{"entryPoint":null,"id":5362,"parameterSlots":0,"returnSlots":0},"@MAX_FEE_5359":{"entryPoint":null,"id":5359,"parameterSlots":0,"returnSlots":0},"@WAVAX_5347":{"entryPoint":null,"id":5347,"parameterSlots":0,"returnSlots":0},"@_5450":{"entryPoint":null,"id":5450,"parameterSlots":0,"returnSlots":0},"@_calculateFees_7515":{"entryPoint":null,"id":7515,"parameterSlots":2,"returnSlots":2},"@_checkOwner_443":{"entryPoint":16716,"id":443,"parameterSlots":0,"returnSlots":0},"@_distributeAVAX_5707":{"entryPoint":15692,"id":5707,"parameterSlots":5,"returnSlots":0},"@_distribute_5635":{"entryPoint":15113,"id":5635,"parameterSlots":6,"returnSlots":0},"@_msgSender_1346":{"entryPoint":null,"id":1346,"parameterSlots":0,"returnSlots":1},"@_swapSupportingFeeOnTransferTokens_6623":{"entryPoint":17467,"id":6623,"parameterSlots":1,"returnSlots":0},"@_swap_5567":{"entryPoint":14596,"id":5567,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_500":{"entryPoint":16806,"id":500,"parameterSlots":1,"returnSlots":0},"@activatePartner_7151":{"entryPoint":1677,"id":7151,"parameterSlots":1,"returnSlots":0},"@getAmountIn_7572":{"entryPoint":5185,"id":7572,"parameterSlots":3,"returnSlots":1},"@getAmountIn_8392":{"entryPoint":16910,"id":8392,"parameterSlots":3,"returnSlots":1},"@getAmountOut_7553":{"entryPoint":2090,"id":7553,"parameterSlots":3,"returnSlots":1},"@getAmountOut_8336":{"entryPoint":13317,"id":8336,"parameterSlots":3,"returnSlots":1},"@getAmountsIn_7610":{"entryPoint":3653,"id":7610,"parameterSlots":2,"returnSlots":1},"@getAmountsIn_8560":{"entryPoint":15354,"id":8560,"parameterSlots":3,"returnSlots":1},"@getAmountsOut_7591":{"entryPoint":7448,"id":7591,"parameterSlots":2,"returnSlots":1},"@getAmountsOut_8474":{"entryPoint":13622,"id":8474,"parameterSlots":3,"returnSlots":1},"@getFeeInfo_7072":{"entryPoint":null,"id":7072,"parameterSlots":1,"returnSlots":5},"@getReserves_8241":{"entryPoint":18238,"id":8241,"parameterSlots":3,"returnSlots":2},"@managers_5373":{"entryPoint":null,"id":5373,"parameterSlots":0,"returnSlots":0},"@modifyFeeCut_7391":{"entryPoint":12245,"id":7391,"parameterSlots":2,"returnSlots":0},"@modifyFeeFloor_7421":{"entryPoint":9761,"id":7421,"parameterSlots":1,"returnSlots":0},"@modifyManagement_7208":{"entryPoint":12835,"id":7208,"parameterSlots":3,"returnSlots":0},"@modifyTotalFee_7309":{"entryPoint":6674,"id":7309,"parameterSlots":2,"returnSlots":0},"@owner_429":{"entryPoint":null,"id":429,"parameterSlots":0,"returnSlots":1},"@pairFor_8191":{"entryPoint":13980,"id":8191,"parameterSlots":3,"returnSlots":1},"@quote_7534":{"entryPoint":5662,"id":7534,"parameterSlots":3,"returnSlots":1},"@quote_8279":{"entryPoint":17220,"id":8279,"parameterSlots":3,"returnSlots":1},"@renounceOwnership_457":{"entryPoint":5165,"id":457,"parameterSlots":0,"returnSlots":0},"@safeTransferAVAX_5328":{"entryPoint":16161,"id":5328,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_5303":{"entryPoint":14221,"id":5303,"parameterSlots":4,"returnSlots":0},"@safeTransfer_5257":{"entryPoint":16387,"id":5257,"parameterSlots":3,"returnSlots":0},"@sortTokens_8143":{"entryPoint":18454,"id":8143,"parameterSlots":2,"returnSlots":2},"@swapAVAXForExactTokens_6458":{"entryPoint":3705,"id":6458,"parameterSlots":6,"returnSlots":1},"@swapExactAVAXForTokensSupportingFeeOnTransferTokens_6910":{"entryPoint":7493,"id":6910,"parameterSlots":6,"returnSlots":0},"@swapExactAVAXForTokens_6072":{"entryPoint":10050,"id":6072,"parameterSlots":6,"returnSlots":1},"@swapExactTokensForAVAXSupportingFeeOnTransferTokens_7037":{"entryPoint":5675,"id":7037,"parameterSlots":7,"returnSlots":0},"@swapExactTokensForAVAX_6320":{"entryPoint":8938,"id":6320,"parameterSlots":7,"returnSlots":1},"@swapExactTokensForTokensSupportingFeeOnTransferTokens_6760":{"entryPoint":11339,"id":6760,"parameterSlots":7,"returnSlots":0},"@swapExactTokensForTokens_5831":{"entryPoint":2111,"id":5831,"parameterSlots":7,"returnSlots":1},"@swapTokensForExactAVAX_6188":{"entryPoint":2876,"id":6188,"parameterSlots":7,"returnSlots":1},"@swapTokensForExactTokens_5941":{"entryPoint":5198,"id":5941,"parameterSlots":7,"returnSlots":1},"@transferOwnership_480":{"entryPoint":11195,"id":480,"parameterSlots":1,"returnSlots":0},"@withdrawFees_7488":{"entryPoint":4739,"id":7488,"parameterSlots":5,"returnSlots":0},"abi_decode_address":{"entryPoint":18746,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_calldata":{"entryPoint":18845,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":18774,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":19591,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_bool":{"entryPoint":19744,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint24":{"entryPoint":19661,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_address":{"entryPoint":19462,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":19971,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory":{"entryPoint":20238,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint24":{"entryPoint":19703,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":20026,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptrt_addresst_uint256t_address":{"entryPoint":19343,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptr":{"entryPoint":19134,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptrt_addresst_uint256t_address":{"entryPoint":18914,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":18801,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_uint112_fromMemory":{"entryPoint":20208,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint24":{"entryPoint":19642,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20099,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9_t_address_t_bytes32_t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39__to_t_string_memory_ptr_t_address_t_bytes32_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":19044,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_14cb2f81ea375f5041579fc173eaa10d53f14ed04a92b0e20b8e2b4ae99344cc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_46d599444d071cab8dc386331b802a8cb9cf3421bcbe66d25ff74bbe97b712b5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7248361e86482b197960448818ddaedf7cd930d3f05205fe2f9b48822738acc1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bca8fcbfb75a5d97a4afbb748360d406765059ed24956ac8dc1959fbf07f7085__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f03b562bc6195ce581d99633d027d21ac2c8ab6ac386838d64290251634b1ef3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint24__to_t_uint24__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint24_t_uint24_t_uint24_t_uint24__to_t_uint24_t_uint24_t_uint24_t_uint24__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint24_t_uint24_t_uint24_t_uint24_t_bool__to_t_uint24_t_uint24_t_uint24_t_uint24_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20127,"id":null,"parameterSlots":5,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":19947,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":19913,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":19882,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":19837,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":20051,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":20000,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x01":{"entryPoint":18724,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":19815,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":19860,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":19112,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":19730,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24780:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"66:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:88:25"},"nodeType":"YulExpressionStatement","src":"56:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"163:4:25","type":"","value":"0x01"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"153:6:25"},"nodeType":"YulFunctionCall","src":"153:15:25"},"nodeType":"YulExpressionStatement","src":"153:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"184:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"187:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:25"},"nodeType":"YulFunctionCall","src":"177:15:25"},"nodeType":"YulExpressionStatement","src":"177:15:25"}]},"name":"panic_error_0x01","nodeType":"YulFunctionDefinition","src":"14:184:25"},{"body":{"nodeType":"YulBlock","src":"252:147:25","statements":[{"nodeType":"YulAssignment","src":"262:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"284:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"271:12:25"},"nodeType":"YulFunctionCall","src":"271:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"262:5:25"}]},{"body":{"nodeType":"YulBlock","src":"377:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"386:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"379:6:25"},"nodeType":"YulFunctionCall","src":"379:12:25"},"nodeType":"YulExpressionStatement","src":"379:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"313:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"324:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"331:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"320:3:25"},"nodeType":"YulFunctionCall","src":"320:54:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"310:2:25"},"nodeType":"YulFunctionCall","src":"310:65:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"303:6:25"},"nodeType":"YulFunctionCall","src":"303:73:25"},"nodeType":"YulIf","src":"300:93:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"231:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"242:5:25","type":""}],"src":"203:196:25"},{"body":{"nodeType":"YulBlock","src":"474:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"520:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"529:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"532:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"522:6:25"},"nodeType":"YulFunctionCall","src":"522:12:25"},"nodeType":"YulExpressionStatement","src":"522:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"495:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"504:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"491:3:25"},"nodeType":"YulFunctionCall","src":"491:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"516:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"487:3:25"},"nodeType":"YulFunctionCall","src":"487:32:25"},"nodeType":"YulIf","src":"484:52:25"},{"nodeType":"YulAssignment","src":"545:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"574:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"555:18:25"},"nodeType":"YulFunctionCall","src":"555:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"545:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"440:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"451:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"463:6:25","type":""}],"src":"404:186:25"},{"body":{"nodeType":"YulBlock","src":"699:212:25","statements":[{"body":{"nodeType":"YulBlock","src":"745:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"754:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"747:6:25"},"nodeType":"YulFunctionCall","src":"747:12:25"},"nodeType":"YulExpressionStatement","src":"747:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"720:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"729:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"716:3:25"},"nodeType":"YulFunctionCall","src":"716:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"741:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"712:3:25"},"nodeType":"YulFunctionCall","src":"712:32:25"},"nodeType":"YulIf","src":"709:52:25"},{"nodeType":"YulAssignment","src":"770:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"780:12:25"},"nodeType":"YulFunctionCall","src":"780:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"770:6:25"}]},{"nodeType":"YulAssignment","src":"812:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"839:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"850:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"835:3:25"},"nodeType":"YulFunctionCall","src":"835:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"822:12:25"},"nodeType":"YulFunctionCall","src":"822:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"812:6:25"}]},{"nodeType":"YulAssignment","src":"863:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"890:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"901:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"886:3:25"},"nodeType":"YulFunctionCall","src":"886:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"873:12:25"},"nodeType":"YulFunctionCall","src":"873:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"863:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"649:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"660:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"672:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"680:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"688:6:25","type":""}],"src":"595:316:25"},{"body":{"nodeType":"YulBlock","src":"1017:76:25","statements":[{"nodeType":"YulAssignment","src":"1027:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1039:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1050:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1035:3:25"},"nodeType":"YulFunctionCall","src":"1035:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1027:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1069:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1080:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1062:6:25"},"nodeType":"YulFunctionCall","src":"1062:25:25"},"nodeType":"YulExpressionStatement","src":"1062:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"986:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"997:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1008:4:25","type":""}],"src":"916:177:25"},{"body":{"nodeType":"YulBlock","src":"1182:283:25","statements":[{"body":{"nodeType":"YulBlock","src":"1231:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1240:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1243:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1233:6:25"},"nodeType":"YulFunctionCall","src":"1233:12:25"},"nodeType":"YulExpressionStatement","src":"1233:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1210:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1218:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1206:3:25"},"nodeType":"YulFunctionCall","src":"1206:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1225:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1202:3:25"},"nodeType":"YulFunctionCall","src":"1202:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1195:6:25"},"nodeType":"YulFunctionCall","src":"1195:35:25"},"nodeType":"YulIf","src":"1192:55:25"},{"nodeType":"YulAssignment","src":"1256:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1279:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1266:12:25"},"nodeType":"YulFunctionCall","src":"1266:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1256:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1329:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1338:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1341:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1331:6:25"},"nodeType":"YulFunctionCall","src":"1331:12:25"},"nodeType":"YulExpressionStatement","src":"1331:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1298:2:25"},"nodeType":"YulFunctionCall","src":"1298:30:25"},"nodeType":"YulIf","src":"1295:50:25"},{"nodeType":"YulAssignment","src":"1354:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1378:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1366:3:25"},"nodeType":"YulFunctionCall","src":"1366:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1354:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1443:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1452:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1455:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1445:6:25"},"nodeType":"YulFunctionCall","src":"1445:12:25"},"nodeType":"YulExpressionStatement","src":"1445:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1406:6:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1418:1:25","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"1421:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1414:3:25"},"nodeType":"YulFunctionCall","src":"1414:14:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1402:3:25"},"nodeType":"YulFunctionCall","src":"1402:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"1431:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1398:3:25"},"nodeType":"YulFunctionCall","src":"1398:38:25"},{"name":"end","nodeType":"YulIdentifier","src":"1438:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1395:2:25"},"nodeType":"YulFunctionCall","src":"1395:47:25"},"nodeType":"YulIf","src":"1392:67:25"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1145:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1153:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1161:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1171:6:25","type":""}],"src":"1098:367:25"},{"body":{"nodeType":"YulBlock","src":"1660:602:25","statements":[{"body":{"nodeType":"YulBlock","src":"1707:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1719:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1709:6:25"},"nodeType":"YulFunctionCall","src":"1709:12:25"},"nodeType":"YulExpressionStatement","src":"1709:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1681:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1690:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1677:3:25"},"nodeType":"YulFunctionCall","src":"1677:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1702:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1673:3:25"},"nodeType":"YulFunctionCall","src":"1673:33:25"},"nodeType":"YulIf","src":"1670:53:25"},{"nodeType":"YulAssignment","src":"1732:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1755:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1742:12:25"},"nodeType":"YulFunctionCall","src":"1742:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1732:6:25"}]},{"nodeType":"YulAssignment","src":"1774:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1801:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1812:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1797:3:25"},"nodeType":"YulFunctionCall","src":"1797:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1784:12:25"},"nodeType":"YulFunctionCall","src":"1784:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1774:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1825:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1852:3:25"},"nodeType":"YulFunctionCall","src":"1852:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1839:12:25"},"nodeType":"YulFunctionCall","src":"1839:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1829:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1914:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1923:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1926:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1916:6:25"},"nodeType":"YulFunctionCall","src":"1916:12:25"},"nodeType":"YulExpressionStatement","src":"1916:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1886:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1894:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1883:2:25"},"nodeType":"YulFunctionCall","src":"1883:30:25"},"nodeType":"YulIf","src":"1880:50:25"},{"nodeType":"YulVariableDeclaration","src":"1939:96:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2007:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"2018:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2003:3:25"},"nodeType":"YulFunctionCall","src":"2003:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2027:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"1965:37:25"},"nodeType":"YulFunctionCall","src":"1965:70:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"1943:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"1953:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2044:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2054:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2044:6:25"}]},{"nodeType":"YulAssignment","src":"2071:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2081:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2071:6:25"}]},{"nodeType":"YulAssignment","src":"2098:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2142:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2127:3:25"},"nodeType":"YulFunctionCall","src":"2127:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2108:18:25"},"nodeType":"YulFunctionCall","src":"2108:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2098:6:25"}]},{"nodeType":"YulAssignment","src":"2155:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2182:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2193:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2178:3:25"},"nodeType":"YulFunctionCall","src":"2178:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2165:12:25"},"nodeType":"YulFunctionCall","src":"2165:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2155:6:25"}]},{"nodeType":"YulAssignment","src":"2207:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2240:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2251:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2236:3:25"},"nodeType":"YulFunctionCall","src":"2236:19:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2217:18:25"},"nodeType":"YulFunctionCall","src":"2217:39:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2207:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptrt_addresst_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1578:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1589:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1601:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1617:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1625:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1633:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1641:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1649:6:25","type":""}],"src":"1470:792:25"},{"body":{"nodeType":"YulBlock","src":"2418:481:25","statements":[{"nodeType":"YulVariableDeclaration","src":"2428:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2438:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2432:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2449:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2467:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2478:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2463:3:25"},"nodeType":"YulFunctionCall","src":"2463:18:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"2453:6:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2497:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2508:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2490:6:25"},"nodeType":"YulFunctionCall","src":"2490:21:25"},"nodeType":"YulExpressionStatement","src":"2490:21:25"},{"nodeType":"YulVariableDeclaration","src":"2520:17:25","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"2531:6:25"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"2524:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2546:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2566:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2560:5:25"},"nodeType":"YulFunctionCall","src":"2560:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2550:6:25","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"2589:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"2597:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2582:6:25"},"nodeType":"YulFunctionCall","src":"2582:22:25"},"nodeType":"YulExpressionStatement","src":"2582:22:25"},{"nodeType":"YulAssignment","src":"2613:25:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2624:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2635:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:18:25"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2613:3:25"}]},{"nodeType":"YulVariableDeclaration","src":"2647:29:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2665:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2673:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2661:3:25"},"nodeType":"YulFunctionCall","src":"2661:15:25"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"2651:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2685:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2694:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2689:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2753:120:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2774:3:25"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2785:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2779:5:25"},"nodeType":"YulFunctionCall","src":"2779:13:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2767:6:25"},"nodeType":"YulFunctionCall","src":"2767:26:25"},"nodeType":"YulExpressionStatement","src":"2767:26:25"},{"nodeType":"YulAssignment","src":"2806:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2817:3:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2822:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2813:3:25"},"nodeType":"YulFunctionCall","src":"2813:12:25"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2806:3:25"}]},{"nodeType":"YulAssignment","src":"2838:25:25","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2852:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2860:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2848:3:25"},"nodeType":"YulFunctionCall","src":"2848:15:25"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2838:6:25"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2715:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"2718:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2712:2:25"},"nodeType":"YulFunctionCall","src":"2712:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2726:18:25","statements":[{"nodeType":"YulAssignment","src":"2728:14:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2737:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"2740:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2733:3:25"},"nodeType":"YulFunctionCall","src":"2733:9:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2728:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"2708:3:25","statements":[]},"src":"2704:169:25"},{"nodeType":"YulAssignment","src":"2882:11:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"2890:3:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2882:4:25"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2387:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2398:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2409:4:25","type":""}],"src":"2267:632:25"},{"body":{"nodeType":"YulBlock","src":"3003:91:25","statements":[{"nodeType":"YulAssignment","src":"3013:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3025:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3036:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3013:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3055:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3070:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3078:8:25","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3066:3:25"},"nodeType":"YulFunctionCall","src":"3066:21:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3048:6:25"},"nodeType":"YulFunctionCall","src":"3048:40:25"},"nodeType":"YulExpressionStatement","src":"3048:40:25"}]},"name":"abi_encode_tuple_t_uint24__to_t_uint24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2972:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2983:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2994:4:25","type":""}],"src":"2904:190:25"},{"body":{"nodeType":"YulBlock","src":"3131:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3148:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3151:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3141:6:25"},"nodeType":"YulFunctionCall","src":"3141:88:25"},"nodeType":"YulExpressionStatement","src":"3141:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3245:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3248:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3238:6:25"},"nodeType":"YulFunctionCall","src":"3238:15:25"},"nodeType":"YulExpressionStatement","src":"3238:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3269:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3272:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3262:6:25"},"nodeType":"YulFunctionCall","src":"3262:15:25"},"nodeType":"YulExpressionStatement","src":"3262:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3099:184:25"},{"body":{"nodeType":"YulBlock","src":"3400:1136:25","statements":[{"body":{"nodeType":"YulBlock","src":"3446:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3455:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3458:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3448:6:25"},"nodeType":"YulFunctionCall","src":"3448:12:25"},"nodeType":"YulExpressionStatement","src":"3448:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3421:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3430:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3417:3:25"},"nodeType":"YulFunctionCall","src":"3417:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3442:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3413:3:25"},"nodeType":"YulFunctionCall","src":"3413:32:25"},"nodeType":"YulIf","src":"3410:52:25"},{"nodeType":"YulAssignment","src":"3471:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3494:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3481:12:25"},"nodeType":"YulFunctionCall","src":"3481:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3471:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3513:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3523:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3517:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3534:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3565:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3576:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3561:3:25"},"nodeType":"YulFunctionCall","src":"3561:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3548:12:25"},"nodeType":"YulFunctionCall","src":"3548:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3538:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3589:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3599:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3593:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3644:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3653:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3656:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3646:6:25"},"nodeType":"YulFunctionCall","src":"3646:12:25"},"nodeType":"YulExpressionStatement","src":"3646:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3632:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"3640:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3629:2:25"},"nodeType":"YulFunctionCall","src":"3629:14:25"},"nodeType":"YulIf","src":"3626:34:25"},{"nodeType":"YulVariableDeclaration","src":"3669:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3683:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3694:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3679:3:25"},"nodeType":"YulFunctionCall","src":"3679:22:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3673:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3749:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3758:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3761:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3751:6:25"},"nodeType":"YulFunctionCall","src":"3751:12:25"},"nodeType":"YulExpressionStatement","src":"3751:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3728:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"3732:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3724:3:25"},"nodeType":"YulFunctionCall","src":"3724:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3739:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3720:3:25"},"nodeType":"YulFunctionCall","src":"3720:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3713:6:25"},"nodeType":"YulFunctionCall","src":"3713:35:25"},"nodeType":"YulIf","src":"3710:55:25"},{"nodeType":"YulVariableDeclaration","src":"3774:26:25","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3797:2:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3784:12:25"},"nodeType":"YulFunctionCall","src":"3784:16:25"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"3778:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3823:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3825:16:25"},"nodeType":"YulFunctionCall","src":"3825:18:25"},"nodeType":"YulExpressionStatement","src":"3825:18:25"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"3815:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"3819:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3812:2:25"},"nodeType":"YulFunctionCall","src":"3812:10:25"},"nodeType":"YulIf","src":"3809:36:25"},{"nodeType":"YulVariableDeclaration","src":"3854:20:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3868:1:25","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"3871:2:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3864:3:25"},"nodeType":"YulFunctionCall","src":"3864:10:25"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"3858:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3883:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3903:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3897:5:25"},"nodeType":"YulFunctionCall","src":"3897:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3887:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3915:115:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3937:6:25"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"3953:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"3957:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3949:3:25"},"nodeType":"YulFunctionCall","src":"3949:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"3962:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3945:3:25"},"nodeType":"YulFunctionCall","src":"3945:84:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3933:3:25"},"nodeType":"YulFunctionCall","src":"3933:97:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3919:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4089:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4091:16:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},"nodeType":"YulExpressionStatement","src":"4091:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4048:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4060:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4045:2:25"},"nodeType":"YulFunctionCall","src":"4045:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4068:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4080:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4065:2:25"},"nodeType":"YulFunctionCall","src":"4065:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4042:2:25"},"nodeType":"YulFunctionCall","src":"4042:46:25"},"nodeType":"YulIf","src":"4039:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4127:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4131:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4120:6:25"},"nodeType":"YulFunctionCall","src":"4120:22:25"},"nodeType":"YulExpressionStatement","src":"4120:22:25"},{"nodeType":"YulVariableDeclaration","src":"4151:17:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4162:6:25"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"4155:3:25","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4184:6:25"},{"name":"_4","nodeType":"YulIdentifier","src":"4192:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4177:6:25"},"nodeType":"YulFunctionCall","src":"4177:18:25"},"nodeType":"YulExpressionStatement","src":"4177:18:25"},{"nodeType":"YulAssignment","src":"4204:22:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4215:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4223:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4211:3:25"},"nodeType":"YulFunctionCall","src":"4211:15:25"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4204:3:25"}]},{"nodeType":"YulVariableDeclaration","src":"4235:34:25","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4257:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"4261:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4253:3:25"},"nodeType":"YulFunctionCall","src":"4253:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4266:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4249:3:25"},"nodeType":"YulFunctionCall","src":"4249:20:25"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"4239:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4301:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4310:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4313:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4303:6:25"},"nodeType":"YulFunctionCall","src":"4303:12:25"},"nodeType":"YulExpressionStatement","src":"4303:12:25"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"4284:6:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4292:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4281:2:25"},"nodeType":"YulFunctionCall","src":"4281:19:25"},"nodeType":"YulIf","src":"4278:39:25"},{"nodeType":"YulVariableDeclaration","src":"4326:22:25","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4341:2:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4345:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4337:3:25"},"nodeType":"YulFunctionCall","src":"4337:11:25"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"4330:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4413:92:25","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4434:3:25"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4458:3:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4439:18:25"},"nodeType":"YulFunctionCall","src":"4439:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4427:6:25"},"nodeType":"YulFunctionCall","src":"4427:36:25"},"nodeType":"YulExpressionStatement","src":"4427:36:25"},{"nodeType":"YulAssignment","src":"4476:19:25","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4487:3:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4492:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4483:3:25"},"nodeType":"YulFunctionCall","src":"4483:12:25"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4476:3:25"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4368:3:25"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"4373:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4365:2:25"},"nodeType":"YulFunctionCall","src":"4365:15:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4381:23:25","statements":[{"nodeType":"YulAssignment","src":"4383:19:25","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4394:3:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4399:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4390:3:25"},"nodeType":"YulFunctionCall","src":"4390:12:25"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"4383:3:25"}]}]},"pre":{"nodeType":"YulBlock","src":"4361:3:25","statements":[]},"src":"4357:148:25"},{"nodeType":"YulAssignment","src":"4514:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4524:6:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4514:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3358:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3369:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3381:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3389:6:25","type":""}],"src":"3288:1248:25"},{"body":{"nodeType":"YulBlock","src":"4642:125:25","statements":[{"nodeType":"YulAssignment","src":"4652:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4664:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4675:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4660:3:25"},"nodeType":"YulFunctionCall","src":"4660:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4652:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4694:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4709:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4717:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4705:3:25"},"nodeType":"YulFunctionCall","src":"4705:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4687:6:25"},"nodeType":"YulFunctionCall","src":"4687:74:25"},"nodeType":"YulExpressionStatement","src":"4687:74:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4611:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4622:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4633:4:25","type":""}],"src":"4541:226:25"},{"body":{"nodeType":"YulBlock","src":"4945:550:25","statements":[{"body":{"nodeType":"YulBlock","src":"4992:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5001:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5004:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4994:6:25"},"nodeType":"YulFunctionCall","src":"4994:12:25"},"nodeType":"YulExpressionStatement","src":"4994:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4966:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4975:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4962:3:25"},"nodeType":"YulFunctionCall","src":"4962:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4987:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4958:3:25"},"nodeType":"YulFunctionCall","src":"4958:33:25"},"nodeType":"YulIf","src":"4955:53:25"},{"nodeType":"YulAssignment","src":"5017:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5040:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5027:12:25"},"nodeType":"YulFunctionCall","src":"5027:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5017:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5059:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5090:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5101:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5086:3:25"},"nodeType":"YulFunctionCall","src":"5086:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5073:12:25"},"nodeType":"YulFunctionCall","src":"5073:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5063:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"5148:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5157:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5160:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5150:6:25"},"nodeType":"YulFunctionCall","src":"5150:12:25"},"nodeType":"YulExpressionStatement","src":"5150:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5120:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"5128:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5117:2:25"},"nodeType":"YulFunctionCall","src":"5117:30:25"},"nodeType":"YulIf","src":"5114:50:25"},{"nodeType":"YulVariableDeclaration","src":"5173:96:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5241:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"5252:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5237:3:25"},"nodeType":"YulFunctionCall","src":"5237:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5261:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"5199:37:25"},"nodeType":"YulFunctionCall","src":"5199:70:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"5177:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"5187:8:25","type":""}]},{"nodeType":"YulAssignment","src":"5278:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5288:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5278:6:25"}]},{"nodeType":"YulAssignment","src":"5305:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5315:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5305:6:25"}]},{"nodeType":"YulAssignment","src":"5332:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5365:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5376:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5361:3:25"},"nodeType":"YulFunctionCall","src":"5361:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5342:18:25"},"nodeType":"YulFunctionCall","src":"5342:38:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5332:6:25"}]},{"nodeType":"YulAssignment","src":"5389:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5416:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5427:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5412:3:25"},"nodeType":"YulFunctionCall","src":"5412:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5399:12:25"},"nodeType":"YulFunctionCall","src":"5399:32:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5389:6:25"}]},{"nodeType":"YulAssignment","src":"5440:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5484:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5469:3:25"},"nodeType":"YulFunctionCall","src":"5469:19:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5450:18:25"},"nodeType":"YulFunctionCall","src":"5450:39:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"5440:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptrt_addresst_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4871:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4882:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4894:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4902:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4910:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4918:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4926:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4934:6:25","type":""}],"src":"4772:723:25"},{"body":{"nodeType":"YulBlock","src":"5674:673:25","statements":[{"body":{"nodeType":"YulBlock","src":"5720:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5729:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5732:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5722:6:25"},"nodeType":"YulFunctionCall","src":"5722:12:25"},"nodeType":"YulExpressionStatement","src":"5722:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5695:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5704:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5691:3:25"},"nodeType":"YulFunctionCall","src":"5691:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5716:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5687:3:25"},"nodeType":"YulFunctionCall","src":"5687:32:25"},"nodeType":"YulIf","src":"5684:52:25"},{"nodeType":"YulVariableDeclaration","src":"5745:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5772:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5759:12:25"},"nodeType":"YulFunctionCall","src":"5759:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5749:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5791:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"5801:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5795:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"5846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5848:6:25"},"nodeType":"YulFunctionCall","src":"5848:12:25"},"nodeType":"YulExpressionStatement","src":"5848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5834:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"5842:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5831:2:25"},"nodeType":"YulFunctionCall","src":"5831:14:25"},"nodeType":"YulIf","src":"5828:34:25"},{"nodeType":"YulVariableDeclaration","src":"5871:96:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5939:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"5950:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5935:3:25"},"nodeType":"YulFunctionCall","src":"5935:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5959:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"5897:37:25"},"nodeType":"YulFunctionCall","src":"5897:70:25"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5875:8:25","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5885:8:25","type":""}]},{"nodeType":"YulAssignment","src":"5976:18:25","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5986:8:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5976:6:25"}]},{"nodeType":"YulAssignment","src":"6003:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6013:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6003:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6030:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6063:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6074:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6059:3:25"},"nodeType":"YulFunctionCall","src":"6059:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6046:12:25"},"nodeType":"YulFunctionCall","src":"6046:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6034:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6107:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6116:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6119:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6109:6:25"},"nodeType":"YulFunctionCall","src":"6109:12:25"},"nodeType":"YulExpressionStatement","src":"6109:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6093:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6103:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6090:2:25"},"nodeType":"YulFunctionCall","src":"6090:16:25"},"nodeType":"YulIf","src":"6087:36:25"},{"nodeType":"YulVariableDeclaration","src":"6132:98:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6200:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6211:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6196:3:25"},"nodeType":"YulFunctionCall","src":"6196:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6222:7:25"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6158:37:25"},"nodeType":"YulFunctionCall","src":"6158:72:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"6136:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6146:8:25","type":""}]},{"nodeType":"YulAssignment","src":"6239:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6249:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6239:6:25"}]},{"nodeType":"YulAssignment","src":"6266:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6276:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6266:6:25"}]},{"nodeType":"YulAssignment","src":"6293:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6326:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6337:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6322:3:25"},"nodeType":"YulFunctionCall","src":"6322:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6303:18:25"},"nodeType":"YulFunctionCall","src":"6303:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6293:6:25"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5647:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5655:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5663:6:25","type":""}],"src":"5500:847:25"},{"body":{"nodeType":"YulBlock","src":"6439:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"6485:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6494:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6497:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6487:6:25"},"nodeType":"YulFunctionCall","src":"6487:12:25"},"nodeType":"YulExpressionStatement","src":"6487:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6460:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6469:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6456:3:25"},"nodeType":"YulFunctionCall","src":"6456:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6481:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6452:3:25"},"nodeType":"YulFunctionCall","src":"6452:32:25"},"nodeType":"YulIf","src":"6449:52:25"},{"nodeType":"YulAssignment","src":"6510:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6539:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6520:18:25"},"nodeType":"YulFunctionCall","src":"6520:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6510:6:25"}]},{"nodeType":"YulAssignment","src":"6558:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6591:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6602:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6587:3:25"},"nodeType":"YulFunctionCall","src":"6587:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6568:18:25"},"nodeType":"YulFunctionCall","src":"6568:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6558:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6397:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6408:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6420:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6428:6:25","type":""}],"src":"6352:260:25"},{"body":{"nodeType":"YulBlock","src":"6712:92:25","statements":[{"nodeType":"YulAssignment","src":"6722:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6745:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6730:3:25"},"nodeType":"YulFunctionCall","src":"6730:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6722:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6764:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6789:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6782:6:25"},"nodeType":"YulFunctionCall","src":"6782:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6775:6:25"},"nodeType":"YulFunctionCall","src":"6775:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6757:6:25"},"nodeType":"YulFunctionCall","src":"6757:41:25"},"nodeType":"YulExpressionStatement","src":"6757:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6681:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6692:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6703:4:25","type":""}],"src":"6617:187:25"},{"body":{"nodeType":"YulBlock","src":"7008:329:25","statements":[{"nodeType":"YulAssignment","src":"7018:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7030:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7041:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7026:3:25"},"nodeType":"YulFunctionCall","src":"7026:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7018:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"7054:18:25","value":{"kind":"number","nodeType":"YulLiteral","src":"7064:8:25","type":"","value":"0xffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7058:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7088:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7103:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"7111:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7099:3:25"},"nodeType":"YulFunctionCall","src":"7099:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7081:6:25"},"nodeType":"YulFunctionCall","src":"7081:34:25"},"nodeType":"YulExpressionStatement","src":"7081:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7135:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7146:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7131:3:25"},"nodeType":"YulFunctionCall","src":"7131:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7155:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"7163:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7151:3:25"},"nodeType":"YulFunctionCall","src":"7151:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7124:6:25"},"nodeType":"YulFunctionCall","src":"7124:43:25"},"nodeType":"YulExpressionStatement","src":"7124:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7187:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7198:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7183:3:25"},"nodeType":"YulFunctionCall","src":"7183:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7207:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"7215:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7203:3:25"},"nodeType":"YulFunctionCall","src":"7203:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7176:6:25"},"nodeType":"YulFunctionCall","src":"7176:43:25"},"nodeType":"YulExpressionStatement","src":"7176:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7239:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7250:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7235:3:25"},"nodeType":"YulFunctionCall","src":"7235:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7259:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"7267:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7255:3:25"},"nodeType":"YulFunctionCall","src":"7255:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7228:6:25"},"nodeType":"YulFunctionCall","src":"7228:43:25"},"nodeType":"YulExpressionStatement","src":"7228:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7291:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7302:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7287:3:25"},"nodeType":"YulFunctionCall","src":"7287:19:25"},{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"7322:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7315:6:25"},"nodeType":"YulFunctionCall","src":"7315:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7308:6:25"},"nodeType":"YulFunctionCall","src":"7308:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7280:6:25"},"nodeType":"YulFunctionCall","src":"7280:51:25"},"nodeType":"YulExpressionStatement","src":"7280:51:25"}]},"name":"abi_encode_tuple_t_uint24_t_uint24_t_uint24_t_uint24_t_bool__to_t_uint24_t_uint24_t_uint24_t_uint24_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6945:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6956:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6964:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6972:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6980:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6988:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6999:4:25","type":""}],"src":"6809:528:25"},{"body":{"nodeType":"YulBlock","src":"7390:113:25","statements":[{"nodeType":"YulAssignment","src":"7400:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7422:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7409:12:25"},"nodeType":"YulFunctionCall","src":"7409:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"7400:5:25"}]},{"body":{"nodeType":"YulBlock","src":"7481:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7490:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7493:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7483:6:25"},"nodeType":"YulFunctionCall","src":"7483:12:25"},"nodeType":"YulExpressionStatement","src":"7483:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7451:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7462:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"7469:8:25","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7458:3:25"},"nodeType":"YulFunctionCall","src":"7458:20:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7448:2:25"},"nodeType":"YulFunctionCall","src":"7448:31:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7441:6:25"},"nodeType":"YulFunctionCall","src":"7441:39:25"},"nodeType":"YulIf","src":"7438:59:25"}]},"name":"abi_decode_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7369:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"7380:5:25","type":""}],"src":"7342:161:25"},{"body":{"nodeType":"YulBlock","src":"7594:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"7640:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7649:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7652:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7642:6:25"},"nodeType":"YulFunctionCall","src":"7642:12:25"},"nodeType":"YulExpressionStatement","src":"7642:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7615:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7624:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7611:3:25"},"nodeType":"YulFunctionCall","src":"7611:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7636:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7607:3:25"},"nodeType":"YulFunctionCall","src":"7607:32:25"},"nodeType":"YulIf","src":"7604:52:25"},{"nodeType":"YulAssignment","src":"7665:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7694:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7675:18:25"},"nodeType":"YulFunctionCall","src":"7675:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7665:6:25"}]},{"nodeType":"YulAssignment","src":"7713:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7745:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7756:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7741:3:25"},"nodeType":"YulFunctionCall","src":"7741:18:25"}],"functionName":{"name":"abi_decode_uint24","nodeType":"YulIdentifier","src":"7723:17:25"},"nodeType":"YulFunctionCall","src":"7723:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7713:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7552:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7563:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7575:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7583:6:25","type":""}],"src":"7508:258:25"},{"body":{"nodeType":"YulBlock","src":"7840:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"7886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7888:6:25"},"nodeType":"YulFunctionCall","src":"7888:12:25"},"nodeType":"YulExpressionStatement","src":"7888:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7861:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7870:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7857:3:25"},"nodeType":"YulFunctionCall","src":"7857:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7882:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7853:3:25"},"nodeType":"YulFunctionCall","src":"7853:32:25"},"nodeType":"YulIf","src":"7850:52:25"},{"nodeType":"YulAssignment","src":"7911:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7939:9:25"}],"functionName":{"name":"abi_decode_uint24","nodeType":"YulIdentifier","src":"7921:17:25"},"nodeType":"YulFunctionCall","src":"7921:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7911:6:25"}]}]},"name":"abi_decode_tuple_t_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7806:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7817:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7829:6:25","type":""}],"src":"7771:184:25"},{"body":{"nodeType":"YulBlock","src":"8002:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"8056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8058:6:25"},"nodeType":"YulFunctionCall","src":"8058:12:25"},"nodeType":"YulExpressionStatement","src":"8058:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8025:5:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8046:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8039:6:25"},"nodeType":"YulFunctionCall","src":"8039:13:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8032:6:25"},"nodeType":"YulFunctionCall","src":"8032:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8022:2:25"},"nodeType":"YulFunctionCall","src":"8022:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8015:6:25"},"nodeType":"YulFunctionCall","src":"8015:40:25"},"nodeType":"YulIf","src":"8012:60:25"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7991:5:25","type":""}],"src":"7960:118:25"},{"body":{"nodeType":"YulBlock","src":"8184:288:25","statements":[{"body":{"nodeType":"YulBlock","src":"8230:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8239:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8242:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8232:6:25"},"nodeType":"YulFunctionCall","src":"8232:12:25"},"nodeType":"YulExpressionStatement","src":"8232:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8205:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8214:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8201:3:25"},"nodeType":"YulFunctionCall","src":"8201:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8226:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8197:3:25"},"nodeType":"YulFunctionCall","src":"8197:32:25"},"nodeType":"YulIf","src":"8194:52:25"},{"nodeType":"YulAssignment","src":"8255:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8284:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8265:18:25"},"nodeType":"YulFunctionCall","src":"8265:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8255:6:25"}]},{"nodeType":"YulAssignment","src":"8303:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8336:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8347:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8332:3:25"},"nodeType":"YulFunctionCall","src":"8332:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8313:18:25"},"nodeType":"YulFunctionCall","src":"8313:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8303:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8360:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8390:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8401:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8386:3:25"},"nodeType":"YulFunctionCall","src":"8386:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8373:12:25"},"nodeType":"YulFunctionCall","src":"8373:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8364:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8436:5:25"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"8414:21:25"},"nodeType":"YulFunctionCall","src":"8414:28:25"},"nodeType":"YulExpressionStatement","src":"8414:28:25"},{"nodeType":"YulAssignment","src":"8451:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"8461:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8451:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8134:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8145:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8157:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8165:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8173:6:25","type":""}],"src":"8083:389:25"},{"body":{"nodeType":"YulBlock","src":"8651:169:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8668:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8679:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8661:6:25"},"nodeType":"YulFunctionCall","src":"8661:21:25"},"nodeType":"YulExpressionStatement","src":"8661:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8713:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8698:3:25"},"nodeType":"YulFunctionCall","src":"8698:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"8718:2:25","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8691:6:25"},"nodeType":"YulFunctionCall","src":"8691:30:25"},"nodeType":"YulExpressionStatement","src":"8691:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8741:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8752:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8737:3:25"},"nodeType":"YulFunctionCall","src":"8737:18:25"},{"hexValue":"416c726561647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"8757:21:25","type":"","value":"Already initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8730:6:25"},"nodeType":"YulFunctionCall","src":"8730:49:25"},"nodeType":"YulExpressionStatement","src":"8730:49:25"},{"nodeType":"YulAssignment","src":"8788:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8800:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8811:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8796:3:25"},"nodeType":"YulFunctionCall","src":"8796:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8788:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8628:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8642:4:25","type":""}],"src":"8477:343:25"},{"body":{"nodeType":"YulBlock","src":"9002:269:25","statements":[{"nodeType":"YulAssignment","src":"9012:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9024:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9035:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9020:3:25"},"nodeType":"YulFunctionCall","src":"9020:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9012:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"9048:18:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9058:8:25","type":"","value":"0xffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9052:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9082:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9097:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9105:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9093:3:25"},"nodeType":"YulFunctionCall","src":"9093:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9075:6:25"},"nodeType":"YulFunctionCall","src":"9075:34:25"},"nodeType":"YulExpressionStatement","src":"9075:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9125:3:25"},"nodeType":"YulFunctionCall","src":"9125:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9149:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9157:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9145:3:25"},"nodeType":"YulFunctionCall","src":"9145:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9118:6:25"},"nodeType":"YulFunctionCall","src":"9118:43:25"},"nodeType":"YulExpressionStatement","src":"9118:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9181:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9192:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9177:3:25"},"nodeType":"YulFunctionCall","src":"9177:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9201:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9197:3:25"},"nodeType":"YulFunctionCall","src":"9197:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9170:6:25"},"nodeType":"YulFunctionCall","src":"9170:43:25"},"nodeType":"YulExpressionStatement","src":"9170:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9244:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9229:3:25"},"nodeType":"YulFunctionCall","src":"9229:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9253:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9261:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9249:3:25"},"nodeType":"YulFunctionCall","src":"9249:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9222:6:25"},"nodeType":"YulFunctionCall","src":"9222:43:25"},"nodeType":"YulExpressionStatement","src":"9222:43:25"}]},"name":"abi_encode_tuple_t_uint24_t_uint24_t_uint24_t_uint24__to_t_uint24_t_uint24_t_uint24_t_uint24__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8947:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8958:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8966:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8974:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8982:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8993:4:25","type":""}],"src":"8825:446:25"},{"body":{"nodeType":"YulBlock","src":"9450:156:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9467:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9478:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9460:6:25"},"nodeType":"YulFunctionCall","src":"9460:21:25"},"nodeType":"YulExpressionStatement","src":"9460:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9501:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9512:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9497:3:25"},"nodeType":"YulFunctionCall","src":"9497:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"9517:1:25","type":"","value":"7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9490:6:25"},"nodeType":"YulFunctionCall","src":"9490:29:25"},"nodeType":"YulExpressionStatement","src":"9490:29:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9539:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9550:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9535:3:25"},"nodeType":"YulFunctionCall","src":"9535:18:25"},{"hexValue":"45585049524544","kind":"string","nodeType":"YulLiteral","src":"9555:9:25","type":"","value":"EXPIRED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9528:6:25"},"nodeType":"YulFunctionCall","src":"9528:37:25"},"nodeType":"YulExpressionStatement","src":"9528:37:25"},{"nodeType":"YulAssignment","src":"9574:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9586:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9597:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9582:3:25"},"nodeType":"YulFunctionCall","src":"9582:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9574:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9427:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9441:4:25","type":""}],"src":"9276:330:25"},{"body":{"nodeType":"YulBlock","src":"9785:165:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9802:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9813:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9795:6:25"},"nodeType":"YulFunctionCall","src":"9795:21:25"},"nodeType":"YulExpressionStatement","src":"9795:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9832:3:25"},"nodeType":"YulFunctionCall","src":"9832:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"9852:2:25","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9825:6:25"},"nodeType":"YulFunctionCall","src":"9825:30:25"},"nodeType":"YulExpressionStatement","src":"9825:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9886:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9871:3:25"},"nodeType":"YulFunctionCall","src":"9871:18:25"},{"hexValue":"496e76616c696420706172746e6572","kind":"string","nodeType":"YulLiteral","src":"9891:17:25","type":"","value":"Invalid partner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9864:6:25"},"nodeType":"YulFunctionCall","src":"9864:45:25"},"nodeType":"YulExpressionStatement","src":"9864:45:25"},{"nodeType":"YulAssignment","src":"9918:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9930:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9941:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9926:3:25"},"nodeType":"YulFunctionCall","src":"9926:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9918:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9762:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9776:4:25","type":""}],"src":"9611:339:25"},{"body":{"nodeType":"YulBlock","src":"9987:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10004:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10007:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9997:6:25"},"nodeType":"YulFunctionCall","src":"9997:88:25"},"nodeType":"YulExpressionStatement","src":"9997:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10101:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10104:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10094:6:25"},"nodeType":"YulFunctionCall","src":"10094:15:25"},"nodeType":"YulExpressionStatement","src":"10094:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10125:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10128:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10118:6:25"},"nodeType":"YulFunctionCall","src":"10118:15:25"},"nodeType":"YulExpressionStatement","src":"10118:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9955:184:25"},{"body":{"nodeType":"YulBlock","src":"10193:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"10215:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10217:16:25"},"nodeType":"YulFunctionCall","src":"10217:18:25"},"nodeType":"YulExpressionStatement","src":"10217:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10209:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"10212:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10206:2:25"},"nodeType":"YulFunctionCall","src":"10206:8:25"},"nodeType":"YulIf","src":"10203:34:25"},{"nodeType":"YulAssignment","src":"10246:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10258:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"10261:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10254:3:25"},"nodeType":"YulFunctionCall","src":"10254:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"10246:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10175:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"10178:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"10184:4:25","type":""}],"src":"10144:125:25"},{"body":{"nodeType":"YulBlock","src":"10306:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10323:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10326:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10316:6:25"},"nodeType":"YulFunctionCall","src":"10316:88:25"},"nodeType":"YulExpressionStatement","src":"10316:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10420:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10423:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10413:6:25"},"nodeType":"YulFunctionCall","src":"10413:15:25"},"nodeType":"YulExpressionStatement","src":"10413:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10444:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10447:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10437:6:25"},"nodeType":"YulFunctionCall","src":"10437:15:25"},"nodeType":"YulExpressionStatement","src":"10437:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"10274:184:25"},{"body":{"nodeType":"YulBlock","src":"10515:176:25","statements":[{"body":{"nodeType":"YulBlock","src":"10634:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10636:16:25"},"nodeType":"YulFunctionCall","src":"10636:18:25"},"nodeType":"YulExpressionStatement","src":"10636:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10546:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10539:6:25"},"nodeType":"YulFunctionCall","src":"10539:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10532:6:25"},"nodeType":"YulFunctionCall","src":"10532:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10554:1:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10561:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"10629:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"10557:3:25"},"nodeType":"YulFunctionCall","src":"10557:74:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10551:2:25"},"nodeType":"YulFunctionCall","src":"10551:81:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10528:3:25"},"nodeType":"YulFunctionCall","src":"10528:105:25"},"nodeType":"YulIf","src":"10525:131:25"},{"nodeType":"YulAssignment","src":"10665:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10680:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"10683:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10676:3:25"},"nodeType":"YulFunctionCall","src":"10676:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"10665:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10494:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"10497:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"10503:7:25","type":""}],"src":"10463:228:25"},{"body":{"nodeType":"YulBlock","src":"10728:152:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10745:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10748:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10738:6:25"},"nodeType":"YulFunctionCall","src":"10738:88:25"},"nodeType":"YulExpressionStatement","src":"10738:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10842:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10845:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10835:6:25"},"nodeType":"YulFunctionCall","src":"10835:15:25"},"nodeType":"YulExpressionStatement","src":"10835:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10866:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10869:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10859:6:25"},"nodeType":"YulFunctionCall","src":"10859:15:25"},"nodeType":"YulExpressionStatement","src":"10859:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"10696:184:25"},{"body":{"nodeType":"YulBlock","src":"10931:228:25","statements":[{"body":{"nodeType":"YulBlock","src":"10962:168:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10983:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10986:77:25","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10976:6:25"},"nodeType":"YulFunctionCall","src":"10976:88:25"},"nodeType":"YulExpressionStatement","src":"10976:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11084:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11087:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11077:6:25"},"nodeType":"YulFunctionCall","src":"11077:15:25"},"nodeType":"YulExpressionStatement","src":"11077:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11112:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11115:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11105:6:25"},"nodeType":"YulFunctionCall","src":"11105:15:25"},"nodeType":"YulExpressionStatement","src":"11105:15:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10951:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10944:6:25"},"nodeType":"YulFunctionCall","src":"10944:9:25"},"nodeType":"YulIf","src":"10941:189:25"},{"nodeType":"YulAssignment","src":"11139:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11148:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"11151:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11144:3:25"},"nodeType":"YulFunctionCall","src":"11144:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"11139:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10916:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"10919:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10925:1:25","type":""}],"src":"10885:274:25"},{"body":{"nodeType":"YulBlock","src":"11338:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11366:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11348:6:25"},"nodeType":"YulFunctionCall","src":"11348:21:25"},"nodeType":"YulExpressionStatement","src":"11348:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11389:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11400:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11385:3:25"},"nodeType":"YulFunctionCall","src":"11385:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11405:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11378:6:25"},"nodeType":"YulFunctionCall","src":"11378:30:25"},"nodeType":"YulExpressionStatement","src":"11378:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11428:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11439:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11424:3:25"},"nodeType":"YulFunctionCall","src":"11424:18:25"},{"hexValue":"494e53554646494349454e545f4f55545055545f414d4f554e54","kind":"string","nodeType":"YulLiteral","src":"11444:28:25","type":"","value":"INSUFFICIENT_OUTPUT_AMOUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11417:6:25"},"nodeType":"YulFunctionCall","src":"11417:56:25"},"nodeType":"YulExpressionStatement","src":"11417:56:25"},{"nodeType":"YulAssignment","src":"11482:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11494:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11505:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11490:3:25"},"nodeType":"YulFunctionCall","src":"11490:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11482:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11315:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11329:4:25","type":""}],"src":"11164:350:25"},{"body":{"nodeType":"YulBlock","src":"11693:162:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11710:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11721:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11703:6:25"},"nodeType":"YulFunctionCall","src":"11703:21:25"},"nodeType":"YulExpressionStatement","src":"11703:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11744:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11755:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11740:3:25"},"nodeType":"YulFunctionCall","src":"11740:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11760:2:25","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11733:6:25"},"nodeType":"YulFunctionCall","src":"11733:30:25"},"nodeType":"YulExpressionStatement","src":"11733:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11794:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11779:3:25"},"nodeType":"YulFunctionCall","src":"11779:18:25"},{"hexValue":"494e56414c49445f50415448","kind":"string","nodeType":"YulLiteral","src":"11799:14:25","type":"","value":"INVALID_PATH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11772:6:25"},"nodeType":"YulFunctionCall","src":"11772:42:25"},"nodeType":"YulExpressionStatement","src":"11772:42:25"},{"nodeType":"YulAssignment","src":"11823:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11846:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11831:3:25"},"nodeType":"YulFunctionCall","src":"11831:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11823:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11670:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11684:4:25","type":""}],"src":"11519:336:25"},{"body":{"nodeType":"YulBlock","src":"11908:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"11935:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11937:16:25"},"nodeType":"YulFunctionCall","src":"11937:18:25"},"nodeType":"YulExpressionStatement","src":"11937:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11924:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11931:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11927:3:25"},"nodeType":"YulFunctionCall","src":"11927:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11921:2:25"},"nodeType":"YulFunctionCall","src":"11921:13:25"},"nodeType":"YulIf","src":"11918:39:25"},{"nodeType":"YulAssignment","src":"11966:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11977:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"11980:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"11966:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11891:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"11894:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"11900:3:25","type":""}],"src":"11860:128:25"},{"body":{"nodeType":"YulBlock","src":"12167:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12184:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12195:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12177:6:25"},"nodeType":"YulFunctionCall","src":"12177:21:25"},"nodeType":"YulExpressionStatement","src":"12177:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12218:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12229:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12214:3:25"},"nodeType":"YulFunctionCall","src":"12214:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12234:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12207:6:25"},"nodeType":"YulFunctionCall","src":"12207:30:25"},"nodeType":"YulExpressionStatement","src":"12207:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12268:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12253:3:25"},"nodeType":"YulFunctionCall","src":"12253:18:25"},{"hexValue":"4558434553534956455f494e5055545f414d4f554e54","kind":"string","nodeType":"YulLiteral","src":"12273:24:25","type":"","value":"EXCESSIVE_INPUT_AMOUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12246:6:25"},"nodeType":"YulFunctionCall","src":"12246:52:25"},"nodeType":"YulExpressionStatement","src":"12246:52:25"},{"nodeType":"YulAssignment","src":"12307:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12319:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12330:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12315:3:25"},"nodeType":"YulFunctionCall","src":"12315:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12307:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12144:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12158:4:25","type":""}],"src":"11993:346:25"},{"body":{"nodeType":"YulBlock","src":"12473:168:25","statements":[{"nodeType":"YulAssignment","src":"12483:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12506:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12491:3:25"},"nodeType":"YulFunctionCall","src":"12491:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12483:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12525:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12540:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12548:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12536:3:25"},"nodeType":"YulFunctionCall","src":"12536:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:74:25"},"nodeType":"YulExpressionStatement","src":"12518:74:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12612:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12623:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12608:3:25"},"nodeType":"YulFunctionCall","src":"12608:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"12628:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12601:6:25"},"nodeType":"YulFunctionCall","src":"12601:34:25"},"nodeType":"YulExpressionStatement","src":"12601:34:25"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12434:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12445:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12453:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12464:4:25","type":""}],"src":"12344:297:25"},{"body":{"nodeType":"YulBlock","src":"12724:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"12770:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12779:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12782:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12772:6:25"},"nodeType":"YulFunctionCall","src":"12772:12:25"},"nodeType":"YulExpressionStatement","src":"12772:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12745:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12754:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12741:3:25"},"nodeType":"YulFunctionCall","src":"12741:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12766:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12737:3:25"},"nodeType":"YulFunctionCall","src":"12737:32:25"},"nodeType":"YulIf","src":"12734:52:25"},{"nodeType":"YulVariableDeclaration","src":"12795:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12814:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12808:5:25"},"nodeType":"YulFunctionCall","src":"12808:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12799:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12855:5:25"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"12833:21:25"},"nodeType":"YulFunctionCall","src":"12833:28:25"},"nodeType":"YulExpressionStatement","src":"12833:28:25"},{"nodeType":"YulAssignment","src":"12870:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12880:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12870:6:25"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12690:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12701:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12713:6:25","type":""}],"src":"12646:245:25"},{"body":{"nodeType":"YulBlock","src":"13070:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13087:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13098:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13080:6:25"},"nodeType":"YulFunctionCall","src":"13080:21:25"},"nodeType":"YulExpressionStatement","src":"13080:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13132:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13117:3:25"},"nodeType":"YulFunctionCall","src":"13117:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13137:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13110:6:25"},"nodeType":"YulFunctionCall","src":"13110:30:25"},"nodeType":"YulExpressionStatement","src":"13110:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13160:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13171:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13156:3:25"},"nodeType":"YulFunctionCall","src":"13156:18:25"},{"hexValue":"5065726d697373696f6e2064656e696564","kind":"string","nodeType":"YulLiteral","src":"13176:19:25","type":"","value":"Permission denied"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13149:6:25"},"nodeType":"YulFunctionCall","src":"13149:47:25"},"nodeType":"YulExpressionStatement","src":"13149:47:25"},{"nodeType":"YulAssignment","src":"13205:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13217:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13228:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13213:3:25"},"nodeType":"YulFunctionCall","src":"13213:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13205:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13047:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13061:4:25","type":""}],"src":"12896:341:25"},{"body":{"nodeType":"YulBlock","src":"13416:174:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13433:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13444:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13426:6:25"},"nodeType":"YulFunctionCall","src":"13426:21:25"},"nodeType":"YulExpressionStatement","src":"13426:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13467:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13478:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13463:3:25"},"nodeType":"YulFunctionCall","src":"13463:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13483:2:25","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13456:6:25"},"nodeType":"YulFunctionCall","src":"13456:30:25"},"nodeType":"YulExpressionStatement","src":"13456:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13506:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13502:3:25"},"nodeType":"YulFunctionCall","src":"13502:18:25"},{"hexValue":"4d69736d617463686564206172726179206c656e67746873","kind":"string","nodeType":"YulLiteral","src":"13522:26:25","type":"","value":"Mismatched array lengths"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13495:6:25"},"nodeType":"YulFunctionCall","src":"13495:54:25"},"nodeType":"YulExpressionStatement","src":"13495:54:25"},{"nodeType":"YulAssignment","src":"13558:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13570:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13581:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13566:3:25"},"nodeType":"YulFunctionCall","src":"13566:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13558:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_bca8fcbfb75a5d97a4afbb748360d406765059ed24956ac8dc1959fbf07f7085__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13393:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13407:4:25","type":""}],"src":"13242:348:25"},{"body":{"nodeType":"YulBlock","src":"13724:168:25","statements":[{"nodeType":"YulAssignment","src":"13734:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13746:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13757:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13742:3:25"},"nodeType":"YulFunctionCall","src":"13742:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13734:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13776:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"13787:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13769:6:25"},"nodeType":"YulFunctionCall","src":"13769:25:25"},"nodeType":"YulExpressionStatement","src":"13769:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13810:3:25"},"nodeType":"YulFunctionCall","src":"13810:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13834:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13842:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13830:3:25"},"nodeType":"YulFunctionCall","src":"13830:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13803:6:25"},"nodeType":"YulFunctionCall","src":"13803:83:25"},"nodeType":"YulExpressionStatement","src":"13803:83:25"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13685:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13696:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13704:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13715:4:25","type":""}],"src":"13595:297:25"},{"body":{"nodeType":"YulBlock","src":"13944:148:25","statements":[{"body":{"nodeType":"YulBlock","src":"14035:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14037:16:25"},"nodeType":"YulFunctionCall","src":"14037:18:25"},"nodeType":"YulExpressionStatement","src":"14037:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13960:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"13967:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13957:2:25"},"nodeType":"YulFunctionCall","src":"13957:77:25"},"nodeType":"YulIf","src":"13954:103:25"},{"nodeType":"YulAssignment","src":"14066:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14077:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"14084:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14073:3:25"},"nodeType":"YulFunctionCall","src":"14073:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14066:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13926:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"13936:3:25","type":""}],"src":"13897:195:25"},{"body":{"nodeType":"YulBlock","src":"14178:103:25","statements":[{"body":{"nodeType":"YulBlock","src":"14224:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14233:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14236:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14226:6:25"},"nodeType":"YulFunctionCall","src":"14226:12:25"},"nodeType":"YulExpressionStatement","src":"14226:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14199:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14208:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14195:3:25"},"nodeType":"YulFunctionCall","src":"14195:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14220:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14191:3:25"},"nodeType":"YulFunctionCall","src":"14191:32:25"},"nodeType":"YulIf","src":"14188:52:25"},{"nodeType":"YulAssignment","src":"14249:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14265:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14259:5:25"},"nodeType":"YulFunctionCall","src":"14259:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14249:6:25"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14144:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14155:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14167:6:25","type":""}],"src":"14097:184:25"},{"body":{"nodeType":"YulBlock","src":"14460:169:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14477:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14488:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14470:6:25"},"nodeType":"YulFunctionCall","src":"14470:21:25"},"nodeType":"YulExpressionStatement","src":"14470:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14511:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14522:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14507:3:25"},"nodeType":"YulFunctionCall","src":"14507:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14527:2:25","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14500:6:25"},"nodeType":"YulFunctionCall","src":"14500:30:25"},"nodeType":"YulExpressionStatement","src":"14500:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14550:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14561:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14546:3:25"},"nodeType":"YulFunctionCall","src":"14546:18:25"},{"hexValue":"45786365737369766520746f74616c20666565","kind":"string","nodeType":"YulLiteral","src":"14566:21:25","type":"","value":"Excessive total fee"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14539:6:25"},"nodeType":"YulFunctionCall","src":"14539:49:25"},"nodeType":"YulExpressionStatement","src":"14539:49:25"},{"nodeType":"YulAssignment","src":"14597:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14609:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14620:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14605:3:25"},"nodeType":"YulFunctionCall","src":"14605:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14597:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_46d599444d071cab8dc386331b802a8cb9cf3421bcbe66d25ff74bbe97b712b5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14437:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14451:4:25","type":""}],"src":"14286:343:25"},{"body":{"nodeType":"YulBlock","src":"14808:172:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14825:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14836:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14818:6:25"},"nodeType":"YulFunctionCall","src":"14818:21:25"},"nodeType":"YulExpressionStatement","src":"14818:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14859:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14870:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14855:3:25"},"nodeType":"YulFunctionCall","src":"14855:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14875:2:25","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14848:6:25"},"nodeType":"YulFunctionCall","src":"14848:30:25"},"nodeType":"YulExpressionStatement","src":"14848:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14898:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14909:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14894:3:25"},"nodeType":"YulFunctionCall","src":"14894:18:25"},{"hexValue":"496e73756666696369656e7420746f74616c20666565","kind":"string","nodeType":"YulLiteral","src":"14914:24:25","type":"","value":"Insufficient total fee"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14887:6:25"},"nodeType":"YulFunctionCall","src":"14887:52:25"},"nodeType":"YulExpressionStatement","src":"14887:52:25"},{"nodeType":"YulAssignment","src":"14948:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14960:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14971:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14956:3:25"},"nodeType":"YulFunctionCall","src":"14956:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14948:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_14cb2f81ea375f5041579fc173eaa10d53f14ed04a92b0e20b8e2b4ae99344cc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14785:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14799:4:25","type":""}],"src":"14634:346:25"},{"body":{"nodeType":"YulBlock","src":"15159:165:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15176:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15187:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15169:6:25"},"nodeType":"YulFunctionCall","src":"15169:21:25"},"nodeType":"YulExpressionStatement","src":"15169:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15210:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15221:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15206:3:25"},"nodeType":"YulFunctionCall","src":"15206:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15226:2:25","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15199:6:25"},"nodeType":"YulFunctionCall","src":"15199:30:25"},"nodeType":"YulExpressionStatement","src":"15199:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15249:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15260:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15245:3:25"},"nodeType":"YulFunctionCall","src":"15245:18:25"},{"hexValue":"4e6f7420696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"15265:17:25","type":"","value":"Not initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15238:6:25"},"nodeType":"YulFunctionCall","src":"15238:45:25"},"nodeType":"YulExpressionStatement","src":"15238:45:25"},{"nodeType":"YulAssignment","src":"15292:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15304:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15315:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15300:3:25"},"nodeType":"YulFunctionCall","src":"15300:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15292:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15136:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15150:4:25","type":""}],"src":"14985:339:25"},{"body":{"nodeType":"YulBlock","src":"15503:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15520:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15531:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15513:6:25"},"nodeType":"YulFunctionCall","src":"15513:21:25"},"nodeType":"YulExpressionStatement","src":"15513:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15554:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15565:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15550:3:25"},"nodeType":"YulFunctionCall","src":"15550:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15570:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15543:6:25"},"nodeType":"YulFunctionCall","src":"15543:30:25"},"nodeType":"YulExpressionStatement","src":"15543:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15604:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15589:3:25"},"nodeType":"YulFunctionCall","src":"15589:18:25"},{"hexValue":"4e6f206368616e6765207265717569726564","kind":"string","nodeType":"YulLiteral","src":"15609:20:25","type":"","value":"No change required"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15582:6:25"},"nodeType":"YulFunctionCall","src":"15582:48:25"},"nodeType":"YulExpressionStatement","src":"15582:48:25"},{"nodeType":"YulAssignment","src":"15639:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15662:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15647:3:25"},"nodeType":"YulFunctionCall","src":"15647:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15639:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15480:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15494:4:25","type":""}],"src":"15329:342:25"},{"body":{"nodeType":"YulBlock","src":"15850:169:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15867:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15878:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15860:6:25"},"nodeType":"YulFunctionCall","src":"15860:21:25"},"nodeType":"YulExpressionStatement","src":"15860:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15901:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15912:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15897:3:25"},"nodeType":"YulFunctionCall","src":"15897:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15917:2:25","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15890:6:25"},"nodeType":"YulFunctionCall","src":"15890:30:25"},"nodeType":"YulExpressionStatement","src":"15890:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15936:3:25"},"nodeType":"YulFunctionCall","src":"15936:18:25"},{"hexValue":"4578636573736976652066656520666c6f6f72","kind":"string","nodeType":"YulLiteral","src":"15956:21:25","type":"","value":"Excessive fee floor"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15929:6:25"},"nodeType":"YulFunctionCall","src":"15929:49:25"},"nodeType":"YulExpressionStatement","src":"15929:49:25"},{"nodeType":"YulAssignment","src":"15987:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15999:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16010:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15995:3:25"},"nodeType":"YulFunctionCall","src":"15995:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15987:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_7248361e86482b197960448818ddaedf7cd930d3f05205fe2f9b48822738acc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15827:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15841:4:25","type":""}],"src":"15676:343:25"},{"body":{"nodeType":"YulBlock","src":"16198:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16215:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16226:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16208:6:25"},"nodeType":"YulFunctionCall","src":"16208:21:25"},"nodeType":"YulExpressionStatement","src":"16208:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16249:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16260:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16245:3:25"},"nodeType":"YulFunctionCall","src":"16245:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16265:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16238:6:25"},"nodeType":"YulFunctionCall","src":"16238:30:25"},"nodeType":"YulExpressionStatement","src":"16238:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16288:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16299:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16284:3:25"},"nodeType":"YulFunctionCall","src":"16284:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"16304:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16277:6:25"},"nodeType":"YulFunctionCall","src":"16277:62:25"},"nodeType":"YulExpressionStatement","src":"16277:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16359:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16370:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16355:3:25"},"nodeType":"YulFunctionCall","src":"16355:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"16375:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16348:6:25"},"nodeType":"YulFunctionCall","src":"16348:36:25"},"nodeType":"YulExpressionStatement","src":"16348:36:25"},{"nodeType":"YulAssignment","src":"16393:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16405:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16416:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16401:3:25"},"nodeType":"YulFunctionCall","src":"16401:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16393:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16175:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16189:4:25","type":""}],"src":"16024:402:25"},{"body":{"nodeType":"YulBlock","src":"16605:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16622:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16633:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16615:6:25"},"nodeType":"YulFunctionCall","src":"16615:21:25"},"nodeType":"YulExpressionStatement","src":"16615:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16667:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16652:3:25"},"nodeType":"YulFunctionCall","src":"16652:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16672:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16645:6:25"},"nodeType":"YulFunctionCall","src":"16645:30:25"},"nodeType":"YulExpressionStatement","src":"16645:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16695:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16706:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16691:3:25"},"nodeType":"YulFunctionCall","src":"16691:18:25"},{"hexValue":"4578636573736976652066656520637574","kind":"string","nodeType":"YulLiteral","src":"16711:19:25","type":"","value":"Excessive fee cut"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16684:6:25"},"nodeType":"YulFunctionCall","src":"16684:47:25"},"nodeType":"YulExpressionStatement","src":"16684:47:25"},{"nodeType":"YulAssignment","src":"16740:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16752:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16763:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16748:3:25"},"nodeType":"YulFunctionCall","src":"16748:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16740:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f03b562bc6195ce581d99633d027d21ac2c8ab6ac386838d64290251634b1ef3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16582:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16596:4:25","type":""}],"src":"16431:341:25"},{"body":{"nodeType":"YulBlock","src":"16900:184:25","statements":[{"nodeType":"YulAssignment","src":"16910:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16922:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16933:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16918:3:25"},"nodeType":"YulFunctionCall","src":"16918:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16910:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16952:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16967:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16975:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16963:3:25"},"nodeType":"YulFunctionCall","src":"16963:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16945:6:25"},"nodeType":"YulFunctionCall","src":"16945:74:25"},"nodeType":"YulExpressionStatement","src":"16945:74:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17039:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17050:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17035:3:25"},"nodeType":"YulFunctionCall","src":"17035:18:25"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17069:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17062:6:25"},"nodeType":"YulFunctionCall","src":"17062:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17055:6:25"},"nodeType":"YulFunctionCall","src":"17055:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17028:6:25"},"nodeType":"YulFunctionCall","src":"17028:50:25"},"nodeType":"YulExpressionStatement","src":"17028:50:25"}]},"name":"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16861:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16872:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16880:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16891:4:25","type":""}],"src":"16777:307:25"},{"body":{"nodeType":"YulBlock","src":"17263:232:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17280:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17291:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17273:6:25"},"nodeType":"YulFunctionCall","src":"17273:21:25"},"nodeType":"YulExpressionStatement","src":"17273:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17314:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17325:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17310:3:25"},"nodeType":"YulFunctionCall","src":"17310:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17330:2:25","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17303:6:25"},"nodeType":"YulFunctionCall","src":"17303:30:25"},"nodeType":"YulExpressionStatement","src":"17303:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17353:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17364:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17349:3:25"},"nodeType":"YulFunctionCall","src":"17349:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e","kind":"string","nodeType":"YulLiteral","src":"17369:34:25","type":"","value":"PangolinLibrary: INSUFFICIENT_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17342:6:25"},"nodeType":"YulFunctionCall","src":"17342:62:25"},"nodeType":"YulExpressionStatement","src":"17342:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17424:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17435:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17420:3:25"},"nodeType":"YulFunctionCall","src":"17420:18:25"},{"hexValue":"5055545f414d4f554e54","kind":"string","nodeType":"YulLiteral","src":"17440:12:25","type":"","value":"PUT_AMOUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17413:6:25"},"nodeType":"YulFunctionCall","src":"17413:40:25"},"nodeType":"YulExpressionStatement","src":"17413:40:25"},{"nodeType":"YulAssignment","src":"17462:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17474:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17485:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17470:3:25"},"nodeType":"YulFunctionCall","src":"17470:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17462:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17240:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17254:4:25","type":""}],"src":"17089:406:25"},{"body":{"nodeType":"YulBlock","src":"17674:229:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17691:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17702:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17684:6:25"},"nodeType":"YulFunctionCall","src":"17684:21:25"},"nodeType":"YulExpressionStatement","src":"17684:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17725:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17736:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17721:3:25"},"nodeType":"YulFunctionCall","src":"17721:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17741:2:25","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17714:6:25"},"nodeType":"YulFunctionCall","src":"17714:30:25"},"nodeType":"YulExpressionStatement","src":"17714:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17764:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17775:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17760:3:25"},"nodeType":"YulFunctionCall","src":"17760:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c49","kind":"string","nodeType":"YulLiteral","src":"17780:34:25","type":"","value":"PangolinLibrary: INSUFFICIENT_LI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17753:6:25"},"nodeType":"YulFunctionCall","src":"17753:62:25"},"nodeType":"YulExpressionStatement","src":"17753:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17846:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17831:3:25"},"nodeType":"YulFunctionCall","src":"17831:18:25"},{"hexValue":"51554944495459","kind":"string","nodeType":"YulLiteral","src":"17851:9:25","type":"","value":"QUIDITY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17824:6:25"},"nodeType":"YulFunctionCall","src":"17824:37:25"},"nodeType":"YulExpressionStatement","src":"17824:37:25"},{"nodeType":"YulAssignment","src":"17870:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17882:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17893:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17878:3:25"},"nodeType":"YulFunctionCall","src":"17878:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17870:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17651:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17665:4:25","type":""}],"src":"17500:403:25"},{"body":{"nodeType":"YulBlock","src":"18082:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18099:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18110:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18092:6:25"},"nodeType":"YulFunctionCall","src":"18092:21:25"},"nodeType":"YulExpressionStatement","src":"18092:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18133:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18144:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18129:3:25"},"nodeType":"YulFunctionCall","src":"18129:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18149:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18122:6:25"},"nodeType":"YulFunctionCall","src":"18122:30:25"},"nodeType":"YulExpressionStatement","src":"18122:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18172:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18183:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18168:3:25"},"nodeType":"YulFunctionCall","src":"18168:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a20494e56414c49445f50415448","kind":"string","nodeType":"YulLiteral","src":"18188:31:25","type":"","value":"PangolinLibrary: INVALID_PATH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18161:6:25"},"nodeType":"YulFunctionCall","src":"18161:59:25"},"nodeType":"YulExpressionStatement","src":"18161:59:25"},{"nodeType":"YulAssignment","src":"18229:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18241:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18252:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18237:3:25"},"nodeType":"YulFunctionCall","src":"18237:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18229:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18059:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18073:4:25","type":""}],"src":"17908:353:25"},{"body":{"nodeType":"YulBlock","src":"18413:221:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18423:76:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18433:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18427:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18515:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18528:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"18532:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18524:3:25"},"nodeType":"YulFunctionCall","src":"18524:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18541:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18520:3:25"},"nodeType":"YulFunctionCall","src":"18520:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18508:6:25"},"nodeType":"YulFunctionCall","src":"18508:37:25"},"nodeType":"YulExpressionStatement","src":"18508:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18565:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"18570:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18561:3:25"},"nodeType":"YulFunctionCall","src":"18561:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18583:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"18587:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18579:3:25"},"nodeType":"YulFunctionCall","src":"18579:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18596:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18575:3:25"},"nodeType":"YulFunctionCall","src":"18575:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18554:6:25"},"nodeType":"YulFunctionCall","src":"18554:46:25"},"nodeType":"YulExpressionStatement","src":"18554:46:25"},{"nodeType":"YulAssignment","src":"18609:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18620:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"18625:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18616:3:25"},"nodeType":"YulFunctionCall","src":"18616:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18609:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18381:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18386:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18394:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18405:3:25","type":""}],"src":"18266:368:25"},{"body":{"nodeType":"YulBlock","src":"18988:375:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19005:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19010:66:25","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18998:6:25"},"nodeType":"YulFunctionCall","src":"18998:79:25"},"nodeType":"YulExpressionStatement","src":"18998:79:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19097:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19102:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19093:3:25"},"nodeType":"YulFunctionCall","src":"19093:11:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19114:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"19118:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19110:3:25"},"nodeType":"YulFunctionCall","src":"19110:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"19127:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19106:3:25"},"nodeType":"YulFunctionCall","src":"19106:88:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19086:6:25"},"nodeType":"YulFunctionCall","src":"19086:109:25"},"nodeType":"YulExpressionStatement","src":"19086:109:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19215:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19220:2:25","type":"","value":"21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19211:3:25"},"nodeType":"YulFunctionCall","src":"19211:12:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19225:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19204:6:25"},"nodeType":"YulFunctionCall","src":"19204:28:25"},"nodeType":"YulExpressionStatement","src":"19204:28:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19252:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19257:2:25","type":"","value":"53"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19248:3:25"},"nodeType":"YulFunctionCall","src":"19248:12:25"},{"kind":"number","nodeType":"YulLiteral","src":"19262:66:25","type":"","value":"0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19241:6:25"},"nodeType":"YulFunctionCall","src":"19241:88:25"},"nodeType":"YulExpressionStatement","src":"19241:88:25"},{"nodeType":"YulAssignment","src":"19338:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19349:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19354:2:25","type":"","value":"85"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19345:3:25"},"nodeType":"YulFunctionCall","src":"19345:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19338:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9_t_address_t_bytes32_t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39__to_t_string_memory_ptr_t_address_t_bytes32_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18956:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18961:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18969:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18980:3:25","type":""}],"src":"18639:724:25"},{"body":{"nodeType":"YulBlock","src":"19525:241:25","statements":[{"nodeType":"YulAssignment","src":"19535:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19547:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19558:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19543:3:25"},"nodeType":"YulFunctionCall","src":"19543:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19535:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"19570:52:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19580:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19574:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19638:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19653:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19661:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19649:3:25"},"nodeType":"YulFunctionCall","src":"19649:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19631:6:25"},"nodeType":"YulFunctionCall","src":"19631:34:25"},"nodeType":"YulExpressionStatement","src":"19631:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19685:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19696:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19681:3:25"},"nodeType":"YulFunctionCall","src":"19681:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19705:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19713:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19701:3:25"},"nodeType":"YulFunctionCall","src":"19701:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19674:6:25"},"nodeType":"YulFunctionCall","src":"19674:43:25"},"nodeType":"YulExpressionStatement","src":"19674:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19748:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19733:3:25"},"nodeType":"YulFunctionCall","src":"19733:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19753:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19726:6:25"},"nodeType":"YulFunctionCall","src":"19726:34:25"},"nodeType":"YulExpressionStatement","src":"19726:34:25"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19478:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19489:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19497:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19505:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19516:4:25","type":""}],"src":"19368:398:25"},{"body":{"nodeType":"YulBlock","src":"19824:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19834:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19843:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19838:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19903:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19928:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"19933:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19924:3:25"},"nodeType":"YulFunctionCall","src":"19924:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"19947:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"19952:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19943:3:25"},"nodeType":"YulFunctionCall","src":"19943:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19937:5:25"},"nodeType":"YulFunctionCall","src":"19937:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19917:6:25"},"nodeType":"YulFunctionCall","src":"19917:39:25"},"nodeType":"YulExpressionStatement","src":"19917:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19864:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"19867:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19861:2:25"},"nodeType":"YulFunctionCall","src":"19861:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19875:19:25","statements":[{"nodeType":"YulAssignment","src":"19877:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19886:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"19889:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19882:3:25"},"nodeType":"YulFunctionCall","src":"19882:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19877:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"19857:3:25","statements":[]},"src":"19853:113:25"},{"body":{"nodeType":"YulBlock","src":"19992:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"20005:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"20010:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20001:3:25"},"nodeType":"YulFunctionCall","src":"20001:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"20019:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19994:6:25"},"nodeType":"YulFunctionCall","src":"19994:27:25"},"nodeType":"YulExpressionStatement","src":"19994:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19981:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"19984:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19978:2:25"},"nodeType":"YulFunctionCall","src":"19978:13:25"},"nodeType":"YulIf","src":"19975:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"19802:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"19807:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"19812:6:25","type":""}],"src":"19771:258:25"},{"body":{"nodeType":"YulBlock","src":"20171:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"20181:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20201:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20195:5:25"},"nodeType":"YulFunctionCall","src":"20195:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"20185:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20243:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"20251:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20239:3:25"},"nodeType":"YulFunctionCall","src":"20239:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"20258:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"20263:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"20217:21:25"},"nodeType":"YulFunctionCall","src":"20217:53:25"},"nodeType":"YulExpressionStatement","src":"20217:53:25"},{"nodeType":"YulAssignment","src":"20279:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20290:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"20295:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20286:3:25"},"nodeType":"YulFunctionCall","src":"20286:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20279:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"20147:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20152:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20163:3:25","type":""}],"src":"20034:274:25"},{"body":{"nodeType":"YulBlock","src":"20487:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20504:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20515:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20497:6:25"},"nodeType":"YulFunctionCall","src":"20497:21:25"},"nodeType":"YulExpressionStatement","src":"20497:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20538:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20549:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20534:3:25"},"nodeType":"YulFunctionCall","src":"20534:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20554:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20527:6:25"},"nodeType":"YulFunctionCall","src":"20527:30:25"},"nodeType":"YulExpressionStatement","src":"20527:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20577:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20588:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20573:3:25"},"nodeType":"YulFunctionCall","src":"20573:18:25"},{"hexValue":"5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641","kind":"string","nodeType":"YulLiteral","src":"20593:34:25","type":"","value":"TransferHelper: TRANSFER_FROM_FA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20566:6:25"},"nodeType":"YulFunctionCall","src":"20566:62:25"},"nodeType":"YulExpressionStatement","src":"20566:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20648:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20659:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20644:3:25"},"nodeType":"YulFunctionCall","src":"20644:18:25"},{"hexValue":"494c4544","kind":"string","nodeType":"YulLiteral","src":"20664:6:25","type":"","value":"ILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20637:6:25"},"nodeType":"YulFunctionCall","src":"20637:34:25"},"nodeType":"YulExpressionStatement","src":"20637:34:25"},{"nodeType":"YulAssignment","src":"20680:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20703:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20688:3:25"},"nodeType":"YulFunctionCall","src":"20688:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20680:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20464:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20478:4:25","type":""}],"src":"20313:400:25"},{"body":{"nodeType":"YulBlock","src":"20921:503:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20938:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"20949:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20931:6:25"},"nodeType":"YulFunctionCall","src":"20931:25:25"},"nodeType":"YulExpressionStatement","src":"20931:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20976:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20987:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20972:3:25"},"nodeType":"YulFunctionCall","src":"20972:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"20992:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20965:6:25"},"nodeType":"YulFunctionCall","src":"20965:34:25"},"nodeType":"YulExpressionStatement","src":"20965:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21019:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21030:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21015:3:25"},"nodeType":"YulFunctionCall","src":"21015:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"21039:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21047:42:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21035:3:25"},"nodeType":"YulFunctionCall","src":"21035:55:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21008:6:25"},"nodeType":"YulFunctionCall","src":"21008:83:25"},"nodeType":"YulExpressionStatement","src":"21008:83:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21111:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21122:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21107:3:25"},"nodeType":"YulFunctionCall","src":"21107:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21127:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21100:6:25"},"nodeType":"YulFunctionCall","src":"21100:31:25"},"nodeType":"YulExpressionStatement","src":"21100:31:25"},{"nodeType":"YulVariableDeclaration","src":"21140:27:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"21160:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21154:5:25"},"nodeType":"YulFunctionCall","src":"21154:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"21144:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21187:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21198:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21183:3:25"},"nodeType":"YulFunctionCall","src":"21183:19:25"},{"name":"length","nodeType":"YulIdentifier","src":"21204:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21176:6:25"},"nodeType":"YulFunctionCall","src":"21176:35:25"},"nodeType":"YulExpressionStatement","src":"21176:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"21246:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21254:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21242:3:25"},"nodeType":"YulFunctionCall","src":"21242:15:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21263:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21274:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21259:3:25"},"nodeType":"YulFunctionCall","src":"21259:19:25"},{"name":"length","nodeType":"YulIdentifier","src":"21280:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"21220:21:25"},"nodeType":"YulFunctionCall","src":"21220:67:25"},"nodeType":"YulExpressionStatement","src":"21220:67:25"},{"nodeType":"YulAssignment","src":"21296:122:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21312:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"21331:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21339:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21327:3:25"},"nodeType":"YulFunctionCall","src":"21327:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"21344:66:25","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21323:3:25"},"nodeType":"YulFunctionCall","src":"21323:88:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21308:3:25"},"nodeType":"YulFunctionCall","src":"21308:104:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21304:3:25"},"nodeType":"YulFunctionCall","src":"21304:114:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21296:4:25"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20866:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20877:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20885:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20893:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20901:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20912:4:25","type":""}],"src":"20718:706:25"},{"body":{"nodeType":"YulBlock","src":"21603:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21620:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21631:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21613:6:25"},"nodeType":"YulFunctionCall","src":"21613:21:25"},"nodeType":"YulExpressionStatement","src":"21613:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21665:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21650:3:25"},"nodeType":"YulFunctionCall","src":"21650:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21670:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21643:6:25"},"nodeType":"YulFunctionCall","src":"21643:30:25"},"nodeType":"YulExpressionStatement","src":"21643:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21704:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21689:3:25"},"nodeType":"YulFunctionCall","src":"21689:18:25"},{"hexValue":"5472616e7366657248656c7065723a20415641585f5452414e534645525f4641","kind":"string","nodeType":"YulLiteral","src":"21709:34:25","type":"","value":"TransferHelper: AVAX_TRANSFER_FA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21682:6:25"},"nodeType":"YulFunctionCall","src":"21682:62:25"},"nodeType":"YulExpressionStatement","src":"21682:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21764:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21775:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21760:3:25"},"nodeType":"YulFunctionCall","src":"21760:18:25"},{"hexValue":"494c4544","kind":"string","nodeType":"YulLiteral","src":"21780:6:25","type":"","value":"ILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21753:6:25"},"nodeType":"YulFunctionCall","src":"21753:34:25"},"nodeType":"YulExpressionStatement","src":"21753:34:25"},{"nodeType":"YulAssignment","src":"21796:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21808:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21819:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21804:3:25"},"nodeType":"YulFunctionCall","src":"21804:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21796:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21580:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21594:4:25","type":""}],"src":"21429:400:25"},{"body":{"nodeType":"YulBlock","src":"22008:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22025:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22036:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22018:6:25"},"nodeType":"YulFunctionCall","src":"22018:21:25"},"nodeType":"YulExpressionStatement","src":"22018:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22059:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22070:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22055:3:25"},"nodeType":"YulFunctionCall","src":"22055:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22075:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22048:6:25"},"nodeType":"YulFunctionCall","src":"22048:30:25"},"nodeType":"YulExpressionStatement","src":"22048:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22098:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22109:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22094:3:25"},"nodeType":"YulFunctionCall","src":"22094:18:25"},{"hexValue":"5472616e7366657248656c7065723a205452414e534645525f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"22114:33:25","type":"","value":"TransferHelper: TRANSFER_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22087:6:25"},"nodeType":"YulFunctionCall","src":"22087:61:25"},"nodeType":"YulExpressionStatement","src":"22087:61:25"},{"nodeType":"YulAssignment","src":"22157:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22169:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22180:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22165:3:25"},"nodeType":"YulFunctionCall","src":"22165:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22157:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21985:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21999:4:25","type":""}],"src":"21834:355:25"},{"body":{"nodeType":"YulBlock","src":"22368:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22385:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22396:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22378:6:25"},"nodeType":"YulFunctionCall","src":"22378:21:25"},"nodeType":"YulExpressionStatement","src":"22378:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22430:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22415:3:25"},"nodeType":"YulFunctionCall","src":"22415:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22408:6:25"},"nodeType":"YulFunctionCall","src":"22408:30:25"},"nodeType":"YulExpressionStatement","src":"22408:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22458:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22469:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22454:3:25"},"nodeType":"YulFunctionCall","src":"22454:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"22474:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22447:6:25"},"nodeType":"YulFunctionCall","src":"22447:62:25"},"nodeType":"YulExpressionStatement","src":"22447:62:25"},{"nodeType":"YulAssignment","src":"22518:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22530:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22541:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22526:3:25"},"nodeType":"YulFunctionCall","src":"22526:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22518:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22345:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22359:4:25","type":""}],"src":"22194:356:25"},{"body":{"nodeType":"YulBlock","src":"22729:233:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22746:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22757:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22739:6:25"},"nodeType":"YulFunctionCall","src":"22739:21:25"},"nodeType":"YulExpressionStatement","src":"22739:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22780:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22791:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22776:3:25"},"nodeType":"YulFunctionCall","src":"22776:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22796:2:25","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22769:6:25"},"nodeType":"YulFunctionCall","src":"22769:30:25"},"nodeType":"YulExpressionStatement","src":"22769:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22819:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22830:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22815:3:25"},"nodeType":"YulFunctionCall","src":"22815:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f55","kind":"string","nodeType":"YulLiteral","src":"22835:34:25","type":"","value":"PangolinLibrary: INSUFFICIENT_OU"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22808:6:25"},"nodeType":"YulFunctionCall","src":"22808:62:25"},"nodeType":"YulExpressionStatement","src":"22808:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22890:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22901:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22886:3:25"},"nodeType":"YulFunctionCall","src":"22886:18:25"},{"hexValue":"545055545f414d4f554e54","kind":"string","nodeType":"YulLiteral","src":"22906:13:25","type":"","value":"TPUT_AMOUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22879:6:25"},"nodeType":"YulFunctionCall","src":"22879:41:25"},"nodeType":"YulExpressionStatement","src":"22879:41:25"},{"nodeType":"YulAssignment","src":"22929:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22937:3:25"},"nodeType":"YulFunctionCall","src":"22937:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22929:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22706:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22720:4:25","type":""}],"src":"22555:407:25"},{"body":{"nodeType":"YulBlock","src":"23141:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23158:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23169:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23151:6:25"},"nodeType":"YulFunctionCall","src":"23151:21:25"},"nodeType":"YulExpressionStatement","src":"23151:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23192:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23203:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23188:3:25"},"nodeType":"YulFunctionCall","src":"23188:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23208:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23181:6:25"},"nodeType":"YulFunctionCall","src":"23181:30:25"},"nodeType":"YulExpressionStatement","src":"23181:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23231:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23242:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23227:3:25"},"nodeType":"YulFunctionCall","src":"23227:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d","kind":"string","nodeType":"YulLiteral","src":"23247:34:25","type":"","value":"PangolinLibrary: INSUFFICIENT_AM"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23220:6:25"},"nodeType":"YulFunctionCall","src":"23220:62:25"},"nodeType":"YulExpressionStatement","src":"23220:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23302:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23313:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23298:3:25"},"nodeType":"YulFunctionCall","src":"23298:18:25"},{"hexValue":"4f554e54","kind":"string","nodeType":"YulLiteral","src":"23318:6:25","type":"","value":"OUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23291:6:25"},"nodeType":"YulFunctionCall","src":"23291:34:25"},"nodeType":"YulExpressionStatement","src":"23291:34:25"},{"nodeType":"YulAssignment","src":"23334:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23346:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23357:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23342:3:25"},"nodeType":"YulFunctionCall","src":"23342:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23334:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23118:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23132:4:25","type":""}],"src":"22967:400:25"},{"body":{"nodeType":"YulBlock","src":"23432:128:25","statements":[{"nodeType":"YulAssignment","src":"23442:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"23457:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23451:5:25"},"nodeType":"YulFunctionCall","src":"23451:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"23442:5:25"}]},{"body":{"nodeType":"YulBlock","src":"23538:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23547:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23550:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23540:6:25"},"nodeType":"YulFunctionCall","src":"23540:12:25"},"nodeType":"YulExpressionStatement","src":"23540:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23486:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23497:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23504:30:25","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23493:3:25"},"nodeType":"YulFunctionCall","src":"23493:42:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"23483:2:25"},"nodeType":"YulFunctionCall","src":"23483:53:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23476:6:25"},"nodeType":"YulFunctionCall","src":"23476:61:25"},"nodeType":"YulIf","src":"23473:81:25"}]},"name":"abi_decode_uint112_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"23411:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"23422:5:25","type":""}],"src":"23372:188:25"},{"body":{"nodeType":"YulBlock","src":"23679:336:25","statements":[{"body":{"nodeType":"YulBlock","src":"23725:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23734:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23737:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23727:6:25"},"nodeType":"YulFunctionCall","src":"23727:12:25"},"nodeType":"YulExpressionStatement","src":"23727:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"23700:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23709:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23696:3:25"},"nodeType":"YulFunctionCall","src":"23696:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"23721:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23692:3:25"},"nodeType":"YulFunctionCall","src":"23692:32:25"},"nodeType":"YulIf","src":"23689:52:25"},{"nodeType":"YulAssignment","src":"23750:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23790:9:25"}],"functionName":{"name":"abi_decode_uint112_fromMemory","nodeType":"YulIdentifier","src":"23760:29:25"},"nodeType":"YulFunctionCall","src":"23760:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23750:6:25"}]},{"nodeType":"YulAssignment","src":"23809:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23853:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23864:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23849:3:25"},"nodeType":"YulFunctionCall","src":"23849:18:25"}],"functionName":{"name":"abi_decode_uint112_fromMemory","nodeType":"YulIdentifier","src":"23819:29:25"},"nodeType":"YulFunctionCall","src":"23819:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"23809:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"23877:38:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23900:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23911:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23896:3:25"},"nodeType":"YulFunctionCall","src":"23896:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23890:5:25"},"nodeType":"YulFunctionCall","src":"23890:25:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"23881:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23969:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23978:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23981:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23971:6:25"},"nodeType":"YulFunctionCall","src":"23971:12:25"},"nodeType":"YulExpressionStatement","src":"23971:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23937:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23948:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23955:10:25","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23944:3:25"},"nodeType":"YulFunctionCall","src":"23944:22:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"23934:2:25"},"nodeType":"YulFunctionCall","src":"23934:33:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23927:6:25"},"nodeType":"YulFunctionCall","src":"23927:41:25"},"nodeType":"YulIf","src":"23924:61:25"},{"nodeType":"YulAssignment","src":"23994:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"24004:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"23994:6:25"}]}]},"name":"abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23629:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"23640:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"23652:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23660:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23668:6:25","type":""}],"src":"23565:450:25"},{"body":{"nodeType":"YulBlock","src":"24194:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24204:6:25"},"nodeType":"YulFunctionCall","src":"24204:21:25"},"nodeType":"YulExpressionStatement","src":"24204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24241:3:25"},"nodeType":"YulFunctionCall","src":"24241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"24261:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24234:6:25"},"nodeType":"YulFunctionCall","src":"24234:30:25"},"nodeType":"YulExpressionStatement","src":"24234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24280:3:25"},"nodeType":"YulFunctionCall","src":"24280:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a204944454e544943414c5f4144445245","kind":"string","nodeType":"YulLiteral","src":"24300:34:25","type":"","value":"PangolinLibrary: IDENTICAL_ADDRE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:62:25"},"nodeType":"YulExpressionStatement","src":"24273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24351:3:25"},"nodeType":"YulFunctionCall","src":"24351:18:25"},{"hexValue":"53534553","kind":"string","nodeType":"YulLiteral","src":"24371:6:25","type":"","value":"SSES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24344:6:25"},"nodeType":"YulFunctionCall","src":"24344:34:25"},"nodeType":"YulExpressionStatement","src":"24344:34:25"},{"nodeType":"YulAssignment","src":"24387:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24399:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24410:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24395:3:25"},"nodeType":"YulFunctionCall","src":"24395:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24387:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24185:4:25","type":""}],"src":"24020:400:25"},{"body":{"nodeType":"YulBlock","src":"24599:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24616:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24627:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24609:6:25"},"nodeType":"YulFunctionCall","src":"24609:21:25"},"nodeType":"YulExpressionStatement","src":"24609:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24650:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24661:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24646:3:25"},"nodeType":"YulFunctionCall","src":"24646:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"24666:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24639:6:25"},"nodeType":"YulFunctionCall","src":"24639:30:25"},"nodeType":"YulExpressionStatement","src":"24639:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24689:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24700:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24685:3:25"},"nodeType":"YulFunctionCall","src":"24685:18:25"},{"hexValue":"50616e676f6c696e4c6962726172793a205a45524f5f41444452455353","kind":"string","nodeType":"YulLiteral","src":"24705:31:25","type":"","value":"PangolinLibrary: ZERO_ADDRESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24678:6:25"},"nodeType":"YulFunctionCall","src":"24678:59:25"},"nodeType":"YulExpressionStatement","src":"24678:59:25"},{"nodeType":"YulAssignment","src":"24746:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24758:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24769:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24754:3:25"},"nodeType":"YulFunctionCall","src":"24754:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24746:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24576:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24590:4:25","type":""}],"src":"24425:353:25"}]},"contents":"{\n    { }\n    function panic_error_0x01()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptrt_addresst_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := abi_decode_address(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        value6 := abi_decode_address(add(headStart, 160))\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_uint24__to_t_uint24__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffff))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _4)\n        dst := add(memPtr, _1)\n        let srcEnd := add(add(_3, _5), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _1)\n        }\n        value1 := memPtr\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_calldata_ptrt_addresst_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        value3 := abi_decode_address(add(headStart, 64))\n        value4 := calldataload(add(headStart, 96))\n        value5 := abi_decode_address(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint24_t_uint24_t_uint24_t_uint24_t_bool__to_t_uint24_t_uint24_t_uint24_t_uint24_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        let _1 := 0xffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), and(value3, _1))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_decode_uint24(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint24(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_uint24(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint24(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint24(headStart)\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_encode_tuple_t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Already initialized\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint24_t_uint24_t_uint24_t_uint24__to_t_uint24_t_uint24_t_uint24_t_uint24__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        let _1 := 0xffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), and(value3, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 7)\n        mstore(add(headStart, 64), \"EXPIRED\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_79f2b35d10b0148918bdec8c58556a28414ed94c66d61e07eb5809bb99ff953a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid partner\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_bbbb4868217c0daeb6721d77d471da8aa8a80672b4258dd2de9d7ccde9bf2146__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"INSUFFICIENT_OUTPUT_AMOUNT\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_01deb4d704e0b589eec9507ef61310b85eb7f433c6be7014917079273bd28caa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"INVALID_PATH\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_1ff989705ae00849337ffb650a4f4c5df36920f3e768f284b12a852a5ff9bbdb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"EXCESSIVE_INPUT_AMOUNT\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_684d113ebe3cd5ea2d401eac7323dc310d7d533b2adc9f63ef0e0e1a848fa871__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Permission denied\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_bca8fcbfb75a5d97a4afbb748360d406765059ed24956ac8dc1959fbf07f7085__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Mismatched array lengths\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_46d599444d071cab8dc386331b802a8cb9cf3421bcbe66d25ff74bbe97b712b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Excessive total fee\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_14cb2f81ea375f5041579fc173eaa10d53f14ed04a92b0e20b8e2b4ae99344cc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Insufficient total fee\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6ae2314e839d4d9cfe442dd3a2386a5c83b76bbc48be45cca60d84c71c4359b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Not initialized\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_72e9c05bdb389138e8756521bc40130c52ea5ee08beeaadc1602eb3ac73c7de0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"No change required\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7248361e86482b197960448818ddaedf7cd930d3f05205fe2f9b48822738acc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Excessive fee floor\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f03b562bc6195ce581d99633d027d21ac2c8ab6ac386838d64290251634b1ef3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Excessive fee cut\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function abi_encode_tuple_t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"PangolinLibrary: INSUFFICIENT_IN\")\n        mstore(add(headStart, 96), \"PUT_AMOUNT\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"PangolinLibrary: INSUFFICIENT_LI\")\n        mstore(add(headStart, 96), \"QUIDITY\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"PangolinLibrary: INVALID_PATH\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        mstore(pos, and(shl(96, value0), _1))\n        mstore(add(pos, 20), and(shl(96, value1), _1))\n        end := add(pos, 40)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9_t_address_t_bytes32_t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39__to_t_string_memory_ptr_t_address_t_bytes32_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0xff00000000000000000000000000000000000000000000000000000000000000)\n        mstore(add(pos, 1), and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 21), value1)\n        mstore(add(pos, 53), 0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545)\n        end := add(pos, 85)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"TransferHelper: TRANSFER_FROM_FA\")\n        mstore(add(headStart, 96), \"ILED\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), 128)\n        let length := mload(value3)\n        mstore(add(headStart, 128), length)\n        copy_memory_to_memory(add(value3, 32), add(headStart, 160), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 160)\n    }\n    function abi_encode_tuple_t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"TransferHelper: AVAX_TRANSFER_FA\")\n        mstore(add(headStart, 96), \"ILED\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"TransferHelper: TRANSFER_FAILED\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"PangolinLibrary: INSUFFICIENT_OU\")\n        mstore(add(headStart, 96), \"TPUT_AMOUNT\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"PangolinLibrary: INSUFFICIENT_AM\")\n        mstore(add(headStart, 96), \"OUNT\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_uint112_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint112_fromMemory(headStart)\n        value1 := abi_decode_uint112_fromMemory(add(headStart, 32))\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n        value2 := value\n    }\n    function abi_encode_tuple_t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"PangolinLibrary: IDENTICAL_ADDRE\")\n        mstore(add(headStart, 96), \"SSES\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"PangolinLibrary: ZERO_ADDRESS\")\n        tail := add(headStart, 96)\n    }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5344":[{"length":32,"start":787},{"length":32,"start":2275},{"length":32,"start":2601},{"length":32,"start":3246},{"length":32,"start":3506},{"length":32,"start":3660},{"length":32,"start":4066},{"length":32,"start":4388},{"length":32,"start":5408},{"length":32,"start":5943},{"length":32,"start":7455},{"length":32,"start":7871},{"length":32,"start":9262},{"length":32,"start":9588},{"length":32,"start":10365},{"length":32,"start":10811},{"length":32,"start":14823},{"length":32,"start":14903},{"length":32,"start":17584},{"length":32,"start":18023}],"5347":[{"length":32,"start":470},{"length":32,"start":1010},{"length":32,"start":2947},{"length":32,"start":3768},{"length":32,"start":4222},{"length":32,"start":4338},{"length":32,"start":4421},{"length":32,"start":5744},{"length":32,"start":6063},{"length":32,"start":6263},{"length":32,"start":7554},{"length":32,"start":7705},{"length":32,"start":7821},{"length":32,"start":7904},{"length":32,"start":9009},{"length":32,"start":10113},{"length":32,"start":10645},{"length":32,"start":10761},{"length":32,"start":10844},{"length":32,"start":15741},{"length":32,"start":15860},{"length":32,"start":15900},{"length":32,"start":16055}]},"linkReferences":{},"object":"6080604052600436106101c65760003560e01c80638da5cb5b116100f7578063e56e780a11610095578063f2fde38b11610064578063f2fde38b1461060d578063f824f62e1461062d578063fa44620f1461064d578063febb9e4f1461066d57600080fd5b8063e56e780a146105a7578063e5e47889146105ba578063e80e6eed146105da578063eaf92ef4146105fa57600080fd5b8063bc063e1a116100d1578063bc063e1a14610532578063cdbf012e14610547578063cfde04d914610567578063d06ca61f1461058757600080fd5b80638da5cb5b146104d4578063a32166ee146104f2578063ad615dec1461051257600080fd5b80632eb9cc7411610164578063715018a61161013e578063715018a6146103cb57806373b295c2146103e05780637439459b1461041457806385f8c259146104b457600080fd5b80632eb9cc741461034d57806331f91a84146103605780633fe9bd7c1461038057600080fd5b80630ece8e24116101a05780630ece8e241461028a57806318d73e9b146102aa5780631f00ca74146102e15780632dd310001461030157600080fd5b806301e8a4751461020a578063054d50d41461022a57806305a1450d1461025d57600080fd5b3661020557336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461020357610203614924565b005b600080fd5b34801561021657600080fd5b50610203610225366004614956565b61068d565b34801561023657600080fd5b5061024a610245366004614971565b61082a565b6040519081526020015b60405180910390f35b34801561026957600080fd5b5061027d6102783660046149e2565b61083f565b6040516102549190614a64565b34801561029657600080fd5b5061027d6102a53660046149e2565b610b3c565b3480156102b657600080fd5b506000546102cd90600160a01b900462ffffff1681565b60405162ffffff9091168152602001610254565b3480156102ed57600080fd5b5061027d6102fc366004614abe565b610e45565b34801561030d57600080fd5b506103357f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610254565b61027d61035b366004614b8f565b610e79565b34801561036c57600080fd5b5061020361037b366004614c06565b611283565b34801561038c57600080fd5b506103bb61039b366004614c87565b600260209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610254565b3480156103d757600080fd5b5061020361142d565b3480156103ec57600080fd5b506103357f000000000000000000000000000000000000000000000000000000000000000081565b34801561042057600080fd5b5061047d61042f366004614956565b6001600160a01b031660009081526001602052604090205462ffffff808216926301000000830482169266010000000000008104831692600160481b82041691600160601b90910460ff1690565b6040805162ffffff96871681529486166020860152928516928401929092529092166060820152901515608082015260a001610254565b3480156104c057600080fd5b5061024a6104cf366004614971565b611441565b3480156104e057600080fd5b506000546001600160a01b0316610335565b3480156104fe57600080fd5b5061027d61050d3660046149e2565b61144e565b34801561051e57600080fd5b5061024a61052d366004614971565b61161e565b34801561053e57600080fd5b506102cd60c881565b34801561055357600080fd5b506102036105623660046149e2565b61162b565b34801561057357600080fd5b50610203610582366004614ccd565b611a12565b34801561059357600080fd5b5061027d6105a2366004614abe565b611d18565b6102036105b5366004614b8f565b611d45565b3480156105c657600080fd5b5061027d6105d53660046149e2565b6122ea565b3480156105e657600080fd5b506102036105f5366004614cf7565b612621565b61027d610608366004614b8f565b612742565b34801561061957600080fd5b50610203610628366004614956565b612bbb565b34801561063957600080fd5b506102036106483660046149e2565b612c4b565b34801561065957600080fd5b50610203610668366004614ccd565b612fd5565b34801561067957600080fd5b50610203610688366004614d20565b613223565b6001600160a01b03811660009081526001602052604090208054600160601b900460ff16156107035760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a65640000000000000000000000000060448201526064015b60405180910390fd5b600054600160a01b900462ffffff16801561077d57815461271062ffffff611388840281169190910480821663010000000265ffffffffffff19838616660100000000000002167fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000090941693909317908403909116171782555b81547fffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff81166c01001388000000000000000000178084556040805162ffffff9384168152630100000083048416602082015266010000000000009092049092169181019190915261138860608201526001600160a01b038416907f6b5fc252492dc36106011c1c3866e04a5c11af764428a2c91980de4994e4331f906080015b60405180910390a2505050565b6000610837848484613405565b949350505050565b6060824281101561087c5760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166108de5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b61093c7f00000000000000000000000000000000000000000000000000000000000000008b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061353692505050565b9250600080600085600187516109529190614d7d565b8151811061096257610962614d94565b602090810291909101015184549091506127109061098f906601000000000000900462ffffff1683614daa565b6109999190614dc9565b92506109a58382614d7d565b9150508a8110156109f85760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b610aa38a8a6000818110610a0e57610a0e614d94565b9050602002016020810190610a239190614956565b33610a9d7f00000000000000000000000000000000000000000000000000000000000000008e8e6000818110610a5b57610a5b614d94565b9050602002016020810190610a709190614956565b8f8f6001818110610a8357610a83614d94565b9050602002016020810190610a989190614956565b61369c565b8f61378d565b610ae0858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b610b2d818b8b610af1600182614d7d565b818110610b0057610b00614d94565b9050602002016020810190610b159190614956565b85548b908a90600160481b900462ffffff1687613b09565b50505050979650505050505050565b60608242811015610b795760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168787610bb0600182614d7d565b818110610bbf57610bbf614d94565b9050602002016020810190610bd49190614956565b6001600160a01b031614610c195760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff16610c7b5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b805460009061271090610c9d906601000000000000900462ffffff168d614daa565b610ca79190614dc9565b9050610d107f0000000000000000000000000000000000000000000000000000000000000000610cd7838e614deb565b8b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613bfa92505050565b9350600084600081518110610d2757610d27614d94565b602002602001015190508a811115610d815760405162461bcd60e51b815260206004820152601660248201527f4558434553534956455f494e5055545f414d4f554e540000000000000000000060448201526064016106fa565b610dea8a8a6000818110610d9757610d97614d94565b9050602002016020810190610dac9190614956565b33610de47f00000000000000000000000000000000000000000000000000000000000000008e8e6000818110610a5b57610a5b614d94565b8461378d565b610e27858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b8254610b2d908d908a908990600160481b900462ffffff1686613d4c565b6060610e727f00000000000000000000000000000000000000000000000000000000000000008484613bfa565b9392505050565b60608242811015610eb65760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031687876000818110610ef357610ef3614d94565b9050602002016020810190610f089190614956565b6001600160a01b031614610f4d5760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff16610faf5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b805460009061271090610fd1906601000000000000900462ffffff168c614daa565b610fdb9190614dc9565b905061100b7f0000000000000000000000000000000000000000000000000000000000000000610cd7838d614deb565b935060008460008151811061102257611022614d94565b602002602001015190503481111561107c5760405162461bcd60e51b815260206004820152601660248201527f4558434553534956455f494e5055545f414d4f554e540000000000000000000060448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110d757600080fd5b505af11580156110eb573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6111777f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008e8e6001818110610a8357610a83614d94565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190614e03565b61120c5761120c614924565b611249858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b61125a8b8b8b610af1600182614d7d565b8034111561127557611275336112708334614d7d565b613f21565b505050509695505050505050565b6000546001600160a01b031633146112dd5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b8382811461132d5760405162461bcd60e51b815260206004820152601860248201527f4d69736d617463686564206172726179206c656e67746873000000000000000060448201526064016106fa565b60005b818110156114245761138187878381811061134d5761134d614d94565b90506020020160208101906113629190614956565b8487878581811061137557611375614d94565b90506020020135614003565b86868281811061139357611393614d94565b90506020020160208101906113a89190614956565b6001600160a01b03167ff3a15b70ef42163a42bbb07edb60d02f31fd11d394c9326022f78e1c7e12f6858686848181106113e4576113e4614d94565b905060200201358560405161140c9291909182526001600160a01b0316602082015260400190565b60405180910390a261141d81614e20565b9050611330565b50505050505050565b61143561414c565b61143f60006141a6565b565b600061083784848461420e565b6060824281101561148b5760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166114ed5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b80546000906127109061150f906601000000000000900462ffffff168d614daa565b6115199190614dc9565b90506115497f0000000000000000000000000000000000000000000000000000000000000000610cd7838e614deb565b935060008460008151811061156057611560614d94565b602002602001015190508a8111156115ba5760405162461bcd60e51b815260206004820152601660248201527f4558434553534956455f494e5055545f414d4f554e540000000000000000000060448201526064016106fa565b6115d08a8a6000818110610d9757610d97614d94565b61160d858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b610b2d8c8b8b610af1600182614d7d565b6000610837848484614344565b81428110156116665760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868661169d600182614d7d565b8181106116ac576116ac614d94565b90506020020160208101906116c19190614956565b6001600160a01b0316146117065760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6117978686600081811061171c5761171c614d94565b90506020020160208101906117319190614956565b336117917f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061176957611769614d94565b905060200201602081019061177e9190614956565b8b8b6001818110610a8357610a83614d94565b8b61378d565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156117fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118229190614e3a565b905061186087878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061443b92505050565b6040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ea9190614e3a565b6118f49190614d7d565b6001600160a01b0384166000908152600160205260409020805491925090600160601b900460ff1661195a5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b80546000906127109061197c906601000000000000900462ffffff1685614daa565b6119869190614dc9565b905060006119948285614d7d565b90508a8110156119e65760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b8254611a049082908a908990600160481b900462ffffff1686613d4c565b505050505050505050505050565b336001600160a01b0383161480611a3357506000546001600160a01b031633145b80611a6157506001600160a01b038216600090815260026020908152604080832033845290915290205460ff165b611aad5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b60c862ffffff82161115611b035760405162461bcd60e51b815260206004820152601360248201527f45786365737369766520746f74616c206665650000000000000000000000000060448201526064016106fa565b60005462ffffff600160a01b90910481169082161015611b655760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e7420746f74616c206665650000000000000000000060448201526064016106fa565b6001600160a01b03821660009081526001602052604090208054600160601b900460ff16611bd55760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016106fa565b805462ffffff80841666010000000000009092041603611c375760405162461bcd60e51b815260206004820152601260248201527f4e6f206368616e6765207265717569726564000000000000000000000000000060448201526064016106fa565b80546000908190612710600160481b90910462ffffff90811686021604808503845462ffffff82811665ffffffffffff1990921682176301000000858316908102919091177fffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff1666010000000000008a841690810291909117808a5560408051958652602086019390935291840152600160481b900416606082015291935091506001600160a01b038616907f268bb6f24d6bcf8e423acb11150cdda69e8aa10804aada92e6e8e32ad9e724fb906080015b60405180910390a25050505050565b6060610e727f00000000000000000000000000000000000000000000000000000000000000008484613536565b8142811015611d805760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611dbd57611dbd614d94565b9050602002016020810190611dd29190614956565b6001600160a01b031614611e175760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611e7257600080fd5b505af1158015611e86573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611f127f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008a8a6001818110610a8357610a83614d94565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201523460248201526044016020604051808303816000875af1158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9a9190614e03565b611fa657611fa6614924565b60008686611fb5600182614d7d565b818110611fc457611fc4614d94565b9050602002016020810190611fd99190614956565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918316906370a0823190602401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190614e3a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b79190614e3a565b90506120f589898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061443b92505050565b6040516370a0823160e01b815230600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561213b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215f9190614e3a565b6121699190614d7d565b6001600160a01b0386166000908152600160205260409020805491925090600160601b900460ff166121cf5760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b8054600090612710906121f1906601000000000000900462ffffff1685614daa565b6121fb9190614dc9565b905061222461220a8285614d7d565b835487908c908b90600160481b900462ffffff1686613b09565b6040516370a0823160e01b81526001600160a01b038a811660048301528d9186918816906370a0823190602401602060405180830381865afa15801561226e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122929190614e3a565b61229c9190614d7d565b1015611a045760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b606082428110156123275760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016878761235e600182614d7d565b81811061236d5761236d614d94565b90506020020160208101906123829190614956565b6001600160a01b0316146123c75760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166124295760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b6124877f00000000000000000000000000000000000000000000000000000000000000008b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061353692505050565b92506000806000856001875161249d9190614d7d565b815181106124ad576124ad614d94565b60209081029190910101518454909150612710906124da906601000000000000900462ffffff1683614daa565b6124e49190614dc9565b92506124f08382614d7d565b9150508a8110156125435760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b6125c68a8a600081811061255957612559614d94565b905060200201602081019061256e9190614956565b336125a67f00000000000000000000000000000000000000000000000000000000000000008e8e6000818110610a5b57610a5b614d94565b886000815181106125b9576125b9614d94565b602002602001015161378d565b612603858b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b8254610b2d9082908a908990600160481b900462ffffff1686613d4c565b6000546001600160a01b0316331461267b5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b601e62ffffff821611156126d15760405162461bcd60e51b815260206004820152601360248201527f4578636573736976652066656520666c6f6f720000000000000000000000000060448201526064016106fa565b600080547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff16600160a01b62ffffff8416908102919091179091556040519081527f14c0e8536178612bd3938abcc5b94b0c0ca07a71800ba09c1c10e61b02209c559060200160405180910390a150565b6060824281101561277f5760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316878760008181106127bc576127bc614d94565b90506020020160208101906127d19190614956565b6001600160a01b0316146128165760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b60448201526064016106fa565b6001600160a01b03831660009081526001602052604090208054600160601b900460ff166128785760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b6128d67f0000000000000000000000000000000000000000000000000000000000000000348a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061353692505050565b9250600083600185516128e99190614d7d565b815181106128f9576128f9614d94565b6020908102919091010151825490915060009061271090612929906601000000000000900462ffffff1684614daa565b6129339190614dc9565b905060006129418284614d7d565b90508b8110156129935760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156129ee57600080fd5b505af1158015612a02573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612a8e7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008f8f6001818110610a8357610a83614d94565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201523460248201526044016020604051808303816000875af1158015612af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b169190614e03565b612b2257612b22614924565b612b5f868c8c8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061390492505050565b612bac818c8c612b70600182614d7d565b818110612b7f57612b7f614d94565b9050602002016020810190612b949190614956565b86548c908b90600160481b900462ffffff1687613b09565b50505050509695505050505050565b612bc361414c565b6001600160a01b038116612c3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106fa565b612c48816141a6565b50565b8142811015612c865760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064016106fa565b612c9c8686600081811061171c5761171c614d94565b60008686612cab600182614d7d565b818110612cba57612cba614d94565b9050602002016020810190612ccf9190614956565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918316906370a0823190602401602060405180830381865afa158015612d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3f9190614e3a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dad9190614e3a565b9050612deb89898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061443b92505050565b6040516370a0823160e01b815230600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa158015612e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e559190614e3a565b612e5f9190614d7d565b6001600160a01b0386166000908152600160205260409020805491925090600160601b900460ff16612ec55760405162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b2103830b93a3732b960891b60448201526064016106fa565b805460009061271090612ee7906601000000000000900462ffffff1685614daa565b612ef19190614dc9565b9050612f0061220a8285614d7d565b6040516370a0823160e01b81526001600160a01b038a811660048301528d9186918816906370a0823190602401602060405180830381865afa158015612f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6e9190614e3a565b612f789190614d7d565b1015612fc65760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016106fa565b50505050505050505050505050565b6000546001600160a01b0316331461302f5760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b61138862ffffff821611156130865760405162461bcd60e51b815260206004820152601160248201527f457863657373697665206665652063757400000000000000000000000000000060448201526064016106fa565b6001600160a01b03821660009081526001602052604090208054600160601b900460ff166130f65760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016106fa565b805462ffffff808416600160481b90920416036131555760405162461bcd60e51b815260206004820152601260248201527f4e6f206368616e6765207265717569726564000000000000000000000000000060448201526064016106fa565b805462ffffff838116600160481b81027fffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff612710660100000000000080870486168981028716929092048087166301000000810265ffffffffffff19909916938290038089169485179990991794909416949094178089556040805193845260208401949094520490941690840152606083019190915291906001600160a01b038616907f268bb6f24d6bcf8e423acb11150cdda69e8aa10804aada92e6e8e32ad9e724fb90608001611d09565b336001600160a01b038416148061324457506000546001600160a01b031633145b6132905760405162461bcd60e51b815260206004820152601160248201527f5065726d697373696f6e2064656e69656400000000000000000000000000000060448201526064016106fa565b6001600160a01b038316600090815260016020526040902054600160601b900460ff166132ff5760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016106fa565b6001600160a01b0380841660009081526002602090815260408083209386168352929052205481151560ff90911615150361337c5760405162461bcd60e51b815260206004820152601260248201527f4e6f206368616e6765207265717569726564000000000000000000000000000060448201526064016106fa565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915582519485529084015290917f46751f89d74c14e8ae5fd281384537c0da96b674099c7e7aad93aa38f39e9acc910161081d565b600080841161347c5760405162461bcd60e51b815260206004820152602a60248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e60448201527f5055545f414d4f554e540000000000000000000000000000000000000000000060648201526084016106fa565b60008311801561348c5750600082115b6134e85760405162461bcd60e51b815260206004820152602760248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b60648201526084016106fa565b60006134f6856103e5614daa565b905060006135048483614daa565b9050600082613515876103e8614daa565b61351f9190614deb565b905061352b8183614dc9565b979650505050505050565b606060028251101561358a5760405162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f5041544800000060448201526064016106fa565b815167ffffffffffffffff8111156135a4576135a4614aa8565b6040519080825280602002602001820160405280156135cd578160200160208202803683370190505b50905082816000815181106135e4576135e4614d94565b60200260200101818152505060005b6001835103811015613694576000806136428786858151811061361857613618614d94565b602002602001015187866001018151811061363557613635614d94565b602002602001015161473e565b9150915061366a84848151811061365b5761365b614d94565b60200260200101518383613405565b84846001018151811061367f5761367f614d94565b602090810291909101015250506001016135f3565b509392505050565b60008060006136ab8585614816565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b166034820152919350915086906048016040516020818303038152906040528051906020012060405160200161376b9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052915160009283929088169161381f9190614e83565b6000604051808303816000865af19150503d806000811461385c576040519150601f19603f3d011682016040523d82523d6000602084013e613861565b606091505b509150915081801561388b57508051158061388b57508080602001905181019061388b9190614e03565b6138fc5760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c45440000000000000000000000000000000000000000000000000000000060648201526084016106fa565b505050505050565b60005b600182516139159190614d7d565b811015613b045760008083838151811061393157613931614d94565b6020026020010151848460016139479190614deb565b8151811061395757613957614d94565b602002602001015191509150600061396f8383614816565b509050600086613980866001614deb565b8151811061399057613990614d94565b60200260200101519050600080836001600160a01b0316866001600160a01b0316146139be578260006139c2565b6000835b915091506000600289516139d69190614d7d565b88106139e25730613a30565b613a307f0000000000000000000000000000000000000000000000000000000000000000878b613a138c6002614deb565b81518110613a2357613a23614d94565b602002602001015161369c565b9050613a5d7f0000000000000000000000000000000000000000000000000000000000000000888861369c565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015613a9a576020820181803683370190505b506040518563ffffffff1660e01b8152600401613aba9493929190614e9f565b600060405180830381600087803b158015613ad457600080fd5b505af1158015613ae8573d6000803e3d6000fd5b505050505050505050505080613afd90614e20565b9050613907565b505050565b6000612710613b188484614daa565b613b229190614dc9565b90506000613b308284614d7d565b90508115613b8657866001600160a01b0316856001600160a01b03167f20e2995330eff898aba363dafa356ef1daadce6099c9cc7ca8d54eefe4592b4c84604051613b7d91815260200190565b60405180910390a35b8015613be557613b97878683614003565b866001600160a01b0316856001600160a01b03167f773af6b6713c6b692509715062c62888d71211ffdd7012cf0835abfdc18992fa83604051613bdc91815260200190565b60405180910390a35b613bf087878a614003565b5050505050505050565b6060600282511015613c4e5760405162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f5041544800000060448201526064016106fa565b815167ffffffffffffffff811115613c6857613c68614aa8565b604051908082528060200260200182016040528015613c91578160200160208202803683370190505b5090508281600183510381518110613cab57613cab614d94565b60209081029190910101528151600019015b801561369457600080613cf987866001860381518110613cdf57613cdf614d94565b602002602001015187868151811061363557613635614d94565b91509150613d21848481518110613d1257613d12614d94565b6020026020010151838361420e565b846001850381518110613d3657613d36614d94565b6020908102919091010152505060001901613cbd565b6000612710613d5b8484614daa565b613d659190614dc9565b90506000613d738284614d7d565b90508115613de9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03167f20e2995330eff898aba363dafa356ef1daadce6099c9cc7ca8d54eefe4592b4c84604051613de091815260200190565b60405180910390a35b8015613e8857613e1a7f00000000000000000000000000000000000000000000000000000000000000008683614003565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03167f773af6b6713c6b692509715062c62888d71211ffdd7012cf0835abfdc18992fa83604051613e7f91815260200190565b60405180910390a35b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015613f0357600080fd5b505af1158015613f17573d6000803e3d6000fd5b5050505061142486885b604080516000808252602082019092526001600160a01b038416908390604051613f4b9190614e83565b60006040518083038185875af1925050503d8060008114613f88576040519150601f19603f3d011682016040523d82523d6000602084013e613f8d565b606091505b5050905080613b045760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a20415641585f5452414e534645525f464160448201527f494c45440000000000000000000000000000000000000000000000000000000060648201526084016106fa565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283929087169161408d9190614e83565b6000604051808303816000865af19150503d80600081146140ca576040519150601f19603f3d011682016040523d82523d6000602084013e6140cf565b606091505b50915091508180156140f95750805115806140f95750808060200190518101906140f99190614e03565b6141455760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016106fa565b5050505050565b6000546001600160a01b0316331461143f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008084116142855760405162461bcd60e51b815260206004820152602b60248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f5560448201527f545055545f414d4f554e5400000000000000000000000000000000000000000060648201526084016106fa565b6000831180156142955750600082115b6142f15760405162461bcd60e51b815260206004820152602760248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b60648201526084016106fa565b60006142fd8585614daa565b614309906103e8614daa565b905060006143178685614d7d565b614323906103e5614daa565b905061432f8183614dc9565b61433a906001614deb565b9695505050505050565b60008084116143ba5760405162461bcd60e51b8152602060048201526024808201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d60448201527f4f554e540000000000000000000000000000000000000000000000000000000060648201526084016106fa565b6000831180156143ca5750600082115b6144265760405162461bcd60e51b815260206004820152602760248201527f50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c496044820152665155494449545960c81b60648201526084016106fa565b826144318386614daa565b6108379190614dc9565b60005b6001825161444c9190614d7d565b81101561473a5760008083838151811061446857614468614d94565b60200260200101518484600161447e9190614deb565b8151811061448e5761448e614d94565b60200260200101519150915060006144a68383614816565b50905060006144d67f0000000000000000000000000000000000000000000000000000000000000000858561369c565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561451c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145409190614f0e565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600080876001600160a01b03168a6001600160a01b03161461458857828461458b565b83835b6040516370a0823160e01b81526001600160a01b038a8116600483015292945090925083918c16906370a0823190602401602060405180830381865afa1580156145d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145fd9190614e3a565b6146079190614d7d565b9550614614868383613405565b945050505050600080856001600160a01b0316886001600160a01b03161461463e57826000614642565b6000835b91509150600060028b516146569190614d7d565b8a106146625730614693565b6146937f0000000000000000000000000000000000000000000000000000000000000000898d613a138e6002614deb565b604080516000815260208101918290527f022c0d9f000000000000000000000000000000000000000000000000000000009091529091506001600160a01b0387169063022c0d9f906146ee9086908690869060248101614e9f565b600060405180830381600087803b15801561470857600080fd5b505af115801561471c573d6000803e3d6000fd5b505050505050505050505050508061473390614e20565b905061443e565b5050565b600080600061474d8585614816565b50905060008061475e88888861369c565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561479b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147bf9190614f0e565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614614804578082614807565b81815b90999098509650505050505050565b600080826001600160a01b0316846001600160a01b03160361489f5760405162461bcd60e51b8152602060048201526024808201527f50616e676f6c696e4c6962726172793a204944454e544943414c5f414444524560448201527f535345530000000000000000000000000000000000000000000000000000000060648201526084016106fa565b826001600160a01b0316846001600160a01b0316106148bf5782846148c2565b83835b90925090506001600160a01b03821661491d5760405162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a205a45524f5f4144445245535300000060448201526064016106fa565b9250929050565b634e487b7160e01b600052600160045260246000fd5b80356001600160a01b038116811461495157600080fd5b919050565b60006020828403121561496857600080fd5b610e728261493a565b60008060006060848603121561498657600080fd5b505081359360208301359350604090920135919050565b60008083601f8401126149af57600080fd5b50813567ffffffffffffffff8111156149c757600080fd5b6020830191508360208260051b850101111561491d57600080fd5b600080600080600080600060c0888a0312156149fd57600080fd5b8735965060208801359550604088013567ffffffffffffffff811115614a2257600080fd5b614a2e8a828b0161499d565b9096509450614a4190506060890161493a565b925060808801359150614a5660a0890161493a565b905092959891949750929550565b6020808252825182820181905260009190848201906040850190845b81811015614a9c57835183529284019291840191600101614a80565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215614ad157600080fd5b8235915060208084013567ffffffffffffffff80821115614af157600080fd5b818601915086601f830112614b0557600080fd5b813581811115614b1757614b17614aa8565b8060051b604051601f19603f83011681018181108582111715614b3c57614b3c614aa8565b604052918252848201925083810185019189831115614b5a57600080fd5b938501935b82851015614b7f57614b708561493a565b84529385019392850192614b5f565b8096505050505050509250929050565b60008060008060008060a08789031215614ba857600080fd5b86359550602087013567ffffffffffffffff811115614bc657600080fd5b614bd289828a0161499d565b9096509450614be590506040880161493a565b925060608701359150614bfa6080880161493a565b90509295509295509295565b600080600080600060608688031215614c1e57600080fd5b853567ffffffffffffffff80821115614c3657600080fd5b614c4289838a0161499d565b90975095506020880135915080821115614c5b57600080fd5b50614c688882890161499d565b9094509250614c7b90506040870161493a565b90509295509295909350565b60008060408385031215614c9a57600080fd5b614ca38361493a565b9150614cb16020840161493a565b90509250929050565b803562ffffff8116811461495157600080fd5b60008060408385031215614ce057600080fd5b614ce98361493a565b9150614cb160208401614cba565b600060208284031215614d0957600080fd5b610e7282614cba565b8015158114612c4857600080fd5b600080600060608486031215614d3557600080fd5b614d3e8461493a565b9250614d4c6020850161493a565b91506040840135614d5c81614d12565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600082821015614d8f57614d8f614d67565b500390565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615614dc457614dc4614d67565b500290565b600082614de657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115614dfe57614dfe614d67565b500190565b600060208284031215614e1557600080fd5b8151610e7281614d12565b60006000198203614e3357614e33614d67565b5060010190565b600060208284031215614e4c57600080fd5b5051919050565b60005b83811015614e6e578181015183820152602001614e56565b83811115614e7d576000848401525b50505050565b60008251614e95818460208701614e53565b9190910192915050565b8481528360208201526001600160a01b03831660408201526080606082015260008251806080840152614ed98160a0850160208701614e53565b601f01601f19169190910160a00195945050505050565b80516dffffffffffffffffffffffffffff8116811461495157600080fd5b600080600060608486031215614f2357600080fd5b614f2c84614ef0565b9250614f3a60208501614ef0565b9150604084015163ffffffff81168114614d5c57600080fdfea26469706673582212208d04eafbcd8aaa3616d9b3b04c82401be03d11653e42597b89035df4f843e45464736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE56E780A GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0xF824F62E EQ PUSH2 0x62D JUMPI DUP1 PUSH4 0xFA44620F EQ PUSH2 0x64D JUMPI DUP1 PUSH4 0xFEBB9E4F EQ PUSH2 0x66D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE56E780A EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xE5E47889 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xE80E6EED EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0xEAF92EF4 EQ PUSH2 0x5FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC063E1A GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xBC063E1A EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0xCDBF012E EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xCFDE04D9 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xA32166EE EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB9CC74 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0x73B295C2 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0x7439459B EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x85F8C259 EQ PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB9CC74 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x31F91A84 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x3FE9BD7C EQ PUSH2 0x380 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xECE8E24 GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xECE8E24 EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0x18D73E9B EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x2DD31000 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1E8A475 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x54D50D4 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x5A1450D EQ PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x205 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x203 JUMPI PUSH2 0x203 PUSH2 0x4924 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x4956 JUMP JUMPDEST PUSH2 0x68D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x245 CALLDATASIZE PUSH1 0x4 PUSH2 0x4971 JUMP JUMPDEST PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x83F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x254 SWAP2 SWAP1 PUSH2 0x4A64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x296 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0xB3C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x2CD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x2FC CALLDATASIZE PUSH1 0x4 PUSH2 0x4ABE JUMP JUMPDEST PUSH2 0xE45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x254 JUMP JUMPDEST PUSH2 0x27D PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x4B8F JUMP JUMPDEST PUSH2 0xE79 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x37B CALLDATASIZE PUSH1 0x4 PUSH2 0x4C06 JUMP JUMPDEST PUSH2 0x1283 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3BB PUSH2 0x39B CALLDATASIZE PUSH1 0x4 PUSH2 0x4C87 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x142D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH2 0x42F CALLDATASIZE PUSH1 0x4 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH3 0xFFFFFF DUP1 DUP3 AND SWAP3 PUSH4 0x1000000 DUP4 DIV DUP3 AND SWAP3 PUSH7 0x1000000000000 DUP2 DIV DUP4 AND SWAP3 PUSH1 0x1 PUSH1 0x48 SHL DUP3 DIV AND SWAP2 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH3 0xFFFFFF SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 DUP6 AND SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x4CF CALLDATASIZE PUSH1 0x4 PUSH2 0x4971 JUMP JUMPDEST PUSH2 0x1441 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x335 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x144E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x52D CALLDATASIZE PUSH1 0x4 PUSH2 0x4971 JUMP JUMPDEST PUSH2 0x161E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH1 0xC8 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x162B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CCD JUMP JUMPDEST PUSH2 0x1A12 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4ABE JUMP JUMPDEST PUSH2 0x1D18 JUMP JUMPDEST PUSH2 0x203 PUSH2 0x5B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B8F JUMP JUMPDEST PUSH2 0x1D45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x22EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x5F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF7 JUMP JUMPDEST PUSH2 0x2621 JUMP JUMPDEST PUSH2 0x27D PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B8F JUMP JUMPDEST PUSH2 0x2742 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x628 CALLDATASIZE PUSH1 0x4 PUSH2 0x4956 JUMP JUMPDEST PUSH2 0x2BBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x648 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E2 JUMP JUMPDEST PUSH2 0x2C4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x668 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CCD JUMP JUMPDEST PUSH2 0x2FD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x679 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH2 0x688 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D20 JUMP JUMPDEST PUSH2 0x3223 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x703 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416C726561647920696E697469616C697A656400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP1 ISZERO PUSH2 0x77D JUMPI DUP2 SLOAD PUSH2 0x2710 PUSH3 0xFFFFFF PUSH2 0x1388 DUP5 MUL DUP2 AND SWAP2 SWAP1 SWAP2 DIV DUP1 DUP3 AND PUSH4 0x1000000 MUL PUSH6 0xFFFFFFFFFFFF NOT DUP4 DUP7 AND PUSH7 0x1000000000000 MUL AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 DUP5 SUB SWAP1 SWAP2 AND OR OR DUP3 SSTORE JUMPDEST DUP2 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFF DUP2 AND PUSH13 0x1001388000000000000000000 OR DUP1 DUP5 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH3 0xFFFFFF SWAP4 DUP5 AND DUP2 MSTORE PUSH4 0x1000000 DUP4 DIV DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x1000000000000 SWAP1 SWAP3 DIV SWAP1 SWAP3 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x1388 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x6B5FC252492DC36106011C1C3866E04A5C11AF764428A2C91980DE4994E4331F SWAP1 PUSH1 0x80 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x837 DUP5 DUP5 DUP5 PUSH2 0x3405 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x87C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x93C PUSH32 0x0 DUP12 DUP11 DUP11 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3536 SWAP3 POP POP POP JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 DUP8 MLOAD PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x962 JUMPI PUSH2 0x962 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP5 SLOAD SWAP1 SWAP2 POP PUSH2 0x2710 SWAP1 PUSH2 0x98F SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP4 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x999 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP3 POP PUSH2 0x9A5 DUP4 DUP3 PUSH2 0x4D7D JUMP JUMPDEST SWAP2 POP POP DUP11 DUP2 LT ISZERO PUSH2 0x9F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0xAA3 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA0E JUMPI PUSH2 0xA0E PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA23 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0xA9D PUSH32 0x0 DUP15 DUP15 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA5B JUMPI PUSH2 0xA5B PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA70 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP16 DUP16 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA98 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH2 0x369C JUMP JUMPDEST DUP16 PUSH2 0x378D JUMP JUMPDEST PUSH2 0xAE0 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB2D DUP2 DUP12 DUP12 PUSH2 0xAF1 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0xB00 JUMPI PUSH2 0xB00 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP6 SLOAD DUP12 SWAP1 DUP11 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP8 PUSH2 0x3B09 JUMP JUMPDEST POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xB79 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP8 DUP8 PUSH2 0xBB0 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0xBBF JUMPI PUSH2 0xBBF PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xBD4 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xC7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xC9D SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP14 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0xCA7 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0xD10 PUSH32 0x0 PUSH2 0xCD7 DUP4 DUP15 PUSH2 0x4DEB JUMP JUMPDEST DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3BFA SWAP3 POP POP POP JUMP JUMPDEST SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD27 JUMPI PUSH2 0xD27 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xD81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558434553534956455F494E5055545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0xDEA DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xD97 JUMPI PUSH2 0xD97 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xDAC SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0xDE4 PUSH32 0x0 DUP15 DUP15 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA5B JUMPI PUSH2 0xA5B PUSH2 0x4D94 JUMP JUMPDEST DUP5 PUSH2 0x378D JUMP JUMPDEST PUSH2 0xE27 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST DUP3 SLOAD PUSH2 0xB2D SWAP1 DUP14 SWAP1 DUP11 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3D4C JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE72 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3BFA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 DUP8 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xEF3 JUMPI PUSH2 0xEF3 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF08 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xFD1 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP13 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0xFDB SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x100B PUSH32 0x0 PUSH2 0xCD7 DUP4 DUP14 PUSH2 0x4DEB JUMP JUMPDEST SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1022 JUMPI PUSH2 0x1022 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP CALLVALUE DUP2 GT ISZERO PUSH2 0x107C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558434553534956455F494E5055545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1177 PUSH32 0x0 PUSH32 0x0 DUP15 DUP15 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1200 SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x120C JUMPI PUSH2 0x120C PUSH2 0x4924 JUMP JUMPDEST PUSH2 0x1249 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x125A DUP12 DUP12 DUP12 PUSH2 0xAF1 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP1 CALLVALUE GT ISZERO PUSH2 0x1275 JUMPI PUSH2 0x1275 CALLER PUSH2 0x1270 DUP4 CALLVALUE PUSH2 0x4D7D JUMP JUMPDEST PUSH2 0x3F21 JUMP JUMPDEST POP POP POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x12DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP4 DUP3 DUP2 EQ PUSH2 0x132D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D69736D617463686564206172726179206C656E677468730000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1424 JUMPI PUSH2 0x1381 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x134D JUMPI PUSH2 0x134D PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1362 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP5 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x1375 JUMPI PUSH2 0x1375 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x4003 JUMP JUMPDEST DUP7 DUP7 DUP3 DUP2 DUP2 LT PUSH2 0x1393 JUMPI PUSH2 0x1393 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x13A8 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF3A15B70EF42163A42BBB07EDB60D02F31FD11D394C9326022F78E1C7E12F685 DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x13E4 JUMPI PUSH2 0x13E4 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 PUSH1 0x40 MLOAD PUSH2 0x140C SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x141D DUP2 PUSH2 0x4E20 JUMP JUMPDEST SWAP1 POP PUSH2 0x1330 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1435 PUSH2 0x414C JUMP JUMPDEST PUSH2 0x143F PUSH1 0x0 PUSH2 0x41A6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x837 DUP5 DUP5 DUP5 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x148B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x14ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x150F SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP14 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x1519 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x1549 PUSH32 0x0 PUSH2 0xCD7 DUP4 DUP15 PUSH2 0x4DEB JUMP JUMPDEST SWAP4 POP PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1560 JUMPI PUSH2 0x1560 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0x15BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558434553534956455F494E5055545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x15D0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xD97 JUMPI PUSH2 0xD97 PUSH2 0x4D94 JUMP JUMPDEST PUSH2 0x160D DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB2D DUP13 DUP12 DUP12 PUSH2 0xAF1 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x837 DUP5 DUP5 DUP5 PUSH2 0x4344 JUMP JUMPDEST DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH2 0x169D PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x16AC JUMPI PUSH2 0x16AC PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16C1 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1706 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x1797 DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x171C JUMPI PUSH2 0x171C PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1731 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0x1791 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1769 JUMPI PUSH2 0x1769 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x177E SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST DUP12 PUSH2 0x378D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1822 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST SWAP1 POP PUSH2 0x1860 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x443B SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP2 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18EA SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x18F4 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x195A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x197C SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1994 DUP3 DUP6 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP11 DUP2 LT ISZERO PUSH2 0x19E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP3 SLOAD PUSH2 0x1A04 SWAP1 DUP3 SWAP1 DUP11 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3D4C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ DUP1 PUSH2 0x1A33 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0x1A61 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x1AAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0xC8 PUSH3 0xFFFFFF DUP3 AND GT ISZERO PUSH2 0x1B03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45786365737369766520746F74616C2066656500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0xFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND LT ISZERO PUSH2 0x1B65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E73756666696369656E7420746F74616C2066656500000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1BD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420696E697469616C697A65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH3 0xFFFFFF DUP1 DUP5 AND PUSH7 0x1000000000000 SWAP1 SWAP3 DIV AND SUB PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206368616E67652072657175697265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x2710 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV PUSH3 0xFFFFFF SWAP1 DUP2 AND DUP7 MUL AND DIV DUP1 DUP6 SUB DUP5 SLOAD PUSH3 0xFFFFFF DUP3 DUP2 AND PUSH6 0xFFFFFFFFFFFF NOT SWAP1 SWAP3 AND DUP3 OR PUSH4 0x1000000 DUP6 DUP4 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF AND PUSH7 0x1000000000000 DUP11 DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR DUP1 DUP11 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV AND PUSH1 0x60 DUP3 ADD MSTORE SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH32 0x268BB6F24D6BCF8E423ACB11150CDDA69E8AA10804AADA92E6E8E32AD9E724FB SWAP1 PUSH1 0x80 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE72 PUSH32 0x0 DUP5 DUP5 PUSH2 0x3536 JUMP JUMPDEST DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1D80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1DBD JUMPI PUSH2 0x1DBD PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1DD2 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E86 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x1F12 PUSH32 0x0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLVALUE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F76 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F9A SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x1FA6 JUMPI PUSH2 0x1FA6 PUSH2 0x4924 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH2 0x1FB5 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x1FC4 JUMPI PUSH2 0x1FC4 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1FD9 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2025 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2049 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20B7 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST SWAP1 POP PUSH2 0x20F5 DUP10 DUP10 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x443B SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x213B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215F SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x2169 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x21CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x21F1 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x21FB SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x2224 PUSH2 0x220A DUP3 DUP6 PUSH2 0x4D7D JUMP JUMPDEST DUP4 SLOAD DUP8 SWAP1 DUP13 SWAP1 DUP12 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3B09 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP14 SWAP2 DUP7 SWAP2 DUP9 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x226E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2292 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x229C SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST LT ISZERO PUSH2 0x1A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP8 DUP8 PUSH2 0x235E PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x236D JUMPI PUSH2 0x236D PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2382 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x23C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x2487 PUSH32 0x0 DUP12 DUP11 DUP11 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3536 SWAP3 POP POP POP JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 DUP8 MLOAD PUSH2 0x249D SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x24AD JUMPI PUSH2 0x24AD PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP5 SLOAD SWAP1 SWAP2 POP PUSH2 0x2710 SWAP1 PUSH2 0x24DA SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP4 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x24E4 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP3 POP PUSH2 0x24F0 DUP4 DUP3 PUSH2 0x4D7D JUMP JUMPDEST SWAP2 POP POP DUP11 DUP2 LT ISZERO PUSH2 0x2543 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x25C6 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2559 JUMPI PUSH2 0x2559 PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x256E SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST CALLER PUSH2 0x25A6 PUSH32 0x0 DUP15 DUP15 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0xA5B JUMPI PUSH2 0xA5B PUSH2 0x4D94 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x25B9 JUMPI PUSH2 0x25B9 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x378D JUMP JUMPDEST PUSH2 0x2603 DUP6 DUP12 DUP12 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST DUP3 SLOAD PUSH2 0xB2D SWAP1 DUP3 SWAP1 DUP11 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP7 PUSH2 0x3D4C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x267B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1E PUSH3 0xFFFFFF DUP3 AND GT ISZERO PUSH2 0x26D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578636573736976652066656520666C6F6F7200000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH3 0xFFFFFF DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x14C0E8536178612BD3938ABCC5B94B0C0CA07A71800BA09C1C10E61B02209C55 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x277F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 DUP8 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x27BC JUMPI PUSH2 0x27BC PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x27D1 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2816 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x929CAC82989288BEA082A89 PUSH1 0xA3 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2878 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x28D6 PUSH32 0x0 CALLVALUE DUP11 DUP11 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3536 SWAP3 POP POP POP JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP4 PUSH1 0x1 DUP6 MLOAD PUSH2 0x28E9 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x28F9 JUMPI PUSH2 0x28F9 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x2929 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP5 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x2933 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2941 DUP3 DUP5 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP12 DUP2 LT ISZERO PUSH2 0x2993 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A02 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2A8E PUSH32 0x0 PUSH32 0x0 DUP16 DUP16 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0xA83 JUMPI PUSH2 0xA83 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLVALUE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AF2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B16 SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x2B22 JUMPI PUSH2 0x2B22 PUSH2 0x4924 JUMP JUMPDEST PUSH2 0x2B5F DUP7 DUP13 DUP13 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3904 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2BAC DUP2 DUP13 DUP13 PUSH2 0x2B70 PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x2B7F JUMPI PUSH2 0x2B7F PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2B94 SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST DUP7 SLOAD DUP13 SWAP1 DUP12 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH3 0xFFFFFF AND DUP8 PUSH2 0x3B09 JUMP JUMPDEST POP POP POP POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2BC3 PUSH2 0x414C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2C3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x2C48 DUP2 PUSH2 0x41A6 JUMP JUMPDEST POP JUMP JUMPDEST DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2C86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x11561412549151 PUSH1 0xCA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x2C9C DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x171C JUMPI PUSH2 0x171C PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH2 0x2CAB PUSH1 0x1 DUP3 PUSH2 0x4D7D JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x2CBA JUMPI PUSH2 0x2CBA PUSH2 0x4D94 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2CCF SWAP2 SWAP1 PUSH2 0x4956 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D3F SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DAD SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST SWAP1 POP PUSH2 0x2DEB DUP10 DUP10 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x443B SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E55 SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x2E5F SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2EC5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x24B73B30B634B2103830B93A3732B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x2EE7 SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH3 0xFFFFFF AND DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x2EF1 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH2 0x2F00 PUSH2 0x220A DUP3 DUP6 PUSH2 0x4D7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP14 SWAP2 DUP7 SWAP2 DUP9 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F4A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F6E SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x2F78 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST LT ISZERO PUSH2 0x2FC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E53554646494349454E545F4F55545055545F414D4F554E54000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x302F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x1388 PUSH3 0xFFFFFF DUP3 AND GT ISZERO PUSH2 0x3086 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578636573736976652066656520637574000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x30F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420696E697469616C697A65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH3 0xFFFFFF DUP1 DUP5 AND PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP3 DIV AND SUB PUSH2 0x3155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206368616E67652072657175697265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP1 SLOAD PUSH3 0xFFFFFF DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x48 SHL DUP2 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF PUSH2 0x2710 PUSH7 0x1000000000000 DUP1 DUP8 DIV DUP7 AND DUP10 DUP2 MUL DUP8 AND SWAP3 SWAP1 SWAP3 DIV DUP1 DUP8 AND PUSH4 0x1000000 DUP2 MUL PUSH6 0xFFFFFFFFFFFF NOT SWAP1 SWAP10 AND SWAP4 DUP3 SWAP1 SUB DUP1 DUP10 AND SWAP5 DUP6 OR SWAP10 SWAP1 SWAP10 OR SWAP5 SWAP1 SWAP5 AND SWAP5 SWAP1 SWAP5 OR DUP1 DUP10 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DIV SWAP1 SWAP5 AND SWAP1 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH32 0x268BB6F24D6BCF8E423ACB11150CDDA69E8AA10804AADA92E6E8E32AD9E724FB SWAP1 PUSH1 0x80 ADD PUSH2 0x1D09 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EQ DUP1 PUSH2 0x3244 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x3290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5065726D697373696F6E2064656E696564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420696E697469616C697A65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD DUP2 ISZERO ISZERO PUSH1 0xFF SWAP1 SWAP2 AND ISZERO ISZERO SUB PUSH2 0x337C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206368616E67652072657175697265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP5 DUP6 MSTORE SWAP1 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH32 0x46751F89D74C14E8AE5FD281384537C0DA96B674099C7E7AAD93AA38F39E9ACC SWAP2 ADD PUSH2 0x81D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x347C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5055545F414D4F554E5400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x348C JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x34E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x51554944495459 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34F6 DUP6 PUSH2 0x3E5 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3504 DUP5 DUP4 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3515 DUP8 PUSH2 0x3E8 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x351F SWAP2 SWAP1 PUSH2 0x4DEB JUMP JUMPDEST SWAP1 POP PUSH2 0x352B DUP2 DUP4 PUSH2 0x4DC9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x358A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35A4 JUMPI PUSH2 0x35A4 PUSH2 0x4AA8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x35CD JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x35E4 JUMPI PUSH2 0x35E4 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3694 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3642 DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x3618 JUMPI PUSH2 0x3618 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3635 JUMPI PUSH2 0x3635 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x473E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x366A DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x365B JUMPI PUSH2 0x365B PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3405 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x367F JUMPI PUSH2 0x367F PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x35F3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x36AB DUP6 DUP6 PUSH2 0x4816 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP5 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP4 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE SWAP2 SWAP4 POP SWAP2 POP DUP7 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x376B SWAP3 SWAP2 SWAP1 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 DUP4 ADD MSTORE PUSH1 0x15 DUP3 ADD MSTORE PUSH32 0x40231F6B438BCE0797C9ADA29B718A87EA0A5CEA3FE9A771ABDD76BD41A3E545 PUSH1 0x35 DUP3 ADD MSTORE PUSH1 0x55 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP9 AND SWAP2 PUSH2 0x381F SWAP2 SWAP1 PUSH2 0x4E83 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x385C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x388B JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x388B JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x388B SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x38FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F46524F4D5F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x494C454400000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP3 MLOAD PUSH2 0x3915 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x3B04 JUMPI PUSH1 0x0 DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3931 JUMPI PUSH2 0x3931 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP5 PUSH1 0x1 PUSH2 0x3947 SWAP2 SWAP1 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3957 JUMPI PUSH2 0x3957 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x396F DUP4 DUP4 PUSH2 0x4816 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x3980 DUP7 PUSH1 0x1 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3990 JUMPI PUSH2 0x3990 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x39BE JUMPI DUP3 PUSH1 0x0 PUSH2 0x39C2 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP10 MLOAD PUSH2 0x39D6 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP9 LT PUSH2 0x39E2 JUMPI ADDRESS PUSH2 0x3A30 JUMP JUMPDEST PUSH2 0x3A30 PUSH32 0x0 DUP8 DUP12 PUSH2 0x3A13 DUP13 PUSH1 0x2 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3A23 JUMPI PUSH2 0x3A23 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x369C JUMP JUMPDEST SWAP1 POP PUSH2 0x3A5D PUSH32 0x0 DUP9 DUP9 PUSH2 0x369C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3A9A JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3ABA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4E9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3AD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3AE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP DUP1 PUSH2 0x3AFD SWAP1 PUSH2 0x4E20 JUMP JUMPDEST SWAP1 POP PUSH2 0x3907 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2710 PUSH2 0x3B18 DUP5 DUP5 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x3B22 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3B30 DUP3 DUP5 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0x3B86 JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x20E2995330EFF898ABA363DAFA356EF1DAADCE6099C9CC7CA8D54EEFE4592B4C DUP5 PUSH1 0x40 MLOAD PUSH2 0x3B7D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST DUP1 ISZERO PUSH2 0x3BE5 JUMPI PUSH2 0x3B97 DUP8 DUP7 DUP4 PUSH2 0x4003 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x773AF6B6713C6B692509715062C62888D71211FFDD7012CF0835ABFDC18992FA DUP4 PUSH1 0x40 MLOAD PUSH2 0x3BDC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST PUSH2 0x3BF0 DUP8 DUP8 DUP11 PUSH2 0x4003 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x3C4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C68 JUMPI PUSH2 0x3C68 PUSH2 0x4AA8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3C91 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x3CAB JUMPI PUSH2 0x3CAB PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x3694 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3CF9 DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3CDF JUMPI PUSH2 0x3CDF PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x3635 JUMPI PUSH2 0x3635 PUSH2 0x4D94 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3D21 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3D12 JUMPI PUSH2 0x3D12 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x420E JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x3D36 JUMPI PUSH2 0x3D36 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x3CBD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2710 PUSH2 0x3D5B DUP5 DUP5 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x3D65 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3D73 DUP3 DUP5 PUSH2 0x4D7D JUMP JUMPDEST SWAP1 POP DUP2 ISZERO PUSH2 0x3DE9 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x20E2995330EFF898ABA363DAFA356EF1DAADCE6099C9CC7CA8D54EEFE4592B4C DUP5 PUSH1 0x40 MLOAD PUSH2 0x3DE0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST DUP1 ISZERO PUSH2 0x3E88 JUMPI PUSH2 0x3E1A PUSH32 0x0 DUP7 DUP4 PUSH2 0x4003 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x773AF6B6713C6B692509715062C62888D71211FFDD7012CF0835ABFDC18992FA DUP4 PUSH1 0x40 MLOAD PUSH2 0x3E7F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2E1A7D4D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2E1A7D4D SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F17 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1424 DUP7 DUP9 JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x3F4B SWAP2 SWAP1 PUSH2 0x4E83 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3F88 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3F8D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3B04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A20415641585F5452414E534645525F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x494C454400000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x408D SWAP2 SWAP1 PUSH2 0x4E83 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x40CA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x40CF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x40F9 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x40F9 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x40F9 SWAP2 SWAP1 PUSH2 0x4E03 JUMP JUMPDEST PUSH2 0x4145 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x143F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x4285 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4F55 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x545055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x4295 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x42F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x51554944495459 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42FD DUP6 DUP6 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x4309 SWAP1 PUSH2 0x3E8 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4317 DUP7 DUP6 PUSH2 0x4D7D JUMP JUMPDEST PUSH2 0x4323 SWAP1 PUSH2 0x3E5 PUSH2 0x4DAA JUMP JUMPDEST SWAP1 POP PUSH2 0x432F DUP2 DUP4 PUSH2 0x4DC9 JUMP JUMPDEST PUSH2 0x433A SWAP1 PUSH1 0x1 PUSH2 0x4DEB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x43BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F414D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x4F554E5400000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x43CA JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x4426 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E53554646494349454E545F4C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x51554944495459 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST DUP3 PUSH2 0x4431 DUP4 DUP7 PUSH2 0x4DAA JUMP JUMPDEST PUSH2 0x837 SWAP2 SWAP1 PUSH2 0x4DC9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP3 MLOAD PUSH2 0x444C SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x473A JUMPI PUSH1 0x0 DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x4468 JUMPI PUSH2 0x4468 PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP5 PUSH1 0x1 PUSH2 0x447E SWAP2 SWAP1 PUSH2 0x4DEB JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x448E JUMPI PUSH2 0x448E PUSH2 0x4D94 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x44A6 DUP4 DUP4 PUSH2 0x4816 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x44D6 PUSH32 0x0 DUP6 DUP6 PUSH2 0x369C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x451C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4540 SWAP2 SWAP1 PUSH2 0x4F0E JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH1 0x0 DUP1 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4588 JUMPI DUP3 DUP5 PUSH2 0x458B JUMP JUMPDEST DUP4 DUP4 JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP4 SWAP2 DUP13 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x45D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x45FD SWAP2 SWAP1 PUSH2 0x4E3A JUMP JUMPDEST PUSH2 0x4607 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST SWAP6 POP PUSH2 0x4614 DUP7 DUP4 DUP4 PUSH2 0x3405 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x463E JUMPI DUP3 PUSH1 0x0 PUSH2 0x4642 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP12 MLOAD PUSH2 0x4656 SWAP2 SWAP1 PUSH2 0x4D7D JUMP JUMPDEST DUP11 LT PUSH2 0x4662 JUMPI ADDRESS PUSH2 0x4693 JUMP JUMPDEST PUSH2 0x4693 PUSH32 0x0 DUP10 DUP14 PUSH2 0x3A13 DUP15 PUSH1 0x2 PUSH2 0x4DEB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH32 0x22C0D9F00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH4 0x22C0D9F SWAP1 PUSH2 0x46EE SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x24 DUP2 ADD PUSH2 0x4E9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x471C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP DUP1 PUSH2 0x4733 SWAP1 PUSH2 0x4E20 JUMP JUMPDEST SWAP1 POP PUSH2 0x443E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x474D DUP6 DUP6 PUSH2 0x4816 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x475E DUP9 DUP9 DUP9 PUSH2 0x369C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x479B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x47BF SWAP2 SWAP1 PUSH2 0x4F0E JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4804 JUMPI DUP1 DUP3 PUSH2 0x4807 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x489F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A204944454E544943414C5F4144445245 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5353455300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6FA JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x48BF JUMPI DUP3 DUP5 PUSH2 0x48C2 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x491D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A205A45524F5F41444452455353000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6FA JUMP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE72 DUP3 PUSH2 0x493A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x49AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x49C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x491D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x49FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4A22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A2E DUP11 DUP3 DUP12 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x4A41 SWAP1 POP PUSH1 0x60 DUP10 ADD PUSH2 0x493A JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4A56 PUSH1 0xA0 DUP10 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4A9C JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4A80 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4AD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4B05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4B17 JUMPI PUSH2 0x4B17 PUSH2 0x4AA8 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x4B3C JUMPI PUSH2 0x4B3C PUSH2 0x4AA8 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP5 DUP3 ADD SWAP3 POP DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP10 DUP4 GT ISZERO PUSH2 0x4B5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x4B7F JUMPI PUSH2 0x4B70 DUP6 PUSH2 0x493A JUMP JUMPDEST DUP5 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH2 0x4B5F JUMP JUMPDEST DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4BA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4BD2 DUP10 DUP3 DUP11 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH2 0x4BE5 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x493A JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4BFA PUSH1 0x80 DUP9 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4C1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4C36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C42 DUP10 DUP4 DUP11 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4C5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C68 DUP9 DUP3 DUP10 ADD PUSH2 0x499D JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x4C7B SWAP1 POP PUSH1 0x40 DUP8 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4CA3 DUP4 PUSH2 0x493A JUMP JUMPDEST SWAP2 POP PUSH2 0x4CB1 PUSH1 0x20 DUP5 ADD PUSH2 0x493A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4CE9 DUP4 PUSH2 0x493A JUMP JUMPDEST SWAP2 POP PUSH2 0x4CB1 PUSH1 0x20 DUP5 ADD PUSH2 0x4CBA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE72 DUP3 PUSH2 0x4CBA JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2C48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4D35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D3E DUP5 PUSH2 0x493A JUMP JUMPDEST SWAP3 POP PUSH2 0x4D4C PUSH1 0x20 DUP6 ADD PUSH2 0x493A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4D5C DUP2 PUSH2 0x4D12 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4D8F JUMPI PUSH2 0x4D8F PUSH2 0x4D67 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x4DC4 JUMPI PUSH2 0x4DC4 PUSH2 0x4D67 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4DE6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4DFE JUMPI PUSH2 0x4DFE PUSH2 0x4D67 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xE72 DUP2 PUSH2 0x4D12 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x4E33 JUMPI PUSH2 0x4E33 PUSH2 0x4D67 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4E6E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E56 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4E7D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4E95 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4E53 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4ED9 DUP2 PUSH1 0xA0 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4E53 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0xA0 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4F23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F2C DUP5 PUSH2 0x4EF0 JUMP JUMPDEST SWAP3 POP PUSH2 0x4F3A PUSH1 0x20 DUP6 ADD PUSH2 0x4EF0 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4D5C JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 DIV 0xEA 0xFB 0xCD DUP11 0xAA CALLDATASIZE AND 0xD9 0xB3 0xB0 0x4C DUP3 BLOCKHASH SHL 0xE0 RETURNDATASIZE GT PUSH6 0x3E42597B8903 0x5D DELEGATECALL 0xF8 NUMBER 0xE4 SLOAD PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"430:20731:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:10;-1:-1:-1;;;;;1605:5:20;1591:19;;1584:27;;;;:::i;:::-;430:20731;;;;;16215:696;;;;;;;;;;-1:-1:-1;16215:696:20;;;;;:::i;:::-;;:::i;20207:239::-;;;;;;;;;;-1:-1:-1;20207:239:20;;;;;:::i;:::-;;:::i;:::-;;;1062:25:25;;;1050:2;1035:18;20207:239:20;;;;;;;;4122:1135;;;;;;;;;;-1:-1:-1;4122:1135:20;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7326:1036::-;;;;;;;;;;-1:-1:-1;7326:1036:20;;;;;:::i;:::-;;:::i;800:27::-;;;;;;;;;;-1:-1:-1;800:27:20;;;;-1:-1:-1;;;800:27:20;;;;;;;;;3078:8:25;3066:21;;;3048:40;;3036:2;3021:18;800:27:20;2904:190:25;20932:224:20;;;;;;;;;;-1:-1:-1;20932:224:20;;;;;:::i;:::-;;:::i;517:41::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4705:55:25;;;4687:74;;4675:2;4660:18;517:41:20;4541:226:25;9558:1161:20;;;;;;:::i;:::-;;:::i;19141:482::-;;;;;;;;;;-1:-1:-1;19141:482:20;;;;;:::i;:::-;;:::i;985:60::-;;;;;;;;;;-1:-1:-1;985:60:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6782:14:25;;6775:22;6757:41;;6745:2;6730:18;985:60:20;6617:187:25;1831:101:2;;;;;;;;;;;;;:::i;565:39:20:-;;;;;;;;;;;;;;;15760:449;;;;;;;;;;-1:-1:-1;15760:449:20;;;;;:::i;:::-;-1:-1:-1;;;;;15996:15:20;15828:17;15996:15;;;:8;:15;;;;;16044:18;;;;;;16077:19;;;;;;16111:16;;;;;;-1:-1:-1;;;16142:14:20;;;;-1:-1:-1;;;16171:19:20;;;;;;15760:449;;;;;7064:8:25;7099:15;;;7081:34;;7151:15;;;7146:2;7131:18;;7124:43;7203:15;;;7183:18;;;7176:43;;;;7255:15;;;7250:2;7235:18;;7228:43;7315:14;;7308:22;7302:3;7287:19;;7280:51;7041:3;7026:19;15760:449:20;6809:528:25;20454:238:20;;;;;;;;;;-1:-1:-1;20454:238:20;;;;;:::i;:::-;;:::i;1201:85:2:-;;;;;;;;;;-1:-1:-1;1247:7:2;1273:6;-1:-1:-1;;;;;1273:6:2;1201:85;;5263:989:20;;;;;;;;;;-1:-1:-1;5263:989:20;;;;;:::i;:::-;;:::i;20016:183::-;;;;;;;;;;-1:-1:-1;20016:183:20;;;;;:::i;:::-;;:::i;756:37::-;;;;;;;;;;;;789:4;756:37;;14604:1116;;;;;;;;;;-1:-1:-1;14604:1116:20;;;;;:::i;:::-;;:::i;17365:818::-;;;;;;;;;;-1:-1:-1;17365:818:20;;;;;:::i;:::-;;:::i;20700:224::-;;;;;;;;;;-1:-1:-1;20700:224:20;;;;;:::i;:::-;;:::i;13358:1240::-;;;;;;:::i;:::-;;:::i;8368:1184::-;;;;;;;;;;-1:-1:-1;8368:1184:20;;;;;:::i;:::-;;:::i;18876:259::-;;;;;;;;;;-1:-1:-1;18876:259:20;;;;;:::i;:::-;;:::i;6258:1062::-;;;;;;:::i;:::-;;:::i;2081:198:2:-;;;;;;;;;;-1:-1:-1;2081:198:2;;;;;:::i;:::-;;:::i;12148:1204:20:-;;;;;;;;;;-1:-1:-1;12148:1204:20;;;;;:::i;:::-;;:::i;18189:681::-;;;;;;;;;;-1:-1:-1;18189:681:20;;;;;:::i;:::-;;:::i;16917:442::-;;;;;;;;;;-1:-1:-1;16917:442:20;;;;;:::i;:::-;;:::i;16215:696::-;-1:-1:-1;;;;;16303:17:20;;16277:23;16303:17;;;:8;:17;;;;;16340:19;;-1:-1:-1;;;16340:19:20;;;;16339:20;16331:52;;;;-1:-1:-1;;;16331:52:20;;8679:2:25;16331:52:20;;;8661:21:25;8718:2;8698:18;;;8691:30;8757:21;8737:18;;;8730:49;8796:18;;16331:52:20;;;;;;;;;16396:15;16414:9;-1:-1:-1;;;16414:9:20;;;;16455:12;;16451:260;;16578:27;;644:6;19823:24;695:5;19823:17;;:24;;;;;;16666:33;;;;;-1:-1:-1;;16578:27:20;;;;;16666:33;;;;;;;;;19903:22;;;16620:31;;;16666:33;;;;16451:260;16723:28;;16762:26;;;;;;;;16806:97;;;16723:28;16832:18;;;9075:34:25;;16852:19:20;;;;;9140:2:25;9125:18;;9118:43;16873:16:20;;;;;;;9177:18:25;;;9170:43;;;;695:5:20;9244:2:25;9229:18;;9222:43;-1:-1:-1;;;;;16806:97:20;;;;;9035:3:25;9020:19;16806:97:20;;;;;;;;16266:645;;16215:696;:::o;20207:239::-;20334:17;20376:62;20406:8;20416:9;20427:10;20376:29;:62::i;:::-;20369:69;20207:239;-1:-1:-1;;;;20207:239:20:o;4122:1135::-;4362:24;4343:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;-1:-1:-1;;;;;4425:15:20;::::1;4399:23;4425:15:::0;;;:8:::1;:15;::::0;;;;4459:19;;-1:-1:-1;;;4459:19:20;::::1;;;4451:47;;;::::0;-1:-1:-1;;;4451:47:20;;9813:2:25;4451:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;4451:47:20::1;9611:339:25::0;4451:47:20::1;4521:55;4552:7;4561:8;4571:4;;4521:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4521:30:20::1;::::0;-1:-1:-1;;;4521:55:20:i:1;:::-;4511:65;;4589:22;4622:21:::0;4698:17:::1;4718:7;4743:1;4726:7;:14;:18;;;;:::i;:::-;4718:27;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;4789:16;;4718:27;;-1:-1:-1;644:6:20::1;::::0;4777:28:::1;::::0;4789:16;;::::1;4777:35;4789:16;4718:27:::0;4777:28:::1;:::i;:::-;:35;;;;:::i;:::-;4760:52:::0;-1:-1:-1;4843:26:20::1;4760:52:::0;4843:9;:26:::1;:::i;:::-;4827:42;;4656:225;4918:12;4901:13;:29;;4893:68;;;::::0;-1:-1:-1;;;4893:68:20;;11366:2:25;4893:68:20::1;::::0;::::1;11348:21:25::0;11405:2;11385:18;;;11378:30;11444:28;11424:18;;;11417:56;11490:18;;4893:68:20::1;11164:350:25::0;4893:68:20::1;4974:139;5020:4;;5025:1;5020:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5029:10;5041:51;5066:7;5075:4;;5080:1;5075:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5084:4;;5089:1;5084:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5041:24;:51::i;:::-;5094:8;4974:31;:139::i;:::-;5126:20;5132:7;5141:4;;5126:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5126:5:20::1;::::0;-1:-1:-1;;;5126:20:20:i:1;:::-;5157:92;5169:13:::0;5184:4;;5189:15:::1;5203:1;5184:4:::0;5189:15:::1;:::i;:::-;5184:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5218:14:::0;;5207:2;;5211:5;;-1:-1:-1;;;5218:14:20;::::1;;;5234::::0;5157:11:::1;:92::i;:::-;4388:869;;;4122:1135:::0;;;;;;;;;;:::o;7326:1036::-;7564:24;7545:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;-1:-1:-1;;;;;7634:5:20::1;7609:30;:4:::0;;7614:15:::1;7628:1;7609:4:::0;7614:15:::1;:::i;:::-;7609:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7609:30:20::1;;7601:55;;;::::0;-1:-1:-1;;;7601:55:20;;11721:2:25;7601:55:20::1;::::0;::::1;11703:21:25::0;11760:2;11740:18;;;11733:30;-1:-1:-1;;;11779:18:25;;;11772:42;11831:18;;7601:55:20::1;11519:336:25::0;7601:55:20::1;-1:-1:-1::0;;;;;7695:15:20;::::1;7669:23;7695:15:::0;;;:8:::1;:15;::::0;;;;7729:19;;-1:-1:-1;;;7729:19:20;::::1;;;7721:47;;;::::0;-1:-1:-1;;;7721:47:20;;9813:2:25;7721:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;7721:47:20::1;9611:339:25::0;7721:47:20::1;7818:16:::0;;7781:22:::1;::::0;644:6:::1;::::0;7806:28:::1;::::0;7818:16;;::::1;7806:35;7818:16;7806:9:::0;:28:::1;:::i;:::-;:35;;;;:::i;:::-;7781:60:::0;-1:-1:-1;7908:72:20::1;7938:7;7947:26;7781:60:::0;7947:9;:26:::1;:::i;:::-;7975:4;;7908:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7908:29:20::1;::::0;-1:-1:-1;;;7908:72:20:i:1;:::-;7898:82;;7991:16;8010:7;8018:1;8010:10;;;;;;;;:::i;:::-;;;;;;;7991:29;;8051:11;8039:8;:23;;8031:58;;;::::0;-1:-1:-1;;;8031:58:20;;12195:2:25;8031:58:20::1;::::0;::::1;12177:21:25::0;12234:2;12214:18;;;12207:30;12273:24;12253:18;;;12246:52;12315:18;;8031:58:20::1;11993:346:25::0;8031:58:20::1;8102:139;8148:4;;8153:1;8148:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8157:10;8169:51;8194:7;8203:4;;8208:1;8203:7;;;;;;;:::i;8169:51::-;8222:8;8102:31;:139::i;:::-;8254:20;8260:7;8269:4;;8254:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;8254:5:20::1;::::0;-1:-1:-1;;;8254:20:20:i:1;:::-;8323:14:::0;;8285:69:::1;::::0;8301:9;;8312:2;;8316:5;;-1:-1:-1;;;8323:14:20;::::1;;;8339::::0;8285:15:::1;:69::i;20932:224::-:0;21044:24;21093:55;21123:7;21132:9;21143:4;21093:29;:55::i;:::-;21086:62;20932:224;-1:-1:-1;;;20932:224:20:o;9558:1161::-;9774:24;9755:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;9830:5:::1;-1:-1:-1::0;;;;;9819:16:20::1;:4;;9824:1;9819:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9819:16:20::1;;9811:41;;;::::0;-1:-1:-1;;;9811:41:20;;11721:2:25;9811:41:20::1;::::0;::::1;11703:21:25::0;11760:2;11740:18;;;11733:30;-1:-1:-1;;;11779:18:25;;;11772:42;11831:18;;9811:41:20::1;11519:336:25::0;9811:41:20::1;-1:-1:-1::0;;;;;9891:15:20;::::1;9865:23;9891:15:::0;;;:8:::1;:15;::::0;;;;9925:19;;-1:-1:-1;;;9925:19:20;::::1;;;9917:47;;;::::0;-1:-1:-1;;;9917:47:20;;9813:2:25;9917:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;9917:47:20::1;9611:339:25::0;9917:47:20::1;10014:16:::0;;9977:22:::1;::::0;644:6:::1;::::0;10002:28:::1;::::0;10014:16;;::::1;10002:35;10014:16;10002:9:::0;:28:::1;:::i;:::-;:35;;;;:::i;:::-;9977:60:::0;-1:-1:-1;10104:72:20::1;10134:7;10143:26;9977:60:::0;10143:9;:26:::1;:::i;10104:72::-;10094:82;;10187:16;10206:7;10214:1;10206:10;;;;;;;;:::i;:::-;;;;;;;10187:29;;10247:9;10235:8;:21;;10227:56;;;::::0;-1:-1:-1;;;10227:56:20;;12195:2:25;10227:56:20::1;::::0;::::1;12177:21:25::0;12234:2;12214:18;;;12207:30;12273:24;12253:18;;;12246:52;12315:18;;10227:56:20::1;11993:346:25::0;10227:56:20::1;10303:5;-1:-1:-1::0;;;;;10296:21:20::1;;10325:8;10296:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;10361:5;-1:-1:-1::0;;;;;10354:22:20::1;;10377:49;10402:7;10411:5;10418:4;;10423:1;10418:7;;;;;;;:::i;10377:49::-;10354:83;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;12536:55:25;;;10354:83:20::1;::::0;::::1;12518:74:25::0;12608:18;;;12601:34;;;12491:18;;10354:83:20::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10347:91;;;;:::i;:::-;10451:20;10457:7;10466:4;;10451:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;10451:5:20::1;::::0;-1:-1:-1;;;10451:20:20:i:1;:::-;10482:88;10494:9:::0;10505:4;;10510:15:::1;10524:1;10505:4:::0;10510:15:::1;:::i;10482:88::-;10636:8;10624:9;:20;10620:91;;;10646:65;10678:10;10690:20;10702:8:::0;10690:9:::1;:20;:::i;:::-;10646:31;:65::i;:::-;9800:919;;;9558:1161:::0;;;;;;;;;:::o;19141:482::-;1247:7:2;1273:6;-1:-1:-1;;;;;1273:6:2;19258:10:20;:21;19250:51;;;;-1:-1:-1;;;19250:51:20;;13098:2:25;19250:51:20;;;13080:21:25;13137:2;13117:18;;;13110:30;13176:19;13156:18;;;13149:47;13213:18;;19250:51:20;12896:341:25;19250:51:20;19335:6;19367:30;;;19359:67;;;;-1:-1:-1;;;19359:67:20;;13444:2:25;19359:67:20;;;13426:21:25;13483:2;13463:18;;;13456:30;13522:26;13502:18;;;13495:54;13566:18;;19359:67:20;13242:348:25;19359:67:20;19442:9;19437:179;19457:12;19453:1;:16;19437:179;;;19491:54;19519:6;;19526:1;19519:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19530:2;19534:7;;19542:1;19534:10;;;;;;;:::i;:::-;;;;;;;19491:27;:54::i;:::-;19578:6;;19585:1;19578:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19565:39:20;;19589:7;;19597:1;19589:10;;;;;;;:::i;:::-;;;;;;;19601:2;19565:39;;;;;;13769:25:25;;;-1:-1:-1;;;;;13830:55:25;13825:2;13810:18;;13803:83;13757:2;13742:18;;13595:297;19565:39:20;;;;;;;;19471:3;;;:::i;:::-;;;19437:179;;;;19239:384;19141:482;;;;;:::o;1831:101:2:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;20454:238:20:-;20581:16;20622:62;20651:9;20662;20673:10;20622:28;:62::i;5263:989::-;5503:24;5484:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;-1:-1:-1;;;;;5566:15:20;::::1;5540:23;5566:15:::0;;;:8:::1;:15;::::0;;;;5600:19;;-1:-1:-1;;;5600:19:20;::::1;;;5592:47;;;::::0;-1:-1:-1;;;5592:47:20;;9813:2:25;5592:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;5592:47:20::1;9611:339:25::0;5592:47:20::1;5689:16:::0;;5652:22:::1;::::0;644:6:::1;::::0;5677:28:::1;::::0;5689:16;;::::1;5677:35;5689:16;5677:9:::0;:28:::1;:::i;:::-;:35;;;;:::i;:::-;5652:60:::0;-1:-1:-1;5779:72:20::1;5809:7;5818:26;5652:60:::0;5818:9;:26:::1;:::i;5779:72::-;5769:82;;5862:16;5881:7;5889:1;5881:10;;;;;;;;:::i;:::-;;;;;;;5862:29;;5922:11;5910:8;:23;;5902:58;;;::::0;-1:-1:-1;;;5902:58:20;;12195:2:25;5902:58:20::1;::::0;::::1;12177:21:25::0;12234:2;12214:18;;;12207:30;12273:24;12253:18;;;12246:52;12315:18;;5902:58:20::1;11993:346:25::0;5902:58:20::1;5973:139;6019:4;;6024:1;6019:7;;;;;;;:::i;5973:139::-;6125:20;6131:7;6140:4;;6125:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;6125:5:20::1;::::0;-1:-1:-1;;;6125:20:20:i:1;:::-;6156:88;6168:9:::0;6179:4;;6184:15:::1;6198:1;6179:4:::0;6184:15:::1;:::i;20016:183::-:0;20105:15;20140:51;20163:7;20172:8;20182;20140:22;:51::i;14604:1116::-;14852:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;-1:-1:-1;;;;;14906:5:20::1;14881:30;:4:::0;;14886:15:::1;14900:1;14881:4:::0;14886:15:::1;:::i;:::-;14881:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14881:30:20::1;;14873:55;;;::::0;-1:-1:-1;;;14873:55:20;;11721:2:25;14873:55:20::1;::::0;::::1;11703:21:25::0;11760:2;11740:18;;;11733:30;-1:-1:-1;;;11779:18:25;;;11772:42;11831:18;;14873:55:20::1;11519:336:25::0;14873:55:20::1;14939:139;14985:4;;14990:1;14985:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14994:10;15006:51;15031:7;15040:4;;15045:1;15040:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15049:4;;15054:1;15049:7;;;;;;;:::i;15006:51::-;15059:8;14939:31;:139::i;:::-;15109:38;::::0;-1:-1:-1;;;15109:38:20;;15141:4:::1;15109:38;::::0;::::1;4687:74:25::0;15089:17:20::1;::::0;15116:5:::1;-1:-1:-1::0;;;;;15109:23:20::1;::::0;::::1;::::0;4660:18:25;;15109:38:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15089:58;;15158:40;15193:4;;15158:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;15158:34:20::1;::::0;-1:-1:-1;;;15158:40:20:i:1;:::-;15221:38;::::0;-1:-1:-1;;;15221:38:20;;15253:4:::1;15221:38;::::0;::::1;4687:74:25::0;15262:9:20;;15228:5:::1;-1:-1:-1::0;;;;;15221:23:20::1;::::0;::::1;::::0;4660:18:25;;15221:38:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;;;:::i;:::-;-1:-1:-1::0;;;;;15342:15:20;::::1;15316:23;15342:15:::0;;;:8:::1;:15;::::0;;;;15376:19;;15209:62;;-1:-1:-1;15342:15:20;-1:-1:-1;;;15376:19:20;::::1;;;15368:47;;;::::0;-1:-1:-1;;;15368:47:20;;9813:2:25;15368:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;15368:47:20::1;9611:339:25::0;15368:47:20::1;15463:16:::0;;15426:22:::1;::::0;644:6:::1;::::0;15451:28:::1;::::0;15463:16;;::::1;15451:35;15463:16;15451:9:::0;:28:::1;:::i;:::-;:35;;;;:::i;:::-;15426:60:::0;-1:-1:-1;15497:21:20::1;15521:26;15426:60:::0;15521:9;:26:::1;:::i;:::-;15497:50;;15583:12;15566:13;:29;;15558:68;;;::::0;-1:-1:-1;;;15558:68:20;;11366:2:25;15558:68:20::1;::::0;::::1;11348:21:25::0;11405:2;11385:18;;;11378:30;11444:28;11424:18;;;11417:56;11490:18;;15558:68:20::1;11164:350:25::0;15558:68:20::1;15681:14:::0;;15639:73:::1;::::0;15655:13;;15670:2;;15674:5;;-1:-1:-1;;;15681:14:20;::::1;;;15697::::0;15639:15:::1;:73::i;:::-;14862:858;;;;14604:1116:::0;;;;;;;;:::o;17365:818::-;17451:10;-1:-1:-1;;;;;17451:21:20;;;;:46;;-1:-1:-1;1247:7:2;1273:6;-1:-1:-1;;;;;1273:6:2;17476:10:20;:21;17451:46;:79;;;-1:-1:-1;;;;;;17501:17:20;;;;;;:8;:17;;;;;;;;17519:10;17501:29;;;;;;;;;;17451:79;17443:109;;;;-1:-1:-1;;;17443:109:20;;13098:2:25;17443:109:20;;;13080:21:25;13137:2;13117:18;;;13110:30;13176:19;13156:18;;;13149:47;13213:18;;17443:109:20;12896:341:25;17443:109:20;789:4;17573:19;;;;;17565:51;;;;-1:-1:-1;;;17565:51:20;;14488:2:25;17565:51:20;;;14470:21:25;14527:2;14507:18;;;14500:30;14566:21;14546:18;;;14539:49;14605:18;;17565:51:20;14286:343:25;17565:51:20;17647:9;;;-1:-1:-1;;;17647:9:20;;;;;17635:21;;;;;17627:56;;;;-1:-1:-1;;;17627:56:20;;14836:2:25;17627:56:20;;;14818:21:25;14875:2;14855:18;;;14848:30;14914:24;14894:18;;;14887:52;14956:18;;17627:56:20;14634:346:25;17627:56:20;-1:-1:-1;;;;;17722:17:20;;17696:23;17722:17;;;:8;:17;;;;;17758:19;;-1:-1:-1;;;17758:19:20;;;;17750:47;;;;-1:-1:-1;;;17750:47:20;;15187:2:25;17750:47:20;;;15169:21:25;15226:2;15206:18;;;15199:30;15265:17;15245:18;;;15238:45;15300:18;;17750:47:20;14985:339:25;17750:47:20;17816:16;;:28;;;;:16;;;;;:28;17808:59;;;;-1:-1:-1;;;17808:59:20;;15531:2:25;17808:59:20;;;15513:21:25;15570:2;15550:18;;;15543:30;15609:20;15589:18;;;15582:48;15647:18;;17808:59:20;15329:342:25;17808:59:20;17947:14;;17881:18;;;;644:6;-1:-1:-1;;;17947:14:20;;;;;;;19823:17;;:24;;19903:22;;;17975:31;;;;;;-1:-1:-1;;18017:33:20;;;;;;;;;;;;;;;;18061:27;;;;;;;;;;;;;;;;18106:69;;;9075:34:25;;;9140:2;9125:18;;9118:43;;;;9177:18;;;9170:43;-1:-1:-1;;;18160:14:20;;;9244:2:25;9229:18;;9222:43;18017:33:20;;-1:-1:-1;17975:31:20;-1:-1:-1;;;;;;18106:69:20;;;;;9035:3:25;9020:19;18106:69:20;;;;;;;;17432:751;;;17365:818;;:::o;20700:224::-;20812:24;20861:55;20892:7;20901:8;20911:4;20861:30;:55::i;13358:1240::-;13587:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;13627:5:::1;-1:-1:-1::0;;;;;13616:16:20::1;:4;;13621:1;13616:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13616:16:20::1;;13608:41;;;::::0;-1:-1:-1;;;13608:41:20;;11721:2:25;13608:41:20::1;::::0;::::1;11703:21:25::0;11760:2;11740:18;;;11733:30;-1:-1:-1;;;11779:18:25;;;11772:42;11831:18;;13608:41:20::1;11519:336:25::0;13608:41:20::1;13667:5;-1:-1:-1::0;;;;;13660:21:20::1;;13689:9;13660:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;13726:5;-1:-1:-1::0;;;;;13719:22:20::1;;13742:49;13767:7;13776:5;13783:4;;13788:1;13783:7;;;;;;;:::i;13742:49::-;13719:84;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;12536:55:25;;;13719:84:20::1;::::0;::::1;12518:74:25::0;13793:9:20::1;12608:18:25::0;;;12601:34;12491:18;;13719:84:20::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13712:92;;;;:::i;:::-;13815:16;13834:4:::0;;13839:15:::1;13853:1;13834:4:::0;13839:15:::1;:::i;:::-;13834:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13890:30;::::0;-1:-1:-1;;;13890:30:20;;-1:-1:-1;;;;;4705:55:25;;;13890:30:20::1;::::0;::::1;4687:74:25::0;13815:40:20;;-1:-1:-1;13866:21:20::1;::::0;13890:26;::::1;::::0;::::1;::::0;4660:18:25;;13890:30:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13951:41;::::0;-1:-1:-1;;;13951:41:20;;13986:4:::1;13951:41;::::0;::::1;4687:74:25::0;13866:54:20;;-1:-1:-1;13931:17:20::1;::::0;-1:-1:-1;;;;;13951:26:20;::::1;::::0;::::1;::::0;4660:18:25;;13951:41:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13931:61;;14003:40;14038:4;;14003:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;14003:34:20::1;::::0;-1:-1:-1;;;14003:40:20:i:1;:::-;14066:41;::::0;-1:-1:-1;;;14066:41:20;;14101:4:::1;14066:41;::::0;::::1;4687:74:25::0;14110:9:20;;-1:-1:-1;;;;;14066:26:20;::::1;::::0;::::1;::::0;4660:18:25;;14066:41:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;-1:-1:-1::0;;;;;14190:15:20;::::1;14164:23;14190:15:::0;;;:8:::1;:15;::::0;;;;14224:19;;14054:65;;-1:-1:-1;14190:15:20;-1:-1:-1;;;14224:19:20;::::1;;;14216:47;;;::::0;-1:-1:-1;;;14216:47:20;;9813:2:25;14216:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;14216:47:20::1;9611:339:25::0;14216:47:20::1;14311:16:::0;;14274:22:::1;::::0;644:6:::1;::::0;14299:28:::1;::::0;14311:16;;::::1;14299:35;14311:16;14299:9:::0;:28:::1;:::i;:::-;:35;;;;:::i;:::-;14274:60:::0;-1:-1:-1;14347:92:20::1;14359:26;14274:60:::0;14359:9;:26:::1;:::i;:::-;14408:14:::0;;14387:8;;14397:2;;14401:5;;-1:-1:-1;;;14408:14:20;::::1;;;14424::::0;14347:11:::1;:92::i;:::-;14474:30;::::0;-1:-1:-1;;;14474:30:20;;-1:-1:-1;;;;;4705:55:25;;;14474:30:20::1;::::0;::::1;4687:74:25::0;14524:12:20;;14507:13;;14474:26;::::1;::::0;::::1;::::0;4660:18:25;;14474:30:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;;:::i;:::-;:62;;14452:138;;;::::0;-1:-1:-1;;;14452:138:20;;11366:2:25;14452:138:20::1;::::0;::::1;11348:21:25::0;11405:2;11385:18;;;11378:30;11444:28;11424:18;;;11417:56;11490:18;;14452:138:20::1;11164:350:25::0;8368:1184:20;8606:24;8587:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;-1:-1:-1;;;;;8676:5:20::1;8651:30;:4:::0;;8656:15:::1;8670:1;8651:4:::0;8656:15:::1;:::i;:::-;8651:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8651:30:20::1;;8643:55;;;::::0;-1:-1:-1;;;8643:55:20;;11721:2:25;8643:55:20::1;::::0;::::1;11703:21:25::0;11760:2;11740:18;;;11733:30;-1:-1:-1;;;11779:18:25;;;11772:42;11831:18;;8643:55:20::1;11519:336:25::0;8643:55:20::1;-1:-1:-1::0;;;;;8737:15:20;::::1;8711:23;8737:15:::0;;;:8:::1;:15;::::0;;;;8771:19;;-1:-1:-1;;;8771:19:20;::::1;;;8763:47;;;::::0;-1:-1:-1;;;8763:47:20;;9813:2:25;8763:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;8763:47:20::1;9611:339:25::0;8763:47:20::1;8833:55;8864:7;8873:8;8883:4;;8833:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;8833:30:20::1;::::0;-1:-1:-1;;;8833:55:20:i:1;:::-;8823:65;;8901:22;8934:21:::0;9010:17:::1;9030:7;9055:1;9038:7;:14;:18;;;;:::i;:::-;9030:27;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;9101:16;;9030:27;;-1:-1:-1;644:6:20::1;::::0;9089:28:::1;::::0;9101:16;;::::1;9089:35;9101:16;9030:27:::0;9089:28:::1;:::i;:::-;:35;;;;:::i;:::-;9072:52:::0;-1:-1:-1;9155:26:20::1;9072:52:::0;9155:9;:26:::1;:::i;:::-;9139:42;;8968:225;9230:12;9213:13;:29;;9205:68;;;::::0;-1:-1:-1;;;9205:68:20;;11366:2:25;9205:68:20::1;::::0;::::1;11348:21:25::0;11405:2;11385:18;;;11378:30;11444:28;11424:18;;;11417:56;11490:18;;9205:68:20::1;11164:350:25::0;9205:68:20::1;9286:141;9332:4;;9337:1;9332:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9341:10;9353:51;9378:7;9387:4;;9392:1;9387:7;;;;;;;:::i;9353:51::-;9406:7;9414:1;9406:10;;;;;;;;:::i;:::-;;;;;;;9286:31;:141::i;:::-;9440:20;9446:7;9455:4;;9440:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;9440:5:20::1;::::0;-1:-1:-1;;;9440:20:20:i:1;:::-;9513:14:::0;;9471:73:::1;::::0;9487:13;;9502:2;;9506:5;;-1:-1:-1;;;9513:14:20;::::1;;;9529::::0;9471:15:::1;:73::i;18876:259::-:0;1247:7:2;1273:6;-1:-1:-1;;;;;1273:6:2;18945:10:20;:21;18937:51;;;;-1:-1:-1;;;18937:51:20;;13098:2:25;18937:51:20;;;13080:21:25;13137:2;13117:18;;;13110:30;13176:19;13156:18;;;13149:47;13213:18;;18937:51:20;12896:341:25;18937:51:20;747:2;19007:25;;;;;18999:57;;;;-1:-1:-1;;;18999:57:20;;15878:2:25;18999:57:20;;;15860:21:25;15917:2;15897:18;;;15890:30;15956:21;15936:18;;;15929:49;15995:18;;18999:57:20;15676:343:25;18999:57:20;19067:9;:20;;;;-1:-1:-1;;;19067:20:20;;;;;;;;;;;;;19103:24;;3048:40:25;;;19103:24:20;;3036:2:25;3021:18;19103:24:20;;;;;;;18876:259;:::o;6258:1062::-;6477:24;6458:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;6533:5:::1;-1:-1:-1::0;;;;;6522:16:20::1;:4;;6527:1;6522:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6522:16:20::1;;6514:41;;;::::0;-1:-1:-1;;;6514:41:20;;11721:2:25;6514:41:20::1;::::0;::::1;11703:21:25::0;11760:2;11740:18;;;11733:30;-1:-1:-1;;;11779:18:25;;;11772:42;11831:18;;6514:41:20::1;11519:336:25::0;6514:41:20::1;-1:-1:-1::0;;;;;6594:15:20;::::1;6568:23;6594:15:::0;;;:8:::1;:15;::::0;;;;6628:19;;-1:-1:-1;;;6628:19:20;::::1;;;6620:47;;;::::0;-1:-1:-1;;;6620:47:20;;9813:2:25;6620:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;6620:47:20::1;9611:339:25::0;6620:47:20::1;6690:56;6721:7;6730:9;6741:4;;6690:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;6690:30:20::1;::::0;-1:-1:-1;;;6690:56:20:i:1;:::-;6680:66;;6759:17;6779:7;6804:1;6787:7;:14;:18;;;;:::i;:::-;6779:27;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;6854:16;;6779:27;;-1:-1:-1;6817:22:20::1;::::0;644:6:::1;::::0;6842:28:::1;::::0;6854:16;;::::1;6842:35;6854:16;6779:27:::0;6842:28:::1;:::i;:::-;:35;;;;:::i;:::-;6817:60:::0;-1:-1:-1;6888:21:20::1;6912:26;6817:60:::0;6912:9;:26:::1;:::i;:::-;6888:50;;6976:12;6959:13;:29;;6951:68;;;::::0;-1:-1:-1;;;6951:68:20;;11366:2:25;6951:68:20::1;::::0;::::1;11348:21:25::0;11405:2;11385:18;;;11378:30;11444:28;11424:18;;;11417:56;11490:18;;6951:68:20::1;11164:350:25::0;6951:68:20::1;7039:5;-1:-1:-1::0;;;;;7032:21:20::1;;7061:9;7032:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;7098:5;-1:-1:-1::0;;;;;7091:22:20::1;;7114:49;7139:7;7148:5;7155:4;;7160:1;7155:7;;;;;;;:::i;7114:49::-;7091:84;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;12536:55:25;;;7091:84:20::1;::::0;::::1;12518:74:25::0;7165:9:20::1;12608:18:25::0;;;12601:34;12491:18;;7091:84:20::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7084:92;;;;:::i;:::-;7189:20;7195:7;7204:4;;7189:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7189:5:20::1;::::0;-1:-1:-1;;;7189:20:20:i:1;:::-;7220:92;7232:13:::0;7247:4;;7252:15:::1;7266:1;7247:4:::0;7252:15:::1;:::i;:::-;7247:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7281:14:::0;;7270:2;;7274:5;;-1:-1:-1;;;7281:14:20;::::1;;;7297::::0;7220:11:::1;:92::i;:::-;6503:817;;;;6258:1062:::0;;;;;;;;;:::o;2081:198:2:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:2;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:2;;16226:2:25;2161:73:2::1;::::0;::::1;16208:21:25::0;16265:2;16245:18;;;16238:30;16304:34;16284:18;;;16277:62;16375:8;16355:18;;;16348:36;16401:19;;2161:73:2::1;16024:402:25::0;2161:73:2::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;12148:1204:20:-;12398:8;1119:15;1107:8;:27;;1099:47;;;;-1:-1:-1;;;1099:47:20;;9478:2:25;1099:47:20;;;9460:21:25;9517:1;9497:18;;;9490:29;-1:-1:-1;;;9535:18:25;;;9528:37;9582:18;;1099:47:20;9276:330:25;1099:47:20;12419:139:::1;12465:4;;12470:1;12465:7;;;;;;;:::i;12419:139::-;12569:16;12588:4:::0;;12593:15:::1;12607:1;12588:4:::0;12593:15:::1;:::i;:::-;12588:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12644:30;::::0;-1:-1:-1;;;12644:30:20;;-1:-1:-1;;;;;4705:55:25;;;12644:30:20::1;::::0;::::1;4687:74:25::0;12569:40:20;;-1:-1:-1;12620:21:20::1;::::0;12644:26;::::1;::::0;::::1;::::0;4660:18:25;;12644:30:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12705:41;::::0;-1:-1:-1;;;12705:41:20;;12740:4:::1;12705:41;::::0;::::1;4687:74:25::0;12620:54:20;;-1:-1:-1;12685:17:20::1;::::0;-1:-1:-1;;;;;12705:26:20;::::1;::::0;::::1;::::0;4660:18:25;;12705:41:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12685:61;;12757:40;12792:4;;12757:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;12757:34:20::1;::::0;-1:-1:-1;;;12757:40:20:i:1;:::-;12820:41;::::0;-1:-1:-1;;;12820:41:20;;12855:4:::1;12820:41;::::0;::::1;4687:74:25::0;12864:9:20;;-1:-1:-1;;;;;12820:26:20;::::1;::::0;::::1;::::0;4660:18:25;;12820:41:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;-1:-1:-1::0;;;;;12944:15:20;::::1;12918:23;12944:15:::0;;;:8:::1;:15;::::0;;;;12978:19;;12808:65;;-1:-1:-1;12944:15:20;-1:-1:-1;;;12978:19:20;::::1;;;12970:47;;;::::0;-1:-1:-1;;;12970:47:20;;9813:2:25;12970:47:20::1;::::0;::::1;9795:21:25::0;9852:2;9832:18;;;9825:30;-1:-1:-1;;;9871:18:25;;;9864:45;9926:18;;12970:47:20::1;9611:339:25::0;12970:47:20::1;13065:16:::0;;13028:22:::1;::::0;644:6:::1;::::0;13053:28:::1;::::0;13065:16;;::::1;13053:35;13065:16;13053:9:::0;:28:::1;:::i;:::-;:35;;;;:::i;:::-;13028:60:::0;-1:-1:-1;13101:92:20::1;13113:26;13028:60:::0;13113:9;:26:::1;:::i;13101:92::-;13228:30;::::0;-1:-1:-1;;;13228:30:20;;-1:-1:-1;;;;;4705:55:25;;;13228:30:20::1;::::0;::::1;4687:74:25::0;13278:12:20;;13261:13;;13228:26;::::1;::::0;::::1;::::0;4660:18:25;;13228:30:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;;:::i;:::-;:62;;13206:138;;;::::0;-1:-1:-1;;;13206:138:20;;11366:2:25;13206:138:20::1;::::0;::::1;11348:21:25::0;11405:2;11385:18;;;11378:30;11444:28;11424:18;;;11417:56;11490:18;;13206:138:20::1;11164:350:25::0;13206:138:20::1;12408:944;;;;;12148:1204:::0;;;;;;;;:::o;18189:681::-;1247:7:2;1273:6;-1:-1:-1;;;;;1273:6:2;18271:10:20;:21;18263:51;;;;-1:-1:-1;;;18263:51:20;;13098:2:25;18263:51:20;;;13080:21:25;13137:2;13117:18;;;13110:30;13176:19;13156:18;;;13149:47;13213:18;;18263:51:20;12896:341:25;18263:51:20;695:5;18335:21;;;;;18327:51;;;;-1:-1:-1;;;18327:51:20;;16633:2:25;18327:51:20;;;16615:21:25;16672:2;16652:18;;;16645:30;16711:19;16691:18;;;16684:47;16748:18;;18327:51:20;16431:341:25;18327:51:20;-1:-1:-1;;;;;18417:17:20;;18391:23;18417:17;;;:8;:17;;;;;18453:19;;-1:-1:-1;;;18453:19:20;;;;18445:47;;;;-1:-1:-1;;;18445:47:20;;15187:2:25;18445:47:20;;;15169:21:25;15226:2;15206:18;;;15199:30;15265:17;15245:18;;;15238:45;15300:18;;18445:47:20;14985:339:25;18445:47:20;18511:14;;:24;;;;-1:-1:-1;;;18511:14:20;;;;:24;18503:55;;;;-1:-1:-1;;;18503:55:20;;15531:2:25;18503:55:20;;;15513:21:25;15570:2;15550:18;;;15543:30;15609:20;15589:18;;;15582:48;15647:18;;18503:55:20;15329:342:25;18503:55:20;18628:16;;;18752:23;;;-1:-1:-1;;;18752:23:20;;;644:6;18628:16;;;;;;19823:17;;;:24;;;;;;18708:33;;;;;;-1:-1:-1;;18708:33:20;;;19903:22;;;;18666:31;;;18708:33;;;;;;;18752:23;;;;;;;;;;;18793:69;;;9075:34:25;;;9140:2;9125:18;;9118:43;;;;18837:16:20;;;;9177:18:25;;;9170:43;9244:2;9229:18;;9222:43;;;;19823:24:20;19903:22;-1:-1:-1;;;;;18793:69:20;;;;;9035:3:25;9020:19;18793:69:20;8825:446:25;16917:442:20;17021:10;-1:-1:-1;;;;;17021:21:20;;;;:46;;-1:-1:-1;1247:7:2;1273:6;-1:-1:-1;;;;;1273:6:2;17046:10:20;:21;17021:46;17013:76;;;;-1:-1:-1;;;17013:76:20;;13098:2:25;17013:76:20;;;13080:21:25;13137:2;13117:18;;;13110:30;13176:19;13156:18;;;13149:47;13213:18;;17013:76:20;12896:341:25;17013:76:20;-1:-1:-1;;;;;17110:17:20;;;;;;:8;:17;;;;;:29;-1:-1:-1;;;17110:29:20;;;;17102:57;;;;-1:-1:-1;;;17102:57:20;;15187:2:25;17102:57:20;;;15169:21:25;15226:2;15206:18;;;15199:30;15265:17;15245:18;;;15238:45;15300:18;;17102:57:20;14985:339:25;17102:57:20;-1:-1:-1;;;;;17178:17:20;;;;;;;:8;:17;;;;;;;;:26;;;;;;;;;;:39;;;:26;;;;:39;;;17170:70;;;;-1:-1:-1;;;17170:70:20;;15531:2:25;17170:70:20;;;15513:21:25;15570:2;15550:18;;;15543:30;15609:20;15589:18;;;15582:48;15647:18;;17170:70:20;15329:342:25;17170:70:20;-1:-1:-1;;;;;17253:17:20;;;;;;;:8;:17;;;;;;;;:26;;;;;;;;;;;;;:38;;;;;;;;;;;;;17309:42;;16945:74:25;;;17035:18;;;17028:50;17253:17:20;;17309:42;;16918:18:25;17309:42:20;16777:307:25;2413:526:24;2515:17;2564:1;2553:8;:12;2545:67;;;;-1:-1:-1;;;2545:67:24;;17291:2:25;2545:67:24;;;17273:21:25;17330:2;17310:18;;;17303:30;17369:34;17349:18;;;17342:62;17440:12;17420:18;;;17413:40;17470:19;;2545:67:24;17089:406:25;2545:67:24;2643:1;2631:9;:13;:31;;;;;2661:1;2648:10;:14;2631:31;2623:83;;;;-1:-1:-1;;;2623:83:24;;17702:2:25;2623:83:24;;;17684:21:25;17741:2;17721:18;;;17714:30;17780:34;17760:18;;;17753:62;-1:-1:-1;;;17831:18:25;;;17824:37;17878:19;;2623:83:24;17500:403:25;2623:83:24;2717:23;2743:14;:8;2754:3;2743:14;:::i;:::-;2717:40;-1:-1:-1;2768:17:24;2788:28;2806:10;2717:40;2788:28;:::i;:::-;2768:48;-1:-1:-1;2827:19:24;2870:15;2850:16;:9;2862:4;2850:16;:::i;:::-;2849:36;;;;:::i;:::-;2827:58;-1:-1:-1;2908:23:24;2827:58;2908:9;:23;:::i;:::-;2896:35;2413:526;-1:-1:-1;;;;;;;2413:526:24:o;3617:578::-;3721:21;3778:1;3763:4;:11;:16;;3755:58;;;;-1:-1:-1;;;3755:58:24;;18110:2:25;3755:58:24;;;18092:21:25;18149:2;18129:18;;;18122:30;18188:31;18168:18;;;18161:59;18237:18;;3755:58:24;17908:353:25;3755:58:24;3870:4;:11;3859:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3859:23:24;;3849:33;;3910:8;3897:7;3905:1;3897:10;;;;;;;;:::i;:::-;;;;;;:21;;;;;3938:9;3933:244;3967:1;3953:4;:11;:15;3949:1;:19;3933:244;;;3995:17;4014:18;4036:42;4048:7;4057:4;4062:1;4057:7;;;;;;;;:::i;:::-;;;;;;;4066:4;4071:1;4075;4071:5;4066:11;;;;;;;;:::i;:::-;;;;;;;4036;:42::i;:::-;3994:84;;;;4114:47;4127:7;4135:1;4127:10;;;;;;;;:::i;:::-;;;;;;;4139:9;4150:10;4114:12;:47::i;:::-;4097:7;4105:1;4109;4105:5;4097:14;;;;;;;;:::i;:::-;;;;;;;;;;:64;-1:-1:-1;;3970:3:24;;3933:244;;;;3617:578;;;;;:::o;920:470::-;1009:12;1035:14;1051;1069:26;1080:6;1088;1069:10;:26::i;:::-;1232:32;;-1:-1:-1;;18528:2:25;18524:15;;;18520:24;;1232:32:24;;;18508:37:25;18579:15;;;18575:24;18561:12;;;18554:46;1034:61:24;;-1:-1:-1;1034:61:24;-1:-1:-1;1200:7:24;;18616:12:25;;1232:32:24;;;;;;;;;;;;1222:43;;;;;;1147:231;;;;;;;;19010:66:25;18998:79;;19114:2;19110:15;;;;-1:-1:-1;;19106:88:25;19102:1;19093:11;;19086:109;19220:2;19211:12;;19204:28;19262:66;19257:2;19248:12;;19241:88;19354:2;19345:12;;18639:724;1147:231:24;;;;-1:-1:-1;;1147:231:24;;;;;;;;;1137:242;;1147:231;1137:242;;;;;920:470;-1:-1:-1;;;;;;920:470:24:o;1028:448:19:-;1299:51;;;-1:-1:-1;;;;;19649:15:25;;;1299:51:19;;;19631:34:25;19701:15;;;19681:18;;;19674:43;19733:18;;;;19726:34;;;1299:51:19;;;;;;;;;;19543:18:25;;;;1299:51:19;;;;;;;;;;;;;1288:63;;-1:-1:-1;;;;1288:10:19;;;;:63;;1299:51;1288:63;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1252:99;;;;1370:7;:57;;;;-1:-1:-1;1382:11:19;;:16;;:44;;;1413:4;1402:24;;;;;;;;;;;;:::i;:::-;1362:106;;;;-1:-1:-1;;;1362:106:19;;20515:2:25;1362:106:19;;;20497:21:25;20554:2;20534:18;;;20527:30;20593:34;20573:18;;;20566:62;20664:6;20644:18;;;20637:34;20688:19;;1362:106:19;20313:400:25;1362:106:19;1162:314;;1028:448;;;;:::o;1838:738:20:-;1927:9;1922:647;1956:1;1942:4;:11;:15;;;;:::i;:::-;1938:1;:19;1922:647;;;1980:13;1995:14;2014:4;2019:1;2014:7;;;;;;;;:::i;:::-;;;;;;;2023:4;2028:1;2032;2028:5;;;;:::i;:::-;2023:11;;;;;;;;:::i;:::-;;;;;;;1979:56;;;;2051:14;2070:42;2098:5;2105:6;2070:27;:42::i;:::-;-1:-1:-1;2050:62:20;-1:-1:-1;2127:17:20;2147:7;2155:5;:1;2159;2155:5;:::i;:::-;2147:14;;;;;;;;:::i;:::-;;;;;;;2127:34;;2177:18;2197;2228:6;-1:-1:-1;;;;;2219:15:20;:5;-1:-1:-1;;;;;2219:15:20;;:61;;2261:9;2277:1;2219:61;;;2243:1;2247:9;2219:61;2176:104;;;;2295:10;2326:1;2312:4;:11;:15;;;;:::i;:::-;2308:1;:19;:92;;2395:4;2308:92;;;2330:54;2355:7;2364:6;2372:4;2377:5;:1;2381;2377:5;:::i;:::-;2372:11;;;;;;;;:::i;:::-;;;;;;;2330:24;:54::i;:::-;2295:105;;2429:48;2454:7;2463:5;2470:6;2429:24;:48::i;:::-;-1:-1:-1;;;;;2415:68:20;;2502:10;2514;2526:2;2540:1;2530:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2530:12:20;;2415:142;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1964:605;;;;;;;1959:3;;;;:::i;:::-;;;1922:647;;;;1838:738;;:::o;2582:759::-;2803:25;644:6;2831:23;2848:6;2831:14;:23;:::i;:::-;:30;;;;:::i;:::-;2803:58;-1:-1:-1;2872:24:20;2899:34;2803:58;2899:14;:34;:::i;:::-;2872:61;-1:-1:-1;2950:21:20;;2946:113;;3019:8;-1:-1:-1;;;;;2993:54:20;3005:12;-1:-1:-1;;;;;2993:54:20;;3029:17;2993:54;;;;1062:25:25;;1050:2;1035:18;;916:177;2993:54:20;;;;;;;;2946:113;3073:20;;3069:194;;3110:69;3138:8;3148:12;3162:16;3110:27;:69::i;:::-;3224:8;-1:-1:-1;;;;;3199:52:20;3210:12;-1:-1:-1;;;;;3199:52:20;;3234:16;3199:52;;;;1062:25:25;;1050:2;1035:18;;916:177;3199:52:20;;;;;;;;3069:194;3273:60;3301:8;3311:6;3319:13;3273:27;:60::i;:::-;2792:549;;2582:759;;;;;;:::o;4276:599:24:-;4380:21;4437:1;4422:4;:11;:16;;4414:58;;;;-1:-1:-1;;;4414:58:24;;18110:2:25;4414:58:24;;;18092:21:25;18149:2;18129:18;;;18122:30;18188:31;18168:18;;;18161:59;18237:18;;4414:58:24;17908:353:25;4414:58:24;4529:4;:11;4518:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4518:23:24;;4508:33;;4586:9;4556:7;4581:1;4564:7;:14;:18;4556:27;;;;;;;;:::i;:::-;;;;;;;;;;:39;4627:11;;-1:-1:-1;;4627:15:24;4610:247;4644:5;;4610:247;;4676:17;4695:18;4717:42;4729:7;4738:4;4747:1;4743;:5;4738:11;;;;;;;;:::i;:::-;;;;;;;4751:4;4756:1;4751:7;;;;;;;;:::i;4717:42::-;4675:84;;;;4795:46;4807:7;4815:1;4807:10;;;;;;;;:::i;:::-;;;;;;;4819:9;4830:10;4795:11;:46::i;:::-;4778:7;4790:1;4786;:5;4778:14;;;;;;;;:::i;:::-;;;;;;;;;;:63;-1:-1:-1;;;;4651:3:24;4610:247;;3347:769:20;3545:25;644:6;3573:23;3590:6;3573:14;:23;:::i;:::-;:30;;;;:::i;:::-;3545:58;-1:-1:-1;3614:24:20;3641:34;3545:58;3641:14;:34;:::i;:::-;3614:61;-1:-1:-1;3692:21:20;;3688:110;;3761:5;-1:-1:-1;;;;;3735:51:20;3747:12;-1:-1:-1;;;;;3735:51:20;;3768:17;3735:51;;;;1062:25:25;;1050:2;1035:18;;916:177;3735:51:20;;;;;;;;3688:110;3812:20;;3808:188;;3849:66;3877:5;3884:12;3898:16;3849:27;:66::i;:::-;3960:5;-1:-1:-1;;;;;3935:49:20;3946:12;-1:-1:-1;;;;;3935:49:20;;3967:16;3935:49;;;;1062:25:25;;1050:2;1035:18;;916:177;3935:49:20;;;;;;;;3808:188;4006:37;;;;;;;;1062:25:25;;;4013:5:20;-1:-1:-1;;;;;4006:22:20;;;;1035:18:25;;4006:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4054:54;4086:6;4094:13;1484:202:19;1598:12;;;1558;1598;;;;;;;;;-1:-1:-1;;;;;1576:7:19;;;1591:5;;1576:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1557:54;;;1630:7;1622:56;;;;-1:-1:-1;;;1622:56:19;;21631:2:25;1622:56:19;;;21613:21:25;21670:2;21650:18;;;21643:30;21709:34;21689:18;;;21682:62;21780:6;21760:18;;;21753:34;21804:19;;1622:56:19;21429:400:25;622:398:19;854:45;;;-1:-1:-1;;;;;12536:55:25;;;854:45:19;;;12518:74:25;12608:18;;;;12601:34;;;854:45:19;;;;;;;;;;12491:18:25;;;;854:45:19;;;;;;;;;;;;;843:57;;-1:-1:-1;;;;843:10:19;;;;:57;;854:45;843:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;807:93;;;;919:7;:57;;;;-1:-1:-1;931:11:19;;:16;;:44;;;962:4;951:24;;;;;;;;;;;;:::i;:::-;911:101;;;;-1:-1:-1;;;911:101:19;;22036:2:25;911:101:19;;;22018:21:25;22075:2;22055:18;;;22048:30;22114:33;22094:18;;;22087:61;22165:18;;911:101:19;21834:355:25;911:101:19;729:291;;622:398;;;:::o;1359:130:2:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:2;719:10:8;1422:23:2;1414:68;;;;-1:-1:-1;;;1414:68:2;;22396:2:25;1414:68:2;;;22378:21:25;;;22415:18;;;22408:30;22474:34;22454:18;;;22447:62;22526:18;;1414:68:2;22194:356:25;2433:187:2;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:2;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;3060:475:24:-;3162:16;3211:1;3199:9;:13;3191:69;;;;-1:-1:-1;;;3191:69:24;;22757:2:25;3191:69:24;;;22739:21:25;22796:2;22776:18;;;22769:30;22835:34;22815:18;;;22808:62;22906:13;22886:18;;;22879:41;22937:19;;3191:69:24;22555:407:25;3191:69:24;3291:1;3279:9;:13;:31;;;;;3309:1;3296:10;:14;3279:31;3271:83;;;;-1:-1:-1;;;3271:83:24;;17702:2:25;3271:83:24;;;17684:21:25;17741:2;17721:18;;;17714:30;17780:34;17760:18;;;17753:62;-1:-1:-1;;;17831:18:25;;;17824:37;17878:19;;3271:83:24;17500:403:25;3271:83:24;3365:17;3385:21;3397:9;3385;:21;:::i;:::-;:28;;3409:4;3385:28;:::i;:::-;3365:48;-1:-1:-1;3424:19:24;3447:22;3460:9;3447:10;:22;:::i;:::-;3446:30;;3473:3;3446:30;:::i;:::-;3424:52;-1:-1:-1;3499:23:24;3424:52;3499:9;:23;:::i;:::-;3498:29;;3526:1;3498:29;:::i;:::-;3487:40;3060:475;-1:-1:-1;;;;;;3060:475:24:o;1963:328::-;2054:15;2100:1;2090:7;:11;2082:60;;;;-1:-1:-1;;;2082:60:24;;23169:2:25;2082:60:24;;;23151:21:25;23208:2;23188:18;;;23181:30;23247:34;23227:18;;;23220:62;23318:6;23298:18;;;23291:34;23342:19;;2082:60:24;22967:400:25;2082:60:24;2172:1;2161:8;:12;:28;;;;;2188:1;2177:8;:12;2161:28;2153:80;;;;-1:-1:-1;;;2153:80:24;;17702:2:25;2153:80:24;;;17684:21:25;17741:2;17721:18;;;17714:30;17780:34;17760:18;;;17753:62;-1:-1:-1;;;17831:18:25;;;17824:37;17878:19;;2153:80:24;17500:403:25;2153:80:24;2275:8;2254:18;2264:8;2254:7;:18;:::i;:::-;:29;;;;:::i;10917:1225:20:-;11009:9;11004:1131;11038:1;11024:4;:11;:15;;;;:::i;:::-;11020:1;:19;11004:1131;;;11062:13;11077:14;11096:4;11101:1;11096:7;;;;;;;;:::i;:::-;;;;;;;11105:4;11110:1;11114;11110:5;;;;:::i;:::-;11105:11;;;;;;;;:::i;:::-;;;;;;;11061:56;;;;11133:14;11152:42;11180:5;11187:6;11152:27;:42::i;:::-;11132:62;;;11209:18;11244:48;11269:7;11278:5;11285:6;11244:24;:48::i;:::-;11209:84;;11308:19;11342:20;11433:16;11451;11472:4;-1:-1:-1;;;;;11472:16:20;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11432:58;;;;;;;;;11506:20;11528:21;11562:6;-1:-1:-1;;;;;11553:15:20;:5;-1:-1:-1;;;;;11553:15:20;;:61;;11595:8;11605;11553:61;;;11572:8;11582;11553:61;11643:38;;-1:-1:-1;;;11643:38:20;;-1:-1:-1;;;;;4705:55:25;;;11643:38:20;;;4687:74:25;11505:109:20;;-1:-1:-1;11505:109:20;;-1:-1:-1;11505:109:20;;11643:23;;;;;4660:18:25;;11643:38:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;11629:67;;11726:71;11756:11;11769:12;11783:13;11726:29;:71::i;:::-;11711:86;;11377:436;;;;11828:18;11848;11879:6;-1:-1:-1;;;;;11870:15:20;:5;-1:-1:-1;;;;;11870:15:20;;:67;;11915:12;11934:1;11870:67;;;11894:1;11898:12;11870:67;11827:110;;;;11952:10;11983:1;11969:4;:11;:15;;;;:::i;:::-;11965:1;:19;:92;;12052:4;11965:92;;;11987:54;12012:7;12021:6;12029:4;12034:5;:1;12038;12034:5;:::i;11987:54::-;12110:12;;;12120:1;12110:12;;;;;;;;;12072:51;;;;11952:105;;-1:-1:-1;;;;;;12072:9:20;;;;;:51;;12082:10;;12094;;11952:105;;12072:51;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11046:1089;;;;;;;;;11041:3;;;;:::i;:::-;;;11004:1131;;;;10917:1225;:::o;1448:402:24:-;1541:16;1559;1589:14;1608:26;1619:6;1627;1608:10;:26::i;:::-;1588:46;;;1646:16;1664;1699:32;1707:7;1716:6;1724;1699:7;:32::i;:::-;-1:-1:-1;;;;;1685:59:24;;:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1645:101;;;;;;;;;1790:6;-1:-1:-1;;;;;1780:16:24;:6;-1:-1:-1;;;;;1780:16:24;;:62;;1823:8;1833;1780:62;;;1800:8;1810;1780:62;1757:85;;;;-1:-1:-1;1448:402:24;-1:-1:-1;;;;;;;1448:402:24:o;481:347::-;556:14;572;617:6;-1:-1:-1;;;;;607:16:24;:6;-1:-1:-1;;;;;607:16:24;;599:65;;;;-1:-1:-1;;;599:65:24;;24222:2:25;599:65:24;;;24204:21:25;24261:2;24241:18;;;24234:30;24300:34;24280:18;;;24273:62;24371:6;24351:18;;;24344:34;24395:19;;599:65:24;24020:400:25;599:65:24;703:6;-1:-1:-1;;;;;694:15:24;:6;-1:-1:-1;;;;;694:15:24;;:53;;732:6;740;694:53;;;713:6;721;694:53;675:72;;-1:-1:-1;675:72:24;-1:-1:-1;;;;;;766:20:24;;758:62;;;;-1:-1:-1;;;758:62:24;;24627:2:25;758:62:24;;;24609:21:25;24666:2;24646:18;;;24639:30;24705:31;24685:18;;;24678:59;24754:18;;758:62:24;24425:353:25;758:62:24;481:347;;;;;:::o;14:184:25:-;-1:-1:-1;;;63:1:25;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:196;271:20;;-1:-1:-1;;;;;320:54:25;;310:65;;300:93;;389:1;386;379:12;300:93;203:196;;;:::o;404:186::-;463:6;516:2;504:9;495:7;491:23;487:32;484:52;;;532:1;529;522:12;484:52;555:29;574:9;555:29;:::i;595:316::-;672:6;680;688;741:2;729:9;720:7;716:23;712:32;709:52;;;757:1;754;747:12;709:52;-1:-1:-1;;780:23:25;;;850:2;835:18;;822:32;;-1:-1:-1;901:2:25;886:18;;;873:32;;595:316;-1:-1:-1;595:316:25:o;1098:367::-;1161:8;1171:6;1225:3;1218:4;1210:6;1206:17;1202:27;1192:55;;1243:1;1240;1233:12;1192:55;-1:-1:-1;1266:20:25;;1309:18;1298:30;;1295:50;;;1341:1;1338;1331:12;1295:50;1378:4;1370:6;1366:17;1354:29;;1438:3;1431:4;1421:6;1418:1;1414:14;1406:6;1402:27;1398:38;1395:47;1392:67;;;1455:1;1452;1445:12;1470:792;1601:6;1609;1617;1625;1633;1641;1649;1702:3;1690:9;1681:7;1677:23;1673:33;1670:53;;;1719:1;1716;1709:12;1670:53;1755:9;1742:23;1732:33;;1812:2;1801:9;1797:18;1784:32;1774:42;;1867:2;1856:9;1852:18;1839:32;1894:18;1886:6;1883:30;1880:50;;;1926:1;1923;1916:12;1880:50;1965:70;2027:7;2018:6;2007:9;2003:22;1965:70;:::i;:::-;2054:8;;-1:-1:-1;1939:96:25;-1:-1:-1;2108:38:25;;-1:-1:-1;2142:2:25;2127:18;;2108:38;:::i;:::-;2098:48;;2193:3;2182:9;2178:19;2165:33;2155:43;;2217:39;2251:3;2240:9;2236:19;2217:39;:::i;:::-;2207:49;;1470:792;;;;;;;;;;:::o;2267:632::-;2438:2;2490:21;;;2560:13;;2463:18;;;2582:22;;;2409:4;;2438:2;2661:15;;;;2635:2;2620:18;;;2409:4;2704:169;2718:6;2715:1;2712:13;2704:169;;;2779:13;;2767:26;;2848:15;;;;2813:12;;;;2740:1;2733:9;2704:169;;;-1:-1:-1;2890:3:25;;2267:632;-1:-1:-1;;;;;;2267:632:25:o;3099:184::-;-1:-1:-1;;;3148:1:25;3141:88;3248:4;3245:1;3238:15;3272:4;3269:1;3262:15;3288:1248;3381:6;3389;3442:2;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3494:9;3481:23;3471:33;;3523:2;3576;3565:9;3561:18;3548:32;3599:18;3640:2;3632:6;3629:14;3626:34;;;3656:1;3653;3646:12;3626:34;3694:6;3683:9;3679:22;3669:32;;3739:7;3732:4;3728:2;3724:13;3720:27;3710:55;;3761:1;3758;3751:12;3710:55;3797:2;3784:16;3819:2;3815;3812:10;3809:36;;;3825:18;;:::i;:::-;3871:2;3868:1;3864:10;3903:2;3897:9;-1:-1:-1;;3957:2:25;3953;3949:11;3945:84;3937:6;3933:97;4080:6;4068:10;4065:22;4060:2;4048:10;4045:18;4042:46;4039:72;;;4091:18;;:::i;:::-;4127:2;4120:22;4177:18;;;4211:15;;;;-1:-1:-1;4253:11:25;;;4249:20;;;4281:19;;;4278:39;;;4313:1;4310;4303:12;4278:39;4337:11;;;;4357:148;4373:6;4368:3;4365:15;4357:148;;;4439:23;4458:3;4439:23;:::i;:::-;4427:36;;4390:12;;;;4483;;;;4357:148;;;4524:6;4514:16;;;;;;;;3288:1248;;;;;:::o;4772:723::-;4894:6;4902;4910;4918;4926;4934;4987:3;4975:9;4966:7;4962:23;4958:33;4955:53;;;5004:1;5001;4994:12;4955:53;5040:9;5027:23;5017:33;;5101:2;5090:9;5086:18;5073:32;5128:18;5120:6;5117:30;5114:50;;;5160:1;5157;5150:12;5114:50;5199:70;5261:7;5252:6;5241:9;5237:22;5199:70;:::i;:::-;5288:8;;-1:-1:-1;5173:96:25;-1:-1:-1;5342:38:25;;-1:-1:-1;5376:2:25;5361:18;;5342:38;:::i;:::-;5332:48;;5427:2;5416:9;5412:18;5399:32;5389:42;;5450:39;5484:3;5473:9;5469:19;5450:39;:::i;:::-;5440:49;;4772:723;;;;;;;;:::o;5500:847::-;5631:6;5639;5647;5655;5663;5716:2;5704:9;5695:7;5691:23;5687:32;5684:52;;;5732:1;5729;5722:12;5684:52;5772:9;5759:23;5801:18;5842:2;5834:6;5831:14;5828:34;;;5858:1;5855;5848:12;5828:34;5897:70;5959:7;5950:6;5939:9;5935:22;5897:70;:::i;:::-;5986:8;;-1:-1:-1;5871:96:25;-1:-1:-1;6074:2:25;6059:18;;6046:32;;-1:-1:-1;6090:16:25;;;6087:36;;;6119:1;6116;6109:12;6087:36;;6158:72;6222:7;6211:8;6200:9;6196:24;6158:72;:::i;:::-;6249:8;;-1:-1:-1;6132:98:25;-1:-1:-1;6303:38:25;;-1:-1:-1;6337:2:25;6322:18;;6303:38;:::i;:::-;6293:48;;5500:847;;;;;;;;:::o;6352:260::-;6420:6;6428;6481:2;6469:9;6460:7;6456:23;6452:32;6449:52;;;6497:1;6494;6487:12;6449:52;6520:29;6539:9;6520:29;:::i;:::-;6510:39;;6568:38;6602:2;6591:9;6587:18;6568:38;:::i;:::-;6558:48;;6352:260;;;;;:::o;7342:161::-;7409:20;;7469:8;7458:20;;7448:31;;7438:59;;7493:1;7490;7483:12;7508:258;7575:6;7583;7636:2;7624:9;7615:7;7611:23;7607:32;7604:52;;;7652:1;7649;7642:12;7604:52;7675:29;7694:9;7675:29;:::i;:::-;7665:39;;7723:37;7756:2;7745:9;7741:18;7723:37;:::i;7771:184::-;7829:6;7882:2;7870:9;7861:7;7857:23;7853:32;7850:52;;;7898:1;7895;7888:12;7850:52;7921:28;7939:9;7921:28;:::i;7960:118::-;8046:5;8039:13;8032:21;8025:5;8022:32;8012:60;;8068:1;8065;8058:12;8083:389;8157:6;8165;8173;8226:2;8214:9;8205:7;8201:23;8197:32;8194:52;;;8242:1;8239;8232:12;8194:52;8265:29;8284:9;8265:29;:::i;:::-;8255:39;;8313:38;8347:2;8336:9;8332:18;8313:38;:::i;:::-;8303:48;;8401:2;8390:9;8386:18;8373:32;8414:28;8436:5;8414:28;:::i;:::-;8461:5;8451:15;;;8083:389;;;;;:::o;9955:184::-;-1:-1:-1;;;10004:1:25;9997:88;10104:4;10101:1;10094:15;10128:4;10125:1;10118:15;10144:125;10184:4;10212:1;10209;10206:8;10203:34;;;10217:18;;:::i;:::-;-1:-1:-1;10254:9:25;;10144:125::o;10274:184::-;-1:-1:-1;;;10323:1:25;10316:88;10423:4;10420:1;10413:15;10447:4;10444:1;10437:15;10463:228;10503:7;10629:1;-1:-1:-1;;10557:74:25;10554:1;10551:81;10546:1;10539:9;10532:17;10528:105;10525:131;;;10636:18;;:::i;:::-;-1:-1:-1;10676:9:25;;10463:228::o;10885:274::-;10925:1;10951;10941:189;;-1:-1:-1;;;10983:1:25;10976:88;11087:4;11084:1;11077:15;11115:4;11112:1;11105:15;10941:189;-1:-1:-1;11144:9:25;;10885:274::o;11860:128::-;11900:3;11931:1;11927:6;11924:1;11921:13;11918:39;;;11937:18;;:::i;:::-;-1:-1:-1;11973:9:25;;11860:128::o;12646:245::-;12713:6;12766:2;12754:9;12745:7;12741:23;12737:32;12734:52;;;12782:1;12779;12772:12;12734:52;12814:9;12808:16;12833:28;12855:5;12833:28;:::i;13897:195::-;13936:3;-1:-1:-1;;13960:5:25;13957:77;13954:103;;14037:18;;:::i;:::-;-1:-1:-1;14084:1:25;14073:13;;13897:195::o;14097:184::-;14167:6;14220:2;14208:9;14199:7;14195:23;14191:32;14188:52;;;14236:1;14233;14226:12;14188:52;-1:-1:-1;14259:16:25;;14097:184;-1:-1:-1;14097:184:25:o;19771:258::-;19843:1;19853:113;19867:6;19864:1;19861:13;19853:113;;;19943:11;;;19937:18;19924:11;;;19917:39;19889:2;19882:10;19853:113;;;19984:6;19981:1;19978:13;19975:48;;;20019:1;20010:6;20005:3;20001:16;19994:27;19975:48;;19771:258;;;:::o;20034:274::-;20163:3;20201:6;20195:13;20217:53;20263:6;20258:3;20251:4;20243:6;20239:17;20217:53;:::i;:::-;20286:16;;;;;20034:274;-1:-1:-1;;20034:274:25:o;20718:706::-;20949:6;20938:9;20931:25;20992:6;20987:2;20976:9;20972:18;20965:34;-1:-1:-1;;;;;21039:6:25;21035:55;21030:2;21019:9;21015:18;21008:83;21127:3;21122:2;21111:9;21107:18;21100:31;20912:4;21160:6;21154:13;21204:6;21198:3;21187:9;21183:19;21176:35;21220:67;21280:6;21274:3;21263:9;21259:19;21254:2;21246:6;21242:15;21220:67;:::i;:::-;21339:2;21327:15;-1:-1:-1;;21323:88:25;21308:104;;;;21414:3;21304:114;;20718:706;-1:-1:-1;;;;;20718:706:25:o;23372:188::-;23451:13;;23504:30;23493:42;;23483:53;;23473:81;;23550:1;23547;23540:12;23565:450;23652:6;23660;23668;23721:2;23709:9;23700:7;23696:23;23692:32;23689:52;;;23737:1;23734;23727:12;23689:52;23760:40;23790:9;23760:40;:::i;:::-;23750:50;;23819:49;23864:2;23853:9;23849:18;23819:49;:::i;:::-;23809:59;;23911:2;23900:9;23896:18;23890:25;23955:10;23948:5;23944:22;23937:5;23934:33;23924:61;;23981:1;23978;23971:12"},"methodIdentifiers":{"FACTORY()":"2dd31000","FEE_FLOOR()":"18d73e9b","MAX_FEE()":"bc063e1a","WAVAX()":"73b295c2","activatePartner(address)":"01e8a475","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","getFeeInfo(address)":"7439459b","managers(address,address)":"3fe9bd7c","modifyFeeCut(address,uint24)":"fa44620f","modifyFeeFloor(uint24)":"e80e6eed","modifyManagement(address,address,bool)":"febb9e4f","modifyTotalFee(address,uint24)":"cfde04d9","owner()":"8da5cb5b","quote(uint256,uint256,uint256)":"ad615dec","renounceOwnership()":"715018a6","swapAVAXForExactTokens(uint256,address[],address,uint256,address)":"2eb9cc74","swapExactAVAXForTokens(uint256,address[],address,uint256,address)":"eaf92ef4","swapExactAVAXForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256,address)":"e56e780a","swapExactTokensForAVAX(uint256,uint256,address[],address,uint256,address)":"e5e47889","swapExactTokensForAVAXSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256,address)":"cdbf012e","swapExactTokensForTokens(uint256,uint256,address[],address,uint256,address)":"05a1450d","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256,address)":"f824f62e","swapTokensForExactAVAX(uint256,uint256,address[],address,uint256,address)":"0ece8e24","swapTokensForExactTokens(uint256,uint256,address[],address,uint256,address)":"a32166ee","transferOwnership(address)":"f2fde38b","withdrawFees(address[],uint256[],address)":"31f91a84"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_FACTORY\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WAVAX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"firstOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feePartner\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeProtocol\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"}],\"name\":\"FeeChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeFloor\",\"type\":\"uint24\"}],\"name\":\"FeeFloorChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"FeeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"name\":\"ManagerChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feePartner\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeProtocol\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"}],\"name\":\"PartnerActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PartnerFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProtocolFee\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_FLOOR\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WAVAX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"}],\"name\":\"activatePartner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"getFeeInfo\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"feePartner\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"feeProtocol\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"managers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"}],\"name\":\"modifyFeeCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"feeFloor\",\"type\":\"uint24\"}],\"name\":\"modifyFeeFloor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"name\":\"modifyManagement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"}],\"name\":\"modifyTotalFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapAVAXForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactAVAXForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactAVAXForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForAVAX\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForAVAXSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapTokensForExactAVAX\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/PangolinRouterSupportingFees.sol\":\"PangolinRouterSupportingFees\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb3fe51fccd8da7b99d23634d45ab5fc978496bc2763ae8436867c14d144a0b02\",\"urls\":[\"bzz-raw://076378342d9b196439c99464a818629babdb273daf7919b3a71e3b0531b4fb65\",\"dweb:/ipfs/QmPdVowLwaPrTu4yTNJdy1eBkKaAfH3uhU3Eu85ecmdNuC\"]},\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0x0511ddea9c27b93469fea324ad29206830b559f6bfd16e9d033ba05edc37f1ab\",\"urls\":[\"bzz-raw://721a8c3595a7a7cc8ddf44a41a6db15b186e6e275990dc0e1790b61679b736a3\",\"dweb:/ipfs/QmU2UX4i5ZYtzv333x4FVjLQymC8rFmJ6Hsmi3Ka1HjFMu\"]},\"contracts/pangolin-lib/libraries/TransferHelper.sol\":{\"keccak256\":\"0xfc5b469642639405484afdba1d1ad1bdc70bd5cd4f01fe53c3be27c12a149f1f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4c82e4d301a6bb7b9aac332299cb982dc8188d52942cc04796546dfb5cbd7a\",\"dweb:/ipfs/QmeeiUQrF2asciybNWEQyzeMsSkdavRABfZreMpCmKUpcG\"]},\"contracts/pangolin-periphery/PangolinRouterSupportingFees.sol\":{\"keccak256\":\"0x1bc080ea026f543e089954a2890a7c5ef87382197c147f8b7d94a73b206fab96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://108326710d0961539bd5caa5700a07188ebb9ac9a12baef1acc6d0eca686e0b3\",\"dweb:/ipfs/QmeJp1JiRiPzSFgTDWyxEGQt4dA4CF3jdcLxwZbgCXq6jH\"]},\"contracts/pangolin-periphery/interfaces/IERC20.sol\":{\"keccak256\":\"0xa791b279660ee5eb66ebd4f23b539055d178ae24677f3a164567441ecfdcf73a\",\"urls\":[\"bzz-raw://06f36f585a8b82eb388ccccc4e8c483718a99a07f5f12d3217afc254ab139a68\",\"dweb:/ipfs/Qmedr3aAH6F3ZTgZJ3enoP92ZD8yNwiCStwtGknNXhiK8v\"]},\"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol\":{\"keccak256\":\"0x91016e77eb8a4e65a579e411b1b735fec1a0214b705118be3b5b816f95b6821a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc1b8448689a053ef981524ce08e839be85fada7ae5fec6db0bd5e4d40384cd7\",\"dweb:/ipfs/QmQvY5tSb8Zrg5YLCXJ1d2BjbPQxzN3Pj1ABsRmK4KanaA\"]},\"contracts/pangolin-periphery/interfaces/IWAVAX.sol\":{\"keccak256\":\"0x9c27dcddc6d751ed7a000b57889b7951c98779a0c5fcc16948f73dc5d28e041f\",\"urls\":[\"bzz-raw://16b0ac2fd8ad661e08e4150815115cff147b19926686ecc66cb4c98d2c788c34\",\"dweb:/ipfs/QmUKTJEzwtD6KkL3xWMruMqLjhRENL42NRLa7mTwSHPdGD\"]},\"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol\":{\"keccak256\":\"0x9da6e1679296607bbc5696604da0d1e7c46f144059fe4909d92d6308b6fd1175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e115d7da346a11ee4749f4ab1297bc54e2f37cccb8656ba672abbd95c2406d1\",\"dweb:/ipfs/Qmf7oSvkAL2ji9MRMZun7r48SBRtUHeEkGouPBvjLu663L\"]}},\"version\":1}"}},"contracts/pangolin-periphery/interfaces/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IERC20.sol\":{\"keccak256\":\"0xa791b279660ee5eb66ebd4f23b539055d178ae24677f3a164567441ecfdcf73a\",\"urls\":[\"bzz-raw://06f36f585a8b82eb388ccccc4e8c483718a99a07f5f12d3217afc254ab139a68\",\"dweb:/ipfs/Qmedr3aAH6F3ZTgZJ3enoP92ZD8yNwiCStwtGknNXhiK8v\"]}},\"version\":1}"}},"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol":{"IPangolinRouterSupportingFees":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":false,"internalType":"uint24","name":"feePartner","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeProtocol","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeTotal","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeCut","type":"uint24"}],"name":"FeeChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"feeFloor","type":"uint24"}],"name":"FeeFloorChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"FeeWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":false,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bool","name":"isAllowed","type":"bool"}],"name":"ManagerChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":false,"internalType":"uint24","name":"feePartner","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeProtocol","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeTotal","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"feeCut","type":"uint24"}],"name":"PartnerActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PartnerFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"partner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ProtocolFee","type":"event"},{"inputs":[],"name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_FLOOR","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"}],"name":"activatePartner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeTo","type":"address"}],"name":"getFeeInfo","outputs":[{"internalType":"uint24","name":"feePartner","type":"uint24"},{"internalType":"uint24","name":"feeProtocol","type":"uint24"},{"internalType":"uint24","name":"feeTotal","type":"uint24"},{"internalType":"uint24","name":"feeCut","type":"uint24"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"address","name":"manager","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"isAllowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"uint24","name":"feeCut","type":"uint24"}],"name":"modifyFeeCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"feeFloor","type":"uint24"}],"name":"modifyFeeFloor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"bool","name":"isAllowed","type":"bool"}],"name":"modifyManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"partner","type":"address"},{"internalType":"uint24","name":"feeTotal","type":"uint24"}],"name":"modifyTotalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapAVAXForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactAVAXForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapTokensForExactAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"FACTORY()":"2dd31000","FEE_FLOOR()":"18d73e9b","MAX_FEE()":"bc063e1a","WAVAX()":"73b295c2","activatePartner(address)":"01e8a475","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","getFeeInfo(address)":"7439459b","managers(address,address)":"3fe9bd7c","modifyFeeCut(address,uint24)":"fa44620f","modifyFeeFloor(uint24)":"e80e6eed","modifyManagement(address,address,bool)":"febb9e4f","modifyTotalFee(address,uint24)":"cfde04d9","quote(uint256,uint256,uint256)":"ad615dec","swapAVAXForExactTokens(uint256,address[],address,uint256,address)":"2eb9cc74","swapExactAVAXForTokens(uint256,address[],address,uint256,address)":"eaf92ef4","swapExactAVAXForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256,address)":"e56e780a","swapExactTokensForAVAX(uint256,uint256,address[],address,uint256,address)":"e5e47889","swapExactTokensForAVAXSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256,address)":"cdbf012e","swapExactTokensForTokens(uint256,uint256,address[],address,uint256,address)":"05a1450d","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256,address)":"f824f62e","swapTokensForExactAVAX(uint256,uint256,address[],address,uint256,address)":"0ece8e24","swapTokensForExactTokens(uint256,uint256,address[],address,uint256,address)":"a32166ee","withdrawFees(address[],uint256[],address)":"31f91a84"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feePartner\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeProtocol\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"}],\"name\":\"FeeChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeFloor\",\"type\":\"uint24\"}],\"name\":\"FeeFloorChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"FeeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"name\":\"ManagerChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feePartner\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeProtocol\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"}],\"name\":\"PartnerActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PartnerFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProtocolFee\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_FLOOR\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WAVAX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"}],\"name\":\"activatePartner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"getFeeInfo\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"feePartner\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"feeProtocol\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"managers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"feeCut\",\"type\":\"uint24\"}],\"name\":\"modifyFeeCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"feeFloor\",\"type\":\"uint24\"}],\"name\":\"modifyFeeFloor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"name\":\"modifyManagement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"partner\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"feeTotal\",\"type\":\"uint24\"}],\"name\":\"modifyTotalFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapAVAXForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactAVAXForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactAVAXForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForAVAX\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForAVAXSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapTokensForExactAVAX\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol\":\"IPangolinRouterSupportingFees\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IPangolinRouterSupportingFees.sol\":{\"keccak256\":\"0x91016e77eb8a4e65a579e411b1b735fec1a0214b705118be3b5b816f95b6821a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc1b8448689a053ef981524ce08e839be85fada7ae5fec6db0bd5e4d40384cd7\",\"dweb:/ipfs/QmQvY5tSb8Zrg5YLCXJ1d2BjbPQxzN3Pj1ABsRmK4KanaA\"]}},\"version\":1}"}},"contracts/pangolin-periphery/interfaces/IWAVAX.sol":{"IWAVAX":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","transfer(address,uint256)":"a9059cbb","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/interfaces/IWAVAX.sol\":\"IWAVAX\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IWAVAX.sol\":{\"keccak256\":\"0x9c27dcddc6d751ed7a000b57889b7951c98779a0c5fcc16948f73dc5d28e041f\",\"urls\":[\"bzz-raw://16b0ac2fd8ad661e08e4150815115cff147b19926686ecc66cb4c98d2c788c34\",\"dweb:/ipfs/QmUKTJEzwtD6KkL3xWMruMqLjhRENL42NRLa7mTwSHPdGD\"]}},\"version\":1}"}},"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol":{"PangolinLibrary8":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eabe43977f3a548f38fa294d398d282340d6a14412e7f678ee20d5f76246f89764736f6c634300080d0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xBE NUMBER SWAP8 PUSH32 0x3A548F38FA294D398D282340D6A14412E7F678EE20D5F76246F89764736F6C63 NUMBER STOP ADDMOD 0xD STOP CALLER ","sourceMap":"348:4530:24:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;348:4530:24;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eabe43977f3a548f38fa294d398d282340d6a14412e7f678ee20d5f76246f89764736f6c634300080d0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xBE NUMBER SWAP8 PUSH32 0x3A548F38FA294D398D282340D6A14412E7F678EE20D5F76246F89764736F6C63 NUMBER STOP ADDMOD 0xD STOP CALLER ","sourceMap":"348:4530:24:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol\":\"PangolinLibrary8\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb3fe51fccd8da7b99d23634d45ab5fc978496bc2763ae8436867c14d144a0b02\",\"urls\":[\"bzz-raw://076378342d9b196439c99464a818629babdb273daf7919b3a71e3b0531b4fb65\",\"dweb:/ipfs/QmPdVowLwaPrTu4yTNJdy1eBkKaAfH3uhU3Eu85ecmdNuC\"]},\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0x0511ddea9c27b93469fea324ad29206830b559f6bfd16e9d033ba05edc37f1ab\",\"urls\":[\"bzz-raw://721a8c3595a7a7cc8ddf44a41a6db15b186e6e275990dc0e1790b61679b736a3\",\"dweb:/ipfs/QmU2UX4i5ZYtzv333x4FVjLQymC8rFmJ6Hsmi3Ka1HjFMu\"]},\"contracts/pangolin-periphery/libraries/PangolinLibrary8.sol\":{\"keccak256\":\"0x9da6e1679296607bbc5696604da0d1e7c46f144059fe4909d92d6308b6fd1175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e115d7da346a11ee4749f4ab1297bc54e2f37cccb8656ba672abbd95c2406d1\",\"dweb:/ipfs/Qmf7oSvkAL2ji9MRMZun7r48SBRtUHeEkGouPBvjLu663L\"]}},\"version\":1}"}}}}}